/* ==========================================================================
   VOCES DE LA NATURALEZA · CSS DEL SITIO
   Este archivo lo carga el plugin «Voces de la Naturaleza — Funciones».
   No hace falta pegarlo en Elementor.

   CÓMO ENCONTRAR UNA SECCIÓN: busca (Cmd + F) por ejemplo «SECCION 06»
     SECCION 01  Variables y base
     SECCION 02  Botones, eyebrow y pills
     SECCION 03  Header
     SECCION 04  Menú pantalla completa (popup)
     SECCION 05  Footer
     SECCION 06  Cards (Loop Items)
     SECCION 07  Tienda y categorías
     SECCION 08  Fichas de producto
     SECCION 09  Blog (entrada)
     SECCION 10  Inicio
     SECCION 11  Formularios, Contacto y Creadora
     SECCION 12  Carrito, checkout y gracias
     SECCION 13  Responsive
   ========================================================================== */


/* ##########################################################################
   SECCION 01 · VARIABLES Y BASE
   ########################################################################## */
:root {
  --vn-fondo: #f8eff1;
  --vn-caja: #f0e3e2;
  --vn-claro: #fcf7f8;
  --vn-foto: #d1cec8;
  --vn-texto: #47372c;
  --vn-parrafo: #73655d;
  --vn-linea: rgba(71, 55, 44, 0.15);
  --vn-azul: #1b3c53;
  --vn-azul-medio: #234c6a;
  --vn-azul-suave: #456882;
  --vn-salvia: #c7d3c0;
  --vn-footer-hover: #c7d3c0;
  --vn-rosa: #c99aa1;
  --vn-gris: #6e6a64;
  --vn-crema: #f7f2eb;
  --vn-section-y: clamp(4rem, 2.6rem + 5.6vw, 7.5rem);
  --vn-gutter: clamp(1.25rem, 0.6rem + 2.6vw, 2.5rem);
  --vn-container: 80rem;
  --vn-gap-s: 1rem;
  --vn-gap-m: 1.75rem;
  --vn-gap-l: 3rem;
  --vn-gap-xl: 6rem;
}
body {
  background: var(--vn-fondo);
  color: var(--vn-texto);
  overflow-x: clip;
}
a {
  color: var(--vn-azul);
  transition: color 0.2s ease;
}
a:hover {
  color: var(--vn-azul-medio);
}
/* Links dentro de textos (correo, párrafos): misma letra que el texto */
.elementor-widget-text-editor a {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  text-transform: none !important;
  color: inherit;
}

.vn-section {
  padding: var(--vn-section-y) var(--vn-gutter);
}
.vn-wrap {
  max-width: var(--vn-container);
  margin-inline: auto;
  width: 100%;
}
.vn-foto {
  background: var(--vn-foto);
}

/* Secciones de color: textos y links en el tono correcto */
.vn-salvia,
.vn-salvia a,
.vn-salvia .elementor-heading-title {
  color: var(--vn-texto) !important;
}
.vn-oscuro,
.vn-oscuro a,
.vn-oscuro .elementor-heading-title {
  color: var(--vn-crema) !important;
}


/* ##########################################################################
   SECCION 02 · BOTONES, EYEBROW Y PILLS
   ########################################################################## */
.vn-eyebrow .elementor-heading-title {
  font-family: Inter, sans-serif;
  font-size: 0.6875rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--vn-azul-suave);
}

/* Botones: usa UNA sola clase por botón
   vn-btn         outline azul (fondos claros)
   vn-btn--claro  outline crema (fondos oscuros)
   vn-link        texto + flecha azul (fondos claros)
   vn-link--claro texto + flecha crema (fondos oscuros)
   No hace falta elegir icono ni tocar la pestaña Estilo del widget. */

/* Botón outline */
.vn-btn .elementor-button,
.vn-btn--claro .elementor-button {
  display: inline-flex !important;
  align-items: center;
  min-height: 3.125rem;
  padding: 0 2.25rem !important;
  border: 1px solid var(--vn-azul) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--vn-azul) !important;
  font-family: Inter, sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  transition:
    background-color 0.25s ease,
    color 0.25s ease;
}
.vn-btn .elementor-button:hover {
  background: var(--vn-azul) !important;
  color: var(--vn-fondo) !important;
}
.vn-btn--claro .elementor-button {
  border-color: var(--vn-crema) !important;
  color: var(--vn-crema) !important;
}
.vn-btn--claro .elementor-button:hover {
  background: var(--vn-crema) !important;
  color: var(--vn-azul) !important;
}

/* Botón texto con flecha (la flecha la agrega el CSS; si eliges un icono, se oculta).
   Hover sutil: solo baja la opacidad. */
.vn-link .elementor-button,
.vn-link--claro .elementor-button {
  display: inline-flex !important;
  align-items: center;
  width: auto !important;
  min-height: 3rem;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid currentColor !important;
  border-radius: 0 !important;
  color: var(--vn-azul) !important;
  font-family: Inter, sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.vn-link .elementor-button {
  transition: opacity 0.25s ease;
}
.vn-link .elementor-button:hover,
.vn-link--claro .elementor-button:hover {
  background: transparent !important;
  opacity: 0.7;
}
.vn-link .elementor-button:hover {
  color: var(--vn-azul) !important;
}
.vn-link--claro .elementor-button,
.vn-link--claro .elementor-button:hover {
  background: transparent !important;
  color: var(--vn-crema) !important;
}
.vn-link--claro .elementor-button {
  transition: opacity 0.25s ease;
}
.vn-link .elementor-button-content-wrapper,
.vn-link--claro .elementor-button-content-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}
.vn-link .elementor-button-icon,
.vn-link--claro .elementor-button-icon {
  display: none !important;
}
.vn-link .elementor-button-content-wrapper::after,
.vn-link--claro .elementor-button-content-wrapper::after {
  content: "";
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E")
    center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E")
    center/contain no-repeat;
}
/* Los botones no se estiran al ancho completo */
.elementor-widget.vn-link,
.elementor-widget.vn-link--claro,
.elementor-widget.vn-btn,
.elementor-widget.vn-btn--claro {
  width: auto;
  max-width: max-content;
}

