/* Facturacion: reduce la altura reservada al portal en celular. */
@media (max-width: 1024px) {
    .cnfac {
        --cnfac-alto-movil: 900px !important;
    }
}

section.vc_section.tentaciones01 {
    padding-top: 0px !important;
    padding-bottom: 0px !important;
}

section.vc_section.collagesc {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

section.vc_section.galeria01 {
    padding-top: 30px !important
}

/* Pagina Nosotros: oculta la columna de fotos solo en celular. */
@media (max-width: 1024px) {
    section.vc_section:has(h2[data-title="La herencia Maya."]) > .vc_row > .wpb_column:has(.ut-image-gallery) {
        display: none !important;
    }
}

section.vc_section.nosotros01 {
    padding-top: 30px !important;
}

/* Nosotros: el enlace existente cubre el titulo, la imagen y el texto. */
section.vc_section.nosotros01 {
    position: relative !important;
    isolation: isolate;
}

/* La seccion debe ser la referencia del enlace, no sus contenedores. */
section.vc_section.nosotros01 div:has(a.ut-custom-link-module[href]) {
    position: static !important;
    transform: none !important;
    filter: none !important;
    perspective: none !important;
    contain: none !important;
    will-change: auto !important;
    overflow: visible !important;
    z-index: auto !important;
}

section.vc_section.nosotros01 a.ut-custom-link-module[href] {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 100;
    cursor: pointer;
}

section.vc_section.nosotros01 a.ut-custom-link-module[href]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -4px;
}

div.vc_row.collagepd,
.collagepd {
    padding-top: 0px !important;
    padding-bottom: 0px !important;
    margin-top: 0px !important;
    margin-bottom: 0px !important;
}

section.vc_section.masvendido01 {
    padding-top: 30px !important;
    padding-bottom: 0px !important;
}

section.vc_section.masvendido01 :is(.vc_row, #no-existe-en-la-pagina) {
    padding-top: 0 !important;
}

div.masvendido02,
.masvendido01 .masvendido02 {
    margin-top: 0px !important;
}

