.elementor-kit-6{--e-global-color-primary:#0E0E0D;--e-global-color-secondary:#8C8C88;--e-global-color-text:#0E0E0D;--e-global-color-accent:#DEDEDA;--e-global-color-05017db:#FFFFFF;--e-global-color-3caaab9:#F4F4F1;--e-global-typography-primary-font-family:"Bodoni Moda";--e-global-typography-primary-font-size:58px;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:1.02em;--e-global-typography-primary-letter-spacing:-0.014em;--e-global-typography-secondary-font-family:"IBM Plex Sans";--e-global-typography-secondary-font-size:19px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.3em;--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:300;--e-global-typography-text-line-height:1.62em;--e-global-typography-accent-font-family:"IBM Plex Mono";--e-global-typography-accent-font-size:13px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-letter-spacing:0.02em;background-color:#FFFFFF;color:#0E0E0D;font-family:"IBM Plex Sans", Sans-serif;font-size:1.0625rem;font-weight:300;line-height:1.62em;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ═══════════════════════════════════════════════════
   VIVA ACOUSTIC · sistema de movimiento
   Elementor › Ajustes del sitio › CSS personalizado
   ═══════════════════════════════════════════════════ */

::selection{ background:#0E0E0D; color:#FFFFFF; }
html{ scroll-behavior:smooth; }
:focus-visible{ outline:2px solid #0E0E0D; outline-offset:3px; }

/* ── CABECERA FIJA ───────────────────────────────── */
header.elementor-location-header{
  position:sticky; top:0; z-index:100;
}
/* El fondo va en una capa propia para poder fundirlo solo con opacidad
   (sobre la foto del héroe de la portada desaparece). */
.va-header{ position:relative; z-index:0; background-color:transparent !important; }
.va-header::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:rgba(240,241,237,.9);
  -webkit-backdrop-filter:saturate(180%) blur(14px); backdrop-filter:saturate(180%) blur(14px);
  transition:opacity .5s cubic-bezier(.22,.61,.36,1);
}
/* filete y sombra que aparecen al bajar */
.va-header::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px; z-index:-1; pointer-events:none;
  background:#CDD1CA; box-shadow:0 16px 36px -26px rgba(20,25,27,.55); opacity:0;
}
.va-logo a{ display:inline-block; transform-origin:left center; }

@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: scroll()){
    .va-header::after{ animation:va-sombra linear both; animation-timeline:scroll(root); animation-range:0 170px; }
    @keyframes va-sombra{ to{ opacity:1; } }
    .va-logo a{ animation:va-logo-encoge linear both; animation-timeline:scroll(root); animation-range:0 170px; }
    @keyframes va-logo-encoge{ to{ transform:scale(.8); } }
  }
}

/* ── PIE QUE SE REVELA BAJO EL CONTENIDO ─────────── */
:root{ --va-pie: 490px; }
@media (max-width:1024px){ :root{ --va-pie: 660px; } }
@media (max-width:767px){  :root{ --va-pie: 880px; } }

@media (min-width:768px){
  footer.elementor-location-footer{
    position:fixed; left:0; right:0; bottom:0; z-index:0;
  }
  /* Hello Elementor con plantilla a ancho completo vuelca el contenido
     directo en <body>, sin <main>. Cubrimos ambos casos. */
  body > .elementor[data-elementor-type="wp-page"],
  body > .elementor[data-elementor-type="wp-post"],
  body > .elementor[data-elementor-type="archive"],
  body > .elementor[data-elementor-type="single-post"],
  main.site-main{
    position:relative; z-index:1;
    background:#FFFFFF;
    margin-bottom:var(--va-pie);
    box-shadow:0 -1px 0 #DEDEDA, 0 34px 64px -44px rgba(14,14,13,.6);
  }
}

/* ── MENÚ: subrayado que entra desde la izquierda ── */
.va-nav .elementor-nav-menu > li > a{ position:relative; }
.va-nav .elementor-nav-menu > li > a::after{
  content:''; position:absolute; left:14px; right:14px; bottom:2px; height:1px;
  background:#0E0E0D; transform:scaleX(0); transform-origin:left center;
  transition:transform .42s cubic-bezier(.22,.61,.36,1);
}
.va-nav .elementor-nav-menu > li > a:hover::after,
.va-nav .elementor-nav-menu > li.current-menu-item > a::after,
.va-nav .elementor-nav-menu > li.current-menu-ancestor > a::after{ transform:scaleX(1); }
.va-nav .elementor-nav-menu--dropdown,
.va-nav .elementor-nav-menu ul.sub-menu{
  border:1px solid #DEDEDA; box-shadow:0 24px 48px -30px rgba(14,14,13,.55);
}