/* Pills (filtros, subcategorías, categorías) */
.vn-pills .e-filter-item,
.vn-pills a {
  min-height: 2.75rem;
  padding: 0 1.25rem;
  border: 1px solid rgba(27, 60, 83, 0.4);
  border-radius: 999px;
  background: transparent;
  color: var(--vn-azul);
  font-family: Inter, sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
}
.vn-pills .e-filter-item[aria-pressed="true"],
.vn-pills .current-menu-item > a,
.vn-pills a.elementor-item-active {
  background: var(--vn-azul);
  border-color: var(--vn-azul);
  color: var(--vn-fondo);
}
/* Pills hechas con el widget Menú de navegación: en línea, del ancho de su texto */
.vn-pills .elementor-nav-menu {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.vn-pills .elementor-nav-menu > li {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
}
.vn-pills .elementor-nav-menu a.elementor-item {
  padding: 0 1.25rem !important;
  margin: 0 !important;
  line-height: 1.2;
}
.vn-pills .elementor-item::before,
.vn-pills .elementor-item::after {
  display: none !important;
}
.vn-pills--claro a {
  border-color: rgba(247, 242, 235, 0.45) !important;
  color: var(--vn-crema) !important;
}
.vn-pills--claro a:hover {
  background: var(--vn-crema) !important;
  color: var(--vn-azul) !important;
}


/* ##########################################################################
   SECCION 03 · HEADER
   ########################################################################## */
/* El header nunca es más ancho que la pantalla (evita el scroll lateral en móvil). Contenido máx. 1280px */
.elementor-location-header,
.vn-header {
  max-width: 100% !important;
  overflow-x: clip;
}
.vn-header {
  width: 100% !important;
  flex-wrap: nowrap !important;
}
.vn-header.e-con-boxed > .e-con-inner {
  max-width: min(1280px, 100%) !important;
  flex-wrap: nowrap !important;
}
/* Logo del header: tamaño fijo, nunca se encoge (130 / 110 / 90 px) */
.vn-header .elementor-widget-theme-site-logo,
.vn-header .elementor-widget-image {
  flex: 0 0 auto !important;
  width: auto !important;
}
.vn-header .elementor-widget-theme-site-logo img,
.vn-header .elementor-widget-image img {
  width: 130px !important;
  max-width: none !important;
  height: auto !important;
}
@media (max-width: 1024px) {
  .vn-header .elementor-widget-theme-site-logo img,
  .vn-header .elementor-widget-image img {
    width: 110px !important;
  }
}
@media (max-width: 767px) {
  .vn-header .elementor-widget-theme-site-logo img,
  .vn-header .elementor-widget-image img {
    width: 90px !important;
  }
}
html {
  overflow-x: clip;
}
.vn-header {
  transition:
    background-color 0.35s ease,
    box-shadow 0.35s ease;
}
.vn-header--transparente {
  background: transparent;
}
.vn-header--transparente,
.vn-header--transparente a.elementor-item,
.vn-header--transparente .elementor-icon,
.vn-header--transparente .elementor-menu-cart__toggle .elementor-button,
.vn-header--transparente .elementor-search-form__toggle i {
  color: var(--vn-crema) !important;
  fill: var(--vn-crema);
}
.vn-header--transparente .elementor-widget-theme-site-logo img {
  filter: brightness(0) invert(1);
}
/* Al hacer scroll (Elementor agrega .elementor-sticky--effects) */
.vn-header.elementor-sticky--effects {
  background: var(--vn-fondo) !important;
  box-shadow: 0 1px 0 rgba(71, 55, 44, 0.12);
}
.vn-header--transparente.elementor-sticky--effects a.elementor-item,
.vn-header--transparente.elementor-sticky--effects .elementor-icon,
.vn-header--transparente.elementor-sticky--effects .elementor-menu-cart__toggle .elementor-button,
.vn-header--transparente.elementor-sticky--effects .elementor-search-form__toggle i {
  color: var(--vn-azul) !important;
  fill: var(--vn-azul);
}
.vn-header--transparente.elementor-sticky--effects .elementor-widget-theme-site-logo img {
  filter: none;
}
/* Header transparente: subrayado del menú y borde también en crema; al hacer scroll vuelven a azul */
.vn-header--transparente {
  border-bottom-color: transparent !important;
}
.vn-header--transparente .elementor-item::after,
.vn-header--transparente .elementor-item::before {
  background-color: var(--vn-crema) !important;
}
.vn-header--transparente .elementor-menu-cart__toggle .elementor-button-icon-qty {
  background: var(--vn-rosa) !important;
  color: #fff !important;
}
.vn-header--transparente.elementor-sticky--effects {
  border-bottom-color: var(--vn-linea) !important;
}
.vn-header--transparente.elementor-sticky--effects .elementor-item::after,
.vn-header--transparente.elementor-sticky--effects .elementor-item::before {
  background-color: var(--vn-azul) !important;
}
/* Búsqueda (widget Formulario de búsqueda, skin Pantalla completa): solo la lupa, sin caja */
.elementor-widget-search-form {
  width: auto !important;
  max-width: max-content;
}
.elementor-search-form__toggle {
  --e-search-form-toggle-size: 1.5rem !important;
  --e-search-form-toggle-icon-size: 1.25rem !important;
  --e-search-form-toggle-background-color: transparent !important;
  --e-search-form-toggle-border-width: 0 !important;
  width: 1.5rem !important;
  height: 1.5rem !important;
  color: var(--vn-azul);
  cursor: pointer;
}
.elementor-search-form__toggle > div,
.elementor-search-form__toggle i {
  background: transparent !important;
  border: 0 !important;
  color: inherit;
}
.elementor-search-form__toggle svg {
  fill: currentColor;
}
/* Pantalla de búsqueda abierta: fondo Énfasis, texto crema grande, línea inferior */
.elementor-search-form--skin-full_screen .elementor-search-form__container {
  background: rgba(27, 60, 83, 0.97) !important;
}
.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input {
  font-family: Newsreader, Georgia, serif !important;
  font-weight: 300 !important;
  font-size: clamp(2rem, 1.2rem + 3vw, 3.5rem) !important;
  color: var(--vn-crema) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(247, 242, 235, 0.5) !important;
  border-radius: 0 !important;
  background: transparent !important;
  text-align: left;
}
.elementor-search-form--skin-full_screen input[type="search"]::placeholder {
  color: rgba(247, 242, 235, 0.55);
}
.elementor-search-form--skin-full_screen .dialog-lightbox-close-button {
  color: var(--vn-crema) !important;
  font-size: 1.5rem;
}
/* Iconos del header (lupa, hamburguesa): mismo azul que el menú, sin importar el panel. El header transparente los cambia a crema */
.vn-header:not(.vn-header--transparente) .elementor-icon,
.vn-header:not(.vn-header--transparente) .elementor-icon i {
  color: var(--vn-azul) !important;
  opacity: 1 !important;
}
.vn-header .elementor-icon svg {
  fill: currentColor;
}
.vn-header .elementor-icon svg[fill="none"] {
  fill: none !important;
  stroke: currentColor;
}
/* Carrito del menú (header): solo el icono de 22px + burbuja rosa. El CSS manda sobre el panel */
.elementor-widget-woocommerce-menu-cart {
  width: auto !important;
  max-width: max-content;
}
.elementor-menu-cart__toggle_wrapper,
.elementor-menu-cart__toggle {
  line-height: 1 !important;
  display: inline-flex;
}
.elementor-menu-cart__toggle .elementor-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  height: auto !important;
  padding: 0.25rem !important;
  border: 0 !important;
  background: transparent !important;
  min-height: 0 !important;
  box-shadow: none !important;
  color: var(--vn-azul) !important;
  overflow: visible !important;
}
.elementor-menu-cart__toggle .elementor-button-text {
  display: none !important;
}
.elementor-menu-cart__toggle .elementor-button-icon {
  position: relative !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-size: 1.375rem !important;
  line-height: 1 !important;
  color: inherit !important;
  margin: 0 !important;
}
.elementor-menu-cart__toggle .elementor-button-icon i {
  font-size: 1.375rem !important;
  color: inherit !important;
}
.elementor-menu-cart__toggle .elementor-button-icon svg {
  width: 1.375rem !important;
  height: 1.375rem !important;
  fill: currentColor !important;
}
.elementor-menu-cart__toggle .elementor-button-icon svg:not([fill="none"]) path {
  fill: currentColor;
}
.elementor-menu-cart__toggle .elementor-button-icon svg[fill="none"] {
  fill: none !important;
  stroke: currentColor;
}
.elementor-menu-cart__toggle .elementor-button-icon-qty {
  position: absolute !important;
  top: -0.45rem !important;
  right: -0.6rem !important;
  left: auto !important;
  min-width: 1.1rem !important;
  height: 1.1rem !important;
  padding: 0 0.25rem !important;
  box-sizing: border-box;
  border-radius: 999px !important;
  background: var(--vn-rosa) !important;
  color: #fff !important;
  font-family: Inter, sans-serif;
  font-size: 0.625rem !important;
  font-weight: 500;
  line-height: 1.1rem !important;
  text-align: center;
}
/* Sin productos: se oculta la burbuja */
.elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter="0"] {
  display: none !important;
}
/* Carrito en el menú pantalla completa: círculo de 48px igual al botón cerrar */
/* Carrito y cerrar del menú: los dos círculos de 48px, borde crema 1px, icono 20px (el CSS manda sobre el panel) */
.vn-menu .elementor-menu-cart__toggle .elementor-button,
.vn-menu-cerrar .elementor-icon {
  box-sizing: border-box !important;
  width: 3rem !important;
  height: 3rem !important;
  min-width: 3rem;
  padding: 0 !important;
  display: inline-flex !important;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem !important;
  line-height: 1 !important;
  background: transparent !important;
  border: 1px solid var(--vn-crema) !important;
  border-radius: 999px !important;
  color: var(--vn-crema) !important;
}
.vn-menu .elementor-menu-cart__toggle .elementor-button-icon,
.vn-menu-cerrar .elementor-icon i {
  font-size: 1.25rem !important;
  color: var(--vn-crema) !important;
}
.vn-menu .elementor-menu-cart__toggle .elementor-button-icon svg,
.vn-menu-cerrar .elementor-icon svg {
  width: 1.25rem !important;
  height: 1.25rem !important;
}
.vn-menu-cerrar .elementor-icon svg[fill="none"] {
  stroke: var(--vn-crema);
}
.vn-menu-cerrar .elementor-icon svg:not([fill="none"]) {
  fill: var(--vn-crema);
}
.vn-menu .elementor-menu-cart__toggle .elementor-button-text {
  display: none !important;
}
.vn-menu .elementor-menu-cart__toggle .elementor-button {
  position: relative !important;
}
.vn-menu .elementor-menu-cart__toggle .elementor-button-icon {
  position: static !important;
}
.vn-menu .elementor-menu-cart__toggle .elementor-button-icon-qty {
  top: -0.15rem !important;
  right: -0.15rem !important;
}
/* Contador del carrito */