@media (max-width: 1024px) {
    section.vc_section.masvendido01 > .masvendido02 {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        box-sizing: border-box !important;
    }

    section.vc_section.masvendido01 > .masvendido02::before,
    section.vc_section.masvendido01 > .masvendido02::after {
        content: none !important;
        display: none !important;
    }

    section.vc_section.masvendido01 > .masvendido02 > .wpb_column {
        float: none !important;
        width: 100% !important;
        min-width: 0;
        margin: 0 !important;
    }

    section.vc_section.masvendido01 > .masvendido02 > .wpb_column > .vc_column-inner {
        padding: 0 !important;
    }

    section.vc_section.masvendido01 .masvendido02 .wpb_content_element {
        margin-bottom: 0 !important;
    }

    section.vc_section.masvendido01 .masvendido02 .bklyn5-team-member-avatar img {
        display: block;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 3 / 2;
        object-fit: cover;
    }

    section.vc_section.masvendido01 .masvendido02 .bklyn5-team-member-overlay {
        position: static !important;
        inset: auto !important;
        display: block !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 7px 6px 5px !important;
        box-sizing: border-box;
        background: #fff !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }

    section.vc_section.masvendido01 .masvendido02 :is(.bklyn5-team-member-overlay-caption, .bklyn5-team-member-info) {
        position: static !important;
        inset: auto !important;
        display: block !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }

    section.vc_section.masvendido01 .masvendido02 .bklyn5-team-member-name {
        position: static !important;
        display: block !important;
        margin: 0 0 4px !important;
        color: #000 !important;
        font-size: 15px !important;
        line-height: 1.25 !important;
        text-align: center;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }

    section.vc_section.masvendido01 .masvendido02 .bklyn5-team-member-ocupation {
        position: static !important;
        display: block !important;
        margin: 0 !important;
        color: #BCD1E6 !important;
        font-size: 13px !important;
        line-height: 1.25 !important;
        text-align: center;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }
}

@media (min-width: 1025px) {
    .nosotros01:not(.vc_section) {
        margin-left: 30% !important;
        margin-top: 5% !important;
    }
}

.wpb_content_element.clasi_shortcode {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.wpb_content_element:has(> .clasi_titulo) {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.section-header.clasi_titulo {
  margin-bottom: 40px !important;
}

.vc_section.ut-vc-120 {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

/* Acceso y registro: imagen a la izquierda, texto y formulario a la derecha. */
.vc_row:has(:is(.um-login, .um-register)) {
  --acceso-ancho-formulario: 500px;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: 1fr auto auto 1fr;
  min-height: max(520px, calc(100vh - 80px));
}

.vc_row:has(:is(.um-login, .um-register))::before,
.vc_row:has(:is(.um-login, .um-register))::after {
  content: none !important;
  display: none !important;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column {
  display: flex;
  float: none !important;
  width: 100% !important;
  min-height: 0;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child {
  grid-area: 1 / 1 / 5 / 2;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(2) {
  grid-area: 2 / 2 / 3 / 3;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(3) {
  grid-area: 3 / 2 / 4 / 3;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column > .vc_column-inner {
  display: flex;
  width: 100%;
  padding: 0 !important;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column > .vc_column-inner > .wpb_wrapper {
  display: flex;
  flex: 1;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child .wpb_content_element,
.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child .ut-image-gallery-image,
.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child .ut-image-gallery-item,
.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child .ut-deactivated-link {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0 !important;
  position: static !important;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child .ut-animated-image-zoom {
  position: absolute !important;
  inset: 0;
  overflow: hidden;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child {
  position: relative;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child > .vc_column-inner,
.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child > .vc_column-inner > .wpb_wrapper {
  position: static !important;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(3) .wpb_text_column {
  width: min(100%, var(--acceso-ancho-formulario)) !important;
  max-width: var(--acceso-ancho-formulario) !important;
  margin: 0 auto !important;
  box-sizing: border-box;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(3) .wpb_text_column > .wpb_wrapper,
.vc_row:has(:is(.um-login, .um-register)) :is(.um-login, .um-register) .um-form,
.vc_row:has(:is(.um-login, .um-register)) :is(.um-login, .um-register) form {
  width: 100%;
  box-sizing: border-box;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(3) > .vc_column-inner > .wpb_wrapper {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 40px 40px !important;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(2) > .vc_column-inner > .wpb_wrapper {
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px 40px 0 !important;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(2) .wpb_text_column {
  width: 100%;
  max-width: var(--acceso-ancho-formulario);
  margin: 0 auto !important;
  text-align: center;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(2) p {
  margin: 0 0 8px;
  font-family: var(--cn-subtitulo) !important;
  font-style: italic !important;
  font-size: 20px;
  line-height: 1.3;
}

.vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(2) p:first-child {
  margin-bottom: 16px;
  font-family: var(--cn-titulo) !important;
  font-style: normal !important;
  font-weight: 700 !important;
  font-size: 34px;
}

.vc_row:has(:is(.um-login, .um-register)) :is(.um-login, .um-register) input.um-form-field {
  width: 100% !important;
  box-sizing: border-box;
  border-radius: 25px !important;
}

.vc_row:has(:is(.um-login, .um-register)) :is(.um-login, .um-register) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 auto !important;
}

.vc_row:has(:is(.um-login, .um-register)) #um-submit-btn {
  background: #BCD1E6 !important;
  border-radius: 15px !important;
  color: #000 !important;
}

.vc_row:has(:is(.um-login, .um-register)) #um-submit-btn:hover,
.vc_row:has(:is(.um-login, .um-register)) #um-submit-btn:focus-visible {
  background: #BCD1E6 !important;
  color: #000 !important;
}

@media (max-width: 1024px) {
  .vc_row:has(:is(.um-login, .um-register)) {
    display: flex !important;
    flex-direction: column;
    min-height: 0;
  }

  .vc_row:has(:is(.um-login, .um-register)) > .wpb_column {
    width: 100% !important;
    min-height: 0;
  }

  .vc_row:has(:is(.um-login, .um-register)) > .wpb_column:first-child {
    height: 280px;
  }

  .vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(2) > .vc_column-inner > .wpb_wrapper {
    padding: 32px 20px 0 !important;
  }

  .vc_row:has(:is(.um-login, .um-register)) > .wpb_column:nth-child(3) > .vc_column-inner > .wpb_wrapper {
    padding: 32px 20px !important;
  }
}

/* Oculta la confirmacion con enlace Ver carrito. */
.woocommerce-message:has(a.wc-forward[href*="/carrito/"]) {
  display: none !important;
}

/* Carrito: espacios del contenido. */
body.woocommerce-cart .main-content-background {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.woocommerce-checkout .main-content-background {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Checkout y carrito: oculta el formulario de cupones en todos los tamanos. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-coupon-form-block,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-coupon-form-block,
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-cart .woocommerce-cart-form .coupon {
  display: none !important;
}

/* Checkout compacto: conserva el resumen junto al boton de pago. */
@media (max-width: 1024px) {
  body.woocommerce-checkout .wc-block-checkout:is(.is-mobile, .is-small, .is-medium):has(.wc-block-checkout__actions .checkout-order-summary-block-fill-wrapper) > .wc-block-checkout__sidebar > .wp-block-woocommerce-checkout-order-summary-block {
    display: none !important;
  }
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  background: #BCD1E6 !important;
  border-radius: 15px !important;
  color: #000 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button .wc-block-components-button__text {
  color: inherit !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:focus-visible {
  background: #BCD1E6 !important;
  color: #000 !important;
}

#post-1975 .wp-block-woocommerce-empty-cart-block {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#post-1975 .wc-block-cart__empty-cart__title {
  width: 100%;
  margin: 0 auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  text-align: center !important;
}

#post-1975 .wp-block-woocommerce-empty-cart-block > .wp-block-separator,
#post-1975 .wp-block-woocommerce-empty-cart-block > .wp-block-heading:not(.wc-block-cart__empty-cart__title),
#post-1975 .wp-block-woocommerce-empty-cart-block > .wc-block-product-new {
  display: none !important;
}

#post-1975 section.vc_section.ut-vc-120 {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

#post-1975 .wc-block-cart__submit-button {
  background: #BCD1E6 !important;
  border-radius: 15px !important;
  color: #000 !important;
}

#post-1975 .wc-block-cart__submit-button .wc-block-components-button__text {
  color: inherit !important;
}

#post-1975 .wc-block-cart__submit-button:hover,
#post-1975 .wc-block-cart__submit-button:focus-visible {
  background: #BCD1E6 !important;
  color: #000 !important;
}

section.vc_section.ut-vc-120:not(.masvendido01):has(> .masvendido02),
section.vc_section:not(.masvendido01) > :is(.masvendido02, #no-existe-en-la-pagina) {
  padding-top: 0 !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member {
  cursor: pointer;
  transition: opacity .3s;
}

section.vc_section:not(.masvendido01) > .masvendido02.cn-filtrando .bklyn5-team-member:not(.cn-tab-activa) {
  opacity: .5;
}

.cn-oculto {
  display: none !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay {
  position: static !important;
  inset: auto !important;
  height: auto !important;
  padding: 10px 0 0 !important;
  background: transparent !important;
  transform: none !important;
  visibility: visible !important;
  opacity: 0 !important;
  transition: opacity .35s ease !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member:hover .bklyn5-team-member-overlay {
  opacity: 1 !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay :is(.bklyn5-team-member-overlay-caption, .bklyn5-team-member-info, .bklyn5-team-member-name) {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-name {
  margin: 0 !important;
}

@media (hover: none) {
  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay {
    opacity: 1 !important;
  }
}

@media (min-width: 1025px) {
  section.vc_section:not(.masvendido01) > .masvendido02 {
    --alto-tabs: 170px;
    --alto-nombre: 40px;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 :is(.wpb_column, .vc_column-inner, .wpb_wrapper, .wpb_content_element, #no-existe-en-la-pagina) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member > a {
    display: block !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-avatar {
    position: relative !important;
    height: auto !important;
    padding: 0 !important;
    overflow: hidden;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-avatar img {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: calc(var(--alto-tabs) - var(--alto-nombre)) !important;
    object-fit: cover;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay {
    box-sizing: border-box !important;
    height: var(--alto-nombre) !important;
    overflow: hidden;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay :is(.bklyn5-team-member-overlay-caption, .bklyn5-team-member-info) {
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-name {
    line-height: calc(var(--alto-nombre) - 10px) !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

body:is(.woocommerce, :has(.woocommerce)) ul.products {

  --ancho-cuadricula: 1140px;
  --tope-fila: 5;
  --por-fila: var(--tope-fila);
  --hueco-h: 30px;
  --encoge: .95;
  --producto-foto-zoom: 1.2;
  --producto-foto-posicion-x: 58%;
  /* Punto vertical del zoom: 0% muestra la parte de arriba de la foto (el producto baja);
     50% es el recorte centrado de antes. */
  --producto-foto-origen-y: 0%;

  --ancho-tarjeta: calc((var(--ancho-cuadricula) - (var(--tope-fila) - 1) * var(--hueco-h)) / var(--tope-fila) * var(--encoge));

  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 40px var(--hueco-h);

  max-width: calc(var(--por-fila) * var(--ancho-tarjeta) + (var(--por-fila) - 1) * var(--hueco-h));
  margin: 0 auto !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products::before,
body:is(.woocommerce, :has(.woocommerce)) ul.products::after {
  content: none !important;
  display: none !important;
}

@media (min-width: 1025px) {

  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(1):last-child) { --por-fila: 1; }
  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(2):last-child) { --por-fila: 2; }

  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(3):last-child),
  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(6):last-child) {
    --por-fila: 3;
  }

  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(4):last-child),
  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(7):last-child),
  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(8):last-child),
  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(11):last-child),
  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(12):last-child),
  body:is(.woocommerce, :has(.woocommerce)) ul.products:has(> li.product:nth-child(16):last-child) {
    --por-fila: 4;
  }

}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product {

  width: var(--ancho-tarjeta) !important;
  margin: 0 !important;
  padding: 0 0 22px !important;
  float: none !important;
  clear: none !important;

  position: relative;
  display: flex !important;
  flex-direction: column;
  text-align: center;

  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(58, 35, 24, .06);
  transition: transform .45s cubic-bezier(.25, .8, .25, 1),
              box-shadow .45s cubic-bezier(.25, .8, .25, 1);
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product:hover {
  box-shadow: 0 18px 40px rgba(58, 35, 24, .16);
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product > a.woocommerce-LoopProduct-link {
  position: relative;
  display: grid !important;
  grid-template-columns: 1fr;
  grid-template-rows: max-content 1fr max-content;
  flex: 1 1 auto;
  width: 100%;
  text-decoration: none !important;
  border: 0 !important;
  overflow: visible;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product > a.woocommerce-LoopProduct-link > img {
  grid-row: 1;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .button:not(.add_to_cart_button),
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .added_to_cart,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .star-rating {
  display: none !important;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product img {
  width: 100% !important;
  /* Las fotos horizontales llenan el cuadro con recorte central, sin deformarse. */
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block;
  margin: 0 0 20px !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product img,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product:hover img {
  transform: none !important;
  transition: none !important;
}

/* Zoom permanente para todas las tarjetas, sin invadir el titulo ni el precio.
   El recorte compensa la escala y conserva el cuadro original de la foto. */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product > a.woocommerce-LoopProduct-link > img,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product:hover > a.woocommerce-LoopProduct-link > img {
  transform: scale(var(--producto-foto-zoom, 1.2)) !important;
  transform-origin: 50% var(--producto-foto-origen-y, 0%);
  /* Un porcentaje mayor muestra mas de la derecha y mueve el motivo a la izquierda. */
  object-position: var(--producto-foto-posicion-x, 58%) center !important;
  /* El recorte sigue al punto del zoom para conservar el cuadro original de la foto. */
  clip-path: inset(
    calc(var(--producto-foto-origen-y, 0%) * (1 - 1 / var(--producto-foto-zoom, 1.2)))
    calc(50% - 50% / var(--producto-foto-zoom, 1.2))
    calc((100% - var(--producto-foto-origen-y, 0%)) * (1 - 1 / var(--producto-foto-zoom, 1.2)))
    calc(50% - 50% / var(--producto-foto-zoom, 1.2))
  );
}

/* Galletas: cada foto trae la galleta de distinto tamano. Estos ajustes las dejan del mismo
   tamano, centradas y apoyadas a la misma altura (zoom, punto vertical y posicion horizontal).
   Medidos sobre las miniaturas 300x225 actuales: si se regeneran o cambian las fotos, hay que recalcular. */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2360 { --producto-foto-zoom: 1.292; --producto-foto-origen-y: 39.0%; --producto-foto-posicion-x: 50.0%; } /* Arandanos */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2362 { --producto-foto-zoom: 1.593; --producto-foto-origen-y: 54.7%; --producto-foto-posicion-x: 49.2%; } /* Pepita */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2363 { --producto-foto-zoom: 1.219; --producto-foto-origen-y: 30.6%; --producto-foto-posicion-x: 44.8%; } /* Trozos de Cacao */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2361 { --producto-foto-zoom: 1.2; --producto-foto-origen-y: 9.6%; --producto-foto-posicion-x: 46.8%; } /* Cacao y Avena */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product:is(.post-2364, .post-2365) { --producto-foto-zoom: 1.23; --producto-foto-origen-y: 25.0%; --producto-foto-posicion-x: 45.2%; } /* Nuez y Avellana */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2359 { --producto-foto-zoom: 1.35; --producto-foto-origen-y: 54.8%; --producto-foto-posicion-x: 52.0%; } /* De la abuela */

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product > a.woocommerce-LoopProduct-link::before {
  content: none !important;
  display: none !important;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product h2.woocommerce-loop-product__title {
  grid-column: 1;
  align-self: end;
  min-width: 0;
  width: auto;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
  color: #000 !important;
  padding: 0 14px !important;
  margin: 0 0 6px !important;
  text-align: center !important;
  text-transform: none !important;
  letter-spacing: 0 !important;

  --lineas: 2;
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--lineas);
  line-clamp: var(--lineas);
  overflow: hidden;

  overflow-wrap: break-word;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .price {
  grid-column: 1;
  align-self: end;
  display: block !important;
  width: auto;
  margin: 0 !important;
  padding: 0 14px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #BCD1E6 !important;
  text-align: center !important;
  line-height: 1.4;

  white-space: normal;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .price .amount {
  color: #000 !important;
  font-weight: 600;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .price del {
  opacity: .45;
  font-weight: 400;
  margin-right: 6px;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .price ins {
  text-decoration: none !important;
  color: #BCD1E6 !important;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .onsale {
  position: absolute;
  z-index: 4;
  top: 12px !important;
  left: 12px !important;
  right: auto !important;
  margin: 0 !important;
  padding: 4px 14px !important;
  background: #BCD1E6 !important;
  color: #fff !important;
  border-radius: 999px;
  font-size: 11px !important;
  letter-spacing: .05em;
  text-transform: uppercase;
  min-width: 0 !important;
  min-height: 0 !important;
  line-height: 1.7 !important;
  box-shadow: none !important;
}

.section-header.clasi_titulo h2.section-title {
  position: relative;
  color: #000 !important;
  padding-bottom: 20px;
}

.section-header.clasi_titulo h2.section-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 2px;
  background: #BCD1E6;

}

@media (max-width: 1024px) {
  body:is(.woocommerce, :has(.woocommerce)) ul.products {
    max-width: var(--ancho-cuadricula);
  }

  body:is(.woocommerce, :has(.woocommerce)) ul.products li.product {
    width: calc((100% - (var(--por-fila) - 1) * var(--hueco-h)) / var(--por-fila) * var(--encoge)) !important;
  }
}

@media (max-width: 1024px) {
  body:is(.woocommerce, :has(.woocommerce)) ul.products {
    --por-fila: 2;
  }
  .section-header.clasi_titulo {
    margin-bottom: 28px !important;
  }
}

@media (max-width: 1024px) {
  body:is(.woocommerce, :has(.woocommerce)) ul.products {
    --hueco-h: 14px;
    gap: 24px var(--hueco-h);
  }
  body:is(.woocommerce, :has(.woocommerce)) ul.products li.product h2.woocommerce-loop-product__title {
    font-size: 15px !important;
    padding: 0 10px !important;
  }
  body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .price {
    font-size: 14px !important;
    padding: 0 10px !important;
  }
}
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-1982 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2086 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2332,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2333,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2334,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2376,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2377,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2378 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.chocobox-card-1979-2 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.chocobox-card-1979-6,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.chocobox-card-1979-15 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2336,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2337,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2338,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2352,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2353,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2354,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2355 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2359,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2360,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2361,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2362,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2363,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2364,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2365 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2366,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2367,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2368,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2369,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2370,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2371,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2372,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2373 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2379,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2380,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2381,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2382,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2383,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2384,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2385,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2386,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2387,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2388,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2389,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2390,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2391,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2392,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2393,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2394,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2395,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2396,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2397,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product.post-2398 {
  --foto-hover: url("");
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product > a.woocommerce-LoopProduct-link::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  aspect-ratio: 1 / 1;
  z-index: 1;

  background-image: var(--foto-hover, none);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: none !important;

  opacity: 0;

  transition: opacity .4s ease;
  pointer-events: none;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product:hover > a.woocommerce-LoopProduct-link::after {
  opacity: 1;
}

@media (hover: none), (max-width: 1024px) {
  body:is(.woocommerce, :has(.woocommerce)) ul.products li.product > a.woocommerce-LoopProduct-link::after {
    display: none;
  }
}

/* Compra: icono circular en la esquina inferior derecha de la foto. */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button {
  position: absolute;
  z-index: 3;
  top: 0;
  right: 10px;
  left: auto;
  margin: calc(100% - 54px) 0 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 44px !important;
  height: 44px !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  font-size: 0 !important;
  line-height: 0 !important;
  letter-spacing: 0;
  background: rgba(128, 128, 128, .25) url("https://www.cacaonativa.com/wp-content/uploads/2026/10/anadir-al-carritologo.svg") center / 24px 24px no-repeat !important;
  box-shadow: 0 3px 10px rgba(58, 35, 24, .22);
  opacity: 0;
  transform: none !important;
  pointer-events: none;
  transition: opacity .3s ease;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product:hover .add_to_cart_button,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button:focus-visible,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button.loading,
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button.added {
  opacity: 1;
  pointer-events: auto;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button:hover {
  background-color: rgba(128, 128, 128, .25) !important;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button:focus-visible {
  outline: 2px solid #BCD1E6;
  outline-offset: 2px;
}

/* Evita que los indicadores del tema se superpongan al icono. */
body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button::after {
  content: none !important;
  display: none !important;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button.loading {
  opacity: .6;
}

body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button.added {
  box-shadow: 0 0 0 2px #BCD1E6;
}

@media (hover: none), (max-width: 1024px) {
  body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .add_to_cart_button {
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
}

.woocommerce-result-count,
.woocommerce-ordering {
    display: none !important;
}

.ut-single-brand-logo {
    --velo-recorte: calc(20% - 5px);
    --velo-crece:   5px;
    --nombre-tam:   15px;

    position: relative;
    overflow: hidden;
}

.ut-single-brand-logo a {
    position: relative;
    display: block;
}

.ut-single-brand-logo a::before {
    content: "";
    position: absolute;
    inset: calc(var(--velo-recorte, 0px) - var(--velo-crece, 0px))
           calc(var(--velo-crece, 0px) * -1);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0);
    transition: background 0.3s ease;
    z-index: 1;
}

.ut-single-brand-logo a::after {
    content: attr(data-brand-name);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -40%);
    color: #fff;
    font-size: var(--nombre-tam, 13px);
    font-weight: 600;
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index: 2;
    pointer-events: none;
    width: 90%;
}

.ut-single-brand-logo a:hover::before {
    background: rgba(0, 0, 0, 0.55);
}

.ut-single-brand-logo a:hover::after {
    opacity: 1;
    transform: translate(-50%, -50%);
}

.collagepd {

  --alto-de-referencia: 200;
  --ancho-de-referencia: 1366;
  --alto-celda: clamp(120px, calc(var(--alto-de-referencia) / var(--ancho-de-referencia) * 100vw), 400px);

  --zoom: 1.06;
  --hueco-celda: 2px;
  --radio-celda: 12px;

  padding-left: var(--hueco-celda) !important;
  padding-right: var(--hueco-celda) !important;
}

.collagepd > .wpb_column {
  position: relative;
  cursor: pointer;

}

.collagepd .vc_column-inner {
  position: relative;

  min-height: var(--alto-celda) !important;

  width: auto !important;

  margin: var(--hueco-celda);
  border-radius: var(--radio-celda);

  overflow: hidden;

  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  transition: transform .6s cubic-bezier(.25, .8, .25, 1);
}

.collagepd .wpb_content_element {
  margin-bottom: 0 !important;
}

.collagepd > .wpb_column:hover .vc_column-inner,
.collagepd > .wpb_column:focus-within .vc_column-inner {
  transform: scale(var(--zoom));
}

.collagepd .wpb_wrapper,
.collagepd .wpb_content_element,
.collagepd .cta-btn {
  position: static !important;
}

/* El enlace cubre toda la celda para que cualquier clic lleve a la categoria. */
.collagepd .cta-btn > a {
  position: absolute !important;
  inset: 0;
  z-index: 2;
  display: block !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;

  /* El texto del enlace (title) no se muestra, ni en PC ni en celular. */
  font-size: 0 !important;
  color: transparent !important;
}

.collagepd .cta-btn > a::before,
.collagepd .cta-btn > a::after {
  display: none !important;
}

@media (max-width: 1024px) {
  .collagepd {

    --alto-celda: 220px;
  }
}

@media (max-width: 1024px) {
  section.vc_section.collagesc {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    padding-left: 2px !important;
    padding-right: 2px !important;
  }

  section.vc_section.collagesc > .collagepd {
    display: contents !important;
  }

  section.vc_section.collagesc > .vc_row-full-width {
    display: none !important;
  }

  section.vc_section.collagesc > .collagepd > .wpb_column {
    float: none !important;
    clear: none !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Fila del titulo "Categorias": ocupa la primera fila completa de la cuadricula y queda
     centrado entre "Lo mas vendido" y las tarjetas (perillas de espacio arriba y abajo). */
  section.vc_section.collagesc {
    --categorias-espacio-arriba: 40px;
    --categorias-espacio-abajo: 41px;
  }

  section.vc_section.collagesc > .vc_row:not(.collagepd) {
    display: block !important;
    grid-area: 1 / 1 / 2 / 3;
    margin: 0 !important;
    padding: var(--categorias-espacio-arriba) 0 var(--categorias-espacio-abajo) !important;
  }

  section.vc_section.collagesc > .vc_row:not(.collagepd) :is(.wpb_column, .vc_column-inner, .wpb_wrapper, .wpb_content_element, .section-header, .section-title) {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Sin esto el encabezado suma ~10px de alto de linea debajo del titulo. */
  section.vc_section.collagesc > .vc_row:not(.collagepd) .section-header {
    line-height: 0 !important;
  }

  /* Patron móvil para el collage de 3 x 3: una tarjeta por fila ocupa todo
     el ancho y las otras dos van debajo, en pareja.
     Las filas se cuentan solo entre las .collagepd (hay una fila vacia y separadores). */
  /* Fila 1 es el titulo. Tarjetas 1: Molienda / Galletas, Barras */
  section.vc_section.collagesc > .collagepd:nth-child(1 of .collagepd) > .wpb_column:nth-child(2) { grid-area: 2 / 1 / 3 / 3; }
  section.vc_section.collagesc > .collagepd:nth-child(1 of .collagepd) > .wpb_column:nth-child(1) { grid-area: 3 / 1 / 4 / 2; }
  section.vc_section.collagesc > .collagepd:nth-child(1 of .collagepd) > .wpb_column:nth-child(3) { grid-area: 3 / 2 / 4 / 3; }

  /* Tarjetas 2: Bombones / Tabletas, Confitados */
  section.vc_section.collagesc > .collagepd:nth-child(2 of .collagepd) > .wpb_column:nth-child(2) { grid-area: 4 / 1 / 5 / 3; }
  section.vc_section.collagesc > .collagepd:nth-child(2 of .collagepd) > .wpb_column:nth-child(1) { grid-area: 5 / 1 / 6 / 2; }
  section.vc_section.collagesc > .collagepd:nth-child(2 of .collagepd) > .wpb_column:nth-child(3) { grid-area: 5 / 2 / 6 / 3; }

  /* Tarjetas 3: Cafe / A Granel, En Casa */
  section.vc_section.collagesc > .collagepd:nth-child(3 of .collagepd) > .wpb_column:nth-child(1) { grid-area: 6 / 1 / 7 / 3; }
  section.vc_section.collagesc > .collagepd:nth-child(3 of .collagepd) > .wpb_column:nth-child(3) { grid-area: 7 / 1 / 8 / 2; }
  section.vc_section.collagesc > .collagepd:nth-child(3 of .collagepd) > .wpb_column:nth-child(2) { grid-area: 7 / 2 / 8 / 3; }

  /* Las portadas son 16:9; la celda toma esa misma proporcion para que la imagen
     entre completa, sin franjas negras ni letras recortadas. */
  section.vc_section.collagesc .collagepd .vc_column-inner {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    margin: 0 !important;
  }

  /* WordPress pone "background: color url() !important" con selector de ID, que reinicia tamano y posicion.
     :is(#no-existe-en-la-pagina, ...) da peso de ID a esta regla para poder ganarle. */
  section.vc_section.collagesc .collagepd .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
  }
}

/* Color de fondo de cada celda del collage (PC y celular), detras de la imagen. */
/* Galletas */
section.vc_section.collagesc > .collagepd:nth-child(1 of .collagepd) > .wpb_column:nth-child(1) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* Moliendas */
section.vc_section.collagesc > .collagepd:nth-child(1 of .collagepd) > .wpb_column:nth-child(2) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* Barras */
section.vc_section.collagesc > .collagepd:nth-child(1 of .collagepd) > .wpb_column:nth-child(3) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* Tabletas */
section.vc_section.collagesc > .collagepd:nth-child(2 of .collagepd) > .wpb_column:nth-child(1) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* Bombones */
section.vc_section.collagesc > .collagepd:nth-child(2 of .collagepd) > .wpb_column:nth-child(2) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* Confitados */
section.vc_section.collagesc > .collagepd:nth-child(2 of .collagepd) > .wpb_column:nth-child(3) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* Cafe */
section.vc_section.collagesc > .collagepd:nth-child(3 of .collagepd) > .wpb_column:nth-child(1) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* En Casa */
section.vc_section.collagesc > .collagepd:nth-child(3 of .collagepd) > .wpb_column:nth-child(2) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* A Granel */
section.vc_section.collagesc > .collagepd:nth-child(3 of .collagepd) > .wpb_column:nth-child(3) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
  background-color: #F2EBDF !important;
}

/* PC: las portadas (16:9) se ven completas y centradas; el espacio sobrante toma
   el color de fondo de la celda (#F2EBDF), que es el mismo del borde de las imagenes. */
@media (min-width: 1025px) {
  section.vc_section.collagesc .collagepd .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
  }

  /* Perillas de tamano: centro = % del alto de la celda; laterales = % del ancho de la celda. */
  section.vc_section.collagesc {
    --collage-tamano-centro: 121%;
    --collage-tamano-lateral: 90%;
  }

  section.vc_section.collagesc .collagepd > .wpb_column:nth-child(2) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
    background-size: auto var(--collage-tamano-centro) !important;
  }

  section.vc_section.collagesc .collagepd > .wpb_column:is(:nth-child(1), :nth-child(3)) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
    background-size: var(--collage-tamano-lateral) auto !important;
  }
}

/* Celular: las tarjetas grandes (ancho completo) muestran la portada completa y centrada;
   las pequenas (en pareja) se reducen. Perillas = % del ancho de la celda. */
@media (max-width: 1024px) {
  section.vc_section.collagesc {
    --collage-movil-grande: 90%;
    --collage-movil-pequena: 90%;
  }

  section.vc_section.collagesc .collagepd > .wpb_column .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
    background-size: var(--collage-movil-pequena) auto !important;
  }

  /* Grandes: Molienda, Bombones y Cafe (mismo orden que el patron de grid-area de arriba). */
  section.vc_section.collagesc > .collagepd:nth-child(1 of .collagepd) > .wpb_column:nth-child(2) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner),
  section.vc_section.collagesc > .collagepd:nth-child(2 of .collagepd) > .wpb_column:nth-child(2) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner),
  section.vc_section.collagesc > .collagepd:nth-child(3 of .collagepd) > .wpb_column:nth-child(1) .vc_column-inner:is(#no-existe-en-la-pagina, .vc_column-inner) {
    background-size: var(--collage-movil-grande) auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .collagepd > .wpb_column:hover .vc_column-inner,
  .collagepd > .wpb_column:focus-within .vc_column-inner {
    transform: none;
  }
}

:root {

  --alto-cabecera: 80px;
}

@media (min-width: 1025px) {
  html {
    scroll-snap-type: y proximity;
  }

  section.vc_section.tentaciones01,
  section.vc_section.masvendido01,
  section.vc_section.collagesc,
  section.vc_section.nosotros01 {
    scroll-snap-align: start;
    scroll-margin-top: var(--alto-cabecera, 0px);
  }

}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-snap-type: none;
  }
}

section.vc_section.tentaciones01 :is(.vc_row, #no-existe-en-la-pagina) {
    background-image: none !important;
    background-color: #f9f6f1 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.tentaciones01 {
    --alto-franja: 180px;

    --aire-logo: 14px;
}

.tentaciones01 .wpb_content_element {
    margin-bottom: 0 !important;
}

.tentaciones01 .ut-single-brand {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.tentaciones01 .flickity-viewport {
    height: var(--alto-franja) !important;
}

.tentaciones01 .ut-single-brand-logo {
    padding: var(--aire-logo);
    text-align: center;
}

/* El velo cubre toda la imagen, sin el recorte vertical general. */
.tentaciones01 .ut-single-brand-logo a::before {
    inset: 0;
}

.tentaciones01 .ut-single-brand-logo img {

    height: calc(var(--alto-franja) - var(--aire-logo) * 2) !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block;

    object-fit: contain;
}

/* Carrusel sin margenes laterales en celular y computadora. */
section.vc_section.tentaciones01 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

section.vc_section.tentaciones01 > .vc_row {
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

section.vc_section.tentaciones01 > .vc_row > .wpb_column,
section.vc_section.tentaciones01 > .vc_row > .wpb_column > .vc_column-inner,
section.vc_section.tentaciones01 .ut-brands-carousel {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Ventanas reducidas y celular: un bombon al centro y medio a cada lado. */
@media (max-width: 1024px) {
    section.vc_section.tentaciones01 {
        --alto-franja: 230px;
    }

    section.vc_section.tentaciones01 .ut-brands-carousel .flickity-slider {
        left: 25% !important;
    }

    section.vc_section.tentaciones01 .ut-brands.ut-brands-carousel .ut-single-brand {
        box-sizing: border-box;
        width: 50% !important;
        min-width: 0 !important;
        max-width: 50% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 0 6px !important;
    }

    section.vc_section.tentaciones01 .ut-single-brand-logo {
        box-sizing: border-box;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 8px 3px !important;
    }

    section.vc_section.tentaciones01 .ut-single-brand-logo a {
        display: block;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    section.vc_section.tentaciones01 .ut-single-brand-logo img {
        width: 100% !important;
        max-width: none !important;
        height: 150px !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        object-fit: contain;
        transform: scale(.85) !important;
        transform-origin: center center;
    }

    section.vc_section.tentaciones01 .ut-single-brand-logo a::before {
        content: none;
        display: none;
    }

    section.vc_section.tentaciones01 .ut-single-brand-logo a::after {
        position: static;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        box-sizing: border-box;
        width: fit-content;
        max-width: 100%;
        min-height: 0;
        margin: 6px auto 0;
        padding: 5px;
        background: rgba(25, 25, 25, .85);
        border-radius: 10px;
        color: #fff;
        font-size: 22px;
        line-height: 1.25;
        overflow-wrap: anywhere;
        text-shadow: none;
        opacity: 0;
        transform: translateY(-8px);
        transition: opacity .35s ease, transform .35s ease;
    }

    /* Flickity marca con is-selected el bombon que queda en el centro. */
    section.vc_section.tentaciones01 .ut-single-brand:not(.is-selected) .ut-single-brand-logo a::after {
        opacity: 0;
        transform: translateY(-8px);
    }

    section.vc_section.tentaciones01 .ut-single-brand.is-selected .ut-single-brand-logo a::after {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1024px) and (prefers-reduced-motion: reduce) {
    section.vc_section.tentaciones01 .ut-single-brand .ut-single-brand-logo a::after {
        transition: none;
        transform: none;
    }
}

@media (max-width: 1024px) {
    .tentaciones01 {
        --alto-franja: 170px;
        --aire-logo: 10px;
    }

    .tentaciones01 .ut-single-brand-logo {
        --nombre-tam: 11px;
    }
}

body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) header#header-section,

body:has(li.menu-item-1953.current-menu-item) header#header-section {

    position: absolute !important;
    top: 0;
    left: 0;
    right: 0;

    transform: none !important;

}

body.single-product div.product {
  --lado-foto: 400px;
  --ancho-datos: 460px;
  --ancho-boton: 350px;
  --hueco: 30px;
  --radio-foto: 14px;

  display: grid;
  grid-template-columns:
    var(--lado-foto)
    minmax(0, var(--ancho-datos))
    auto;
  justify-content: center;
  column-gap: var(--hueco);
  row-gap: 10px;
  align-items: start;

  margin: 0 auto !important;
  float: none !important;
}

body.single-product div.product > * {
  grid-column: 1 / -1;
  min-width: 0;
}

body.single-product div.product > .woocommerce-product-gallery {
  grid-column: 1;
  grid-row: 1;
}

body.single-product div.product > section.related.products { order: 1; }
body.single-product div.product > div.woocommerce-tabs      { order: 2; }

body.single-product div.product::before,
body.single-product div.product::after,
body.single-product div.product form.cart::before,
body.single-product div.product form.cart::after {
  content: none !important;
  display: none !important;
}

body.single-product div.product .woocommerce-product-gallery {
  width: 100% !important;
  max-width: var(--lado-foto);
  margin: 0 !important;
  float: none !important;
}

body.single-product div.product .woocommerce-product-gallery__wrapper,
body.single-product div.product .woocommerce-product-gallery__image {
  width: 100% !important;
  margin: 0 !important;
}

body.single-product div.product .woocommerce-product-gallery img {
  width: 100% !important;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  border-radius: var(--radio-foto);
}

body.single-product div.product > div.summary.entry-summary {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;

  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;

  grid-column: 2 / -1;
  grid-row: 1;
}

body.single-product div.product > div.summary.entry-summary:has(> .cn-ficha-compra) {
  display: contents;
}

body.single-product div.product .cn-ficha-datos {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  text-align: center;
}

body.single-product div.product .cn-ficha-compra {
  grid-column: 3;
  grid-row: 1;
  min-width: 0;

  display: flex;
  flex-direction: column;
  align-items: center;
}

body.single-product div.product .cn-ficha-compra:empty {
  display: none;
}

body.single-product div.product .summary > *:not(.cn-ficha-datos):not(.cn-ficha-compra) {
  grid-column: 2;
}

body.single-product div.product .cn-ficha-datos > .product_title {
  width: 100%;
  margin: 0 0 14px !important;
}

body.single-product div.product .cn-ficha-datos > .cn-ficha-descripcion,
body.single-product div.product .cn-ficha-datos > .woocommerce-product-details__short-description {
  width: 100%;
  margin: 0 0 18px !important;
}

body.single-product div.product .cn-ficha-datos > *:last-child,
body.single-product div.product .cn-ficha-descripcion > *:last-child {
  margin-bottom: 0;
}

body.single-product div.product .cn-ficha-compra > .price {
  width: 100%;
  margin: 0 0 16px !important;
  text-align: center;
}

body.single-product div.product .cn-ficha-compra > .woocommerce-product-rating {
  margin: 0 0 12px !important;
}

/* Valoracion del producto: estrellas centradas y enlace debajo. */
body.single-product div.product .summary .woocommerce-product-rating {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
  text-align: center;
}

body.single-product div.product .summary .woocommerce-product-rating .star-rating {
  float: none !important;
  margin: 0 !important;
}

body.single-product div.product .summary .woocommerce-product-rating .woocommerce-review-link {
  display: block;
  float: none !important;
  margin: 0 !important;
}

/* Resenas: formulario primero y opiniones existentes al final. */
body.single-product div.product > .woocommerce-tabs {
  width: 100%;
  max-width: 900px;
  margin: 60px auto 0 !important;
}

/* Oculta la pestana; conserva el formulario y las opiniones. */
body.single-product .woocommerce-tabs .reviews_tab,
body.single-product .woocommerce-tabs > ul.tabs:has(> .reviews_tab:only-child) {
  display: none !important;
}

body.single-product .woocommerce-tabs:has(> ul.tabs > .reviews_tab:only-child) > #tab-reviews {
  display: block !important;
}

body.single-product #tab-reviews {
  padding: 24px 0 0 !important;
  border: 0;
}

body.single-product #reviews {
  display: flex;
  flex-direction: column;
  gap: 32px;
  color: #000;
}

body.single-product #reviews > #review_form_wrapper,
body.single-product #reviews > .woocommerce-verification-required {
  order: 0;
}

body.single-product #reviews > #comments {
  order: 1;
}

body.single-product #reviews > .clear {
  display: none;
}

body.single-product #reviews :is(#review_form_wrapper, #comments) {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 28px;
  box-sizing: border-box;
  border: 1px solid #EBE1DA;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(58, 35, 24, .06);
  text-align: left;
}

body.single-product #reviews #respond {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent;
}

body.single-product #reviews :is(.comment-reply-title, .woocommerce-Reviews-title) {
  display: block;
  margin: 0 0 24px !important;
  color: #000;
  font-family: var(--cn-titulo) !important;
  font-size: clamp(24px, 3vw, 30px);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}

body.single-product #reviews #commentform p {
  margin: 0 0 18px;
}

body.single-product #reviews #commentform label {
  display: block;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.5 !important;
  overflow: visible !important;
  white-space: normal;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  color: #000;
}

body.single-product #reviews .comment-form-rating {
  margin-bottom: 22px;
  text-align: center;
}

body.single-product #reviews .comment-form-rating p.stars {
  font-size: 24px;
  line-height: 1;
}

body.single-product #reviews :is(p.stars a, .star-rating) {
  color: #BCD1E6;
}

body.single-product #reviews #commentform :is(input[type="text"], input[type="email"], input[type="url"], textarea, select) {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1px solid #EBE1DA;
  border-radius: 10px;
  background: #f9f6f1;
  color: #BCD1E6;
  font-size: 14px;
  line-height: 1.5;
}

body.single-product #reviews #commentform textarea {
  min-height: 140px;
  height: 160px;
  resize: vertical;
}

body.single-product #reviews :is(input, textarea, select, p.stars a):focus-visible {
  outline: 2px solid #BCD1E6;
  outline-offset: 3px;
}

body.single-product #reviews #commentform .comment-form-cookies-consent label {
  display: inline;
  font-weight: 400;
}

body.single-product #reviews #commentform .form-submit {
  margin-bottom: 0;
  text-align: center;
}

body.single-product #review_form #respond .form-submit input#submit {
  padding: 14px 32px !important;
  border: 0 !important;
  border-radius: 15px !important;
  background: #BCD1E6 !important;
  color: #000 !important;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color .25s ease;
}

body.single-product #review_form #respond .form-submit input#submit:is(:hover, :focus-visible) {
  background: #BCD1E6 !important;
}

body.single-product #reviews #comments ol.commentlist {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}

body.single-product #reviews #comments ol.commentlist li {
  margin: 0 0 16px !important;
  padding: 20px !important;
  border: 1px solid #EBE1DA;
  border-radius: 12px;
  background: #f9f6f1;
  list-style: none;
}

body.single-product #reviews #comments ol.commentlist li:last-child {
  margin-bottom: 0 !important;
}

body.single-product #reviews .comment_container {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

body.single-product #reviews #comments ol.commentlist li img.avatar {
  position: static !important;
  float: none !important;
  flex: 0 0 40px;
  width: 40px !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50%;
}

body.single-product #reviews #comments ol.commentlist li .comment-text {
  flex: 1;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

body.single-product #reviews .comment-text .star-rating {
  float: none !important;
  margin: 0 0 10px !important;
}

body.single-product #reviews .comment-text .meta {
  margin: 0 0 10px !important;
  font-size: 12px !important;
  color: #BCD1E6;
}

body.single-product #reviews .comment-text .description {
  font-size: 14px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

body.single-product #reviews .comment-text .description p:last-child {
  margin-bottom: 0;
}

@media (max-width: 1024px) {
  body.single-product #reviews :is(#review_form_wrapper, #comments) {
    padding: 20px 16px;
  }

  body.single-product #reviews #commentform label {
    font-size: 14px !important;
    letter-spacing: normal !important;
  }

  body.single-product #reviews .comment-reply-title {
    height: auto !important;
    max-height: none !important;
    line-height: 1.3 !important;
    overflow: visible !important;
  }

  body.single-product #reviews #comments ol.commentlist li {
    padding: 14px !important;
  }

  body.single-product #reviews .comment_container {
    gap: 10px;
  }
}