/* ── BOTONES: relleno que sube desde abajo ───────── */
.va-cta .elementor-button{
  position:relative; overflow:hidden; z-index:0;
  border:1px solid #14191B;
}
.va-cta .elementor-button::before{
  content:''; position:absolute; inset:0; z-index:-1; background:#F0F1ED;
  transform:translateY(101%); transition:transform .48s cubic-bezier(.22,.61,.36,1);
}
.va-cta .elementor-button:hover{ color:#14191B !important; }
.va-cta .elementor-button:hover::before{ transform:translateY(0); }

/* ── TARJETAS ────────────────────────────────────── */
.va-tarjeta{ transition:translate .45s cubic-bezier(.22,.61,.36,1); }
.va-tarjeta:hover{ translate:0 -5px; }

/* ── CARTA DE COLORES PET: el único color de la web ── */
.va-swatches{ display:flex; flex-wrap:wrap; gap:7px; margin:0; }
.va-swatch{
  width:28px; height:28px; display:block; border-radius:2px;
  box-shadow:inset 0 0 0 1px rgba(14,14,13,.12);
  transition:scale .35s cubic-bezier(.22,.61,.36,1);
}
.va-swatch:hover{ scale:1.16; }

.va-mas-sectores a{ color:#14191B; text-decoration:none; border-bottom:1px solid rgba(14,14,13,.25); }
.va-mas-sectores a:hover{ border-color:#14191B; }

/* ── PIE ─────────────────────────────────────────── */
.va-footer-nav .elementor-nav-menu a{ transition:transform .35s cubic-bezier(.22,.61,.36,1); }
.va-footer-nav .elementor-nav-menu a:hover{ transform:translateX(7px); }
.va-footer-contacto a{ position:relative; color:#FFFFFF; text-decoration:none; }
.va-footer-contacto a::after{
  content:''; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:left center; transition:transform .42s cubic-bezier(.22,.61,.36,1);
}
.va-footer-contacto a:hover::after{ transform:scaleX(1); }
.va-legal a{ color:#8C8C88; text-decoration:none; }
.va-legal a:hover{ color:#FFFFFF; }
.va-firma-agencia img{ opacity:.5; transition:opacity .45s ease, transform .45s cubic-bezier(.22,.61,.36,1); }
.va-firma-agencia:hover img{ opacity:1; transform:translateY(-2px); }

/* ── APARICIÓN POR SCROLL ────────────────────────── */
.va-reveal > *{ opacity:1; }
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .va-reveal > *{
      animation:va-sube linear both;
      animation-timeline:view();
      animation-range:entry 0% entry 88%;
    }
    @keyframes va-sube{
      from{ opacity:0; transform:translateY(62px); }
      to{ opacity:1; transform:none; }
    }
  }
}

/* ── ZOOM LENTO EN IMÁGENES ──────────────────────── */
.va-zoom{ overflow:clip; }
.va-zoom img{ transition:transform 1.1s cubic-bezier(.22,.61,.36,1); display:block; }
.va-zoom:hover img{ transform:scale(1.045); }

/* ── MOVIMIENTO REDUCIDO ─────────────────────────── */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
  .va-reveal > *{ opacity:1 !important; transform:none !important; }
}

/* ═══════════════════════════════════════════════════
   MOVIMIENTO · todo dirigido por scroll, sin JavaScript
   ═══════════════════════════════════════════════════ */

/* ── Marquesina de datos técnicos ────────────────── */
/* clip y no hidden: hidden convierte la cinta en contenedor de scroll
   y la línea de tiempo de scroll de la marquesina deja de funcionar */
.va-strip{ overflow:clip; }
.va-strip{ display:flex !important; }
.va-ticker{
  width:max-content !important; max-width:none !important;
  min-width:max-content !important;
  flex:0 0 auto !important;            /* si no, el hijo flex se encoge al ancho del padre */
  flex-wrap:nowrap !important;
}
.va-ticker > *{ flex:0 0 auto !important; }
.va-ticker .va-dato{ padding:15px 0; margin:0 30px; white-space:nowrap; position:relative; }
.va-ticker .va-dato::after{
  content:''; position:absolute; right:-31px; top:50%;
  width:3px; height:3px; border-radius:50%; background:#C3C3BE; transform:translateY(-50%);
}

@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){

    /* ── La cinta avanza con el scroll: no hay bucle ── */
    .va-ticker{ will-change:transform; animation:va-marquesina linear both; animation-timeline:view(); animation-range:cover 0% cover 100%; }
    @keyframes va-marquesina{ from{ transform:translateX(0); } to{ transform:translateX(-30%); } }

    /* ── Entradas escalonadas: tarjetas ──────────── */
    .va-proyectos.va-reveal > *, .va-sectores.va-reveal > *,
    .va-indice.va-reveal > *{ animation:none !important; opacity:1 !important; transform:none !important; }

    .va-tarjeta{ animation:va-sube linear both; animation-timeline:view(); animation-range:entry 4% entry 74%; }
    .va-tarjeta:nth-child(2){ animation-range:entry 11% entry 81%; }
    .va-tarjeta:nth-child(3){ animation-range:entry 18% entry 88%; }

    /* ── Entradas escalonadas: filas del índice ──── */
    .va-fila{ animation:va-desliza linear both; animation-timeline:view(); animation-range:entry 6% entry 68%; }
    .va-fila:nth-of-type(3){ animation-range:entry 10% entry 72%; }
    .va-fila:nth-of-type(4){ animation-range:entry 14% entry 76%; }
    .va-fila:nth-of-type(5){ animation-range:entry 18% entry 80%; }
    .va-fila:nth-of-type(6){ animation-range:entry 22% entry 84%; }
    .va-fila:nth-of-type(7){ animation-range:entry 26% entry 88%; }
    @keyframes va-desliza{ from{ opacity:0; transform:translateX(-58px); } to{ opacity:1; transform:none; } }

    /* ── La carta de colores PET se despliega ───────── */
    .va-swatch{ animation:va-brota linear both; animation-timeline:view(); animation-range:entry 10% entry 80%; }
    .va-swatch:nth-child(2n){ animation-range:entry 14% entry 84%; }
    .va-swatch:nth-child(3n){ animation-range:entry 18% entry 88%; }
    @keyframes va-brota{ from{ opacity:0; transform:translateY(28px) scale(.62); } to{ opacity:1; transform:none; } }
  }
}

/* Salvaguarda: si el navegador no anima, todo visible */
.va-tarjeta, .va-fila, .va-swatch{ opacity:1; }

@media (prefers-reduced-motion: reduce){
  .va-ticker{ animation:none !important; }
  .va-tarjeta, .va-fila, .va-swatch{ opacity:1 !important; transform:none !important; }
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════ */

/* ── Tablet ──────────────────────────────────────── */
@media (max-width:1024px){
  .va-fila{ column-gap:14px !important; }
  .va-ticker .va-dato{ margin:0 22px; }
  .va-ticker .va-dato::after{ right:-23px; }
}

/* ── Móvil ───────────────────────────────────────── */
@media (max-width:767px){

  /* Botones: todos con el mismo ancho y alineados a la izquierda.
     Antes unos salían centrados y otros a la izquierda. */
  .elementor-widget-button{ width:100% !important; max-width:300px !important; }
  .elementor-widget-button .elementor-button{
    width:100%; display:flex; justify-content:center; text-align:center;
  }
  .va-cierre .e-con, .va-titular .e-con{
    justify-content:flex-start !important;
    align-items:flex-start !important;
  }
  .va-cierre .elementor-widget-text-editor p{ text-align:left !important; }

  /* Índice de soluciones: de 4 columnas apretadas a bloque legible */
  .va-fila{ flex-wrap:wrap !important; row-gap:2px !important; padding:18px 0 !important; }
  .va-fila > .elementor-element:nth-child(1){ width:24px !important; }
  .va-fila > .elementor-element:nth-child(2){ width:calc(100% - 96px) !important; }
  .va-fila > .elementor-element:nth-child(4){ width:66px !important; }
  .va-fila > .elementor-element:nth-child(3){ width:100% !important; padding-left:24px; }
  .va-fila:hover{ padding-left:0 !important; }

  /* Marquesina: más apretada para que quepan más datos */
  .va-ticker .va-dato{ margin:0 16px; padding:12px 0; }
  .va-ticker .va-dato::after{ right:-17px; }

  /* Pie: una sola lista. El widget ya está en dropdown:none,
     así que el menú desplegable sobra y hay que ocultarlo o sale duplicado. */
  .va-footer-nav .elementor-menu-toggle{ display:none !important; }
  .va-footer-nav .elementor-nav-menu--dropdown{ display:none !important; }
  .va-footer-nav .elementor-nav-menu--main{ display:block !important; }

  /* Logo del pie alineado con el resto de la columna */
  .va-footer-logo, .va-footer-logo .elementor-widget-container{ text-align:left !important; }
  .va-footer-logo img{ margin-left:0 !important; margin-right:auto !important; }



  /* Pie: el bloque superior y la barra legal comparten margen */
  .va-footer-top > .e-con-inner, .va-footer-bar > .e-con-inner,
  .va-footer-top > .e-con-inner > .e-con, .va-footer-bar > .e-con-inner > .e-con{
    padding-inline:0 !important;   /* Elementor mete 10px por defecto en los contenedores hijo */
  }

  /* Carta de colores PET algo más pequeña */
  .va-swatch{ width:24px; height:24px; }
}

/* ── Móvil estrecho ──────────────────────────────── */
@media (max-width:400px){
  .va-fila > .elementor-element:nth-child(2){ width:calc(100% - 86px) !important; }
  .va-fila > .elementor-element:nth-child(4){ width:60px !important; }
}

/* ═══════════════════════════════════════════════════
   ÁREA DE CLIC EXTENDIDA
   El enlace vive en el titular —lo correcto para lectores
   de pantalla y para el SEO— y se estira sobre toda la fila.
   OJO: ningún ancestro entre el <a> y .va-fila puede llevar
   position:relative, o el estirado deja de funcionar.
   ═══════════════════════════════════════════════════ */
.va-fila, .va-tarjeta{ position:relative; }
.va-fila a, .va-tarjeta a{
  position:static; text-decoration:none; color:inherit;
}
.va-fila a::after, .va-tarjeta a::after{
  content:''; position:absolute; inset:0; z-index:2;
}
/* Elementor pone position:relative en el contenedor de cada widget.
   Hay que anularlo en el widget que lleva el enlace, o el área
   estirada se queda encerrada dentro del titular. */
.va-fila .va-fila-nombre,
.va-fila .va-fila-nombre .elementor-heading-title,
.va-tarjeta .elementor-widget-heading,
.va-tarjeta h3, .va-tarjeta h3 .elementor-heading-title{ position:static !important; }

.va-tarjeta:hover h3{
  text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px;
}
.va-fila:hover, .va-tarjeta:hover{ cursor:pointer; }


/* ═══════════════════════════════════════════════════
   CABECERA MÓVIL Y MENÚ DESPLEGABLE
   ═══════════════════════════════════════════════════ */
@media (max-width:767px){

  /* El CTA de la cabecera queda fuera de la regla de
     botones a ancho completo del resto de la página. */
  .va-header .elementor-widget-button{ width:auto !important; max-width:none !important; }
  .va-header .elementor-widget-button .elementor-button{ width:auto !important; }

  .va-header{
    flex-wrap:nowrap !important;
    padding:9px 14px !important;
    gap:8px !important;
    align-items:center !important;
  }
  .va-header > .elementor-element{ flex:0 0 auto !important; margin:0 !important; }
  .va-header .elementor-widget-nav-menu{ order:1; }
  .va-header .va-logo-movil{ order:2; margin:0 auto !important; }
  .va-header .va-cta{ order:3; }
  .va-header .va-logo-movil img{ width:92px !important; display:block; }

  .va-header .va-cta .elementor-button{
    padding:9px 11px !important;
    font-size:8.5px !important;
    letter-spacing:.07em !important;
    white-space:nowrap;
  }

  /* El panel se pinta dentro de la cabecera, así que el botón de
     cerrar, el logo y el CTA tienen que ir por encima de él o el
     menú no se puede cerrar. */
  .va-header .elementor-menu-toggle,
  .va-header .va-logo-movil,
  .va-header .va-cta{ position:relative !important; z-index:120 !important; }

  /* Hamburguesa */
  .va-header .elementor-menu-toggle{
    padding:6px !important; border:0 !important; background:transparent !important;
    color:#0E0E0D !important; font-size:24px !important;
  }
  .va-header .elementor-menu-toggle:hover{ background:transparent !important; }

  /* Panel del menú: a pantalla completa bajo la cabecera */
  .va-header .elementor-nav-menu--dropdown{
    /* Pantalla completa de verdad. Va por debajo de la cabecera
       (z-index 98 < 100) para que el logo y la X sigan encima. */
    position:fixed !important;
    inset:0 !important;
    width:100vw !important; max-width:100vw !important;
    height:100dvh !important;
    margin:0 !important;
    padding:96px 22px 48px !important;
    z-index:98 !important;
    background:#FFFFFF !important;
    border-top:1px solid #DEDEDA !important;
    box-shadow:none !important;
    overflow-y:auto !important;
  }
  .va-header .elementor-nav-menu--dropdown a.elementor-item{
    font-family:"Bodoni Moda", Georgia, serif !important;
    font-size:27px !important; font-weight:400 !important;
    text-transform:none !important; letter-spacing:-.01em !important;
    color:#0E0E0D !important;
    padding:15px 0 !important;
    border-bottom:1px solid #EDEDEA !important;
  }
  /* Submenús: más pequeños y sangrados */
  .va-header .elementor-nav-menu--dropdown .sub-menu a.elementor-item{
    font-family:"IBM Plex Sans", sans-serif !important;
    font-size:14px !important; font-weight:300 !important;
    color:#5D6360 !important;
    padding:10px 0 10px 18px !important;
    border-bottom:0 !important;
  }
  .va-header .elementor-nav-menu--dropdown .elementor-item-active{ font-weight:500 !important; }
  .va-header .elementor-nav-menu--dropdown .sub-arrow{ padding:6px 10px !important; }

  /* Al abrir el menú no se hace scroll detrás */
  body:has(.elementor-menu-toggle[aria-expanded="true"]){ overflow:hidden; }
}

/* ═══════════════════════════════════════════════════
   CAPA DE MODERNIZACIÓN
   ═══════════════════════════════════════════════════ */

/* ── 1 · El logotipo se asienta al cargar: una vez, solo opacidad y desplazamiento ── */
.va-logo a, .va-logo-movil a, .va-footer-logo a{ display:inline-block; }
@media (prefers-reduced-motion: no-preference){
  .va-logo img, .va-logo-movil img, .va-footer-logo img{ animation:va-asienta 1.1s cubic-bezier(.22,.61,.36,1) both; }
  @keyframes va-asienta{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
}

/* ── 2 · Grano: el monocromo plano gana textura de PET ── */
body::after{
  content:''; position:fixed; inset:0; z-index:9998; pointer-events:none;
  opacity:.032; mix-blend-mode:multiply;
  background-size:150px 150px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ── 3 · Transiciones entre páginas ── */
@view-transition{ navigation:auto; }
header.elementor-location-header{ view-transition-name:va-cabecera; }
footer.elementor-location-footer{ view-transition-name:va-pie; }
@media (prefers-reduced-motion: reduce){
  @view-transition{ navigation:none; }
}

/* ── 4 · Línea de progreso de lectura ── */
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: scroll()){
    body::before{
      content:''; position:fixed; top:0; left:0; z-index:101;
      width:100%; height:2px; background:#0E0E0D;
      transform-origin:0 50%; transform:scaleX(0);
      animation:va-progreso linear both;
      animation-timeline:scroll();
    }
    @keyframes va-progreso{ to{ transform:scaleX(1); } }
  }
}

/* ── 5 · Tipografía fluida: escala continua, sin escalones ── */
.va-h1 .elementor-heading-title{
  font-size:clamp(32px, 6.4vw, 68px) !important;
  letter-spacing:-.021em !important;
  line-height:.98 !important;
}
/* Solo el titular. Antes esto pillaba también el pie de foto
   en monoespaciada y lo ponía a 54px. */
.va-banda-oscura h2.elementor-heading-title{
  font-size:clamp(24px, 4.6vw, 54px) !important;
  line-height:1.08 !important;
}
.va-indice .elementor-widget-heading h2.elementor-heading-title,
.va-proyectos .elementor-widget-heading h2.elementor-heading-title,
.va-sectores .elementor-widget-heading h2.elementor-heading-title,
.va-materiales h2.elementor-heading-title,
.va-medida h2.elementor-heading-title{
  font-size:clamp(26px, 3.4vw, 38px) !important;
}
.va-cierre h2.elementor-heading-title{
  font-size:clamp(28px, 5vw, 50px) !important;
}

/* ── 6 · Afinado óptico del texto ── */
h1,h2,h3{ text-wrap:balance; }
p, .elementor-widget-text-editor p{ text-wrap:pretty; }
.va-fila .va-fila-nombre .elementor-heading-title{ letter-spacing:-.012em; }

/* ── 8 · Tarjetas: elevación y foto con más recorrido ── */
.va-tarjeta{
  transition:translate .55s cubic-bezier(.22,.61,.36,1);
}
.va-tarjeta:hover{ translate:0 -7px; }
.va-tarjeta .elementor-widget-image{ overflow:clip; }
.va-zoom img{ transition:transform 1.25s cubic-bezier(.22,.61,.36,1); }
.va-zoom:hover img{ transform:scale(1.06); }

/* ── 9 · Filete que se traza bajo los rótulos de sección ── */
.va-indice .elementor-widget-heading h2.elementor-heading-title,
.va-proyectos .elementor-widget-heading h2.elementor-heading-title,
.va-sectores .elementor-widget-heading h2.elementor-heading-title{
  position:relative; display:inline-block;
}

@media (prefers-reduced-motion: reduce){
  body::before{ display:none; }
}

/* ═══════════════════════════════════════════════════
   EFECTOS DE SCROLL EN IMÁGENES
   Por línea de tiempo de scroll y solo con opacidad y transform.
   ═══════════════════════════════════════════════════ */
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    /* ── Entrada: la foto sube y aparece ── */
    .va-zoom{ animation:va-abre-foto linear both; animation-timeline:view(); animation-range:entry 2% entry 72%; }
    .va-tarjeta:nth-child(2) .va-zoom{ animation-range:entry 8% entry 78%; }
    .va-tarjeta:nth-child(3) .va-zoom{ animation-range:entry 14% entry 84%; }
    @keyframes va-abre-foto{ from{ opacity:0; transform:translateY(56px); } to{ opacity:1; transform:none; } }

    /* ── Parallax dentro del marco (clip, no hidden: hidden rompe la línea de tiempo) ── */
    .va-materiales .va-zoom, .va-medida .va-zoom{ overflow:clip; }
    .va-materiales .va-zoom img, .va-medida .va-zoom img{
      display:block; width:100%; height:auto;
      animation:va-parallax-marco linear both; animation-timeline:view();
      animation-range:cover 0% cover 100%; will-change:transform;
    }
    @keyframes va-parallax-marco{ from{ transform:scale(1.26) translateY(-8.5%); } to{ transform:scale(1.26) translateY(8.5%); } }
    .va-materiales .va-zoom:hover img, .va-medida .va-zoom:hover img{ transform:scale(1.26); }
  }
}
@media (prefers-reduced-motion: reduce){
  .va-zoom, .va-tarjeta .elementor-widget-image,
  .va-materiales .va-zoom img, .va-medida .va-zoom img{ animation:none !important; transform:none !important; }
}