/* Header en tablet y móvil: el grupo de iconos (lupa, carrito, hamburguesa) toma solo su ancho
   y se pega a la derecha, para que la hamburguesa no quede fuera de la pantalla */
@media (max-width: 1024px) {
  .vn-header > .e-con-inner > .e-con:last-child,
  .vn-header > .e-con:last-child {
    --width: auto;
    width: auto !important;
    margin-left: auto;
  }
}


/* ##########################################################################
   SECCION 04 · MENÚ PANTALLA COMPLETA (POPUP)
   ########################################################################## */
.vn-menu {
  color: var(--vn-crema);
  position: relative;
}
.vn-menu::before,
.vn-menu::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(247, 242, 235, 0.12);
  border-radius: 50%;
  pointer-events: none;
}
.vn-menu::before {
  width: 32rem;
  height: 32rem;
  right: -12rem;
  top: -8rem;
}
.vn-menu::after {
  width: 20rem;
  height: 20rem;
  left: -8rem;
  bottom: -6rem;
}

.vn-menu-nav .elementor-nav-menu {
  counter-reset: vn;
}
.vn-menu-nav .elementor-nav-menu > li {
  counter-increment: vn;
  opacity: 0;
  transform: translateY(1rem);
  animation: vnFadeUp 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}
.vn-menu-nav .elementor-nav-menu > li:nth-child(1) {
  animation-delay: 0.05s;
}
.vn-menu-nav .elementor-nav-menu > li:nth-child(2) {
  animation-delay: 0.1s;
}
.vn-menu-nav .elementor-nav-menu > li:nth-child(3) {
  animation-delay: 0.15s;
}
.vn-menu-nav .elementor-nav-menu > li:nth-child(4) {
  animation-delay: 0.2s;
}
.vn-menu-nav .elementor-nav-menu > li:nth-child(5) {
  animation-delay: 0.25s;
}
.vn-menu-nav .elementor-nav-menu > li:nth-child(6) {
  animation-delay: 0.3s;
}
.vn-menu-nav .elementor-nav-menu > li:nth-child(7) {
  animation-delay: 0.35s;
}
.vn-menu-nav a.elementor-item {
  font-family: Newsreader, Georgia, serif !important;
  font-weight: 300 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-size: clamp(2rem, 1.2rem + 2.4vw, 3rem) !important;
  line-height: 1.15 !important;
  color: var(--vn-crema) !important;
  padding: 0.35rem 0 !important;
  min-width: 0;
  gap: 1rem;
}

.vn-menu-nav a.elementor-item-active {
  font-style: italic;
}
.vn-menu-nav .elementor-nav-menu > li {
  display: flex !important;
  align-items: center;
  gap: 1.25rem;
  border-bottom: 1px solid rgba(247, 242, 235, 0.15);
}
/* Número 01–07: va en el <li>, no en el link, para que el hover de Elementor no lo mueva */
.vn-menu-nav .elementor-nav-menu > li::before {
  content: counter(vn, decimal-leading-zero);
  flex: 0 0 1.5rem;
  font-family: Inter, sans-serif;
  font-size: 0.6875rem;
  font-style: normal;
  letter-spacing: 0.2em;
  color: var(--vn-crema);
  opacity: 0.6;
}
.vn-menu-nav a.elementor-item::before {
  display: none !important;
  content: none !important;
}
.vn-menu-nav .elementor-nav-menu > li > a {
  flex: 1 1 auto;
  min-width: 0;
}
.vn-menu-nav a.elementor-item {
  display: flex !important;
  align-items: center;
  width: 100%;
}
/* Flecha a la derecha de cada link */
.vn-menu-nav a.elementor-item::after {
  content: "" !important;
  display: block !important;
  position: static !important;
  opacity: 0.45 !important;
  margin-left: auto;
  flex: 0 0 1.25rem;
  width: 1.25rem;
  height: 1.25rem;
  background: currentColor !important;
  transform: none !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E")
    center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E")
    center/contain no-repeat;
}
.vn-menu-nav a.elementor-item:hover::after {
  opacity: 0.9 !important;
}

/* Barra superior y pie del menú, con línea divisoria */
.vn-menu-barra {
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(247, 242, 235, 0.2);
}
.vn-menu-pie {
  padding-top: 1.5rem;
  border-top: 1px solid rgba(247, 242, 235, 0.2);
}
/* Oculta la X por defecto del popup cuando contiene el menú (respaldo del ajuste Botón de cerrar: Ocultar) */
.dialog-widget:has(.vn-menu) .dialog-close-button {
  display: none !important;
}
/* Redes en el menú: círculos de línea, sin relleno */
/* Redes en el menú: círculos de línea de 48px (igual que carrito y cerrar), sin relleno */
.vn-menu .elementor-social-icon {
  width: 3rem !important;
  height: 3rem !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border: 1px solid var(--vn-crema) !important;
  border-radius: 999px !important;
  color: var(--vn-crema) !important;
  transition: opacity 0.25s ease;
}
.vn-menu .elementor-social-icon:hover {
  opacity: 0.7;
}
.vn-menu .elementor-social-icon i {
  font-size: 1.125rem !important;
  color: var(--vn-crema) !important;
}
.vn-menu .elementor-social-icon svg {
  width: 1.25rem !important;
  height: 1.25rem !important;
  fill: var(--vn-crema);
}
/* Iconos SVG de línea (los del zip voces-iconos): solo trazo, sin relleno */
.vn-menu .elementor-social-icon svg[fill="none"] {
  fill: none !important;
  stroke: var(--vn-crema);
}
.vn-menu .elementor-social-icon svg[fill="none"] circle[fill] {
  fill: var(--vn-crema);
}
@keyframes vnFadeUp {
  to {
    opacity: 1;
    transform: none;
  }
}


/* ##########################################################################
   SECCION 05 · FOOTER
   ########################################################################## */