body.single-product div.product form.cart {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 12px;

  width: fit-content;
  max-width: 100%;
  margin: 0 !important;
  padding: 20px;

  background: #fff;
  border: 1px solid #EBE1DA;
  border-radius: var(--radio-foto);
  box-shadow: 0 2px 10px rgba(58, 35, 24, .06);
}

body.single-product div.product form.cart .quantity,
body.single-product div.product form.cart .single_add_to_cart_button {
  width: var(--ancho-boton) !important;
  max-width: 100%;
  height: 50px;
  margin: 0 !important;
  float: none !important;
}

body.single-product div.product form.cart .quantity input.qty {
  width: 100% !important;
  height: 100%;
  padding: 0 10px;
  text-align: center;
  border: 1px solid #EBE1DA;
  border-radius: 10px;
  background: #fff;
}

body.single-product div.product form.cart .single_add_to_cart_button {
  border-radius: 10px;
  line-height: 50px;
  padding: 0 !important;
}

/* Bombones: sin selector de cantidad (+1 / -1), solo el botón de añadir */
body.single-product div.product[class*="product_cat-bombon"] form.cart .quantity {
  display: none !important;
}

/* Texto negro en todos los botones de añadir al carrito */
body.woocommerce .single_add_to_cart_button,
body.woocommerce .single_add_to_cart_button:hover,
body.woocommerce .single_add_to_cart_button:focus,
body.woocommerce .add_to_cart_button,
body.woocommerce .add_to_cart_button:hover,
body.woocommerce .add_to_cart_button:focus {
  color: #000 !important;
}

body.single-product div.product .product_meta .sku_wrapper,
body.single-product div.product .product_meta .posted_in {
  display: none !important;
}

body.single-product div.product .summary > .product_meta {
  width: 100%;
  margin: 0 !important;
  text-align: center;
}

body.single-product div.product .summary > .product_meta:not(:has(> *:not(.sku_wrapper):not(.posted_in))) {
  display: none;
}

body.single-product section.related.products,
body.single-product section.up-sells.products {
  clear: both;
  width: 100%;
  max-width: var(--ancho-cuadricula, 1140px);
  margin: 70px auto 0 !important;
  padding: 0 !important;
  float: none !important;
  text-align: center;
}