/* ═══════════════════════════════════════════════════
   HÉROE EN VÍDEO
   ═══════════════════════════════════════════════════ */
.va-hero{ overflow:clip; }
/* el vídeo cubre siempre el marco, sin barras */
.va-hero .elementor-background-video-container,
.va-hero .elementor-background-video-hosted{
  width:100% !important; height:100% !important;
  object-fit:cover; will-change:transform;
}
/* capa del velo: el color lo pone el CSS de la portada */
.va-hero::after{ content:''; position:absolute; left:0; right:0; bottom:0; pointer-events:none; }
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    /* acercamiento lento mientras se recorre el héroe */
    .va-hero .elementor-background-video-container{
      animation:va-hero-acerca linear both; animation-timeline:view(); animation-range:cover 0% cover 100%;
    }
    @keyframes va-hero-acerca{ from{ transform:scale(1.0); } to{ transform:scale(1.13); } }
  }
}
@media (prefers-reduced-motion: reduce){
  .va-hero .elementor-background-video-container{ animation:none !important; transform:none !important; }
}

/* ═══════════════════════════════════════════════════
   SISTEMA «WHERE SOUND ENDS» · capa común a todas las páginas
   Publi Mediterránea · 11.09.2026
   Se genera desde REDISENO-INTERIORES/sistema.css y se añade al final
   del CSS del kit. La portada tiene además su propio CSS de página.
   ═══════════════════════════════════════════════════ */
:root{
  --va-tinta:#14191B; --va-papel:#F0F1ED; --va-papel-2:#E5E7E1;
  --va-teal:#1C6B64; --va-aqua:#A5D8D9; --va-arcilla:#C8623F; --va-alerta:#A8492F;
  --va-texto-2:#50585A; --va-linea:#CDD1CA;
  --va-ease:cubic-bezier(.22,.61,.36,1);
  --va-margen:clamp(22px,5vw,72px);
}

/* ── Papel de PET como fondo en todo el sitio ── */
body{ background-color:var(--va-papel); }
@media (min-width:768px){
  body > .elementor[data-elementor-type="wp-page"], main.site-main{ background:var(--va-papel) !important; }
}
::selection{ background:var(--va-tinta); color:var(--va-papel); }
.e-con-boxed.va-seccion, .e-con-boxed.va-cierre-int{ --content-width:1320px; }

/* ── Titulares, etiquetas y texto ── */
.va-h2 .elementor-heading-title{
  font-family:"Bodoni Moda", Georgia, serif !important; font-weight:400 !important;
  font-size:clamp(2.25rem, 5vw, 4.75rem) !important; line-height:.98 !important;
  letter-spacing:-.024em !important; color:var(--va-tinta);
}
.va-oscuro .va-h2 .elementor-heading-title{ color:var(--va-papel) !important; }
.va-h2 .elementor-heading-title em, .va-h1i .elementor-heading-title em{ font-style:italic; color:inherit; }
.va-etiqueta .elementor-heading-title{
  font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-weight:500 !important;
  font-size:0.7188rem !important; line-height:1.45 !important;
  letter-spacing:.14em !important; text-transform:uppercase; color:var(--va-texto-2) !important;
}
.va-oscuro .va-etiqueta .elementor-heading-title{ color:rgba(240,241,237,.66) !important; }
.va-texto, .va-texto p{
  font-family:"IBM Plex Sans", sans-serif !important; font-size:1.0625rem !important; font-weight:400 !important;
  line-height:1.62 !important; color:var(--va-texto-2) !important; max-width:62ch;
}
.va-texto p:last-child{ margin-bottom:0; }
.va-oscuro .va-texto, .va-oscuro .va-texto p{ color:rgba(240,241,237,.76) !important; }
.va-texto a{ color:inherit; text-underline-offset:3px; }