.vn-legal a,
.vn-legal .elementor-heading-title {
  font-family: Inter, sans-serif;
  font-size: 0.625rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
/* Hover de links del footer: verde salvia + subrayado fino (no aplica a botones ni iconos) */
.elementor-location-footer
  a:not(.elementor-button):not(.elementor-icon):not(.elementor-social-icon),
.elementor-location-footer .elementor-item {
  transition: color 0.25s ease !important;
  text-decoration: none;
  text-underline-offset: 0.3em;
  text-decoration-thickness: 1px;
}
.elementor-location-footer
  a:not(.elementor-button):not(.elementor-icon):not(.elementor-social-icon):hover,
.elementor-location-footer
  a:not(.elementor-button):not(.elementor-icon):not(.elementor-social-icon):focus-visible,
.elementor-location-footer .elementor-item:hover,
.elementor-location-footer .elementor-item:focus-visible,
.elementor-location-footer .elementor-item.elementor-item-active:hover {
  color: var(--vn-footer-hover) !important;
  text-decoration: underline !important;
  text-decoration-color: var(--vn-footer-hover) !important;
}
.elementor-location-footer .elementor-item::before,
.elementor-location-footer .elementor-item::after {
  display: none !important;
}
.elementor-location-footer .elementor-social-icon {
  transition: opacity 0.25s ease;
}
.elementor-location-footer .elementor-social-icon:hover {
  opacity: 0.7;
}


/* ##########################################################################
   SECCION 06 · CARDS (LOOP ITEMS)
   ########################################################################## */
.vn-card img {
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.vn-card:hover img {
  transform: scale(1.03);
}
.vn-card .elementor-widget-theme-post-featured-image {
  overflow: hidden;
  background: var(--vn-foto);
}
.vn-card .elementor-widget-theme-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* --- Cards de producto: el CSS pone foto, tipografía y espacios. En el panel solo widgets + clase --- */
.vn-card {
  display: flex !important;
  flex-direction: column;
  gap: 0 !important;
  padding: 0;
}
.vn-card > .e-con-inner {
  display: flex;
  flex-direction: column;
  gap: 0 !important;
  padding: 0 !important;
  width: 100%;
}
/* Foto 4:5 que llena el ancho */
.vn-card .elementor-widget-theme-post-featured-image,
.vn-card .elementor-widget-theme-post-featured-image a,
.vn-card .elementor-widget-image,
.vn-card .elementor-widget-image a {
  display: block;
  width: 100%;
  overflow: hidden;
  background: var(--vn-foto);
}
.vn-card .elementor-widget-theme-post-featured-image img,
.vn-card .elementor-widget-image img {
  aspect-ratio: 4/5;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  object-fit: cover;
}
/* Nombre del producto: Newsreader 300, 22px */
.vn-card .elementor-widget-woocommerce-product-title .elementor-heading-title,
.vn-card .elementor-widget-woocommerce-product-title .product_title {
  margin: 1rem 0 0 !important;
  font-family: Newsreader, Georgia, serif !important;
  font-weight: 300 !important;
  font-size: 1.375rem !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--vn-texto) !important;
}
.vn-card .elementor-widget-woocommerce-product-title a {
  color: inherit !important;
}
/* Precio: Inter 14px, "Desde $X" lo pone el plugin */
.vn-card .elementor-widget-woocommerce-product-price {
  margin-top: 0.375rem;
}
.vn-card .elementor-widget-woocommerce-product-price .price,
.vn-card .elementor-widget-woocommerce-product-price .amount {
  font-family: Inter, sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  color: var(--vn-parrafo) !important;
  margin: 0 !important;
}
.vn-card .elementor-widget-woocommerce-product-price del {
  opacity: 0.6;
  margin-right: 0.4em;
}
.vn-card .elementor-widget-woocommerce-product-price ins {
  text-decoration: none;
}
/* Botón "Ver más / Ver opciones" (clase vn-link) */
.vn-card .elementor-widget-button {
  margin-top: 0.625rem;
}
/* Ilustración destacada: foto más grande y título 30px */
.vn-card--ilu-xl .elementor-widget-theme-post-featured-image img,
.vn-card--ilu-xl .elementor-widget-image img {
  aspect-ratio: 1/1;
}
.vn-card--ilu-xl .elementor-widget-woocommerce-product-title .elementor-heading-title,
.vn-card--ilu-xl .elementor-widget-woocommerce-product-title .product_title {
  font-size: 1.875rem !important;
  margin-top: 1.125rem !important;
}
/* Libro horizontal: caja rosada, portada a la izquierda, texto a la derecha */
.vn-card--libro,
.vn-card--libro > .e-con-inner {
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.75rem !important;
}
.vn-card--libro {
  padding: 2rem !important;
  background: var(--vn-caja) !important;
}
.vn-card--libro .elementor-widget-theme-post-featured-image,
.vn-card--libro .elementor-widget-image {
  flex: 0 0 200px !important;
  width: 200px !important;
}
.vn-card--libro .elementor-widget-theme-post-featured-image img,
.vn-card--libro .elementor-widget-image img {
  aspect-ratio: 20/27;
}
.vn-card--libro > .e-con,
.vn-card--libro > .e-con-inner > .e-con {
  flex: 1 1 200px !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.625rem !important;
  padding: 0 !important;
}
.vn-card--libro .elementor-widget-woocommerce-product-title .elementor-heading-title,
.vn-card--libro .elementor-widget-woocommerce-product-title .product_title {
  font-size: 1.875rem !important;
  line-height: 1.15 !important;
  margin: 0 !important;
}
.vn-card--libro .elementor-widget-woocommerce-product-price {
  margin-top: 0;
}
.vn-card--libro .elementor-widget-woocommerce-product-short-description,
.vn-card--libro .elementor-widget-woocommerce-product-short-description p,
.vn-card--libro .elementor-widget-text-editor,
.vn-card--libro .elementor-widget-text-editor p {
  font-family: Literata, Georgia, serif !important;
  font-weight: 300 !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  color: var(--vn-parrafo) !important;
  margin: 0;
}
.vn-card--libro .vn-eyebrow .elementor-heading-title {
  color: var(--vn-azul-suave) !important;
}
@media (max-width: 767px) {
  .vn-card--libro {
    padding: 1.5rem !important;
  }
  .vn-card--libro .elementor-widget-theme-post-featured-image,
  .vn-card--libro .elementor-widget-image {
    flex-basis: 100% !important;
    width: 100% !important;
  }
}
/* --- Card 5 · Entrada --- */
.vn-card--post .elementor-widget-theme-post-featured-image img,
.vn-card--post .elementor-widget-image img {
  aspect-ratio: 3/2;
}
.vn-card .elementor-widget-post-info {
  margin-top: 1.125rem;
}
.vn-card .elementor-widget-post-info .elementor-icon-list-items {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  padding: 0;
}
.vn-card .elementor-widget-post-info .elementor-icon-list-item {
  margin: 0 !important;
  padding: 0 !important;
}
.vn-card .elementor-widget-post-info .elementor-icon-list-item + .elementor-icon-list-item::before {
  content: "·";
  margin: 0 0.6em;
  color: var(--vn-azul-suave);
}
.vn-card .elementor-widget-post-info .elementor-icon-list-icon,
.vn-card .elementor-widget-post-info .elementor-icon-list-item::after {
  display: none !important;
}
.vn-card .elementor-widget-post-info .elementor-icon-list-text,
.vn-card .elementor-widget-post-info a {
  font-family: Inter, sans-serif !important;
  font-size: 0.625rem !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: var(--vn-azul-suave) !important;
  padding: 0 !important;
}
.vn-card .elementor-widget-theme-post-title .elementor-heading-title {
  margin: 0.625rem 0 0 !important;
  font-family: Newsreader, Georgia, serif !important;
  font-weight: 300 !important;
  font-size: 1.625rem !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--vn-texto) !important;
}
.vn-card .elementor-widget-theme-post-title a {
  color: inherit !important;
}
.vn-card .elementor-widget-theme-post-excerpt,
.vn-card .elementor-widget-theme-post-excerpt p {
  font-family: Literata, Georgia, serif;
  font-weight: 300;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--vn-parrafo);
  margin: 0;
}
/* --- Card 6 · Entrada destacada: foto 3/5 + texto 2/5 en caja rosada --- */
.vn-card--post-xl,
.vn-card--post-xl > .e-con-inner {
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 2.5rem 4rem !important;
}
.vn-card--post-xl {
  background: var(--vn-caja) !important;
}
.vn-card--post-xl .elementor-widget-theme-post-featured-image,
.vn-card--post-xl .elementor-widget-image {
  flex: 3 1 460px !important;
  width: auto !important;
  min-width: 0;
}
.vn-card--post-xl .elementor-widget-theme-post-featured-image img,
.vn-card--post-xl .elementor-widget-image img {
  aspect-ratio: auto;
  height: 30rem !important;
}
.vn-card--post-xl > .e-con,
.vn-card--post-xl > .e-con-inner > .e-con {
  flex: 2 1 320px !important;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem !important;
  padding: 2.5rem 3rem 2.5rem 0 !important;
}
.vn-card--post-xl .elementor-widget-theme-post-title .elementor-heading-title {
  font-size: 2.5rem !important;
  line-height: 1.12 !important;
  margin: 0 !important;
}
@media (max-width: 767px) {
  .vn-card--post-xl .elementor-widget-theme-post-featured-image img,
  .vn-card--post-xl .elementor-widget-image img {
    height: 16.25rem !important;
  }
  .vn-card--post-xl > .e-con,
  .vn-card--post-xl > .e-con-inner > .e-con {
    padding: 0 1.5rem 1.5rem !important;
  }
  .vn-card--post-xl .elementor-widget-theme-post-title .elementor-heading-title {
    font-size: 1.875rem !important;
  }
}
/* --- Card 7 · Encuentro: fila con fecha, info y botón WhatsApp --- */
.vn-btn .elementor-button-content-wrapper,
.vn-btn--claro .elementor-button-content-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
}
.vn-btn .elementor-button-icon svg {
  width: 1.125rem;
  height: 1.125rem;
}