body.single-product section.related.products > h2,
body.single-product section.up-sells.products > h2 {
  position: relative;
  color: #000 !important;
  padding-bottom: 20px;
  margin-bottom: 34px !important;
  text-align: center;
}

body.single-product section.related.products > h2::after,
body.single-product section.up-sells.products > h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 2px;
  background: #BCD1E6;
}

@media (max-width: 1080px) {
  body.single-product div.product {
    grid-template-columns:
      var(--lado-foto)
      minmax(0, var(--ancho-datos));
  }

  body.single-product div.product > div.summary.entry-summary {
    grid-column: 2;
  }

  body.single-product div.product .cn-ficha-compra {
    grid-column: 2;
    grid-row: 2;
    margin-top: 24px;
  }

  body.single-product div.product .summary > *:not(.cn-ficha-datos):not(.cn-ficha-compra) {
    grid-column: 2;
  }
}

@media (max-width: 1024px) {
  body.single-product div.product {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 30px;
  }

  body.single-product div.product > .woocommerce-product-gallery,
  body.single-product div.product > div.summary.entry-summary,
  body.single-product div.product .cn-ficha-datos,
  body.single-product div.product .cn-ficha-compra,
  body.single-product div.product .summary > *:not(.cn-ficha-datos):not(.cn-ficha-compra) {
    grid-column: 1;
    grid-row: auto;
    justify-self: center;
    margin-top: 0;
  }

  body.single-product div.product .cn-ficha-datos {
    max-width: var(--ancho-datos);
  }
}

@media (max-width: 1024px) {
  body.single-product div.product {
    --lado-foto: 320px;
    --ancho-boton: 100%;
  }

  body.single-product div.product form.cart {
    width: 100%;
    padding: 16px;
  }
}

section.vc_section.masvendido01 {
  --radio-tarjeta: 12px;
  --boton-arriba: 35px;
}

section.vc_section.masvendido01 .vc_row:not(.collagepd) .wpb_column :has(> * > img),
section.vc_section.masvendido01 .vc_row:not(.collagepd) .wpb_column .bklyn5-team-member {
  border-radius: var(--radio-tarjeta) !important;
  overflow: hidden !important;
  position: relative;
}

section.vc_section.masvendido01 .vc_row:not(.collagepd) .bklyn5-team-member-overlay {
  border-radius: inherit;
}

section.vc_section.masvendido01 .vc_row:not(.collagepd) .wpb_column :has(> img) {
  border-radius: var(--radio-tarjeta) !important;
  overflow: hidden !important;
}

section.vc_section.masvendido01 .vc_row:not(.collagepd) .wpb_column img {
  border-radius: inherit;
}

section.vc_section.masvendido01 .vc_row:not(.collagepd) .cta-btn {
  margin-top: var(--boton-arriba) !important;
}

.hero-title:not(:has(.ut-word-rotator)),
.hero-title .ut-word-rotator div[data-title] span{
  color: #FFBF00;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero-title:not(:has(.ut-word-rotator)),
  .hero-title .ut-word-rotator div[data-title] span {
    background-image: linear-gradient(90deg,
      #5C271A 0%,
      #8C5A14 20%,
      #D4AF37 45%,
      #FFF1A6 55%,
      #C89B2C 75%,
      #5C271A 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
}

html body #header-section {

    --cabecera-clara:  #f0ebe4;
    --cabecera-solida: #f0ebe4;
    --cabecera-borde:  rgba(255, 255, 255, .14);
    --cabecera-texto:  #000000;
    --cabecera-logo:   #000000;
    --cabecera-hover:  #000000;
    --cabecera-hover-activa: #000000;
    --cabecera-texto-activa: #000000;
    --cabecera-panel:  #FFFFFF;

    background-color: transparent !important;

    transition: background-color .3s ease, backdrop-filter .3s ease;
}

html body #header-section.ut-secondary-custom-skin {
    background-image: linear-gradient(90deg,
                          var(--cabecera-clara) 0%,
                          var(--cabecera-solida) 100%) !important;

    -webkit-backdrop-filter: blur(14px) saturate(130%);
            backdrop-filter: blur(14px) saturate(130%);

    border-bottom: 0 !important;
    box-shadow: 0 2px 16px rgba(0, 0, 0, .18),
                inset 0 -1px 0 var(--cabecera-borde) !important;
}

html body #header-section.ut-secondary-custom-skin .grid-container,
html body #header-section.ut-secondary-custom-skin .ha-header-perspective,
html body #header-section.ut-secondary-custom-skin .ha-header-front,
html body #header-section.ut-secondary-custom-skin .ha-header-back {
    background-color: transparent !important;
    background-image: none !important;
}

html body #header-section.ut-secondary-custom-skin .ha-header-front {
    border-bottom-color: transparent !important;
    box-shadow: none !important;
}

html body #header-section.ut-secondary-custom-skin .logo a,
html body #header-section.ut-secondary-custom-skin .site-logo a {
    color: var(--cabecera-logo) !important;
}

html body #header-section .site-logo img {
    transition: filter .3s ease;
}

@media (max-width: 1024px) {
    html body #header-section .site-logo > a {
        display: flex !important;
        align-items: center;
        height: 60px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        box-sizing: border-box;
    }

    html body #header-section .site-logo img {
        display: block;
        width: auto !important;
        height: 50px !important;
        max-height: 50px !important;
        margin: 0 !important;
    }
}

/* Ventana dividida: usa la misma cabecera compacta que en telefono. */
@media (max-width: 1024px) {
    html body#ut-sitebody #header-section > .grid-container {
        width: 100% !important;
        max-width: none !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
        box-sizing: border-box;
    }

    html body#ut-sitebody #header-section #navigation,
    html body#ut-sitebody #header-section .ut-header-extra-module {
        display: none !important;
    }

    html body#ut-sitebody #header-section,
    html body#ut-sitebody #header-section .ha-header-perspective,
    html body#ut-sitebody #header-section .ha-header-front {
        height: auto !important;
        min-height: 60px !important;
    }

    html body#ut-sitebody #header-section .ha-header-front {
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        width: 100%;
    }

    html body#ut-sitebody #header-section .ha-header-front::before,
    html body#ut-sitebody #header-section .ha-header-front::after {
        display: none;
    }

    html body#ut-sitebody #header-section .ha-header-front > .site-logo-wrap {
        flex: 1 1 0;
        min-width: 0;
        width: auto !important;
        float: none !important;
    }

    html body#ut-sitebody #header-section .ha-header-front > .hide-on-desktop:has(> .ut-mm-trigger) {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: 10px;
        flex: 0 0 auto;
        width: auto !important;
        float: none !important;
        margin-left: auto !important;
        padding: 0 !important;
    }

    html body#ut-sitebody #header-section .ut-mm-trigger,
    html body#ut-sitebody #header-section .ut-header-cart-mobile {
        display: flex !important;
        align-items: center;
        float: none !important;
        height: 60px !important;
        margin: 0 !important;
        padding: 0 !important;
        width: auto !important;
        min-width: 0 !important;
        line-height: 1 !important;
    }

    html body#ut-sitebody #header-section .ut-header-cart-mobile {
        order: -1;
    }

    html body#ut-sitebody #header-section .ut-header-cart-mobile > a {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 4px;
        height: 44px !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        line-height: 1 !important;
    }

    html body#ut-sitebody #header-section .ut-header-cart-mobile :is(i, .ut-header-cart-count) {
        position: static !important;
        margin: 0 !important;
        transform: none !important;
        vertical-align: middle;
    }

    html body#ut-sitebody #header-section .ut-header-cart-mobile i {
        font-size: 24px;
        line-height: 1 !important;
    }

    html body#ut-sitebody #header-section .ut-header-cart-mobile .ut-header-cart-count {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 18px;
        height: 18px;
        line-height: 1 !important;
    }

    html body#ut-sitebody #header-section #ut-hamburger-wrap-mobile {
        display: flex !important;
        align-items: center;
        justify-content: center;
        position: relative;
        flex: 0 0 36px;
        width: 36px !important;
        height: 60px !important;
        margin: 0 !important;
    }

    /* Reserve la anchura del icono: sus lineas usan posicion absoluta. */
    html body#ut-sitebody #header-section #ut-open-mobile-menu {
        position: relative !important;
        display: block !important;
        width: 36px !important;
        height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    html body#ut-sitebody #header-section #ut-open-mobile-menu span,
    html body#ut-sitebody #header-section #ut-open-mobile-menu span::before,
    html body#ut-sitebody #header-section #ut-open-mobile-menu span::after {
        width: 30px !important;
        height: 2px !important;
    }

    html body#ut-sitebody #header-section #ut-open-mobile-menu > span {
        top: 50% !important;
        left: 3px !important;
        right: auto !important;
        margin-top: -1px !important;
    }

    html body#ut-sitebody #header-section #ut-mobile-nav {
        /* Compensa los 12px de padding lateral de la cabecera. */
        flex: 0 0 calc(100% + 24px);
        width: calc(100% + 24px) !important;
        max-width: none !important;
        margin-left: -12px !important;
        margin-right: -12px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box;
        background-color: var(--cabecera-solida) !important;
        /* El panel ocupa como maximo la pantalla menos la cabecera de 60px. */
        --cn-menu-alto: calc(100vh - 60px);
        --cn-menu-alto: calc(100dvh - 60px);
        max-height: var(--cn-menu-alto) !important;
        min-height: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        overflow: hidden !important;
    }

    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane-wrap,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane,
    html body#ut-sitebody #header-section #ut-mobile-menu {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        background-color: var(--cabecera-solida) !important;
    }

    html body#ut-sitebody #header-section #ut-mobile-menu {
        height: auto !important;
        min-height: 0 !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane-wrap {
        height: auto !important;
        min-height: 0 !important;
        max-height: var(--cn-menu-alto) !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane {
        height: auto !important;
        min-height: 0 !important;
        max-height: var(--cn-menu-alto) !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior-y: contain;
    }

    /* Integra el carril de desplazamiento con el fondo del menu. */
    html body#ut-sitebody #header-section #ut-mobile-nav,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane-wrap,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane {
        scrollbar-color: #d8c5a3 var(--cabecera-solida);
    }

    html body#ut-sitebody #header-section #ut-mobile-nav::-webkit-scrollbar,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane-wrap::-webkit-scrollbar,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane::-webkit-scrollbar {
        width: 6px;
        background: var(--cabecera-solida);
    }

    html body#ut-sitebody #header-section #ut-mobile-nav::-webkit-scrollbar-track,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane-wrap::-webkit-scrollbar-track,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane::-webkit-scrollbar-track {
        background: var(--cabecera-solida);
    }

    html body#ut-sitebody #header-section #ut-mobile-nav::-webkit-scrollbar-thumb,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane-wrap::-webkit-scrollbar-thumb,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-scroll-pane::-webkit-scrollbar-thumb {
        background: #d8c5a3;
        border-radius: 6px;
    }

    html body#ut-sitebody #header-section #ut-mobile-nav .ut-mobile-menu li a {
        color: #000 !important;
    }

    /* El tema pone fondo oscuro (rgba(21,21,21)) al pasar el mouse o tocar: texto blanco ahi. */
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-mobile-menu li a:not(.bklyn-btn):is(:hover, :active),
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-mobile-menu li a:not(.bklyn-btn):is(:hover, :active) *,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-mobile-menu li a:not(.bklyn-btn):is(:hover, :active)::before,
    html body#ut-sitebody #header-section #ut-mobile-nav .ut-mobile-menu li a:not(.bklyn-btn):is(:hover, :active)::after {
        color: #fff !important;
    }
}

/* La cabecera de usuarios conectados tiene 25px de margen en este rango. */
@media (min-width: 601px) and (max-width: 1024px) {
    html body#ut-sitebody.admin-bar #header-section #ut-mobile-nav {
        --cn-menu-alto: calc(100vh - 85px);
        --cn-menu-alto: calc(100dvh - 85px);
    }
}

/* El logo original es dorado; brightness(0) lo deja negro solido en todos los estados. */
html body #header-section .site-logo img {
    filter: brightness(0);
}

html body #header-section.ut-secondary-custom-skin .ut-navigation-menu > li > a,
html body #header-section.ut-secondary-custom-skin .ut-navigation-menu > li > a span,
html body #header-section.ut-secondary-custom-skin .ut-navigation-menu > li > a i {
    color: var(--cabecera-texto-activa) !important;
}

html body #header-section.ut-secondary-custom-skin .ut-navigation-menu > li > a:hover,
html body #header-section.ut-secondary-custom-skin .ut-navigation-menu > li > a:hover span,
html body #header-section.ut-secondary-custom-skin .ut-navigation-menu > li > a:hover i {
    color: var(--cabecera-hover-activa) !important;
}

html body #header-section #navigation .ut-navigation-menu > li > a > span {
    position: relative;
}

html body #header-section #navigation .ut-navigation-menu > li > a > span::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;

    height: 2px;
    border-radius: 2px;
    background: currentColor;

    transform: scaleX(0);
    transform-origin: center;
    transition: transform .25s ease;

    pointer-events: none;
}

html body #header-section #navigation .ut-navigation-menu > li > a:hover > span::after,
html body #header-section #navigation .ut-navigation-menu > li.current-menu-item > a > span::after,
html body #header-section #navigation .ut-navigation-menu > li > a.selected > span::after {
    transform: scaleX(1);
}

html body #header-section.ut-secondary-custom-skin .ut-navigation-menu > li {
    border-color: rgba(255, 255, 255, .25) !important;
}

html body #header-section.ut-secondary-custom-skin .ut-header-cart-count {
    color: var(--cabecera-texto-activa) !important;
}

html body #header-section.ut-secondary-custom-skin #ut-open-mobile-menu span,
html body #header-section.ut-secondary-custom-skin #ut-open-mobile-menu span::before,
html body #header-section.ut-secondary-custom-skin #ut-open-mobile-menu span::after {
    background-color: var(--cabecera-texto-activa) !important;
}

html body #header-section.ut-primary-custom-skin,
html body #header-section.ut-primary-custom-skin .ha-header-front {
    background-color: transparent !important;
    background-image: none !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
}

html body #header-section.ut-primary-custom-skin .logo a,
html body #header-section.ut-primary-custom-skin .site-logo a,
html body #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a,
html body #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a span,
html body #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a i,
html body #header-section.ut-primary-custom-skin .ut-header-cart-count {
    color: var(--cabecera-texto) !important;
}

html body #header-section.ut-primary-custom-skin .ut-navigation-menu > li {
    border-color: rgba(255, 255, 255, .25) !important;
}

html body #header-section.ut-primary-custom-skin #ut-open-mobile-menu span,
html body #header-section.ut-primary-custom-skin #ut-open-mobile-menu span::before,
html body #header-section.ut-primary-custom-skin #ut-open-mobile-menu span::after {
    background-color: var(--cabecera-texto) !important;
}

body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin .logo a,
body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin .site-logo a,
body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a,
body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a span,
body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a i,
body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin .ut-header-cart-count,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin .logo a,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin .site-logo a,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a span,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin .ut-navigation-menu > li > a i,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin .ut-header-cart-count {
    color: var(--cabecera-texto) !important;
}

body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin .ut-navigation-menu > li,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin .ut-navigation-menu > li {
    border-color: rgba(4, 31, 47, .25) !important;
}

body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin #ut-open-mobile-menu span,
body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin #ut-open-mobile-menu span::before,
body:is(.page-id-1974,
        .woocommerce-page,
        .post-type-archive-product,
        .tax-product_cat,
        .single-product) #header-section.ut-primary-custom-skin #ut-open-mobile-menu span::after,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin #ut-open-mobile-menu span,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin #ut-open-mobile-menu span::before,
body:has(li.menu-item-1953.current-menu-item) #header-section.ut-primary-custom-skin #ut-open-mobile-menu span::after {
    background-color: var(--cabecera-texto) !important;
}

html body #header-section .ut-header-mini-cart ul.sub-menu {
    background-color: #f0ebe4 !important;
}