/* ── Botones ── */
.va-btn .elementor-button{
  position:relative; overflow:hidden; z-index:0; white-space:nowrap;
  font-family:"IBM Plex Mono", ui-monospace, monospace !important;
  font-size:0.75rem !important; font-weight:500 !important; letter-spacing:.12em !important; text-transform:uppercase;
  padding:17px 26px !important; border-radius:0 !important; border:1px solid transparent !important;
}
.va-btn .elementor-button::before{
  content:""; position:absolute; inset:0; z-index:-1; background:var(--va-tinta);
  transform:translateY(101%); transition:transform .55s var(--va-ease);
}
.va-btn .elementor-button:hover::before{ transform:none; }
.va-btn .elementor-button-text::after{ content:"→"; display:inline-block; margin-left:.9em; transition:transform .45s var(--va-ease); }
.va-btn .elementor-button:hover .elementor-button-text::after{ transform:translateX(4px); }
.va-btn--lleno .elementor-button{ background:var(--va-teal) !important; border-color:var(--va-teal) !important; color:var(--va-papel) !important; }
.va-btn--linea .elementor-button{ background:transparent !important; border-color:rgba(20,25,27,.45) !important; color:var(--va-tinta) !important; }
.va-btn .elementor-button:hover{ color:var(--va-papel) !important; border-color:var(--va-tinta) !important; }
.va-oscuro .va-btn .elementor-button::before{ background:var(--va-papel); }
.va-oscuro .va-btn--lleno .elementor-button{ background:var(--va-aqua) !important; border-color:var(--va-aqua) !important; color:var(--va-tinta) !important; }
.va-oscuro .va-btn--linea .elementor-button{ border-color:rgba(240,241,237,.45) !important; color:var(--va-papel) !important; }
.va-oscuro .va-btn .elementor-button:hover{ color:var(--va-tinta) !important; border-color:var(--va-papel) !important; }
.va-botones{ gap:10px !important; margin-top:clamp(14px,2vh,24px); }
.va-botones > .elementor-element{ width:auto !important; }

/* ── Cabecera de página interior: foto a sangre bajo velo de tinta ── */
.elementor-element.va-pc{
  position:relative; overflow:clip; isolation:isolate;
  min-height:clamp(480px, 74vh, 780px);
  justify-content:flex-end !important; gap:0 !important;
  padding:clamp(96px,14vh,160px) var(--va-margen) clamp(36px,7vh,76px) !important;
  background-color:var(--va-tinta); background-size:cover !important; background-position:center !important;
  color:var(--va-papel);
}
.va-pc::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    linear-gradient(0deg, rgba(20,25,27,.94) 0%, rgba(20,25,27,.6) 42%, rgba(20,25,27,.22) 100%),
    linear-gradient(90deg, rgba(20,25,27,.5) 0%, rgba(20,25,27,0) 60%);
}
.va-migas, .va-migas p{
  font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-size:0.7188rem !important;
  letter-spacing:.14em; text-transform:uppercase; color:rgba(240,241,237,.66) !important; margin:0 0 20px !important;
}
.va-migas a{ position:relative; color:var(--va-papel); text-decoration:none; }
.va-migas a::after{ content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:currentColor; transform-origin:right center; transition:transform .45s var(--va-ease); }
.va-migas a:hover::after{ transform:scaleX(0); }
.va-h1i .elementor-heading-title{
  font-family:"Bodoni Moda", Georgia, serif !important; font-weight:400 !important;
  font-size:clamp(3rem, 7.8vw, 8rem) !important; line-height:.93 !important; letter-spacing:-.03em !important;
  color:var(--va-papel) !important; margin:0;
}
.elementor-element.va-pc-pie{
  margin-top:clamp(24px,4.5vh,44px); padding-top:22px !important;
  border-top:1px solid rgba(240,241,237,.22);
  gap:18px 40px !important; justify-content:space-between !important; align-items:flex-end !important;
}
.va-pc-pie > .elementor-element{ width:auto !important; max-width:none !important; }
.va-pc-intro, .va-pc-intro p{
  color:rgba(240,241,237,.84) !important; font-family:"IBM Plex Sans", sans-serif !important;
  font-size:1.125rem !important; font-weight:400 !important; line-height:1.6 !important; max-width:54ch; margin:0 !important;
}
.va-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 !important; }
.va-chips span{
  font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; letter-spacing:.1em; text-transform:uppercase;
  padding:9px 13px; border:1px solid rgba(240,241,237,.3); color:var(--va-papel); white-space:nowrap;
}
@media (prefers-reduced-motion: no-preference){
  /* la cabecera de página entra una sola vez al cargar */
  .va-pc .va-migas, .va-pc .va-h1i, .va-pc .va-pc-pie{ animation:va-entra 1s var(--va-ease) both; }
  .va-pc .va-h1i{ animation-delay:.1s; }
  .va-pc .va-pc-pie{ animation-delay:.28s; }
  @keyframes va-entra{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }
}

/* ── Secciones sobre papel ── */
.elementor-element.va-seccion{ padding:clamp(80px,12vh,140px) var(--va-margen) !important; }
.elementor-element.va-seccion.va-papel-2{ background-color:var(--va-papel-2) !important; }
.elementor-element.va-seccion-cabeza{
  justify-content:space-between !important; align-items:flex-end !important; gap:16px 32px !important;
  padding-bottom:clamp(24px,3.5vw,44px) !important; margin-bottom:clamp(28px,4vw,52px);
  border-bottom:1px solid var(--va-linea);
}
.va-seccion-cabeza > .elementor-element{ width:auto !important; max-width:none !important; }
.va-seccion > .e-con-inner > .va-texto, .va-seccion > .va-texto{ margin-bottom:clamp(28px,4vw,48px); }

/* ── Soluciones: seis entradas al catálogo ── */
.elementor-element.va-apps{ display:grid !important; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(14px,1.6vw,22px) !important; }
.va-apps > .elementor-element{ width:auto !important; --width:auto; max-width:none !important; margin:0 !important; }
.elementor-element.va-app{
  position:relative; isolation:isolate; overflow:hidden; aspect-ratio:4/5;
  justify-content:flex-end !important; gap:8px !important; padding:clamp(20px,2.2vw,32px) !important;
}
.va-app > .elementor-widget-image{ position:absolute !important; inset:0; z-index:-1; margin:0 !important; width:100% !important; height:100%; }
.va-app > .elementor-widget-image img{ width:100%; height:100% !important; object-fit:cover; }
.va-app > .elementor-widget-image::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(20,25,27,0) 38%, rgba(20,25,27,.84) 100%);
}
.va-app h3.elementor-heading-title{
  font-family:"Bodoni Moda", Georgia, serif !important; font-weight:400 !important;
  font-size:clamp(1.875rem, 3vw, 2.875rem) !important; line-height:1 !important; letter-spacing:-.02em; color:var(--va-papel) !important;
}
.va-app .va-etiqueta .elementor-heading-title{ color:rgba(240,241,237,.76) !important; }
.va-tarjeta.va-app:hover{ transform:none; translate:none; }
.va-tarjeta.va-app:hover h3{ text-decoration:none; }
.va-app:hover .va-zoom img{ transform:scale(1.05); }

/* ── Matriz aplicación × acabado ── */
.va-matriz-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
table.va-matriz{ width:100%; min-width:820px; border-collapse:collapse; font-family:"IBM Plex Sans", sans-serif; }
table.va-matriz th, table.va-matriz td{ text-align:left; vertical-align:top; padding:20px 18px 20px 0; border-bottom:1px solid var(--va-linea); }
table.va-matriz thead th{
  font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--va-texto-2); border-bottom:1px solid var(--va-tinta); padding-top:0;
}
table.va-matriz tbody th a{
  font-family:"Bodoni Moda", Georgia, serif; font-weight:400; font-size:clamp(1.5rem,2.2vw,2rem);
  color:var(--va-tinta); text-decoration:none; letter-spacing:-.015em;
}
table.va-matriz td a{ font-family:"Bodoni Moda", Georgia, serif; font-size:1.25rem; color:var(--va-tinta); text-decoration:none; line-height:1.2; }
table.va-matriz td a:hover, table.va-matriz tbody th a:hover{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
table.va-matriz td small{ display:block; margin-top:6px; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; color:var(--va-texto-2); letter-spacing:.03em; }
table.va-matriz td.va-vacia{ color:rgba(80,88,90,.55); font-family:"IBM Plex Mono", ui-monospace, monospace; }
table.va-matriz .va-rombo{ font-size:.7em; margin-left:.35em; vertical-align:.25em; }
table.va-matriz tbody tr:hover{ background:rgba(20,25,27,.035); }
.va-leyenda, .va-leyenda p{ font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-size:0.7188rem !important; color:var(--va-texto-2) !important; letter-spacing:.04em; margin-top:18px !important; }

/* El tema (Hello) pinta bordes y filas cebra en todas las tablas: fuera */
table.va-matriz, table.va-ficha{ border:0 !important; margin:0 !important; background:none !important; }
table.va-matriz th, table.va-matriz td, table.va-ficha th, table.va-ficha td{
  border:0 !important; border-bottom:1px solid var(--va-linea) !important; background:none !important;
}
table.va-matriz thead th{ border-bottom:1px solid var(--va-tinta) !important; }
table.va-ficha tr:first-child th, table.va-ficha tr:first-child td{ border-top:1px solid var(--va-tinta) !important; }
table.va-matriz tbody tr:hover > *{ background:rgba(20,25,27,.035) !important; }
.va-min{ text-transform:none; letter-spacing:.02em; }

/* ── Página de solución: bandas por acabado ── */
.elementor-element.va-banda{
  display:grid !important; grid-template-columns:minmax(0,.85fr) minmax(0,2fr);
  gap:clamp(28px,5vw,88px) !important; padding:clamp(48px,7vh,84px) 0 !important;
  border-top:1px solid var(--va-linea);
}
.va-banda > .elementor-element{ width:auto !important; max-width:none !important; margin:0 !important; }
.elementor-element.va-banda-texto{ position:sticky !important; top:112px; align-self:start; gap:14px !important; }
.va-banda-texto .va-h2 .elementor-heading-title{ font-size:clamp(2.125rem,4vw,3.75rem) !important; }
.elementor-element.va-prods{ display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(18px,2.2vw,30px) !important; }
.va-prods > .elementor-element{ width:auto !important; max-width:none !important; margin:0 !important; }
.elementor-element.va-prod{ gap:12px !important; }
.va-prod .elementor-widget-image img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.va-prods > .va-prod:only-child{ grid-column:1 / -1; }
.va-prods > .va-prod:only-child .elementor-widget-image img{ aspect-ratio:16/8; }
.va-prod h3.elementor-heading-title{
  font-family:"Bodoni Moda", Georgia, serif !important; font-weight:400 !important;
  font-size:clamp(1.375rem,2vw,1.875rem) !important; line-height:1.1 !important; color:var(--va-tinta) !important;
}

/* ── Ficha técnica ── */
table.va-ficha{ width:100%; border-collapse:collapse; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.875rem; }
table.va-ficha th, table.va-ficha td{ text-align:left; vertical-align:top; padding:18px 18px 18px 0; border-bottom:1px solid var(--va-linea); }
table.va-ficha tr:first-child th, table.va-ficha tr:first-child td{ border-top:1px solid var(--va-tinta); }
table.va-ficha th{ width:34%; font-size:0.7188rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--va-texto-2); }
table.va-ficha td{ color:var(--va-tinta); }
table.va-ficha td a{ color:inherit; text-underline-offset:3px; }
table.va-ficha .va-pendiente{ color:var(--va-alerta); }