.vn-evento-dia p,
.vn-evento-mes p,
.vn-evento-lugar p {
  margin: 0 !important;
}
.vn-card--evento,
.vn-card--evento > .e-con-inner {
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem 2.5rem !important;
}
.vn-card--evento {
  padding: 2rem 0 !important;
  border-bottom: 1px solid rgba(71, 55, 44, 0.25);
}
.vn-card--evento > .e-con:first-child,
.vn-card--evento > .e-con-inner > .e-con:first-child {
  flex: 0 0 7.5rem !important;
  display: flex;
  flex-direction: column;
  gap: 0.375rem !important;
  padding: 0 !important;
}
.vn-card--evento > .e-con:nth-child(2),
.vn-card--evento > .e-con-inner > .e-con:nth-child(2) {
  flex: 1 1 360px !important;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem !important;
  padding: 0 !important;
}
.vn-evento-dia .elementor-heading-title,
.vn-evento-dia p {
  font-family: Newsreader, Georgia, serif !important;
  font-weight: 300 !important;
  font-size: 2.75rem !important;
  line-height: 1 !important;
  color: var(--vn-texto) !important;
  margin: 0;
}
.vn-evento-mes .elementor-heading-title,
.vn-evento-mes p {
  font-family: Inter, sans-serif !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--vn-texto) !important;
  margin: 0;
}
.vn-evento-tipo {
  width: auto !important;
  max-width: max-content;
}
.vn-evento-tipo .elementor-heading-title {
  display: inline-block;
  font-family: Inter, sans-serif !important;
  font-size: 0.625rem !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--vn-texto) !important;
  border: 1px solid rgba(71, 55, 44, 0.4);
  border-radius: 999px;
  padding: 0.3rem 0.75rem;
  margin: 0;
}
.vn-card--evento .elementor-widget-theme-post-title .elementor-heading-title {
  font-size: 1.75rem !important;
  margin: 0.25rem 0 0 !important;
}
.vn-evento-lugar .elementor-heading-title,
.vn-evento-lugar p {
  font-family: Literata, Georgia, serif !important;
  font-weight: 300 !important;
  font-size: 1rem !important;
  color: var(--vn-texto) !important;
  margin: 0;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.vn-card--evento .elementor-widget-button {
  margin-top: 0;
  flex: 0 0 auto;
}
@media (max-width: 767px) {
  .vn-card--evento,
  .vn-card--evento > .e-con-inner {
    align-items: flex-start;
  }
}
/* --- Card 8 · Obra: foto con su forma real, título al pasar el mouse --- */
.vn-card--obra {
  position: relative !important;
  overflow: hidden;
  height: 100%;
}
.vn-card--obra .elementor-widget-theme-post-featured-image,
.vn-card--obra .elementor-widget-image {
  height: 100%;
}
.vn-card--obra .elementor-widget-theme-post-featured-image img,
.vn-card--obra .elementor-widget-image img {
  aspect-ratio: auto;
  height: 100% !important;
}
.vn-card--obra .vn-card__titulo .elementor-heading-title {
  color: var(--vn-crema) !important;
  font-family: Inter, sans-serif !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}
/* Obra (portafolio): título que aparece al pasar el mouse */
.vn-card--obra .vn-card__titulo {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1rem;
  background: linear-gradient(transparent, rgba(27, 60, 83, 0.75));
  opacity: 0;
  transition: opacity 0.3s ease;
}
.vn-card--obra:hover .vn-card__titulo {
  opacity: 1;
}
.vn-card--obra .vn-card__titulo .elementor-heading-title {
  color: var(--vn-crema);
}

/* Separación de 20px entre la foto y el texto de las cards.
   El espacio va DEBAJO DE LA FOTO (no arriba del título), así funciona
   con cualquier widget de título que venga después. */
.vn-card > .elementor-widget-image,
.vn-card > .elementor-widget-theme-post-featured-image,
.vn-card > .e-con-inner > .elementor-widget-image,
.vn-card > .e-con-inner > .elementor-widget-theme-post-featured-image {
  margin-bottom: 1.25rem !important;
}
.vn-card .elementor-widget-woocommerce-product-title .elementor-heading-title,
.vn-card .elementor-widget-woocommerce-product-title .product_title,
.vn-card .elementor-widget-theme-post-title .elementor-heading-title,
.vn-card .elementor-widget-post-info {
  margin-top: 0 !important;
}
.vn-card .elementor-widget-woocommerce-product-title + .elementor-widget-woocommerce-product-price,
.vn-card .elementor-widget-theme-post-title + .elementor-widget-woocommerce-product-price {
  margin-top: 0.375rem;
}
.vn-card--post .elementor-widget-post-info + .elementor-widget-theme-post-title .elementor-heading-title {
  margin-top: 0.625rem !important;
}
/* En las cards con la foto al lado (Libro, Blog destacado) o con el título encima (Obra), sin ese espacio */
.vn-card--libro > .elementor-widget-image,
.vn-card--libro > .elementor-widget-theme-post-featured-image,
.vn-card--post-xl > .elementor-widget-image,
.vn-card--post-xl > .elementor-widget-theme-post-featured-image,
.vn-card--obra > .elementor-widget-image,
.vn-card--obra > .elementor-widget-theme-post-featured-image,
.vn-card--libro > .e-con-inner > .elementor-widget-image,
.vn-card--post-xl > .e-con-inner > .elementor-widget-image,
.vn-card--obra > .e-con-inner > .elementor-widget-image {
  margin-bottom: 0 !important;
}


/* Ilustración destacada en el Loop Grid: ocupa 2 columnas y 2 filas (escritorio, grilla de 4 columnas).
   La foto se estira hasta llenar el alto de las 2 filas. */
@media (min-width: 1025px) {
  .elementor-loop-container > .e-loop-item:has(.vn-card--ilu-xl) {
    grid-row: span 2;
  }
  .vn-card--ilu-xl {
    height: 100%;
  }
  .vn-card--ilu-xl > .elementor-widget-image,
  .vn-card--ilu-xl > .elementor-widget-theme-post-featured-image {
    position: relative;
    flex: 1 1 auto !important;
    min-height: 20rem;
  }
  .vn-card--ilu-xl > .elementor-widget-image a,
  .vn-card--ilu-xl > .elementor-widget-theme-post-featured-image a {
    position: absolute;
    inset: 0;
  }
  .vn-card--ilu-xl > .elementor-widget-image img,
  .vn-card--ilu-xl > .elementor-widget-theme-post-featured-image img {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover;
  }
}


/* Card Libro: el texto va centrado respecto a la portada;
   si el título ocupa 2 líneas o más, el JS agrega .vn-libro--arriba y todo se alinea arriba */
.vn-card--libro,
.vn-card--libro > .e-con-inner {
  align-items: center !important;
}
.vn-card--libro.vn-libro--arriba,
.vn-card--libro.vn-libro--arriba > .e-con-inner {
  align-items: flex-start !important;
}
.vn-card--libro > .e-con,
.vn-card--libro > .e-con-inner > .e-con {
  justify-content: flex-start !important;
}

/* Card Libro: la descripción se corta en 3 líneas con «…», venga en uno o varios párrafos */
.vn-card--libro .elementor-widget-text-editor:not(:has(> .elementor-widget-container)),
.vn-card--libro .elementor-widget-text-editor > .elementor-widget-container {
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.vn-card--libro .elementor-widget-text-editor p,
.vn-card--libro .elementor-widget-text-editor div {
  display: inline !important;
}
.vn-card--libro .elementor-widget-text-editor p + p::before {
  content: " ";
}


/* Card Blog destacado sin contenedor «Texto» (widgets sueltos dentro de la card):
   foto a la izquierda (3/5) y el texto en columna a la derecha (2/5), centrado en alto */
.vn-card--post-xl:not(:has(> .e-con)):not(:has(> .e-con-inner)) {
  display: grid !important;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  grid-template-rows: 1fr repeat(4, auto) 1fr;
  column-gap: 4rem !important;
  row-gap: 0 !important;
  align-items: start;
}
.vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget-image,
.vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget-theme-post-featured-image {
  grid-column: 1;
  grid-row: 1 / -1;
}
.vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget:not(.elementor-widget-image):not(.elementor-widget-theme-post-featured-image) {
  grid-column: 2;
  padding-right: 3rem;
}
.vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget:nth-child(2) { grid-row: 2; }
.vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget:nth-child(3) { grid-row: 3; margin-top: 1rem; }
.vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget:nth-child(4) { grid-row: 4; margin-top: 1.125rem; }
.vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget:nth-child(5) { grid-row: 5; margin-top: 1.5rem; }
@media (max-width: 767px) {
  .vn-card--post-xl:not(:has(> .e-con)):not(:has(> .e-con-inner)) {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget {
    grid-column: 1 !important;
    grid-row: auto !important;
    padding: 0 1.5rem;
  }
  .vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget-image,
  .vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget-theme-post-featured-image {
    padding: 0 !important;
    margin-bottom: 1.5rem;
  }
  .vn-card--post-xl:not(:has(> .e-con)) > .elementor-widget:last-child {
    padding-bottom: 1.5rem;
  }
}


/* ##########################################################################
   SECCION 07 · TIENDA Y CATEGORÍAS
   ########################################################################## */
.vn-conteo {
  font:
    400 0.75rem Inter,
    sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--vn-parrafo);
}
.woocommerce-ordering {
  margin: 0;
}
.woocommerce-ordering select {
  border: 0;
  border-bottom: 1px solid var(--vn-texto);
  background: transparent;
  font:
    300 0.9375rem Literata,
    serif;
  color: var(--vn-texto);
  min-height: 2.5rem;
}
.elementor-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
}
.elementor-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(71, 55, 44, 0.3);
  border-radius: 999px;
  color: var(--vn-texto);
}
.elementor-pagination .page-numbers.current {
  background: var(--vn-azul);
  border-color: var(--vn-azul);
  color: var(--vn-fondo);
}