html body #header-section .ut-header-mini-cart .ut-header-cart-count,
html body #header-section .ut-header-mini-cart ul.sub-menu li a,
html body #header-section .ut-header-mini-cart ul.sub-menu .ut-header-mini-cart-item-description,
html body #header-section .ut-header-mini-cart ul.sub-menu .quantity,
html body #header-section .ut-header-mini-cart ul.sub-menu .ut-header-mini-cart-total-count,
html body #header-section .ut-header-mini-cart ul.sub-menu .ut-header-mini-cart-total-price,
html body #header-section .ut-header-mini-cart ul.sub-menu .amount {
    color: #000 !important;
}

html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item {
    background-color: #f0ebe4 !important;
}

html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item:hover,
html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item:focus-within {
    background-color: #d8c5a3 !important;
}

html body #header-section .ut-header-mini-cart .ut-header-mini-cart-action {
    background-color: #f0ebe4 !important;
}

html body #header-section .ut-header-mini-cart .ut-header-mini-cart-action:hover,
html body #header-section .ut-header-mini-cart .ut-header-mini-cart-action:focus-within {
    background-color: #d8c5a3 !important;
}

html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item a,
html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item .ut-header-mini-cart-item-description,
html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item .quantity,
html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item .amount {
    color: #000 !important;
}

html body #header-section .ut-header-mini-cart .ut-header-mini-cart-item-img img {
    border-radius: 5px !important;
}

html body #header-section .ut-header-mini-cart .bklyn-btn-header-cart .bklyn-btn {
    border-radius: 15px !important;
    color: #000 !important;
}

html body #header-section .ut-header-mini-cart .bklyn-btn-header-cart .bklyn-btn .ut-btn-text {
    color: #000 !important;
}

/* Ver carrito / Comprar: en hover o seleccion se invierten los colores (fondo negro, letras azul claro). */
html body #header-section .ut-header-mini-cart .bklyn-btn-header-cart .bklyn-btn:is(:hover, :focus, :focus-visible, :active) {
    background: #000 !important;
    border-color: #000 !important;
    color: #BCD1E6 !important;
}

html body #header-section .ut-header-mini-cart .bklyn-btn-header-cart .bklyn-btn:is(:hover, :focus, :focus-visible, :active) .ut-btn-text {
    color: #BCD1E6 !important;
}

html body #header-section #ut-mobile-nav,
html body #header-section #ut-mobile-nav .ut-scroll-pane {
    background-color: var(--cabecera-solida) !important;
}

html body #header-section #ut-mobile-nav .ut-mobile-menu li a {
    color: var(--cabecera-texto) !important;
}

html body #header-section #ut-mobile-nav .ut-mobile-menu li a:hover,
html body #header-section #ut-mobile-nav .ut-mobile-menu li a.selected {
    color: var(--cabecera-hover) !important;
}

.footer .sidebar > li:has(.wp-block-archives),
.footer .sidebar > li:has(.wp-block-categories) {
    display: none !important;
}

.footer .cn-pie-enlaces {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 14px 30px;

    max-width: 820px;
    margin: 0 auto;
    padding: 0 20px;
}

.footer .cn-pie-enlaces a {
    position: relative;
    display: inline-block;
    padding: 6px 10px;
    border-radius: 4px;

    color: inherit;
    opacity: .72;

    font-size: 12px;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    text-decoration: none !important;
    white-space: nowrap;

    transition: opacity .25s ease, background-color .25s ease;
}

.footer .cn-pie-enlaces a:hover,
.footer .cn-pie-enlaces a:focus-visible {
    opacity: 1;
    background-color: rgba(0, 0, 0, .55) !important;
}

.footer .cn-pie-enlaces a::after {
    content: "";
    position: absolute;
    left: 50%;
    right: 50%;
    bottom: 0;
    height: 1px;
    background: currentColor;
    transition: left .28s ease, right .28s ease;
}

.footer .cn-pie-enlaces a:hover::after,
.footer .cn-pie-enlaces a:focus-visible::after {
    left: 0;
    right: 0;
}

.footer .sidebar,
.footer .sidebar > li.widget-container {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.footer .footer-content .ut-sub-footer-style-2 {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    text-align: center !important;
}

.footer .ut-sub-footer-social-icons,
.footer .ut-sub-footer-content {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

.footer .ut-footer-so {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.footer .ut-footer-so li {
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    list-style: none !important;
}

.footer .ut-footer-so a {
    opacity: .72;
    transition: opacity .25s ease;
}

.footer .ut-footer-so a:hover {
    opacity: 1;
}

.footer .ut-sub-footer-content {
    font-size: 12px;
    letter-spacing: .04em;
    opacity: .6;
}

.footer .footer-content {
    position: relative;
    padding-top: 28px;
    margin-top: 28px;
}

.footer .footer-content::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(420px, 60%);
    height: 1px;
    background: currentColor;
    opacity: .18;
}

@media (max-width: 1024px) {
    .footer {
        --pie-fondo: #f0ebe4;
        --pie-texto: #BCD1E6;
        --pie-linea: rgba(58, 35, 24, .16);
        position: relative;
        margin-top: 0 !important;
        background: var(--pie-fondo) !important;
        color: var(--pie-texto) !important;
    }

    .footer::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -24px;
        height: 24px;
        background: var(--pie-fondo);
        pointer-events: none;
    }

    .footer .ut-footer-area {
        padding: 28px 14px 18px !important;
        background: var(--pie-fondo) !important;
    }

    .footer .ut-footer-area .grid-container,
    .footer .footer-content .grid-container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .footer .cn-pie-enlaces {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        width: 100%;
        max-width: 420px;
        padding: 0;
    }

    .footer .cn-pie-enlaces a {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
        padding: 8px 10px;
        box-sizing: border-box;
        border: 0 !important;
        border-radius: 0;
        background: transparent !important;
        color: #000 !important;
        font-size: 10px;
        line-height: 1.25;
        letter-spacing: .08em;
        text-align: center;
        white-space: normal;
        opacity: 1;
    }

    .footer .cn-pie-enlaces a::after {
        content: none;
        display: none;
    }

    .footer .cn-pie-enlaces a:hover,
    .footer .cn-pie-enlaces a:focus-visible {
        color: var(--pie-texto) !important;
        background-color: rgba(0, 0, 0, .55) !important;
    }

    .footer .footer-content {
        margin: 0 !important;
        padding: 16px 14px 18px !important;
        border-top: 1px solid var(--pie-linea);
        background: var(--pie-fondo) !important;
    }

    .footer .footer-content::before {
        content: none;
        display: none;
    }

    .footer .footer-content .ut-sub-footer-style-2 {
        gap: 0;
    }

    .footer .ut-sub-footer-content {
        color: #000 !important;
        font-size: 10px;
        line-height: 1.5;
        letter-spacing: .02em;
        opacity: .72;
    }

    .footer .ut-sub-footer-content .fa-heart {
        color: #b56f68 !important;
        animation: none !important;
    }
}

.footer .ut-sub-footer-content span.copyright {
  display: none !important;
}

.footer .ut-sub-footer-social-icons .cn-icono-tiktok {
  height: 1.33em;
  width: auto;
  vertical-align: -0.22em;
}

body.woocommerce-account .main-content-background {
  background-color: #f9f6f1 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.woocommerce:has(> .woocommerce-MyAccount-navigation) {
  --cuenta-tinta:       #000000;
  --cuenta-azul:        #BCD1E6;
  --cuenta-texto:       #000000;
  --cuenta-linea:       #EBE1DA;
  --cuenta-acento:      #BCD1E6;
  --cuenta-papel:       #FFFFFF;

  --cuenta-radio:           12px;
  --cuenta-hueco-menu:      28px;
  --cuenta-hueco-pestanas:  30px;
  display: block;
  max-width: var(--ancho-cuadricula, 1140px);
  margin: 0 auto;
  padding: 20px 0 60px;
}

.woocommerce > .woocommerce-MyAccount-navigation {
  float: none !important;
  width: 100% !important;
  margin: 0 0 var(--cuenta-hueco-menu, 28px);
}

.woocommerce > .woocommerce-MyAccount-content {
  float: none !important;
  width: auto !important;
  min-width: 0;
}

.woocommerce-MyAccount-navigation ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px var(--cuenta-hueco-pestanas, 30px);

  margin: 0;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--cuenta-linea);
}

.woocommerce-MyAccount-navigation li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 14px 12px;
  border-radius: 10px 10px 0 0;
  border-left: 0;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;

  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none !important;
  white-space: nowrap;

  color: var(--cuenta-texto);
  transition: color .25s ease, border-color .25s ease;
}

.woocommerce-MyAccount-navigation li a:hover,
.woocommerce-MyAccount-navigation li a:focus-visible {
  color: var(--cuenta-tinta);
  border-left-color: transparent;
  border-bottom-color: var(--cuenta-azul);
}

.woocommerce-MyAccount-navigation li.is-active a {
  color: var(--cuenta-tinta);
  background: var(--cuenta-azul);
  border-left-color: transparent;
  border-bottom-color: var(--cuenta-azul);
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  margin-left: auto;
}

.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a {
  background: #c62828 !important;
  color: #fff !important;
}

.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a:hover,
.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a:focus-visible {
  background: #8e1b1b !important;
  color: #fff !important;
}

.woocommerce-MyAccount-content {
  box-sizing: border-box;
  overflow-wrap: anywhere;
  padding: 36px 40px;
  border: 1px solid var(--cuenta-linea);
  border-radius: var(--cuenta-radio);
  background: var(--cuenta-papel);
  box-shadow: 0 2px 10px rgba(58, 35, 24, .06);

  color: var(--cuenta-texto);
  font-size: 15px;
  line-height: 1.75;
}

.woocommerce-MyAccount-content > *:first-child {
  margin-top: 0;
}

.woocommerce-MyAccount-content > *:last-child {
  margin-bottom: 0;
}

/* Portada de Mi cuenta: bienvenida y datos del cliente. */
.woocommerce-MyAccount-content > .woocommerce-notices-wrapper:empty {
  display: none;
}

.woocommerce-MyAccount-content > .woocommerce-notices-wrapper + p {
  margin-top: 0;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--cuenta-linea);
}

.woocommerce-MyAccount-content > .woocommerce-notices-wrapper + p > strong {
  font-family: var(--cn-cuerpo) !important;
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.3;
}

.woocommerce-MyAccount-navigation a:focus-visible,
.woocommerce-MyAccount-content a:focus-visible {
  outline: 2px solid var(--cuenta-acento);
  outline-offset: 4px;
}

/* Direcciones de facturacion y envio. */
.woocommerce-MyAccount-content .woocommerce-Addresses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.woocommerce-MyAccount-content .woocommerce-Addresses::before,
.woocommerce-MyAccount-content .woocommerce-Addresses::after {
  display: none;
}

.woocommerce-MyAccount-content .woocommerce-Address {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  box-sizing: border-box;
  padding: 20px;
  border: 1px solid var(--cuenta-linea);
  border-radius: var(--cuenta-radio);
  background: #f9f6f1;
}

.woocommerce-MyAccount-content .woocommerce-Address address {
  margin-bottom: 0;
  font-style: normal;
}

.woocommerce-MyAccount-content :is(h2, h3, legend) {
  margin: 0 0 14px;
  color: var(--cuenta-tinta);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.woocommerce-MyAccount-content strong {
  color: var(--cuenta-tinta);
  font-weight: 600;
}

.woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button) {
  color: var(--cuenta-tinta);
  text-decoration: underline;
  text-decoration-color: var(--cuenta-azul);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: text-decoration-color .25s ease;
}

.woocommerce-MyAccount-content a:not(.button):not(.woocommerce-Button):hover {
  text-decoration-color: currentColor;
}

.woocommerce-MyAccount-content :is(.button, .woocommerce-Button, button[type="submit"]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 13px 26px !important;
  border: 0 !important;
  border-radius: 999px !important;

  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none !important;

  background: var(--cuenta-azul) !important;
  color: var(--cuenta-tinta) !important;
  box-shadow: none !important;
  transition: background .25s ease, color .25s ease;
}

.woocommerce-MyAccount-content :is(.button, .woocommerce-Button, button[type="submit"]):hover,
.woocommerce-MyAccount-content :is(.button, .woocommerce-Button, button[type="submit"]):focus-visible {
  background: #BCD1E6 !important;
  color: var(--cuenta-tinta) !important;
}

/* Acciones de pedidos: fondo azul claro y texto negro. */
.woocommerce-MyAccount-content .woocommerce-info .button.wc-forward,
.woocommerce-MyAccount-content .woocommerce-orders-table .button.view {
  background: #BCD1E6 !important;
  color: var(--cuenta-tinta) !important;
}

.woocommerce-MyAccount-content .woocommerce-info .button.wc-forward:hover,
.woocommerce-MyAccount-content .woocommerce-info .button.wc-forward:focus-visible,
.woocommerce-MyAccount-content .woocommerce-orders-table .button.view:hover,
.woocommerce-MyAccount-content .woocommerce-orders-table .button.view:focus-visible {
  background: #BCD1E6 !important;
  color: var(--cuenta-tinta) !important;
}

.woocommerce-MyAccount-content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 20px;

  margin: 0 0 24px;
  padding: 18px 22px !important;
  border: 1px solid var(--cuenta-linea) !important;
  border-left: 3px solid var(--cuenta-acento) !important;
  border-radius: var(--cuenta-radio);
  background: var(--cuenta-papel) !important;
  color: var(--cuenta-texto);
  box-shadow: none !important;
  font-size: 14px;
}

.woocommerce-MyAccount-content :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
  display: none !important;
}

.woocommerce-MyAccount-content .woocommerce-error {
  border-left-color: #6E180F !important;
}

.woocommerce-MyAccount-content table.shop_table {
  width: 100%;
  margin: 0 0 24px;
  border: 0 !important;
  border-collapse: collapse !important;
  border-radius: 0 !important;
  font-size: 14px;
}

.woocommerce-MyAccount-content table.shop_table :is(th, td) {
  padding: 16px 12px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--cuenta-linea) !important;
  background: transparent !important;
  vertical-align: middle;
}

.woocommerce-MyAccount-content table.shop_table thead th {
  color: var(--cuenta-tinta);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.woocommerce-MyAccount-content table.shop_table tbody tr:last-child :is(th, td) {
  border-bottom: 0 !important;
}

.woocommerce-MyAccount-content table.shop_table .button {
  padding: 9px 18px !important;
  font-size: 10px !important;
}

.woocommerce-MyAccount-content fieldset {
  margin: 28px 0 0;
  padding: 0;
  border: 0;
}

.woocommerce-MyAccount-content :is(.woocommerce-form-row, .form-row) {
  margin: 0 0 18px;
  padding: 0;
}

.woocommerce-MyAccount-content label {
  display: block;
  margin: 0 0 7px;
  color: var(--cuenta-texto);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.woocommerce-MyAccount-content :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], select, textarea) {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--cuenta-linea);
  border-radius: 10px;
  background: var(--cuenta-papel);
  color: var(--cuenta-tinta);
  font-size: 14px;
  box-shadow: none;
  transition: border-color .25s ease;
}

.woocommerce-MyAccount-content :is(input, select, textarea):focus {
  border-color: var(--cuenta-acento);
  outline: 2px solid var(--cuenta-azul);
  outline-offset: 2px;
}

.woocommerce-MyAccount-content :is(em, .description) {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  font-style: normal;
  color: var(--cuenta-texto);
  opacity: .8;
}

.cn-cuenta-escritorio {
  margin-top: 26px;
  padding: 22px;
  border: 1px solid var(--cuenta-azul);
  border-left: 4px solid var(--cuenta-azul);
  border-radius: var(--cuenta-radio);
  background: #f3f7fb;
}

.cn-cuenta-escritorio__correo {
  margin: 0 !important;
}

.cn-cuenta-escritorio__acciones {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin: 0 !important;
}