/* ── Cierre de página: donde el sonido termina ── */
.elementor-element.va-cierre-int{
  background-color:var(--va-tinta) !important;
  padding:clamp(96px,16vh,170px) var(--va-margen) !important; gap:18px !important;
}
.va-cierre-int .va-h2 .elementor-heading-title{ font-size:clamp(2.625rem,6.6vw,6.5rem) !important; line-height:.96 !important; }
.va-silencio-w{ width:100% !important; }
.va-silencio{ display:flex; align-items:center; gap:22px; width:100%; margin:0 0 clamp(24px,5vh,56px); }
.va-silencio-trazo{ position:relative; flex:1 1 0; min-width:0; height:56px; overflow:clip; }
.va-silencio-trazo svg{ display:block; width:100%; height:100%; overflow:visible; }
/* la línea se descubre retirando un velo del color del fondo (solo transform) */
.va-silencio-velo{ position:absolute; inset:0; background:var(--va-tinta); transform-origin:right center; transform:scaleX(0); }
.va-silencio path{ fill:none; stroke:var(--va-aqua); stroke-width:1.5; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.va-silencio span{ flex:0 0 auto; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(240,241,237,.6); }
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .va-cierre-int .va-silencio-velo{ animation:va-velo linear both; animation-timeline:view(); animation-range:entry 20% cover 50%; }
    @keyframes va-velo{ from{ transform:scaleX(1); } to{ transform:scaleX(0); } }
  }
}