/* Barra de categoría: «12 productos» en una línea y selector Ordenar a la derecha */
.vn-conteo {
  white-space: nowrap;
}
.elementor-widget-shortcode:has(.vn-conteo),
.elementor-widget-shortcode:has(.vn-orden) {
  flex: 0 0 auto !important;
  width: auto !important;
}


/* Selector «Ordenar» con el estilo del sitio: texto Inter en mayúsculas, línea abajo y flecha fina */
.vn-orden {
  margin: 0;
}
.vn-orden select.orderby {
  -webkit-appearance: none;
  appearance: none;
  min-height: 2.75rem;
  padding: 0 2rem 0 0;
  border: 0;
  border-bottom: 1px solid var(--vn-texto);
  border-radius: 0;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2347372C' stroke-width='1.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right center / 1.125rem no-repeat;
  color: var(--vn-texto);
  font-family: Inter, sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: none;
  outline: none;
}
.vn-orden select.orderby:hover {
  border-bottom-color: var(--vn-azul);
}
.vn-orden select.orderby:focus-visible {
  outline: 2px solid var(--vn-azul);
  outline-offset: 4px;
}
.vn-orden select.orderby option {
  font-family: Inter, sans-serif;
  text-transform: none;
  letter-spacing: 0;
  color: var(--vn-texto);
}


/* Pills de subcategorías [vn_subcats]: misma forma que las demás pills */
.vn-subcats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.vn-subcats .e-filter-item {
  cursor: pointer;
  text-decoration: none;
}
.vn-subcats .e-filter-item:hover {
  border-color: var(--vn-azul);
}
/* Mientras hay un filtro activo, la ilustración destacada vuelve a tamaño normal */
.elementor-loop-container.vn-filtrando > .e-loop-item {
  grid-column: auto !important;
  grid-row: auto !important;
}
.elementor-loop-container.vn-filtrando .vn-card--ilu-xl > .elementor-widget-image,
.elementor-loop-container.vn-filtrando .vn-card--ilu-xl > .elementor-widget-theme-post-featured-image {
  position: static;
  min-height: 0;
}
.elementor-loop-container.vn-filtrando .vn-card--ilu-xl > .elementor-widget-image a,
.elementor-loop-container.vn-filtrando .vn-card--ilu-xl > .elementor-widget-theme-post-featured-image a {
  position: static;
}
.elementor-loop-container.vn-filtrando .vn-card--ilu-xl img {
  position: static !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
}
.elementor-loop-container.vn-filtrando .vn-card--ilu-xl .product_title,
.elementor-loop-container.vn-filtrando .vn-card--ilu-xl .elementor-heading-title {
  font-size: 1.375rem !important;
}


/* ##########################################################################
   SECCION 08 · FICHAS DE PRODUCTO
   ########################################################################## */
/* Ocultar secciones con campo vacío (el plugin agrega las clases al body) */
.vn-sin-video .vn-sec-video,
.vn-sin-resena .vn-sec-resena,
.vn-sin-galeria .vn-sec-galeria,
.vn-sin-nota .vn-sec-nota {
  display: none !important;
}
/* Fotos interiores vacías del libro (campos ACF interior_1 a interior_6) */
.vn-interior .elementor-widget-image:not(:has(img)) {
  display: none;
}

/* Botón de compra y cantidad */
.vn-addtocart form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: stretch;
}
.vn-addtocart .single_add_to_cart_button {
  flex: 1 1 14rem;
  min-height: 3.25rem;
  padding: 0 2rem !important;
  border: 1px solid var(--vn-azul) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--vn-azul) !important;
  font:
    400 0.75rem Inter,
    sans-serif !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
}
.vn-addtocart .single_add_to_cart_button:hover {
  background: var(--vn-azul) !important;
  color: var(--vn-fondo) !important;
}
.vn-addtocart .quantity .qty {
  min-height: 3.125rem;
  width: 6rem;
  border: 1px solid rgba(71, 55, 44, 0.35);
  border-radius: 999px;
  background: transparent;
  text-align: center;
}

/* Pills de tamaño A4/A3/A2 (las crea el JS del plugin) */
.vn-tallas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin: 0.75rem 0 1.5rem;
}
.vn-talla {
  min-height: 2.75rem;
  padding: 0 1.375rem;
  border-radius: 999px;
  border: 1px solid rgba(27, 60, 83, 0.4);
  background: transparent;
  color: var(--vn-azul);
  font:
    400 0.75rem/1 Inter,
    sans-serif;
  letter-spacing: 0.12em;
  cursor: pointer;
}
.vn-talla.is-activo {
  background: var(--vn-azul);
  border-color: var(--vn-azul);
  color: var(--vn-fondo);
}
.vn-addtocart table.variations select {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}
.vn-addtocart .reset_variations {
  display: none !important;
}

/* Comparador de tamaños */
.vn-tamanos {
  position: relative;
  height: 22.5rem;
}
.vn-tamano {
  position: absolute;
  left: 0;
  bottom: 0;
  box-sizing: border-box;
  display: flex;
  justify-content: flex-end;
  padding: 0.625rem;
  font:
    400 0.6875rem Inter,
    sans-serif;
  letter-spacing: 0.16em;
  color: var(--vn-parrafo);
  border: 1px dashed rgba(71, 55, 44, 0.45);
  transition: all 0.3s ease;
}
.vn-tamano.is-activo {
  border: 1.5px solid var(--vn-azul);
  background: rgba(27, 60, 83, 0.1);
  color: var(--vn-azul);
}
.vn-tamano-nota {
  margin: 1.5rem 0 0;
  font:
    300 0.9375rem/1.6 Literata,
    serif;
  color: var(--vn-parrafo);
}


/* Galería de la ficha: miniaturas en 4 columnas, separadas 14px de la foto grande y entre ellas */
.elementor-widget-woocommerce-product-images .flex-control-thumbs {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.875rem;
  margin: 0.875rem 0 0 !important;
  padding: 0 !important;
  list-style: none;
}
.elementor-widget-woocommerce-product-images .flex-control-thumbs li {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-widget-woocommerce-product-images .flex-control-thumbs img {
  display: block;
  width: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: var(--vn-foto);
  opacity: 0.55;
  cursor: pointer;
  transition: opacity 0.25s ease;
}
.elementor-widget-woocommerce-product-images .flex-control-thumbs img:hover,
.elementor-widget-woocommerce-product-images .flex-control-thumbs img.flex-active {
  opacity: 1;
}

/* Precio de la ficha: color del texto, no el verde por defecto */
.single-product .elementor-widget-woocommerce-product-price .price,
.single-product .elementor-widget-woocommerce-product-price .amount {
  color: var(--vn-texto) !important;
  font-family: Inter, sans-serif !important;
  font-weight: 400 !important;
}

/* Selector de tamaño: sin caja gris; «Tamaño» como eyebrow (las pills las pone el plugin) */
.vn-addtocart table.variations,
.vn-addtocart table.variations tbody,
.vn-addtocart table.variations tr,
.vn-addtocart table.variations th,
.vn-addtocart table.variations td {
  display: block;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  text-align: left;
}
.vn-addtocart table.variations th.label label {
  font-family: Inter, sans-serif !important;
  font-size: 0.6875rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--vn-azul-suave);
}


/* Cantidad + botón de compra: en la misma fila si caben, y nunca se salen del ancho (también en variables) */
.vn-addtocart .woocommerce-variation-add-to-cart,
.vn-addtocart form.cart:not(.variations_form) {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: stretch;
  width: 100%;
}
.vn-addtocart .single_add_to_cart_button {
  flex: 1 1 10rem !important;
  min-width: 0 !important;
  max-width: 100%;
  margin: 0 !important;
}
.vn-addtocart .quantity {
  flex: 0 0 auto;
  margin: 0 !important;
}
@media (max-width: 767px) {
  .vn-addtocart .quantity .qty {
    width: 4.5rem;
  }
}