@media (max-width: 1024px) {

  .woocommerce:has(> .woocommerce-MyAccount-navigation) {
    display: block;
    position: relative;
    /* Reserva espacio para Cerrar sesion debajo del panel. */
    padding: 10px 0 108px;
  }

  .woocommerce > .woocommerce-MyAccount-navigation {
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .woocommerce-MyAccount-navigation ul {
    position: static !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 10px 6px;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 0;
  }

  .woocommerce-MyAccount-navigation li {
    min-width: 0;
    margin: 0 !important;
    float: none !important;
  }

  .woocommerce-MyAccount-navigation li a {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 48px;
    height: auto !important;
    padding: 10px 6px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    text-transform: none;
    text-align: center;
    white-space: normal !important;
    overflow-wrap: anywhere;
    overflow: visible !important;
    border-left: 0;
    border-bottom: 2px solid transparent;
  }

  .woocommerce-MyAccount-navigation li a:hover,
  .woocommerce-MyAccount-navigation li.is-active a {
    border-left: 0;
    border-bottom-color: var(--cuenta-azul);
  }

  .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
    position: absolute !important;
    right: 0;
    bottom: 40px;
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }

  .woocommerce-MyAccount-content {
    margin-top: 0 !important;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    padding: 24px 16px;
  }

  /* Etiquetas completas, incluso en los campos de cambio de contrasena. */
  .woocommerce-MyAccount-content label {
    height: auto !important;
    max-height: none !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    letter-spacing: normal !important;
    white-space: normal !important;
    overflow: visible !important;
  }

  .woocommerce-MyAccount-content .woocommerce-EditAccountForm :is(.form-row-first, .form-row-last) {
    float: none !important;
    width: 100% !important;
  }

  .woocommerce-MyAccount-content :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], select, textarea) {
    box-sizing: border-box;
    min-width: 0;
    font-size: 16px !important;
  }

  .woocommerce-MyAccount-content :is(h2, h3, legend) {
    height: auto !important;
    max-width: 100%;
    line-height: 1.4 !important;
    white-space: normal !important;
  }

  .woocommerce-MyAccount-content :is(.button, .woocommerce-Button, button[type="submit"]) {
    max-width: 100%;
    box-sizing: border-box;
    white-space: normal !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    letter-spacing: .03em;
  }

  .woocommerce-MyAccount-content .woocommerce-Addresses {
    grid-template-columns: minmax(0, 1fr);
  }

  .cn-cuenta-escritorio {
    padding: 16px;
  }

  .woocommerce-MyAccount-content table.shop_table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}

/* Instagram: esquinas redondeadas en imagen y overlay en todos los tamanos. */
.zoom-instagram.feed-2165 .zoom-instagram-widget__item-inner-wrap {
    border-radius: 20px !important;
    overflow: hidden;
}

.zoom-instagram.feed-2165 img.zoom-instagram-link-new {
    border-radius: 20px !important;
}

section.vc_section.galeria01.ut-vc-120 > .vc_row + .vc_row-full-width + .vc_row-has-fill,
section.vc_section.galeria01.ut-vc-120 > .vc_row + .vc_row-full-width + .vc_row {
    margin-top: 0 !important;
}