/* ── Tableta y móvil ── */
@media (max-width:1024px){
  .elementor-element.va-apps{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .elementor-element.va-banda{ grid-template-columns:minmax(0,1fr); }
  .elementor-element.va-banda-texto{ position:relative !important; top:auto; }
}
@media (max-width:767px){
  .elementor-element.va-pc{ min-height:78svh; }
  .va-pc-pie{ flex-direction:column !important; align-items:flex-start !important; }
  .elementor-element.va-apps{ grid-template-columns:minmax(0,1fr); }
  .elementor-element.va-app{ aspect-ratio:4/3.4; }
  .elementor-element.va-prods{ grid-template-columns:minmax(0,1fr); }
  .va-btn .elementor-button{ padding:16px 20px !important; font-size:0.7188rem !important; }
  .va-botones{ flex-direction:column !important; align-items:stretch !important; }
  .va-silencio{ gap:14px; }
  .va-silencio span{ font-size:0.6875rem; letter-spacing:.18em; }
  table.va-ficha th{ width:42%; }
}
@media (prefers-reduced-motion: reduce){
  .va-silencio-velo{ transform:scaleX(0) !important; animation:none !important; transition:none !important; }
  .va-pc .va-migas, .va-pc .va-h1i, .va-pc .va-pc-pie{ animation:none !important; }
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE Y ZOOM DEL NAVEGADOR
   ═══════════════════════════════════════════════════ */
/* Pie que se revela bajo el contenido: solo cuando cabe entero en la pantalla.
   Lo decide el script del pie (html.va-pie-cabe) midiendo su altura real;
   sin script, o con zoom o pantalla baja, el pie va en su sitio normal. */
@media (min-width:768px){
  footer.elementor-location-footer{ position:relative !important; }
  body > .elementor[data-elementor-type="wp-page"], body > .elementor[data-elementor-type="wp-post"],
  body > .elementor[data-elementor-type="archive"], body > .elementor[data-elementor-type="single-post"],
  main.site-main{ margin-bottom:0 !important; }
  html.va-pie-cabe footer.elementor-location-footer{ position:fixed !important; }
  html.va-pie-cabe body > .elementor[data-elementor-type="wp-page"], html.va-pie-cabe body > .elementor[data-elementor-type="wp-post"],
  html.va-pie-cabe body > .elementor[data-elementor-type="archive"], html.va-pie-cabe body > .elementor[data-elementor-type="single-post"],
  html.va-pie-cabe main.site-main{ margin-bottom:var(--va-pie) !important; }
}
.va-pie-motor{ display:none !important; }

/* Cabecera entre 1025 y 1279 px (portátiles pequeños, 1920 con zoom al 150–175 %):
   el menú completo no cabía en una línea y saltaba a dos */
@media (min-width:1025px) and (max-width:1279px){
  .va-header{ padding-left:28px !important; padding-right:28px !important; gap:16px !important; }
  .va-logo img{ width:190px !important; }
  .va-nav .elementor-nav-menu--main > ul > li > a.elementor-item{ padding-left:9px !important; padding-right:9px !important; letter-spacing:.05em !important; }
  .va-nav .elementor-nav-menu > li > a::after{ left:9px; right:9px; }
  .va-header .va-cta .elementor-button{ padding:12px 16px !important; }
}
/* Móvil: el botón de la cabecera, legible y con área táctil suficiente */
@media (max-width:767px){
  .va-header .va-cta .elementor-button{ font-size:0.6875rem !important; letter-spacing:.06em !important; padding:12px !important; min-height:40px; }
}
.va-footer .elementor-widget-heading .elementor-heading-title{ font-size:0.7188rem !important; }
table.va-matriz td a, table.va-matriz tbody th a{ display:inline-block; padding:4px 0; }

/* ── CABECERA EN TABLETA (768–1024 px, y 1920 con zoom al 200 %) ──
   Sin esto, el logo quedaba a la izquierda, la hamburguesa flotando en medio
   y la cabecera medía más de 120 px. */
@media (min-width:768px) and (max-width:1024px){
  .va-header{ flex-wrap:nowrap !important; align-items:center !important; gap:14px !important; padding:14px 28px !important; }
  .va-header > .elementor-element{ margin:0 !important; flex:0 0 auto !important; }
  .va-header .va-logo{ order:1; margin-right:auto !important; }
  .va-header .va-logo img{ width:200px !important; }
  .va-header .va-cta{ order:2; }
  .va-header .elementor-widget-nav-menu{ order:3; }
  .va-header .elementor-menu-toggle, .va-header .va-logo, .va-header .va-cta{ position:relative !important; z-index:120 !important; }
  .va-header .elementor-menu-toggle{ padding:8px !important; border:0 !important; background:transparent !important; color:var(--va-tinta) !important; font-size:26px !important; }
  .va-header .elementor-nav-menu--dropdown{
    position:fixed !important; inset:0 !important; width:100vw !important; max-width:100vw !important; height:100dvh !important;
    margin:0 !important; padding:112px 40px 48px !important; z-index:98 !important;
    background:var(--va-papel) !important; border-top:1px solid var(--va-linea) !important; box-shadow:none !important; overflow-y:auto !important;
  }
  .va-header .elementor-nav-menu--dropdown a.elementor-item{
    font-family:"Bodoni Moda", Georgia, serif !important; font-size:1.9rem !important; font-weight:400 !important;
    text-transform:none !important; letter-spacing:-.01em !important; color:var(--va-tinta) !important;
    padding:16px 0 !important; border-bottom:1px solid var(--va-linea) !important;
  }
  .va-header .elementor-nav-menu--dropdown .sub-menu a.elementor-item{
    font-family:"IBM Plex Sans", sans-serif !important; font-size:.95rem !important; font-weight:400 !important;
    color:var(--va-texto-2) !important; padding:10px 0 10px 18px !important; border-bottom:0 !important;
  }
  body:has(.elementor-menu-toggle[aria-expanded="true"]){ overflow:hidden; }
}
@media (max-width:767px){ .va-header .elementor-nav-menu--dropdown{ background:var(--va-papel) !important; } }
/* Pantallas bajas (zoom del 200 % o más): la cabecera deja de ir pegada arriba
   para no comerse un tercio de la pantalla */
@media (max-height:500px){ header.elementor-location-header{ position:relative !important; } }

/* Titulares: nunca más anchos que la pantalla, aunque el usuario agrande la letra
   del navegador (el mínimo en rem se limita por el ancho disponible) */
.va-h1i .elementor-heading-title{ font-size:clamp(min(3rem, 13vw), 7.8vw, 8rem) !important; }
.va-h2 .elementor-heading-title{ font-size:clamp(min(2.25rem, 11vw), 5vw, 4.75rem) !important; }
.va-cierre-int .va-h2 .elementor-heading-title{ font-size:clamp(min(2.625rem, 12vw), 6.6vw, 6.5rem) !important; }
.va-banda-texto .va-h2 .elementor-heading-title{ font-size:clamp(min(2.125rem, 10vw), 4vw, 3.75rem) !important; }
h1.elementor-heading-title, h2.elementor-heading-title, h3.elementor-heading-title{ overflow-wrap:break-word; }
/* Botón de la cabecera en tableta y escritorio: legible y con altura táctil */
@media (min-width:768px){ .va-header .va-cta .elementor-button{ font-size:.75rem !important; min-height:40px; } }
table.va-matriz .va-rombo{ font-size:.6875rem; }

/* Móvil con letra grande (320 px al 150 %): los botones pueden partir su texto
   en dos líneas en vez de salirse de la pantalla */
@media (max-width:767px){
  .va-btn .elementor-button{ white-space:normal !important; text-align:center; letter-spacing:.08em !important; }
  .va-btn .elementor-button .elementor-button-content-wrapper{ justify-content:center; }
}

/* Pantallas estrechas: la ficha técnica se apila (rótulo encima del valor) para
   que no se salga con la letra agrandada ni con zoom */
@media (max-width:560px){
  table.va-ficha, table.va-ficha tbody, table.va-ficha tr, table.va-ficha th, table.va-ficha td{ display:block; width:100% !important; }
  table.va-ficha tr{ border-bottom:1px solid var(--va-linea); padding:14px 0; }
  table.va-ficha tr:first-child{ border-top:1px solid var(--va-tinta); }
  table.va-ficha th, table.va-ficha td, table.va-ficha tr:first-child th, table.va-ficha tr:first-child td{ border:0 !important; padding:0 !important; }
  table.va-ficha th{ margin-bottom:6px; }
  table.va-ficha td{ overflow-wrap:anywhere; }
}

/* ═══════════════════════════════════════════════════
   MÓDULOS DE CONTENIDO · resto de páginas interiores (14.09.2026)
   Mismo lenguaje: papel, tinta, líneas finas, Bodoni para nombrar,
   Plex Mono para rotular. Movimiento solo con transform y opacity.
   ═══════════════════════════════════════════════════ */
.va-h3 .elementor-heading-title, .va-celda h3.elementor-heading-title{
  font-family:"Bodoni Moda", Georgia, serif !important; font-weight:400 !important;
  font-size:clamp(1.375rem,2vw,1.75rem) !important; line-height:1.12 !important; letter-spacing:-.01em; color:var(--va-tinta) !important;
}
.va-h3 .elementor-heading-title a, .va-celda h3.elementor-heading-title a{ color:inherit; text-decoration:none; }
.va-h3 .elementor-heading-title a:hover, .va-celda h3.elementor-heading-title a:hover{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.va-texto ul, .va-texto ol{ margin:.5em 0 0; padding-left:1.15em; }
.va-texto li{ margin:.35em 0; }
.va-texto strong{ color:var(--va-tinta); font-weight:500; }
.va-oscuro .va-texto strong{ color:var(--va-papel); }

/* ── Texto y foto a dos columnas ── */
.elementor-element.va-dos{
  display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:clamp(28px,5vw,88px) !important; align-items:center;
}
.elementor-element.va-dos.va-dos--inv{ grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.va-dos > .elementor-element{ width:auto !important; max-width:none !important; margin:0 !important; }
.va-dos--inv > .va-dos-texto{ order:2; }
.elementor-element.va-dos-texto{ gap:16px !important; }
.va-dos-texto .va-h2 .elementor-heading-title{ font-size:clamp(min(2.125rem,10vw),4vw,3.75rem) !important; }
.va-dos > .elementor-widget-image{ overflow:hidden; }
.va-dos > .elementor-widget-image img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.va-dos + .va-dos{ margin-top:clamp(56px,9vh,110px); }

/* ── Pasos numerados: la línea de cada paso se traza al entrar ── */
.elementor-element.va-pasos{ display:grid !important; grid-template-columns:repeat(var(--va-n,4), minmax(0,1fr)); gap:clamp(26px,3vw,40px) clamp(18px,2.4vw,36px) !important; }
.va-pasos > .elementor-element{ width:auto !important; max-width:none !important; margin:0 !important; }
.va-n2{ --va-n:2; } .va-n3{ --va-n:3; } .va-n4{ --va-n:4; }
.elementor-element.va-paso{ gap:12px !important; }
.va-paso-num{ position:relative; padding-top:22px; }
.va-paso-num::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--va-tinta); transform-origin:left center; }
.va-paso-num .elementor-heading-title{
  font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-size:0.7188rem !important; font-weight:500 !important;
  letter-spacing:.14em !important; color:var(--va-texto-2) !important;
}
.va-paso .va-texto, .va-paso .va-texto p{ font-size:1rem !important; }

/* ── Rejilla de celdas con rótulo, nombre y texto ── */
.elementor-element.va-rejilla{ display:grid !important; grid-template-columns:repeat(var(--va-n,3), minmax(0,1fr)); gap:clamp(30px,3.4vw,48px) clamp(20px,2.6vw,40px) !important; }
.va-rejilla > .elementor-element{ width:auto !important; max-width:none !important; margin:0 !important; }
.elementor-element.va-celda{ gap:12px !important; padding-top:22px !important; border-top:1px solid var(--va-tinta); }
.va-celda .va-texto, .va-celda .va-texto p{ font-size:1rem !important; }
.va-celda > .elementor-widget-image{ overflow:hidden; margin-bottom:6px !important; }
.va-celda > .elementor-widget-image img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.va-celda .va-enlace-celda .elementor-heading-title{
  font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-size:0.75rem !important; letter-spacing:.12em !important;
  text-transform:uppercase; font-weight:500 !important;
}
.va-celda .va-enlace-celda a{ color:var(--va-tinta); text-decoration:none; display:inline-block; padding:6px 0; }
.va-celda .va-enlace-celda a::after{ content:"→"; display:inline-block; margin-left:.7em; transition:transform .45s var(--va-ease); }
.va-celda .va-enlace-celda a:hover::after{ transform:translateX(4px); }

/* ── Galería de obra: columnas que se reparten las fotos sin recortarlas ── */
.elementor-element.va-galeria{ display:block !important; columns:3; column-gap:clamp(14px,1.6vw,22px); }
.va-galeria > .elementor-element{ width:auto !important; max-width:none !important; margin:0 0 clamp(14px,1.6vw,22px) !important; break-inside:avoid; }
.elementor-element.va-figura{ gap:10px !important; }
.va-figura > .elementor-widget-image{ overflow:hidden; }
.va-figura > .elementor-widget-image img{ width:100%; height:auto; display:block; }

/* ── Lista de enlaces a toda anchura ── */
ul.va-enlaces{ list-style:none; margin:0; padding:0; border-top:1px solid var(--va-tinta); }
ul.va-enlaces li{ margin:0; border-bottom:1px solid var(--va-linea); }
.va-enlaces a, .va-enlaces .va-enlace-q{
  display:grid; grid-template-columns:3rem minmax(0,1fr) auto; gap:6px 20px; align-items:baseline;
  padding:24px 0; color:var(--va-tinta); text-decoration:none;
}
.va-enlaces .n{ grid-row:1 / span 2; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; letter-spacing:.12em; color:var(--va-texto-2); }
.va-enlaces strong{ font-family:"Bodoni Moda", Georgia, serif; font-weight:400; font-size:clamp(1.375rem,2.4vw,2.125rem); line-height:1.1; letter-spacing:-.015em; }
.va-enlaces small{ grid-column:2; font-family:"IBM Plex Sans", sans-serif; font-size:0.9375rem; line-height:1.5; color:var(--va-texto-2); max-width:70ch; }
.va-enlaces i{ grid-column:3; grid-row:1; font-style:normal; font-family:"IBM Plex Mono", ui-monospace, monospace; transition:transform .45s var(--va-ease); }
.va-enlaces em.va-estado{ grid-column:3; grid-row:1; font-style:normal; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--va-alerta); white-space:nowrap; }
.va-enlaces a:hover i{ transform:translateX(6px); }
.va-enlaces a:hover strong{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }

/* ── Preguntas frecuentes ── */
.va-faq{ border-top:1px solid var(--va-tinta); }
.va-faq details{ border-bottom:1px solid var(--va-linea); }
.va-faq summary{
  list-style:none; display:flex; justify-content:space-between; align-items:baseline; gap:24px; padding:24px 0;
  font-family:"Bodoni Moda", Georgia, serif; font-size:clamp(1.25rem,2vw,1.625rem); line-height:1.2; color:var(--va-tinta);
}
.va-faq summary::-webkit-details-marker{ display:none; }
.va-faq summary::after{ content:"+"; flex:0 0 auto; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:1.25rem; line-height:1; transition:transform .45s var(--va-ease); }
.va-faq details[open] summary::after{ transform:rotate(45deg); }
.va-faq summary:focus-visible{ outline:2px solid var(--va-tinta); outline-offset:4px; }
.va-faq-r{ padding:0 0 28px; max-width:70ch; }
.va-faq-r p{ font-family:"IBM Plex Sans", sans-serif; font-size:1.0625rem; line-height:1.62; color:var(--va-texto-2); margin:0 0 .8em; }
.va-faq-r p:last-child{ margin:0; }
.va-faq-r a{ color:var(--va-tinta); text-underline-offset:3px; }

/* ── Cifras y objetivos ── */
dl.va-cifras{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%,13rem),1fr)); margin:0; border-top:1px solid var(--va-tinta); }
.va-cifras > div{ padding:26px 24px 26px 0; border-bottom:1px solid var(--va-linea); }
.va-cifras dt{ font-family:"Bodoni Moda", Georgia, serif; font-weight:400; font-size:clamp(min(2.5rem,12vw),4.6vw,4.25rem); line-height:1; letter-spacing:-.02em; color:var(--va-tinta); }
.va-cifras dd{ margin:14px 0 0; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; color:var(--va-texto-2); }
.va-cifras dd small{ display:block; margin-top:6px; text-transform:none; letter-spacing:.02em; }