/* Ilustraciones: mismo espacio (20px) entre pills de tamaño, precio del tamaño y botón */
.vn-addtocart .vn-tallas {
  margin: 0.75rem 0 1.25rem !important;
}
.vn-addtocart .single_variation_wrap .single_variation {
  margin: 0 0 1.25rem !important;
}
.vn-addtocart .single_variation > div {
  margin: 0 !important;
}
.vn-addtocart .woocommerce-variation-description:empty,
.vn-addtocart .woocommerce-variation-availability:empty {
  display: none;
}
.vn-addtocart .woocommerce-variation-price .price,
.vn-addtocart .woocommerce-variation-price .amount {
  margin: 0 !important;
  font-family: Inter, sans-serif !important;
  font-size: 1.375rem !important;
  font-weight: 400 !important;
  color: var(--vn-texto) !important;
}

/* El header siempre por encima del contenido fijo (sticky) de la ficha */
.elementor-location-header,
.vn-header {
  z-index: 999 !important;
}


/* ##########################################################################
   SECCION 09 · BLOG (ENTRADA)
   ########################################################################## */
.single-post .elementor-widget-theme-post-content p {
  margin: 0 0 1.25em;
}
.single-post .elementor-widget-theme-post-content h2 {
  font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem);
  margin: 2em 0 0.6em;
}
.single-post .elementor-widget-theme-post-content blockquote {
  margin: 2em 0;
  padding-left: 1.5rem;
  border-left: 1px solid var(--vn-azul);
  font:
    italic 300 1.5rem/1.4 Newsreader,
    serif;
  color: var(--vn-azul-medio);
}
.single-post .elementor-widget-theme-post-content img {
  width: 100%;
  height: auto;
}


/* Blog: botón «Cargar más» del Loop Grid, con el estilo vn-btn */
.elementor-widget-loop-grid > .elementor-button-wrapper .elementor-button,
.elementor-widget-loop-grid > .elementor-widget-container > .elementor-button-wrapper .elementor-button {
  display: inline-flex !important;
  align-items: center;
  min-height: 3.125rem;
  padding: 0 2.25rem !important;
  border: 1px solid var(--vn-azul) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--vn-azul) !important;
  font-family: Inter, sans-serif !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  transition: background-color 0.25s ease, color 0.25s ease;
}
.elementor-widget-loop-grid > .elementor-button-wrapper .elementor-button:hover,
.elementor-widget-loop-grid > .elementor-widget-container > .elementor-button-wrapper .elementor-button:hover {
  background: var(--vn-azul) !important;
  color: var(--vn-fondo) !important;
}
.elementor-widget-loop-grid > .elementor-button-wrapper,
.elementor-widget-loop-grid > .elementor-widget-container > .elementor-button-wrapper {
  display: flex;
  justify-content: center;
  margin-top: 4rem;
}

/* Entrada: categoría · fecha arriba del título (clase vn-post-meta) */
.vn-post-meta .elementor-icon-list-items {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0;
  padding: 0;
}
.vn-post-meta .elementor-icon-list-item {
  margin: 0 !important;
  padding: 0 !important;
}
.vn-post-meta .elementor-icon-list-item + .elementor-icon-list-item::before {
  content: "·";
  margin: 0 0.6em;
  color: var(--vn-azul-suave);
}
.vn-post-meta .elementor-icon-list-icon,
.vn-post-meta .elementor-icon-list-item::after {
  display: none !important;
}
.vn-post-meta .elementor-icon-list-text,
.vn-post-meta a {
  font-family: Inter, sans-serif !important;
  font-size: 0.6875rem !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  color: var(--vn-azul-suave) !important;
}

/* Filtro de taxonomía del blog (clase vn-pills): botones como pills, sin estilos por defecto */
.vn-pills .e-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.vn-pills .e-filter-item {
  cursor: pointer;
  box-shadow: none !important;
}
.vn-pills .e-filter-item:hover {
  border-color: var(--vn-azul);
}


/* Blog: al filtrar por categoría se oculta la entrada destacada (sección con clase vn-blog-destacado) */
body.vn-blog-filtrado .vn-blog-destacado {
  display: none !important;
}