section.vc_section.galeria01.ut-vc-120 > .vc_row-has-fill {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

@media (max-width: 1024px) {
    section.vc_section.galeria01 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    section.vc_section.galeria01 > .vc_row:last-of-type,
    section.vc_section.galeria01 > .vc_row:last-of-type > .wpb_column,
    section.vc_section.galeria01 > .vc_row:last-of-type > .wpb_column > .vc_column-inner,
    section.vc_section.galeria01 > .vc_row:last-of-type > .wpb_column > .vc_column-inner > .wpb_wrapper,
    section.vc_section.galeria01 .zoom-instagram,
    section.vc_section.galeria01 .zoom-instagram-widget__items-wrapper {
        width: 100% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    section.vc_section.galeria01 .zoom-instagram-widget__items {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    section.vc_section.galeria01 .zoom-instagram-widget__item {
        float: none !important;
        clear: none !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    section.vc_section.galeria01 .zoom-instagram-widget__item:nth-child(n + 5) {
        display: none !important;
    }

    section.vc_section.galeria01 .zoom-instagram-widget__item-inner-wrap,
    section.vc_section.galeria01 img.zoom-instagram-link-new {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        aspect-ratio: 1 / 1;
    }

    section.vc_section.galeria01 .zoom-instagram-widget__item-inner-wrap {
        border-radius: 10px;
        overflow: hidden;
    }

    section.vc_section.galeria01 img.zoom-instagram-link-new {
        object-fit: cover;
        border-radius: 10px;
    }
}

html .admin-bar #header-section.ut-header-floating {
    margin-top: 25px !important;
}

@media (max-width: 600px) {
    html .admin-bar #header-section.ut-header-floating {
        margin-top: 0 !important;
    }
}

.ut-vc-120.vc_section > .vc_row + .vc_row-full-width + .vc_row {
    margin-top: 5px !important;
}

.cn-cajon-barra {
    position: relative;
    z-index: 3;

    display: flex;
    justify-content: center;

    margin: 0;
    padding: 0;
    pointer-events: none;
}

.cn-pestana-categorias {
    pointer-events: auto;

    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin: 0;
    padding: 9px 22px;

    border: 0;
    border-radius: 0 0 12px 12px;
    background: #f0ebe4;
    color: #000;

    font-size: 12px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    line-height: 1;

    cursor: pointer;
    box-shadow: 0 2px 10px rgba(58, 35, 24, .12);
    transition: background .25s ease;
}

.cn-pestana-categorias:hover {
    background: #e6dfd5;
}

.cn-pestana-categorias .cn-flecha {
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform .3s ease;
}

.cn-pestana-categorias.cn-abierta .cn-flecha {
    transform: translateY(2px) rotate(-135deg);
}

section.vc_section:not(.masvendido01) > :is(.masvendido02, #no-existe-en-la-pagina) {
    overflow: hidden !important;
    max-height: 0;
    opacity: 0;
    transition: max-height .5s cubic-bezier(.25, .8, .25, 1),
                opacity .4s ease;
}

section.vc_section:not(.masvendido01) > :is(.masvendido02.cn-abierto, #no-existe-en-la-pagina) {
    max-height: 1200px;
    opacity: 1;
}

section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:not(:has(.bklyn5-team-member)) {
    display: none !important;
}

@media (min-width: 1025px) {
    section.vc_section:not(.masvendido01) > :is(.masvendido02, #no-existe-en-la-pagina) {
        --ancho-icono: 16.6667%;

        display: grid !important;

        grid-template-columns: repeat(10, calc(var(--ancho-icono) / 2));
        justify-content: center;
    }

    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column {
        width: auto !important;
        float: none !important;
        margin: 0 !important;
    }

    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(1) { grid-area: 1 / 1 / auto / span 2; }
    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(2) { grid-area: 1 / 3 / auto / span 2; }
    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(3) { grid-area: 1 / 5 / auto / span 2; }
    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(4) { grid-area: 1 / 7 / auto / span 2; }
    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(5) { grid-area: 1 / 9 / auto / span 2; }

    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(6) { grid-area: 2 / 2 / auto / span 2; }
    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(7) { grid-area: 2 / 4 / auto / span 2; }
    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(8) { grid-area: 2 / 6 / auto / span 2; }
    section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column:nth-child(9) { grid-area: 2 / 8 / auto / span 2; }
}


@font-face {
    font-family: "Velino Condensed Text";
    src: url("https://www.cacaonativa.com/wp-content/tipografia/VelinoCondensedText-Bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Velino Text";
    src: url("https://www.cacaonativa.com/wp-content/tipografia/VelinoText-BookItalic.woff2") format("woff2");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Helvetica";
    src: url("https://www.cacaonativa.com/wp-content/tipografia/Helvetica.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Helvetica";
    src: url("https://www.cacaonativa.com/wp-content/tipografia/Helvetica-Bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


:root {
    --cn-titulo:    "Velino Condensed Text", "Velino Text", Georgia, serif;
    --cn-subtitulo: "Velino Text", Georgia, serif;
    --cn-cuerpo:    "Helvetica Neue", Helvetica, Arial, sans-serif;
}

body,
p, li, dd, dt, td, th,
blockquote, figcaption,
label, input, select, textarea,
button, .button, a.button,
.price, .amount, .woocommerce-Price-amount,
.ut-navigation-menu a,
.footer, .copyright,
.cn-pestana-categorias {
    font-family: var(--cn-cuerpo) !important;
    font-weight: 400;
}

h1, h2,
.section-title,
.hero-title,
.product_title,
.entry-title,
body.single-product section.related.products > h2,
body.single-product section.up-sells.products > h2 {
    font-family: var(--cn-titulo) !important;
    font-weight: 700 !important;
    font-style: normal !important;
}

/* Mi cuenta: textos del panel en Helvetica. */
.woocommerce-MyAccount-content p,
.woocommerce-MyAccount-content p :is(a, strong) {
    font-family: var(--cn-cuerpo) !important;
    font-style: normal !important;
}

/* Menu principal: aumenta el texto 2px respecto al tamano del enlace. */
:is(.menu-item-10, .menu-item-1992, .menu-item-1001, .menu-item-2634) > a.ut-main-navigation-link > span {
    font-size: calc(1em + 2px) !important;
}

/* Tipografias indicadas en codigo/letras.html. */
.menu-item-10 > a.ut-main-navigation-link,
.menu-item-1001 > a.ut-main-navigation-link,
.menu-item-2634 > a.ut-main-navigation-link,
.menu-item-1992 > a.ut-main-navigation-link,
.collagesc a.cl-effect-18 {
    font-family: var(--cn-titulo) !important;
    font-weight: 700 !important;
    font-style: normal !important;
}

.cn-pie-enlaces a,
.woocommerce-MyAccount-navigation a,
.cn-pestana-categorias,
.hero-description-bottom,
h2.section-title[data-title="La herencia Maya."],
.price, .amount, .woocommerce-Price-amount {
    font-family: var(--cn-subtitulo) !important;
    font-weight: 400 !important;
    font-style: italic !important;
}

h3, h4, h5, h6,
.section-header .section-lead,
.bklyn5-team-member-name,
.bklyn5-team-member-ocupation {
    font-family: var(--cn-subtitulo) !important;
    font-weight: 400 !important;
    font-style: italic !important;
}

h1 span, h2 span, h3 span, h4 span, h5 span, h6 span,
.section-title span, .hero-title span,
.ut-navigation-menu a span,
.cn-pestana-categorias span {
    font-family: inherit !important;
    font-style: inherit !important;
}

section.vc_section.ut-vc-120:has(.sucursales02) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.vc_row.sucursales02,
.sucursales02 {
    --sucursales-por-fila: 4;
    --sucursales-hueco: 30px;
    --sucursal-ratio: 4 / 3;
    --sucursal-velo: rgba(0, 0, 0, .65);
    --sucursal-icono: #BCD1E6;
    --sucursal-icono-activo: #BCD1E6;
    --sucursal-icono-tam: 22px;
    --sucursal-icono-hueco: 24px;

    display: grid !important;
    grid-template-columns: repeat(var(--sucursales-por-fila, 4), minmax(0, 1fr)) !important;
    gap: var(--sucursales-hueco, 30px) !important;
    align-items: stretch !important;

    position: relative !important;
    left: 0 !important;
    right: auto !important;
    box-sizing: border-box !important;
    width: auto !important;
    max-width: 1140px !important;
    margin: 0 auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.vc_row.sucursales02::before,
.vc_row.sucursales02::after,
.sucursales02::before,
.sucursales02::after {
    content: none !important;
    display: none !important;
}

.ut-vc-120.vc_section > .sucursales02 + .vc_row-full-width + .sucursales02,
.vc_section > .sucursales02 + .vc_row-full-width + .sucursales02 {
    margin-top: var(--sucursales-hueco, 30px) !important;
}

.vc_row.sucursales02 > .wpb_column,
.sucursales02 > .wpb_column {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    float: none !important;
    left: auto !important;
    right: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

.sucursales02 > .sucursal02 > .vc_column-inner {
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper {
    display: flex;
    height: 100%;

    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(58, 35, 24, .06);
    transition: transform .45s cubic-bezier(.25, .8, .25, 1),
                box-shadow .45s cubic-bezier(.25, .8, .25, 1);
}

.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper:has(.bklyn5-team-member-avatar:hover) {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(58, 35, 24, .16);
}

.sucursal02 .wpb_content_element {
    margin-bottom: 0 !important;
}

.sucursal02 .bklyn5-team-member {
    position: relative;
}

.sucursal02 .bklyn5-team-member-avatar {
    position: relative !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}

.sucursal02 .bklyn5-team-member-avatar img {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: var(--sucursal-ratio, 4 / 3);
    object-fit: cover;
    transform: none !important;
}

.sucursal02 .bklyn5-team-member-overlay {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    transition: none !important;
}

.sucursal02 :is(.bklyn5-team-member-overlay-caption, .bklyn5-team-member-info) {
    position: static !important;
    inset: auto !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.sucursal02 .bklyn5-team-member-name {
    position: absolute !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
    aspect-ratio: var(--sucursal-ratio, 4 / 3);

    display: flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 12px 16px;
    text-align: center;

    background: var(--sucursal-velo, rgba(0, 0, 0, .65));

    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
}

.sucursal02 .bklyn5-team-member-avatar:hover ~ .bklyn5-team-member-overlay .bklyn5-team-member-name {
    opacity: 1;
}

.sucursal02 .wpb_text_column {
    flex: 1 1 auto;
    margin: 0 !important;
    padding: 14px 16px 18px !important;
    text-align: left !important;
}

.sucursal02 .wpb_text_column p {
    margin: 0 0 6px !important;
    font-size: 14px !important;
    line-height: 1.5;
    color: #000;
    text-align: left !important;
}

.sucursal02 .wpb_text_column p:last-child {
    margin-bottom: 0 !important;
}

.sucursales-mapa {
    --mapa-alto: 460px;
    --mapa-recorte-arriba: 64px;
    --mapa-radio: 14px;

    max-width: 1140px;
    margin: 0 auto !important;
}

.sucursales-mapa .wpb_wrapper {
    display: block;
    width: 100%;
    margin: 0 !important;
    line-height: 0;
}

.sucursales-mapa .wpb_map_wraper {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: var(--mapa-alto, 460px) !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0;
    overflow: hidden !important;
    border-radius: var(--mapa-radio, 14px);
}

.sucursales-mapa .wpb_map_wraper iframe {
    position: absolute !important;
    top: calc(var(--mapa-recorte-arriba, 64px) * -1) !important;
    left: 0 !important;
    display: block !important;
    width: 100% !important;
    height: calc(var(--mapa-alto, 460px) + var(--mapa-recorte-arriba, 64px)) !important;
    max-width: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    pointer-events: auto !important;
}

@media (max-width: 1024px) {
    .sucursales-mapa {
        --mapa-alto: 320px;
    }
}

@media (hover: none) {
    .sucursal02 .bklyn5-team-member-name {
        opacity: 1;
    }
}

@media (max-width: 1024px) {
    .vc_row.sucursales02,
    .sucursales02 {
        --sucursales-hueco: 20px;
    }
}

@media (max-width: 1024px) {
    .vc_row.sucursales02,
    .sucursales02 {
        --sucursales-por-fila: 1;
    }
}

.sucursal02 .bklyn5-team-member-social-icons {
    display: none !important;
}

.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-content: flex-start !important;
    gap: 0 var(--sucursal-icono-hueco, 24px) !important;
}

.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper > *:not(.vc_icon_element):not(:has(.bklyn-big-icon-wrap)) {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Iconos de imagen de sucursales: mismo tamano y fila que los iconos VC. */
.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper > .wpb_content_element:has(.bklyn-big-icon-wrap) {
    display: inline-flex !important;
    align-items: center !important;
    align-self: flex-start !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 14px 0 0 !important;
    padding: 0 !important;
}

.sucursal02 :is(.bklyn-big-icon-wrap, .bklyn-big-icon-link, .bklyn-big-icon, .bklyn-big-icon-inner) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: static !important;
    width: 26px !important;
    height: 26px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    line-height: 1 !important;
    transform: none !important;
}

.sucursal02 .bklyn-big-icon-inner img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    object-fit: contain;
}
/* Hover del icono de imagen, con el mismo desplazamiento que los iconos VC. */
.sucursal02 .bklyn-big-icon-inner img {
    transform: none !important;
    filter: brightness(1);
    transition: filter .25s ease, transform .25s ease !important;
}

.sucursal02 .bklyn-big-icon-wrap:is(:hover, :focus-within) .bklyn-big-icon-inner img {
    filter: brightness(.75) !important;
    transform: translateY(-2px) !important;
}

/* Conserva las dimensiones y la alineacion de los iconos tambien en telefono. */
@media (max-width: 1024px) {
    .sucursal02 :is(.bklyn-big-icon-wrap, .bklyn-big-icon-link, .bklyn-big-icon, .bklyn-big-icon-inner) {
        max-width: 26px !important;
        max-height: 26px !important;
        float: none !important;
        vertical-align: top !important;
    }
}
.sucursal02 .vc_icon_element {
    display: inline-flex !important;
    align-items: center !important;
    align-self: flex-start !important;
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 14px 0 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

.sucursal02 .vc_icon_element .vc_icon_element-inner {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.sucursal02 .vc_icon_element .vc_icon_element-icon {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;

    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #000 !important;
    font-size: var(--sucursal-icono-tam, 22px) !important;
    line-height: 1 !important;
    transition: color .25s ease, transform .25s ease;
}

.sucursal02 .vc_icon_element .vc_icon_element-icon::before {
    color: inherit !important;
    font-size: inherit !important;
    line-height: 1 !important;
}

.sucursal02 .vc_icon_element .vc_icon_element-link {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2;
    display: block !important;
    width: auto !important;
    height: auto !important;
}

.sucursal02 .vc_icon_element:hover .vc_icon_element-icon {
    color: var(--sucursal-icono-activo, #BCD1E6) !important;
    transform: translateY(-2px) !important;
}
/* Sucursales: nombre siempre visible debajo de la foto; horario y direccion
   aparecen encima de la tarjeta al pasar el mouse, sin empujar las demas. */
.sucursales02 {
    --sucursal-nombre-tam: 22px;
    --sucursal-nombre-color: #000;
    --sucursal-info-fondo: rgba(30, 18, 12, .93);
    --sucursal-info-texto: #fff;
    --sucursal-fila-iconos: 54px;   /* alto de la fila de iconos que queda libre abajo */
}

.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper {
    position: relative !important;
    padding-bottom: 14px !important;
}

.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper:has(.bklyn5-team-member-avatar:hover) {
    transform: none;
    box-shadow: 0 2px 10px rgba(58, 35, 24, .06);
}

.sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(58, 35, 24, .16);
}

.sucursal02 .bklyn5-team-member .bklyn5-team-member-name {
    position: static !important;
    aspect-ratio: auto;
    display: block !important;
    padding: 14px 16px 0 !important;
    background: none !important;
    opacity: 1 !important;
    color: var(--sucursal-nombre-color, #000) !important;
    font-size: var(--sucursal-nombre-tam, 22px) !important;
    line-height: 1.2 !important;
    text-align: center !important;
}

.sucursal02 .bklyn5-team-member :is(.bklyn5-team-member-overlay, .bklyn5-team-member-overlay-caption, .bklyn5-team-member-info) {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
}

.sucursal02 .bklyn5-team-member-name::after,
.sucursal02 .bklyn5-team-member-name::before {
    display: none !important;
}

@media (hover: hover) and (min-width: 1025px) {
    .sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper > .wpb_text_column {
        position: absolute !important;
        top: 0;
        left: 0;
        right: 0;
        bottom: var(--sucursal-fila-iconos, 54px);
        z-index: 3;

        display: flex !important;
        flex-direction: column;
        justify-content: safe center;
        box-sizing: border-box;
        padding: 10px 18px var(--sucursal-info-espacio-nombre, 50px) !important;
        overflow: hidden;

        background: var(--sucursal-info-fondo, rgba(30, 18, 12, .88));
        opacity: 0;
        visibility: hidden;
        transition: opacity .35s ease, visibility .35s ease;
    }

    .sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper:hover > .wpb_text_column {
        opacity: 1;
        visibility: visible;
    }

    /* El nombre queda por encima del recuadro y cambia a blanco. */
    .sucursal02 .bklyn5-team-member .bklyn5-team-member-name {
        position: relative !important;
        z-index: 4;
        transition: color .35s ease !important;
    }

    .sucursales02 > .sucursal02 > .vc_column-inner > .wpb_wrapper:hover .bklyn5-team-member-name {
        color: var(--sucursal-info-texto, #fff) !important;
    }

    .sucursal02 .wpb_text_column :is(p, li, b, strong, h3) {
        color: var(--sucursal-info-texto, #fff) !important;
    }

    .sucursal02 .wpb_text_column :is(p, li) {
        font-size: 13px !important;
        line-height: 1.45 !important;
    }

    .sucursal02 .wpb_text_column li p {
        margin: 0 !important;
    }

    .sucursal02 .wpb_text_column ul {
        margin: 0 0 4px !important;
        padding-left: 18px !important;
    }

    .sucursal02 .wpb_text_column h3 {
        margin: 4px 0 2px !important;
        font-size: 18px !important;
        line-height: 1.2 !important;
    }
}

/* Sucursales en telefono y tablet: carrusel horizontal con la informacion visible.
   Celular: 1 tarjeta por vista; tablet: 2. Se asoma la siguiente para invitar a deslizar.
   Si una seccion solo contiene filas de sucursales, toda la seccion es un solo carrusel;
   si tiene otras filas (ej. el mapa), cada fila de sucursales es su propio carrusel. */
@media (max-width: 1024px) {
    :is(#no-existe-en-la-pagina, .vc_row):is(#no-existe-2, .sucursales02),
    :is(#no-existe-en-la-pagina, section):is(#no-existe-2, .vc_section):has(> .sucursales02):not(:has(> .vc_row:not(.sucursales02))) {
        --carrusel-ancho: 85%;
        --carrusel-hueco: 16px;
        --carrusel-margen: 16px;

        display: flex !important;
        flex-wrap: nowrap !important;
        gap: var(--carrusel-hueco) !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: var(--carrusel-margen);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;

        box-sizing: border-box !important;
        padding: 6px var(--carrusel-margen) 26px !important;
    }

    .vc_row.sucursales02::-webkit-scrollbar,
    section.vc_section:has(> .sucursales02)::-webkit-scrollbar {
        display: none;
    }

    :is(#no-existe-en-la-pagina, section):is(#no-existe-2, .vc_section):has(> .sucursales02):not(:has(> .vc_row:not(.sucursales02))) > .vc_row.sucursales02 {
        display: contents !important;
    }

    section.vc_section:has(> .sucursales02):not(:has(> .vc_row:not(.sucursales02))) > .vc_row-full-width {
        display: none !important;
    }

    /* El ancla del tema no debe ocupar lugar (ni hueco) dentro del carrusel. */
    section.vc_section:has(> .sucursales02):not(:has(> .vc_row:not(.sucursales02))) > .ut-vc-offset-anchor-bottom {
        position: absolute !important;
    }

    .sucursales02 > .sucursal02,
    .vc_row.sucursales02 > .wpb_column.sucursal02 {
        flex: 0 0 var(--carrusel-ancho) !important;
        width: var(--carrusel-ancho) !important;
        scroll-snap-align: start;
    }
}

@media (min-width: 600px) and (max-width: 1024px) {
    :is(#no-existe-en-la-pagina, .vc_row):is(#no-existe-2, .sucursales02),
    :is(#no-existe-en-la-pagina, section):is(#no-existe-2, .vc_section):has(> .sucursales02):not(:has(> .vc_row:not(.sucursales02))) {
        --carrusel-ancho: calc((100% - var(--carrusel-hueco)) / 2 - 28px);
    }
}

@media (min-width: 860px) and (max-width: 1024px) {
    :is(#no-existe-en-la-pagina, .vc_row):is(#no-existe-2, .sucursales02),
    :is(#no-existe-en-la-pagina, section):is(#no-existe-2, .vc_section):has(> .sucursales02):not(:has(> .vc_row:not(.sucursales02))) {
        --carrusel-ancho: calc((100% - 2 * var(--carrusel-hueco)) / 3 - 18px);
    }
}

/* Sucursales en escritorio: cuadricula de --sucursales-por-fila; la ultima fila incompleta queda centrada.
   (Todas las tarjetas viven en una sola fila de WPBakery para que en telefono/tablet sea un solo carrusel.) */
@media (min-width: 1025px) {
    .vc_row.sucursales02,
    .sucursales02 {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    .vc_row.sucursales02 > .wpb_column.sucursal02 {
        flex: 0 0 calc((100% - (var(--sucursales-por-fila, 4) - 1) * var(--sucursales-hueco, 30px)) / var(--sucursales-por-fila, 4)) !important;
    }
}

/* Carrusel de telefono/tablet con mouse (ventana a la mitad): se arrastra con el mouse. */
@media (hover: hover) and (pointer: fine) and (max-width: 1024px) {
    .vc_row.sucursales02 {
        cursor: grab;
    }

    .vc_row.sucursales02.arrastrando {
        cursor: grabbing;
        scroll-snap-type: none !important;
        user-select: none;
    }

    .vc_row.sucursales02.arrastrando * {
        pointer-events: none;
    }

    .vc_row.sucursales02 img {
        -webkit-user-drag: none;
    }
}

/* Formulario de restablecimiento de contraseña (Ultimate Member). */
#post-2702 .um-password {
  width: min(100%, 420px) !important;
  max-width: 420px !important;
  margin: 48px auto !important;
}

#post-2702 .um-password .um-field-block,
#post-2702 .um-password .um-field-label label {
  font-size: 14px !important;
  line-height: 1.5;
}

#post-2702 .um-password .um-field-label label {
  border-radius: 15px;
}

#post-2702 .um-password .um-form-field {
  width: 100% !important;
  box-sizing: border-box;
  border-radius: 15px !important;
}

#post-2702 .um-password #um-submit-btn {
  background: #BCD1E6 !important;
  border-radius: 15px !important;
  color: #000 !important;
}

#post-2702 .um-password #um-submit-btn:hover,
#post-2702 .um-password #um-submit-btn:focus-visible {
  background: #BCD1E6 !important;
  color: #000 !important;
}

#post-2702 .wpb_text_column:has(+ .wpb_text_column .um-password) p {
  text-align: center;
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.2;
  margin: 32px 0 0;
}

#post-2702 .um-password form:not(:has(input[name="_um_password_reset"])) .um-field-block {
  font-size: 17px !important;
  text-align: center;
}

/* Anula en telefono los espacios definidos por el tema. */
@media (max-width: 1024px) {
  .footer.ut-footer-has-widgets {
    padding: 0 !important;
  }

  .vc_section + .vc_row-full-width + .vc_section.vc_section-has-fill,
  .vc_section.ut-last-row-has-fill + .vc_row-full-width + .vc_section,
  .vc_section.vc_section-has-fill + .vc_row-full-width + .vc_section,
  .vc_col-has-fill > .vc_column-inner,
  .vc_row-has-fill + .vc_row-full-width + .vc_row > .vc_column_container > .vc_column-inner,
  .vc_row-has-fill + .vc_row > .vc_column_container > .vc_column-inner,
  .vc_row-has-fill + .vc_vc_row > .vc_row > .vc_vc_column > .vc_column_container > .vc_column-inner,
  .vc_row-has-fill + .vc_vc_row_inner > .vc_row > .vc_vc_column_inner > .vc_column_container > .vc_column-inner,
  .vc_row-has-fill > .vc_column_container > .vc_column-inner,
  .vc_row-has-fill > .vc_row > .vc_vc_column > .vc_column_container > .vc_column-inner,
  .vc_row-has-fill > .vc_vc_column_inner > .vc_column_container > .vc_column-inner,
  .vc_section.vc_section-has-fill,
  .vc_section.vc_section-has-fill + .vc_section,
  .vc_section + .vc_row-full-width + .vc_section,
  section.vc_section.galeria01 {
    padding-top: 0 !important;
  }

  .vc_section,
  .vc_section.vc_section-has-fill {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .vc_section.ut-vc-120 {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }
}

/* Categorias de productos: cuadricula 3 x 3 en telefono. */
@media (max-width: 1024px) {
  section.vc_section:not(.masvendido01) > .masvendido02 {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    box-sizing: border-box !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02::before,
  section.vc_section:not(.masvendido01) > .masvendido02::after {
    content: none !important;
    display: none !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column {
    float: none !important;
    clear: none !important;
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 > .wpb_column > .vc_column-inner {
    padding: 0 !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .wpb_content_element {
    margin-bottom: 0 !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-avatar img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay {
    padding: 6px 2px 0 !important;
    opacity: 1 !important;
  }

  section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-name {
    font-size: 12px !important;
    line-height: 1.2 !important;
    white-space: normal;
    text-align: center;
  }
}

/* Cajon de categorias (pagina Productos): los iconos son PNG sin fondo con margen transparente
   debajo del producto. Cada imagen baja lo que mide ese margen (en % de su alto, medido sobre
   el archivo), asi el producto queda justo encima del nombre y entre ambos hay --icono-separacion. */
section.vc_section:not(.masvendido01) > .masvendido02 {
  --icono-separacion: 20px;
  --icono-escala: 1.2;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-avatar {
  overflow: hidden !important;
}

/* La escala crece desde la base del producto: el producto se agranda sin moverse del nombre. */
section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-avatar img {
  transform: translateY(var(--icono-bajar, 0%)) scale(var(--icono-escala, 1)) !important;
  transform-origin: 50% calc(100% - var(--icono-bajar, 0%)) !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/Moliendas-"]  { --icono-bajar: 17.4%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/galleta-"]    { --icono-bajar: 26.9%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/tableta-1-"]  { --icono-bajar: 15.6%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/cafe-"]       { --icono-bajar: 16.6%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/a-granels-"]  { --icono-bajar: 22.6%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/confitados-"] { --icono-bajar: 25.0%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/barras-"]     { --icono-bajar: 20.6%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/Bombones-"]  { --icono-bajar: 23.6%; }
section.vc_section:not(.masvendido01) > .masvendido02 img[data-adaptive-images*="/Miel-"]      { --icono-bajar: 20.2%; }

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay {
  height: auto !important;
  padding-top: var(--icono-separacion) !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-overlay :is(.bklyn5-team-member-overlay-caption, .bklyn5-team-member-info) {
  margin: 0 !important;
  padding: 0 !important;
}

section.vc_section:not(.masvendido01) > .masvendido02 .bklyn5-team-member-name {
  line-height: 1.2 !important;
}

/* Contacto: espacio superior, acentos y formulario adaptable. */
#contact-section.ut-contact-section-with-overlay .parallax-overlay,
.parallax-overlay.contacto-overlay {
  padding-top: 15px !important;
  padding-bottom: 0 !important;
}

:is(#contact-section, .contacto-overlay) :is(.ut-left-footer-area, .ut-right-footer-area) {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

:is(#contact-section, .contacto-overlay) :is(.parallax-header, .section-header) {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

/* Formulario compacto, conservando espacio para tocar los campos. */
:is(#contact-section, .contacto-overlay) .wpcf7-form,
:is(#contact-section, .contacto-overlay) .wpcf7-form p {
  margin: 0 !important;
}

:is(#contact-section, .contacto-overlay) .wpcf7-form label {
  margin: 0 0 8px !important;
  line-height: 1.25;
}

:is(#contact-section, .contacto-overlay) .wpcf7-form label > br {
  display: none;
}

:is(#contact-section, .contacto-overlay) .wpcf7-form :is(input:not([type="hidden"]), textarea) {
  margin: 4px 0 0 !important;
  padding: 10px 12px !important;
  border-radius: 10px !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  min-height: 44px;
}

:is(#contact-section, .contacto-overlay) .wpcf7-form-control-wrap {
  font-size: 14px;
}

:is(#contact-section, .contacto-overlay) .contact-wrap h3 span,
:is(#contact-section, .contacto-overlay) .contact-wrap .fa-li {
  color: #BCD1E6 !important;
}

:is(#contact-section, .contacto-overlay) .section-title {
  font-size: 40px !important;
  line-height: 1.2 !important;
  overflow-wrap: anywhere;
}

:is(#contact-section, .contacto-overlay) .wpcf7-form label,
:is(#contact-section, .contacto-overlay) .wpcf7-form-control-wrap {
  display: block;
}

:is(#contact-section, .contacto-overlay) .wpcf7-form :is(input:not([type="hidden"]):not([type="submit"]), textarea) {
  width: 100% !important;
  max-width: 100%;
  box-sizing: border-box;
}

:is(#contact-section, .contacto-overlay) .wpcf7-form textarea {
  height: 100px !important;
  min-height: 100px !important;
  resize: vertical;
}

:is(#contact-section, .contacto-overlay) .wpcf7-submit:hover,
:is(#contact-section, .contacto-overlay) .wpcf7-submit:focus-visible {
  background: #BCD1E6 !important;
  border-color: #BCD1E6 !important;
  color: #000 !important;
}

@media (max-width: 1024px) {
  :is(#contact-section, .contacto-overlay) .grid-container {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }

  :is(#contact-section, .contacto-overlay) .mobile-grid-100 {
    float: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
    min-width: 0;
  }

  :is(#contact-section, .contacto-overlay) .section-title {
    font-size: clamp(24px, 6vw, 30px) !important;
  }

  :is(#contact-section, .contacto-overlay) .ut-left-footer-area {
    margin-bottom: 30px;
    overflow-wrap: anywhere;
  }

  :is(#contact-section, .contacto-overlay) .wpcf7-form :is(input:not([type="hidden"]), textarea) {
    font-size: 16px;
    min-height: 44px;
  }

  :is(#contact-section, .contacto-overlay) .wpcf7-submit {
    width: 100% !important;
    box-sizing: border-box;
  }
}

/* El enlace adicional Ver carrito permanece oculto en telefono. */
@media (max-width: 1024px) {
  body:is(.woocommerce, :has(.woocommerce)) ul.products li.product .added_to_cart {
    display: none !important;
  }
}

/* Terminos y condiciones y privacidad: paginas 1978 y 3.
   Los saltos <br> se conservan porque tambien separan las clausulas. */
:is(#post-1978, #post-3) .entry-content {
    box-sizing: border-box;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 56px) clamp(8px, 3vw, 36px);
    color: #041f2f;
    font-size: 16px;
    line-height: 1.85;
    overflow-wrap: anywhere;
}

:is(#post-1978, #post-3) .entry-content h2 {
    margin: 0 0 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid #bcd1e6;
    color: #041f2f;
    font-size: clamp(26px, 4vw, 40px);
    line-height: 1.2;
    letter-spacing: .02em;
    text-align: center !important;
}

:is(#post-1978, #post-3) .entry-content p {
    margin: 0 0 24px;
    font-size: inherit;
    line-height: inherit;
    text-align: left !important;
}

:is(#post-1978, #post-3) .entry-content h2 + p {
    margin-bottom: 36px;
    font-size: 17px;
}



:is(#post-1978, #post-3) .entry-content a {
    color: #041f2f;
    text-decoration: underline;
    text-underline-offset: 3px;
}

:is(#post-1978, #post-3) .entry-content a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

/* Espaciado de Brooklyn: elimina el relleno superior e inferior indicado. */
:is(.ut-spacing-80, .ut-spacing-120, .ut-spacing-160, .ut-spacing-200):not(.blog):not(.archive):not(.search-results):not(.single-post):not(.single-product):not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account).ut-vc-disabled .main-content-background {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

:is(.ut-spacing-80, .ut-spacing-120, .ut-spacing-160, .ut-spacing-200).ut-vc-enabled.ut-has-page-title .page-header {
    padding-top: 0 !important;
}

/* Fondo de las paginas de terminos y condiciones y privacidad. */
body:is(.page-id-1978, .page-id-3) #main-content,
body:is(.page-id-1978, .page-id-3) .main-content-background,
.main-content-background:has(#post-1978, #post-3) {
    background-color: #f9f6f1 !important;
}

/* Hero: bloque centrado en la mitad izquierda, con todos sus elementos alineados a la izquierda. */
.hero-inner.ut-hero-custom-center {
    --hero-ancho-bloque: 560px;
    display: grid;
    grid-template-columns: minmax(0, var(--hero-ancho-bloque));
    justify-content: center;
    width: 50% !important;
    max-width: 50% !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    box-sizing: border-box;
    text-align: left !important;
}

.hero-inner.ut-hero-custom-center .hth {
    text-align: left !important;
}

.hero-inner.ut-hero-custom-center .hero-title {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.hero-inner.ut-hero-custom-center :is(.hero-title, .hero-title .ut-word-rotator-wrap, .hero-title .ut-word-rotator, .hero-title .ut-word-rotator div[data-title]) {
    text-align: left !important;
}

.hero-inner.ut-hero-custom-center .hero-title .ut-word-rotator div[data-title] span {
    display: block;
    white-space: nowrap !important;
}

.hero-inner.ut-hero-custom-center .hero-title .ut-word-rotator div[data-title] {
    white-space: nowrap !important;
    overflow: visible !important;
}

.hero-inner.ut-hero-custom-center .hero-title :is(.ut-word-rotator-wrap, .ut-word-rotator) {
    overflow: visible !important;
}

.hero-inner.ut-hero-custom-center :is(.hdb, .hero-description-bottom, .hdb .ut-word-rotator-wrap, .hdb .ut-word-rotator, .hdb .ut-word-rotator div[data-title], .hero-btn-holder) {
    text-align: left !important;
}

.hero-inner.ut-hero-custom-center .hdb {
    width: 100% !important;
    justify-self: stretch;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.hero-inner.ut-hero-custom-center .hero-description-bottom {
    display: block;
    width: 100% !important;
}

.hero-inner.ut-hero-custom-center .hdb .ut-word-rotator-wrap {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.hero-inner.ut-hero-custom-center .hero-btn-holder {
    display: flex !important;
    justify-content: flex-start;
    width: 100% !important;
    justify-self: stretch;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.hero-inner.ut-hero-custom-center .hero-btn {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

#ut-hero #to-about-section.hero-btn {
    border-radius: 10px !important;
    color: #000 !important;
    border-color: #000 !important;
}

/* Primera linea del rotador siempre en negro, sin importar la frase.
   Los spans dorados de la segunda linea quedan fuera. */
#ut-hero {
    --cn-hero-texto-rotador: #000;
}

#ut-hero .hero-title .ut-word-rotator > div {
    color: var(--cn-hero-texto-rotador) !important;
    -webkit-text-fill-color: currentColor !important;
}

/* Evita que el relleno del texto padre tape el degradado de la segunda linea. */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    #ut-hero .hero-title .ut-word-rotator > div[data-title] > span {
        -webkit-text-fill-color: transparent !important;
    }
}

/* Variable exclusiva: no modifica --cabecera-texto ni el contador azul. */
/* Cabecera siempre en negro: texto y logo ya no cambian con el rotador del hero. */
html body:has(#ut-hero) #header-section {
    --cn-header-texto-rotador: #000;
    --cn-header-logo-invertir: 0;
}

html body:has(#ut-hero) #header-section.ut-primary-custom-skin #navigation .ut-navigation-menu > li > a,
html body:has(#ut-hero) #header-section.ut-primary-custom-skin #navigation .ut-navigation-menu > li > a > span,
html body:has(#ut-hero) #header-section:is(.ut-primary-custom-skin, .ut-secondary-custom-skin) :is(.ut-header-cart, .ut-header-account) > i {
    color: var(--cn-header-texto-rotador) !important;
    -webkit-text-fill-color: currentColor !important;
    transition: color .55s ease-in-out !important;
}

/* brightness(0) aplana el degradado del logo a negro solido; invert(1) lo pasa a blanco solido.
   Misma lista de filtros en ambos estados para interpolar suavemente. */
html body:has(#ut-hero) #header-section:is(.ut-primary-custom-skin, .ut-secondary-custom-skin) .site-logo img {
    filter: brightness(0) invert(var(--cn-header-logo-invertir)) !important;
    transition: filter .55s ease-in-out !important;
}


/* Pagina 404 (404-n-e): el contenido esta vacio; solo se muestra el hero y el pie.
   Se colapsa en lugar de display:none porque #main-content es el waypoint que vuelve
   solido el header; oculto quedaria en 0 y el header perderia la transparencia. */
body.page-id-3061 #main-content {
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

/* Paginas de categoria (Moliendas, Galletas, Barras, Bombones, Cafe, Confitados, En Casa,
   Granel, Tabletas): la portada del hero se ve completa, mas chica y centrada debajo del menu.
   El contenedor toma el tamano de la imagen y sus orillas se difuminan: las portadas traen
   perfil de color y su beige cambia un poco segun el navegador, asi no se nota el corte. */
body:is(.page-id-2491, .page-id-2520, .page-id-2530, .page-id-2517, .page-id-2751,
        .page-id-2527, .page-id-2750, .page-id-2749, .page-id-2523) #ut-hero {
    --categoria-hero-alto: 90vh;
    --categoria-hero-bajar: 40px;
    --categoria-hero-difuminado: 2%;
    background: #F2EBDF !important;
}

body:is(.page-id-2491, .page-id-2520, .page-id-2530, .page-id-2517, .page-id-2751,
        .page-id-2527, .page-id-2750, .page-id-2749, .page-id-2523) #ut-hero .parallax-image-container {
    position: absolute !important;
    top: calc(50% + var(--categoria-hero-bajar)) !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
    height: var(--categoria-hero-alto) !important;
    max-width: 95% !important;
    aspect-ratio: 16 / 9;
    translate: -50% -50%;
    background-color: transparent !important;
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 var(--categoria-hero-difuminado), #000 calc(100% - var(--categoria-hero-difuminado)), transparent),
                        linear-gradient(to bottom, transparent, #000 var(--categoria-hero-difuminado), #000 calc(100% - var(--categoria-hero-difuminado)), transparent);
    -webkit-mask-composite: source-in;
    mask-image: linear-gradient(to right, transparent, #000 var(--categoria-hero-difuminado), #000 calc(100% - var(--categoria-hero-difuminado)), transparent),
                linear-gradient(to bottom, transparent, #000 var(--categoria-hero-difuminado), #000 calc(100% - var(--categoria-hero-difuminado)), transparent);
    mask-composite: intersect;
}

/* Celular: la imagen va al 90% del ancho y el hero se ajusta a ella (sin hueco vacio). */
@media (max-width: 1024px) {
    body:is(.page-id-2491, .page-id-2520, .page-id-2530, .page-id-2517, .page-id-2751,
            .page-id-2527, .page-id-2750, .page-id-2749, .page-id-2523) #ut-hero {
        --categoria-hero-ancho-movil: 90vw;
        --categoria-hero-margen-movil: 24px;
        --categoria-hero-alto-movil: calc(var(--alto-cabecera, 80px) + var(--categoria-hero-ancho-movil) * 9 / 16 + 2 * var(--categoria-hero-margen-movil));
        height: var(--categoria-hero-alto-movil) !important;
        min-height: var(--categoria-hero-alto-movil) !important;
        flex-shrink: 0 !important;
    }

    body:is(.page-id-2491, .page-id-2520, .page-id-2530, .page-id-2517, .page-id-2751,
            .page-id-2527, .page-id-2750, .page-id-2749, .page-id-2523) #ut-hero .parallax-image-container {
        top: calc(50% + var(--alto-cabecera, 80px) / 2) !important;
        width: var(--categoria-hero-ancho-movil) !important;
        height: auto !important;
        max-width: none !important;
    }
}

/* Pantallas grandes (>= 2000px): el contenido crece con la pantalla (~70% del ancho, la misma proporcion que en 1920)
   en lugar de quedarse en 1340px (contenedor del tema) y 1140px (productos, sucursales, mapa). */
@media (min-width: 2000px) {
    body {
        --ancho-cuadricula: calc(70vw - 200px);
    }

    html body .grid-container {
        max-width: 70vw;
    }

    body:is(.woocommerce, :has(.woocommerce)) ul.products {
        --ancho-cuadricula: calc(70vw - 200px);
    }

    .vc_row.sucursales02,
    .sucursales02,
    .sucursales-mapa {
        max-width: calc(70vw - 200px) !important;
    }
}

/* Productos: al filtrar una categoria con pocos productos (p. ej. En Casa),
   el fondo crema llega hasta el pie de pagina en lugar de dejar una franja blanca. */
body.page-id-1974 #main-content {
    background-color: #f9f6f1 !important;
}

/* Paginas Categoria-* (Moliendas, Bombones, Galletas, Tabletas, Confitados, Barras,
   Granel, En Casa, Cafe): si la pagina es mas corta que la pantalla, el fondo crema
   llega hasta el pie de pagina en lugar de dejar una franja blanca. */
body:is(.page-id-2491, .page-id-2517, .page-id-2520, .page-id-2523, .page-id-2527, .page-id-2530, .page-id-2749, .page-id-2750, .page-id-2751) #main-content {
    background-color: #f2ebdf !important;
}

/* Barra de envio gratis (plugin cn-envio-gratis).
   --completa: carrito, debajo de "Total estimado". --compacta: mini carrito del header,
   arriba de los botones Ver carrito / Comprar. El ancho del relleno lo pone el plugin. */
.cn-envio-gratis {
    --envio-relleno: #5C271A;
    --envio-fondo: #EBE1DA;
    --envio-alto: 8px;

    box-sizing: border-box;
    text-align: center;
}

.cn-envio-gratis.is-oculto {
    display: none !important;
}

.cn-envio-gratis__mensaje {
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: #000 !important;
    font-family: var(--cn-cuerpo) !important;
    font-size: 14px !important;
    font-style: normal !important;
    line-height: 1.35 !important;
}

.cn-envio-gratis__mensaje strong,
.cn-envio-gratis__mensaje .amount {
    color: var(--envio-relleno) !important;
    font-family: var(--cn-cuerpo) !important;
    font-style: normal !important;
    font-weight: 700 !important;
}

.cn-envio-gratis__barra {
    position: relative;
    overflow: hidden;
    height: var(--envio-alto);
    border-radius: 999px;
    background: var(--envio-fondo);
}

.cn-envio-gratis__relleno {
    position: absolute;
    inset: 0 auto 0 0;
    display: block;
    max-width: 100%;
    border-radius: inherit;
    background: var(--envio-relleno);
    transition: width .9s cubic-bezier(.25, .8, .25, 1);
}

/* Brillo que recorre la barra mientras se llena. */
.cn-envio-gratis__relleno::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
    transform: translateX(-100%);
    animation: cn-envio-brillo 2.4s ease-in-out infinite;
}

@keyframes cn-envio-brillo {
    60%, 100% { transform: translateX(100%); }
}

.cn-envio-gratis.is-gratis .cn-envio-gratis__mensaje {
    color: var(--envio-relleno) !important;
    font-weight: 700 !important;
}

.cn-envio-gratis.is-gratis .cn-envio-gratis__relleno::after {
    animation: none;
}

/* Carrito: dentro del recuadro "Total del carrito", entre el total y el boton de pago. */
.cn-envio-gratis--completa {
    margin: 16px 0 !important;
    padding: 14px 16px;
    border-radius: 8px;
    background: #f0ebe4;
}

/* Pago: en el resumen del pedido, entre la lista de productos y el subtotal. */
.cn-envio-gratis--pago {
    margin: 4px 16px 16px !important;
}

/* Mini carrito: una linea y barra delgada. */
.cn-envio-gratis--compacta {
    --envio-alto: 5px;
    margin: 4px 0 12px;
}

.cn-envio-gratis--compacta .cn-envio-gratis__mensaje {
    margin-bottom: 6px !important;
    font-size: 12px !important;
}

@media (prefers-reduced-motion: reduce) {
    .cn-envio-gratis__relleno {
        transition: none;
    }

    .cn-envio-gratis__relleno::after {
        animation: none;
    }
}