/* ── Aviso: lo que aún no está confirmado se dice ── */
.va-aviso{
  max-width:78ch; padding:20px 22px; border-left:2px solid var(--va-arcilla); background:rgba(200,98,63,.07);
  font-family:"IBM Plex Sans", sans-serif; font-size:0.9375rem; line-height:1.55; color:var(--va-tinta);
}
.va-aviso strong{ display:block; margin-bottom:4px; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--va-alerta); }
.va-aviso a{ color:inherit; text-underline-offset:3px; }
.va-aviso-w{ margin-top:clamp(24px,3vw,40px) !important; }

/* ── Hub de sectores: siete sectores y una puerta abierta ── */
.elementor-element.va-app.va-app--cta{ background:var(--va-tinta) !important; justify-content:space-between !important; }
.va-app--cta .va-texto, .va-app--cta .va-texto p{ color:rgba(240,241,237,.76) !important; font-size:1rem !important; }

/* ── Carta de color de PET ── */
.va-tonos{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%,8.5rem),1fr)); gap:clamp(10px,1.2vw,16px); margin:0; padding:0; list-style:none; }
.va-tonos li{ margin:0; }
.va-tonos i{ display:block; aspect-ratio:1; background:var(--c); box-shadow:inset 0 0 0 1px rgba(20,25,27,.08); transition:transform .45s var(--va-ease); }
.va-tonos li:hover i{ transform:scale(.96); }
.va-tonos span{ display:block; margin-top:10px; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.6875rem; letter-spacing:.1em; text-transform:uppercase; color:var(--va-texto-2); }

/* ── Formularios (widget Formulario de Elementor Pro) ── */
.va-form .elementor-form-fields-wrapper{ row-gap:0; }
.va-form .elementor-field-group{ margin-bottom:24px !important; }
.va-form .elementor-field-label{
  font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-size:0.7188rem !important; font-weight:500 !important;
  letter-spacing:.12em; text-transform:uppercase; color:var(--va-texto-2) !important; margin-bottom:8px !important;
}
.va-form .elementor-field-textual, .va-form .elementor-field-group select.elementor-field{
  font-family:"IBM Plex Sans", sans-serif !important; font-size:1rem !important; color:var(--va-tinta) !important;
  background:transparent !important; border:0 !important; border-bottom:1px solid rgba(20,25,27,.42) !important;
  border-radius:0 !important; box-shadow:none !important; padding:12px 0 !important; min-height:48px;
}
.va-form textarea.elementor-field-textual{ border:1px solid rgba(20,25,27,.42) !important; padding:14px !important; }
.va-form .elementor-field-textual::placeholder{ color:rgba(80,88,90,.7); }
.va-form .elementor-field:focus-visible, .va-form input:focus-visible, .va-form select:focus-visible{ outline:2px solid var(--va-tinta) !important; outline-offset:3px; }
.va-form .elementor-field-subgroup{ gap:10px 22px; }
.va-form .elementor-field-option label, .va-form .elementor-field-type-acceptance label{
  font-family:"IBM Plex Sans", sans-serif !important; font-size:0.9375rem !important; color:var(--va-tinta) !important; line-height:1.5;
}
.va-form .elementor-field-type-acceptance label a{ color:inherit; text-underline-offset:3px; }
.va-form input[type="checkbox"], .va-form input[type="radio"]{ accent-color:var(--va-tinta); width:18px; height:18px; }
.va-form .elementor-upload-field{ font-family:"IBM Plex Sans", sans-serif; font-size:0.9375rem; padding:14px !important; border:1px dashed rgba(20,25,27,.42) !important; background:transparent !important; width:100%; }
.va-form .elementor-field-type-submit{ margin-top:8px; }
.va-form .elementor-button[type="submit"]{
  font-family:"IBM Plex Mono", ui-monospace, monospace !important; font-size:0.75rem !important; font-weight:500 !important;
  letter-spacing:.12em !important; text-transform:uppercase; padding:18px 30px !important; border-radius:0 !important;
  background:var(--va-teal) !important; color:var(--va-papel) !important; border:1px solid var(--va-teal) !important; transition:none !important;
}
.va-form .elementor-button[type="submit"]:hover{ background:var(--va-tinta) !important; border-color:var(--va-tinta) !important; }
.va-form .elementor-button[type="submit"] .elementor-button-text::after{ content:"→"; display:inline-block; margin-left:.9em; transition:transform .45s var(--va-ease); }
.va-form .elementor-button[type="submit"]:hover .elementor-button-text::after{ transform:translateX(4px); }
.va-form .elementor-message{ font-family:"IBM Plex Sans", sans-serif !important; font-size:0.9375rem !important; margin-top:16px; }
.va-form .elementor-message.elementor-message-success{ color:var(--va-tinta) !important; }
.va-form .elementor-message.elementor-message-danger, .va-form .elementor-error .elementor-field-textual{ color:var(--va-alerta) !important; }
.va-form .elementor-mark-required .elementor-field-label::after{ color:var(--va-alerta); }

/* Galería de solo dos fotos: dos columnas, sin hueco vacío */
.elementor-element.va-galeria.va-galeria--2{ columns:2; }

/* Pasos breves en la columna lateral de los formularios */
ol.va-lista-pasos{ list-style:none; margin:0; padding:0; counter-reset:va-paso; border-top:1px solid var(--va-tinta); }
ol.va-lista-pasos li{
  counter-increment:va-paso; display:grid; grid-template-columns:2.4rem minmax(0,1fr); gap:12px; margin:0; padding:16px 0;
  border-bottom:1px solid var(--va-linea); font-family:"IBM Plex Sans", sans-serif; font-size:0.9375rem; line-height:1.55; color:var(--va-texto-2);
}
ol.va-lista-pasos li::before{ content:counter(va-paso, decimal-leading-zero); padding-top:.25em; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; letter-spacing:.12em; color:var(--va-tinta); }
ol.va-lista-pasos strong{ color:var(--va-tinta); font-weight:500; }
ol.va-lista-pasos a{ color:inherit; text-underline-offset:3px; }

/* Formulario con columna lateral */
.elementor-element.va-form-col{ gap:16px !important; }
.va-form-col .va-h2 .elementor-heading-title{ font-size:clamp(min(2.125rem,10vw),4vw,3.75rem) !important; }
.va-form-col > .va-texto{ margin-bottom:12px; }
.elementor-element.va-form-grid{ display:grid !important; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:clamp(36px,6vw,110px) !important; align-items:start; }
.va-form-grid > .elementor-element{ width:auto !important; max-width:none !important; margin:0 !important; }
.elementor-element.va-aside{ gap:18px !important; position:sticky !important; top:112px; }
.va-aside .va-etiqueta{ margin-top:10px; }

/* ── Datos de contacto ── */
dl.va-datos{ margin:0; border-top:1px solid var(--va-tinta); }
.va-datos > div{ padding:18px 0; border-bottom:1px solid var(--va-linea); }
.va-datos dt{ font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--va-texto-2); }
.va-datos dd{ margin:8px 0 0; font-family:"Bodoni Moda", Georgia, serif; font-size:clamp(1.25rem,2vw,1.625rem); line-height:1.25; color:var(--va-tinta); overflow-wrap:anywhere; }
.va-datos a{ color:inherit; text-decoration:none; background:linear-gradient(currentColor,currentColor) 0 100% / 100% 1px no-repeat; }
.va-datos a:hover{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; background:none; }
.va-mapa{ width:100% !important; }
.va-mapa iframe{ display:block; width:100%; height:clamp(320px,52vh,500px) !important; filter:grayscale(1) contrast(.94); }