/* Entrada del blog: botones de compartir (círculo fino, ícono pequeño, relleno azul al pasar) */
.elementor-widget-share-buttons .elementor-grid {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.625rem !important;
}
.elementor-widget-share-buttons .elementor-grid-item {
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-widget-share-buttons .elementor-share-btn {
  width: 2.5rem !important;
  height: 2.5rem !important;
  font-size: 0.9375rem !important;
  border: 1px solid rgba(27, 60, 83, 0.35) !important;
  border-radius: 50% !important;
  background: transparent !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.elementor-widget-share-buttons .elementor-share-btn__icon {
  width: auto !important;
  margin: 0 !important;
  display: flex !important;
  color: var(--vn-azul) !important;
}
.elementor-widget-share-buttons .elementor-share-btn__icon svg {
  width: 0.9375rem !important;
  height: 0.9375rem !important;
  fill: currentColor !important;
}
.elementor-widget-share-buttons .elementor-share-btn:hover,
.elementor-widget-share-buttons .elementor-share-btn:focus-visible {
  background: var(--vn-azul) !important;
  border-color: var(--vn-azul) !important;
}
.elementor-widget-share-buttons .elementor-share-btn:hover .elementor-share-btn__icon,
.elementor-widget-share-buttons .elementor-share-btn:focus-visible .elementor-share-btn__icon {
  color: var(--vn-crema) !important;
}


/* ##########################################################################
   SECCION 10 · INICIO
   ########################################################################## */
/* Carrusel de la tienda que sale por la derecha */
.vn-bleed {
  /* --vn-asomar: cuánto de la última card queda cortado por el borde derecho */
  --vn-asomar: 0px;
  margin-right: calc((100vw - min(100vw - 2 * var(--vn-gutter), 80rem)) / -2 - var(--vn-asomar));
}
@media (min-width: 768px) {
  .vn-bleed { --vn-asomar: 6rem; }
}
@media (min-width: 1025px) {
  .vn-bleed { --vn-asomar: 9rem; }
}
.vn-bleed .swiper {
  overflow: visible;
}
.vn-bleed .swiper-pagination-progressbar {
  background: rgba(71, 55, 44, 0.15);
}
.vn-bleed .swiper-pagination-progressbar-fill {
  background: var(--vn-azul);
}
/* Flechas propias del carrusel (widget HTML con clase vn-flechas, en la cabecera de la sección) */
.vn-flechas {
  display: flex;
  gap: 0.875rem;
  flex-shrink: 0;
}
/* Que el contenedor «Acciones», el widget HTML y el botón no se aplasten */
.e-con:has(> .elementor-widget-html .vn-flechas),
.e-con:has(> .e-con-inner > .elementor-widget-html .vn-flechas),
.elementor-widget-html:has(.vn-flechas) {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
}
.e-con:has(> .elementor-widget-html .vn-flechas) .elementor-button {
  white-space: nowrap;
}
.vn-flechas .vn-flecha {
  width: 3rem;
  height: 3rem;
  padding: 0 !important;
  border: 1px solid rgba(71, 55, 44, 0.3) !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: var(--vn-texto) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.vn-flechas .vn-flecha svg {
  width: 1rem;
  height: 1rem;
}
.vn-flechas .vn-flecha:hover:not(:disabled),
.vn-flechas .vn-flecha:focus-visible {
  background: var(--vn-azul) !important;
  border-color: var(--vn-azul) !important;
  color: var(--vn-crema) !important;
}
.vn-flechas .vn-flecha:disabled {
  opacity: 0.35;
  cursor: default;
}
@media (max-width: 767px) {
  .vn-flechas .vn-flecha { width: 2.5rem; height: 2.5rem; }
}
/* Foto con filtro vintage (agrega la clase vn-foto-vintage al widget Imagen o al widget Diapositivas) */
.vn-foto-vintage img,
.vn-foto-vintage .swiper-slide-bg {
  filter: sepia(0.14) saturate(0.78) contrast(0.95) brightness(1.02);
}
/* Hero (widget Diapositivas con clase vn-hero): alto con límites, texto abajo y puntos separados del borde */
/* Alto: 92vh escritorio · 80vh tablet · 85vh móvil, con mínimo y máximo */
.vn-hero .swiper-slide {
  height: clamp(640px, 92vh, 1040px) !important;
}
@media (max-width: 1024px) {
  .vn-hero .swiper-slide { height: clamp(640px, 80vh, 1040px) !important; }
}
@media (max-width: 767px) {
  .vn-hero .swiper-slide { height: clamp(560px, 85vh, 1040px) !important; }
}
.vn-hero .swiper-slide-inner {
  padding-bottom: clamp(6.5rem, 4.5rem + 5vh, 9.5rem) !important;
}
.vn-hero .swiper-pagination,
.vn-hero .swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: clamp(2.25rem, 1.5rem + 2.5vh, 3.5rem) !important;
}
/* Hero: puntos como líneas finas */
.elementor-slides-wrapper .swiper-pagination-bullet {
  width: 1.75rem;
  height: 2px;
  border-radius: 0;
  background: #f7f4ed;
  opacity: 0.5;
}
.elementor-slides-wrapper .swiper-pagination-bullet-active {
  width: 2.75rem;
  opacity: 1;
}
/* Círculos decorativos en Encuentros */
.vn-circulos::before {
  content: "";
  position: absolute;
  right: -60px;
  top: -40px;
  width: 420px;
  height: 420px;
  opacity: 0.12;
  pointer-events: none;
  background: radial-gradient(
    circle,
    transparent 89px,
    #f7f2eb 90px 91px,
    transparent 92px 139px,
    #f7f2eb 140px 141px,
    transparent 142px 189px,
    #f7f2eb 190px 191px,
    transparent 192px
  );
}
/* Encuentros sobre fondo azul */
.vn-oscuro .vn-card--evento {
  border-color: rgba(247, 242, 235, 0.3) !important;
}
.vn-oscuro .vn-card--evento .vn-btn .elementor-button {
  border-color: var(--vn-crema);
  color: var(--vn-crema);
}


/* ##########################################################################
   SECCION 11 · FORMULARIOS, CONTACTO Y CREADORA
   ########################################################################## */
/* Ilustración de fondo en Contacto (PNG): no tapa los clics del formulario */
.vn-deco {
  pointer-events: none;
}

/* Formularios (Contacto, Newsletter, popup del cupón) */
.vn-form .elementor-field-group {
  margin-bottom: 1.75rem;
}
.vn-form .elementor-field-label {
  font:
    400 0.6875rem Inter,
    sans-serif;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--vn-texto);
}
.vn-form .elementor-field {
  min-height: 3rem;
  border: 0 !important;
  border-bottom: 1px solid var(--vn-texto) !important;
  border-radius: 0 !important;
  background: transparent !important;
  font:
    300 1.0625rem Literata,
    serif;
  color: var(--vn-texto);
  padding: 0 0.125rem !important;
}
.vn-form textarea.elementor-field {
  padding: 0.5rem 0.125rem !important;
}
.vn-form .elementor-field::placeholder {
  color: #6b7380;
}
.vn-form .elementor-button {
  min-height: 3.125rem;
  padding: 0 2.25rem;
  border: 1px solid var(--vn-azul);
  border-radius: 999px;
  background: transparent;
  color: var(--vn-azul);
  font:
    400 0.75rem Inter,
    sans-serif;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.vn-form .elementor-button:hover {
  background: var(--vn-azul);
  color: var(--vn-fondo);
}
/* Newsletter sobre fondo gris */
.vn-form--claro .elementor-field {
  border-bottom-color: #f4f1ec !important;
  color: #f4f1ec !important;
}
.vn-form--claro .elementor-field::placeholder {
  color: rgba(244, 241, 236, 0.7);
}
.vn-form--claro .elementor-field-label {
  color: #f4f1ec !important;
}
.vn-form--claro .elementor-button {
  border-color: #f4f1ec !important;
  color: #f4f1ec !important;
}
.vn-form--claro .elementor-button:hover {
  background: #f4f1ec !important;
  color: var(--vn-gris) !important;
}

/* Foco de los campos: sin el recuadro gris de Elementor */
.vn-form .elementor-field:focus {
  outline: none !important;
  box-shadow: 0 1px 0 var(--vn-azul) !important;
  border-bottom-color: var(--vn-azul) !important;
}
/* Newsletter: al hacer clic, el campo se vuelve redondo como el botón */
.vn-form--claro .elementor-field:not(textarea) {
  min-height: 3.125rem;
  padding: 0 1.25rem !important;
  border: 1px solid transparent !important;
  border-bottom-color: #f4f1ec !important;
  transition: border-color 0.2s ease, border-radius 0.2s ease;
}
.vn-form--claro .elementor-field:not(textarea):focus {
  border-color: #f4f1ec !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
/* Botón del formulario: mismo alto que los demás botones del sitio y que el campo (52px) */
.vn-form .elementor-button,
.vn-form--claro .elementor-field:not(textarea) {
  box-sizing: border-box;
  height: 3.25rem !important;
  min-height: 3.25rem !important;
}
.vn-form .elementor-button {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 1 !important;
  font-size: 0.75rem !important;
}
.vn-form--claro .elementor-form-fields-wrapper {
  align-items: flex-end;
}

/* Encargos (Portafolio y Creadora): cards de servicio
   Contenedor «Servicio» con clase vn-servicio · contenedor «Foto» con clase vn-servicio-foto
   · número (Título, etiqueta span) con clase vn-servicio-num */
.vn-servicio-foto {
  position: relative;
  overflow: hidden;
}
.vn-servicio-foto img {
  width: 100% !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.vn-servicio:hover .vn-servicio-foto img {
  transform: scale(1.03);
}
.vn-servicio-num {
  position: absolute !important;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  width: auto !important;
}
.vn-servicio-num .elementor-heading-title {
  display: block;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  background: var(--vn-fondo);
  color: var(--vn-texto) !important;
  font: 400 0.6875rem/2.5rem Inter, sans-serif !important;
  letter-spacing: 0.1em;
  text-align: center;
}
.vn-servicio .elementor-widget-heading:not(.vn-servicio-num) .elementor-heading-title {
  margin-top: 1.25rem;
  font-family: Newsreader, serif;
  font-weight: 300;
  font-size: clamp(1.3125rem, 1rem + 1vw, 1.75rem);
  line-height: 1.2;
}
.vn-servicio .elementor-widget-text-editor {
  margin-top: 0.5rem;
  color: var(--vn-parrafo);
  font-size: clamp(0.875rem, 0.8rem + 0.3vw, 1rem);
}
.vn-servicio .elementor-widget-button {
  margin-top: 1rem;
}
.vn-oscuro .vn-servicio .elementor-widget-text-editor {
  color: #e8e2da !important;
}
/* Portafolio: aviso «Desplázate para ver más» */
.vn-mas {
  text-align: center;
  color: var(--vn-azul-suave);
}
.vn-mas .elementor-heading-title {
  font: 400 0.6875rem Inter, sans-serif !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--vn-azul-suave) !important;
}

/* ##########################################################################
   SECCION 12 · CARRITO, CHECKOUT Y GRACIAS
   ########################################################################## */
.woocommerce-checkout #payment li.wc_payment_method input:checked + label,
.woocommerce-checkout #payment div.payment_box {
  background: var(--vn-claro);
}
.woocommerce table.shop_table,
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  border-color: rgba(71, 55, 44, 0.15) !important;
}
.e-cart__container .e-cart-section,
.e-checkout__container .e-checkout__column-inner > div {
  border: 0 !important;
}


/* ##########################################################################
   SECCION 13 · RESPONSIVE
   ########################################################################## */
@media (max-width: 1024px) {
  .vn-sticky-desk {
    position: static !important;
    top: auto !important;
  }
}
@media (max-width: 767px) {
  /* Fotos de secciones: proporcionales en vez de alto fijo */
  .vn-foto-seccion,
  .vn-foto-seccion img {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 5;
    object-fit: cover;
  }
  /* Collage de portafolio más compacto */
  .vn-card--obra {
    margin-bottom: 0.625rem;
  }
  /* Botones a ancho completo cuando van solos */
  .vn-btn--full-m .elementor-button {
    width: 100%;
    justify-content: center;
  }
  /* Barra legal del footer apilada */
  .vn-legal {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }
  /* Comparador y video de la ficha de ilustración */
  .vn-tamanos {
    height: 16rem;
  }
  .vn-video .elementor-wrapper {
    aspect-ratio: 4 / 3 !important;
  }
  /* Creadora · Arte: la foto va debajo del texto */
  .vn-orden-2-m {
    order: 2;
  }
}