/* ── Calculadora de reverberación ── */
.va-calc{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(28px,4vw,64px); align-items:start; }
.va-calc fieldset{ border:0; margin:0 0 26px; padding:0; min-width:0; }
.va-calc legend{ padding:0; margin-bottom:14px; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--va-tinta); }
.va-calc-fila{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%,8rem),1fr)); gap:16px 18px; }
.va-calc label{ display:flex; flex-direction:column; gap:6px; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.6875rem; letter-spacing:.1em; text-transform:uppercase; color:var(--va-texto-2); }
.va-calc input, .va-calc select{
  width:100%; min-height:46px; padding:10px 0; font-family:"IBM Plex Sans", sans-serif; font-size:1rem; color:var(--va-tinta);
  background:transparent; border:0; border-bottom:1px solid rgba(20,25,27,.42); border-radius:0; letter-spacing:0; text-transform:none;
}
.va-calc input:focus-visible, .va-calc select:focus-visible{ outline:2px solid var(--va-tinta); outline-offset:3px; }
.va-calc-res{ position:sticky; top:112px; display:flex; flex-direction:column; gap:22px; padding:clamp(24px,3vw,40px); background:var(--va-tinta); color:var(--va-papel); }
.va-calc-res h3{ margin:0; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:rgba(240,241,237,.66); }
.va-calc-dato{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; }
.va-calc-dato span{ font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.7188rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(240,241,237,.66); }
.va-calc-dato b{ font-family:"Bodoni Moda", Georgia, serif; font-weight:400; font-size:clamp(2.25rem,4.4vw,3.75rem); line-height:1; letter-spacing:-.02em; }
.va-calc-barra{ position:relative; height:8px; background:rgba(240,241,237,.14); overflow:hidden; }
.va-calc-barra i{ position:absolute; inset:0; background:var(--va-aqua); transform-origin:left center; transform:scaleX(var(--v,0)); transition:transform .7s var(--va-ease); }
.va-calc-barra.obj i{ background:rgba(240,241,237,.55); }
.va-calc-veredicto{ margin:0; font-family:"IBM Plex Sans", sans-serif; font-size:1rem; line-height:1.55; color:rgba(240,241,237,.86); }
.va-calc-veredicto strong{ color:var(--va-papel); font-weight:500; }
.va-calc-nota{ margin:0; font-family:"IBM Plex Sans", sans-serif; font-size:0.8125rem; line-height:1.5; color:rgba(240,241,237,.6); }
.va-calc-res .va-calc-cta{ align-self:flex-start; display:inline-block; padding:16px 22px; background:var(--va-aqua); color:var(--va-tinta); text-decoration:none; font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:0.75rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.va-calc-res .va-calc-cta::after{ content:"→"; display:inline-block; margin-left:.9em; transition:transform .45s var(--va-ease); }
.va-calc-res .va-calc-cta:hover::after{ transform:translateX(4px); }

@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .va-paso-num::before{ animation:va-trazo linear both; animation-timeline:view(); animation-range:entry 10% cover 35%; }
    @keyframes va-trazo{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
  }
  .va-faq details[open] .va-faq-r{ animation:va-entra .6s var(--va-ease) both; }
}
@media (prefers-reduced-motion: reduce){
  .va-paso-num::before{ animation:none !important; transform:none !important; }
  .va-calc-barra i, .va-tonos i, .va-faq summary::after{ transition:none !important; }
}

/* Escritorio: el hub de sectores va a cuatro columnas */
@media (min-width:1025px){ .elementor-element.va-apps.va-apps--4{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
@media (max-width:1024px){
  .elementor-element.va-dos, .elementor-element.va-dos.va-dos--inv{ grid-template-columns:minmax(0,1fr); }
  .va-dos--inv > .va-dos-texto{ order:0; }
  .elementor-element.va-pasos, .elementor-element.va-rejilla{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .elementor-element.va-galeria{ columns:2; }
  .elementor-element.va-form-grid{ grid-template-columns:minmax(0,1fr); }
  .elementor-element.va-aside{ position:relative !important; top:auto; }
  .va-calc{ grid-template-columns:minmax(0,1fr); }
  .va-calc-res{ position:relative; top:auto; }
}
@media (max-width:767px){
  .elementor-element.va-pasos, .elementor-element.va-rejilla{ grid-template-columns:minmax(0,1fr); }
  .elementor-element.va-galeria{ columns:1; }
  .va-enlaces a, .va-enlaces .va-enlace-q{ grid-template-columns:2.2rem minmax(0,1fr) auto; gap:6px 12px; }
  .va-form .elementor-field-group{ width:100% !important; max-width:100% !important; flex-basis:100% !important; }
}
@media (max-width:480px){
  .va-enlaces a, .va-enlaces .va-enlace-q{ grid-template-columns:minmax(0,1fr) auto; }
  .va-enlaces .n{ grid-row:auto; grid-column:1 / -1; }
  .va-enlaces small{ grid-column:1 / -1; }
  .va-enlaces i, .va-enlaces em.va-estado{ grid-row:2; grid-column:2; }
}

/* ── Ajustes tras la revisión visual (14.09.2026) ── */
/* Hub de sectores a cuatro columnas: el nombre más largo («Restaurantes») cabe sin partirse */
@media (min-width:1025px){
  .va-apps--4 .va-app h3.elementor-heading-title{ font-size:clamp(1.625rem, 2.3vw, 2.25rem) !important; }
}
/* Calculadora: medidas en tres columnas incluso en móvil; materiales en dos para que se lean enteros */
.va-calc-fila{ grid-template-columns:repeat(auto-fit, minmax(min(100%,6rem),1fr)); }
.va-calc-fila.va-calc-fila--2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
/* Notas bajo las cifras: el <small> del navegador las dejaba en 9 px */
.va-cifras dd small{ font-size:0.75rem; }
/* Áreas táctiles de 44 px: teléfono y email de contacto, y el enlace de la tarjeta «¿Otro espacio?» */
.va-datos a{ display:inline-block; padding:10px 0; background:none; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.va-datos a:hover{ text-decoration-thickness:2px; background:none; }
.va-app--cta .va-etiqueta a{ display:inline-block; padding:12px 0; }
/* Rejilla: el nombre enlazado y el «Ver…» con área táctil suficiente, sin mover la maqueta */
.va-celda h3.elementor-heading-title a{ display:inline-block; padding:8px 0; margin:-8px 0; }
.va-celda .va-enlace-celda a{ padding:16px 0; margin:-10px 0; }
/* Aviso: el texto va en párrafo */
.va-aviso p{ margin:0; }
/* Casilla de privacidad: sin el rótulo del campo (la casilla ya lleva su texto) y con el enlace visible */
.va-form .elementor-field-type-acceptance > .elementor-field-label{ display:none !important; }
.va-form .elementor-field-type-acceptance .elementor-field-subgroup label a{ text-decoration:underline; text-decoration-thickness:1px; }

/* ═══════════════════════════════════════════════════
   CURSOR DE MARCA: una flecha que emite una onda que decae
   Dibujado en vectorial (REDISENO-INTERIORES/cursor/). Solo con ratón o
   trackpad; punto activo en la punta (3,3). En enlaces pasa a verde
   para seguir diciendo «esto se pulsa»; «auto» y «pointer» de reserva.
   ═══════════════════════════════════════════════════ */
@media (pointer: fine){
  html, body{ cursor:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2232%22 height=%2232%22 viewBox=%220 0 32 32%22%3E %3C%21-- Viva Acoustic %C2%B7 cursor: flecha que emite una onda que decae %28tres arcos cada vez m%C3%A1s tenues%29. Dibujado a mano en vectorial. Punto activo: la punta %283,3%29. --%3E %3Cg fill=%22none%22 stroke-linecap=%22round%22%3E %3Cpath d=%22M19.5 5.5A5 5 0 0 1 19.5 12.5M22 3A8.5 8.5 0 0 1 22 15M24.5 .5A12 12 0 0 1 24.5 17.5%22 stroke=%22%23F0F1ED%22 stroke-width=%223.2%22/%3E %3Cpath d=%22M19.5 5.5A5 5 0 0 1 19.5 12.5%22 stroke=%22%231C6B64%22 stroke-width=%221.6%22/%3E %3Cpath d=%22M22 3A8.5 8.5 0 0 1 22 15%22 stroke=%22%231C6B64%22 stroke-width=%221.6%22 stroke-opacity=%22.6%22/%3E %3Cpath d=%22M24.5 .5A12 12 0 0 1 24.5 17.5%22 stroke=%22%231C6B64%22 stroke-width=%221.6%22 stroke-opacity=%22.3%22/%3E %3C/g%3E %3Cpath d=%22M3 3v18.5l4.6-4.1 3.1 7.2 3.2-1.4-3.1-7.1h6.1z%22 fill=%22%2314191B%22 stroke=%22%23F0F1ED%22 stroke-width=%221.5%22 stroke-linejoin=%22round%22/%3E %3C/svg%3E") 3 3, auto; }
  a, button, [role="button"], summary, select, label[for], .elementor-button, .elementor-menu-toggle,
  .va-fila, .va-fila:hover, .va-tarjeta, .va-tarjeta:hover{ cursor:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2232%22 height=%2232%22 viewBox=%220 0 32 32%22%3E %3C%21-- Viva Acoustic %C2%B7 cursor sobre enlaces y botones: la flecha pasa a verde y la onda suena entera. Dibujado a mano en vectorial. Punto activo: la punta %283,3%29. --%3E %3Cg fill=%22none%22 stroke-linecap=%22round%22%3E %3Cpath d=%22M19.5 5.5A5 5 0 0 1 19.5 12.5M22 3A8.5 8.5 0 0 1 22 15M24.5 .5A12 12 0 0 1 24.5 17.5%22 stroke=%22%23F0F1ED%22 stroke-width=%223.2%22/%3E %3Cpath d=%22M19.5 5.5A5 5 0 0 1 19.5 12.5M22 3A8.5 8.5 0 0 1 22 15M24.5 .5A12 12 0 0 1 24.5 17.5%22 stroke=%22%231C6B64%22 stroke-width=%221.8%22/%3E %3C/g%3E %3Cpath d=%22M3 3v18.5l4.6-4.1 3.1 7.2 3.2-1.4-3.1-7.1h6.1z%22 fill=%22%231C6B64%22 stroke=%22%23F0F1ED%22 stroke-width=%221.5%22 stroke-linejoin=%22round%22/%3E %3C/svg%3E") 3 3, pointer; }
  input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]), textarea, [contenteditable="true"]{ cursor:text; }
}/* End custom CSS */