/* ==========================================================================
   PORTÓN & CONSTRUCCIÓN — CSS del header sobre Elessi
   --------------------------------------------------------------------------
   Extraído de preview/assets/porton.css (líneas 12-32 y 85-250).

   Se carga en TODAS las páginas, no solo en la home, así que incluye sus
   propios tokens: porton-home.css solo se encola en la portada y aquí no se
   puede depender de él.

   DOS CAMBIOS respecto al original, para no pisar a Elessi:
     .container  →  .pc-container   (Elessi usa .container en todo el sitio)
     .btn        →  .header .btn    (Elessi también define .btn)

   Destino: elessi-theme-child/assets/css/porton-header.css
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --pc-red:#E4221D; --pc-red-dark:#B81813; --pc-red-soft:#FDECEB;
  /* Negros neutros, sin tinte de color. La referencia Voltix usaba un azul-negro
     (#0E121D), pero en superficies oscuras grandes —el cotizador, la sección de
     servicios— ese matiz se nota y se lee como azul, no como negro. */
  --pc-ink:#0F0F0F; --pc-ink-2:#171717; --pc-ink-3:#232323;
  --pc-black:#0A0A0A; --pc-graphite:#1A1A1A;
  --pc-slate-700:#3F3F46; --pc-slate-500:#71717A;
  --pc-on-dark:#ABABAB;
  --pc-border:#E4E4E7; --pc-bg:#FFFFFF; --pc-bg-alt:#F5F6F7;
  --pc-whatsapp:#25D366; --pc-success:#15803D;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;
  --space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
  --radius:4px;--radius-lg:8px;--radius-card:16px;--radius-pill:50px;
  --container:1240px;
  --font-display:'Barlow Condensed',system-ui,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
  --shadow-sm:0 1px 3px rgba(10,10,10,.08);
  --shadow-md:0 4px 16px rgba(10,10,10,.10);
  --shadow-lg:0 12px 40px rgba(10,10,10,.16);
}

/* ---------- Base mínima que el header necesita ---------- */
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--space-4);top:var(--space-4);z-index:999;background:#fff;
  padding:var(--space-3) var(--space-4);border:2px solid var(--pc-red)}

/* .pc-container y no .container: Elessi usa .container en todo el sitio y
   redefinir su ancho máximo descuadraría tienda, fichas y pie. */
.pc-container{max-width:var(--container);margin:0 auto;padding:0 var(--space-5)}

/* ---------- Botones, acotados al header ----------
   Elessi define .btn por su cuenta. Al encerrar estas reglas dentro de
   .header y .topbar, el estilo de la maqueta solo manda aquí dentro. */
.header .btn{display:inline-flex;align-items:center;justify-content:center;
  gap:var(--space-2);min-height:48px;padding:0 var(--space-5);
  font-family:var(--font-display);font-weight:700;font-size:1.0625rem;
  text-transform:uppercase;letter-spacing:.03em;line-height:1;
  border:2px solid transparent;border-radius:var(--radius-pill);cursor:pointer;
  text-decoration:none;
  transition:background-color .2s ease,color .2s ease,transform .2s ease,border-color .2s ease}
.header .btn:hover{transform:translateY(-1px)}
.header .btn:active{transform:translateY(0)}
.header .btn--primary{background:var(--pc-red);color:#fff}
.header .btn--primary:hover{background:var(--pc-red-dark);color:#fff}
.header .btn--block{width:100%}

/* ---------- Topbar, header, menús (original, líneas 85-250) ---------- */
/* ---------- Topbar ---------- */
.topbar{background:var(--pc-black);color:#D4D4D8;font-size:.8125rem}
.topbar__in{display:flex;align-items:center;justify-content:space-between;
  gap:var(--space-4);min-height:38px;flex-wrap:wrap}
.topbar__list{display:flex;gap:var(--space-5);list-style:none;margin:0;padding:0}
.topbar__list li{display:flex;align-items:center;gap:6px}
.topbar svg{width:15px;height:15px;color:var(--pc-red);flex:none}
.topbar a:hover{color:#fff}
@media(max-width:767px){.topbar__list--left{display:none}
  .topbar__in{justify-content:center}}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:80;background:#fff;
  border-bottom:1px solid var(--pc-border);box-shadow:var(--shadow-sm)}
.header__in{display:flex;align-items:center;gap:var(--space-5);min-height:92px;
  transition:min-height .25s ease}
@media(min-width:1024px){.header__in{min-height:120px}}
.brand img{height:62px;width:auto;transition:height .25s ease}
@media(min-width:1024px){.brand img{height:86px}}
/* Al bajar, el encabezado se compacta para no comerse la pantalla.
   El logo grande se luce arriba, que es donde importa. */
.header[data-scrolled="true"] .header__in{min-height:72px}
.header[data-scrolled="true"] .brand img{height:50px}
@media(min-width:1024px){
  .header[data-scrolled="true"] .header__in{min-height:86px}
  .header[data-scrolled="true"] .brand img{height:62px}
}
/* El menú horizontal aparece a partir de 1200px, no de 1024px: con el logo y
   la tipografía más grandes, 7 enlaces más el botón ya no caben cómodos en
   1024. Entre 1024 y 1199 se usa el menú de hamburguesa. */
.nav{margin-left:auto;display:none}
@media(min-width:1200px){.nav{display:block}}
.nav__list{display:flex;gap:var(--space-1);list-style:none;margin:0;padding:0}
.nav__list a{display:flex;align-items:center;min-height:48px;padding:0 var(--space-3);
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(1.1875rem,1.35vw,1.3125rem);
  text-transform:uppercase;letter-spacing:.02em;position:relative;transition:color .2s}
.nav__list a::after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);
  bottom:14px;height:3px;background:var(--pc-red);transform:scaleX(0);
  transform-origin:left;transition:transform .2s ease}
.nav__list a:hover{color:var(--pc-red)}
.nav__list a:hover::after,.nav__list a[aria-current="page"]::after{transform:scaleX(1)}

/* ---- Submenú de Productos (escritorio) ----
   Se abre al pasar el mouse y también al enfocar con el teclado: si solo
   respondiera al mouse, quien navega con tabulador no podría llegar a las
   categorías. */
.nav__item--sub{position:relative}
.nav__flecha{width:14px;height:14px;flex:none;margin-left:2px;
  transition:transform .2s ease}
.nav__item--sub:hover .nav__flecha,
.nav__item--sub:focus-within .nav__flecha{transform:rotate(180deg)}

.submenu{
  position:absolute;top:100%;left:0;z-index:70;
  min-width:250px;margin:0;padding:var(--space-2);
  list-style:none;
  background:#fff;border:1px solid var(--pc-border);
  border-top:3px solid var(--pc-red);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
.nav__item--sub:hover .submenu,
.nav__item--sub:focus-within .submenu,
.submenu[data-abierto="true"]{opacity:1;visibility:visible;transform:none}

/* Puente invisible entre el enlace y el panel: sin él, el submenú se cierra
   al cruzar el hueco con el mouse. */
.nav__item--sub::after{content:"";position:absolute;top:100%;left:0;
  width:100%;height:14px}

.submenu a{
  min-height:44px;padding:0 var(--space-3);
  font-size:1rem;letter-spacing:0;text-transform:none;
  font-family:var(--font-body);font-weight:600;
  color:var(--pc-slate-700);border-radius:var(--radius);
}
.submenu a::after{display:none}          /* sin el subrayado del menú principal */
.submenu a:hover{background:var(--pc-red-soft);color:var(--pc-red-dark)}

/* ---- Submenú de Productos (móvil) ---- */
.mobile-nav__grupo{position:relative;border-bottom:1px solid var(--pc-border)}
.mobile-nav__grupo > a{border-bottom:0}
.mobile-nav__toggle{
  position:absolute;top:0;right:0;width:52px;height:52px;
  display:grid;place-items:center;background:none;border:0;cursor:pointer;
  color:var(--pc-black);
}
.mobile-nav__toggle .nav__flecha{width:18px;height:18px}
.mobile-nav__grupo[data-abierto="true"] .nav__flecha{transform:rotate(180deg)}
.mobile-nav__sub{display:none;padding:0 0 var(--space-3) var(--space-4);
  border-left:2px solid var(--pc-red);margin-left:var(--space-2)}
.mobile-nav__grupo[data-abierto="true"] .mobile-nav__sub{display:block}
/* Doble clase para ganar a `.mobile-nav a`, que se define más abajo en la hoja
   y con la misma especificidad se impondría. */
.mobile-nav .mobile-nav__sub a{
  min-height:46px;line-height:46px;font-size:1rem;
  font-family:var(--font-body);font-weight:600;text-transform:none;
  letter-spacing:0;color:var(--pc-slate-700);border-bottom:0;
}
.mobile-nav .mobile-nav__sub a:hover{color:var(--pc-red)}

/* ---- Liquidación: el enlace caliente del menú ----
   Va en píldora clara con texto rojo, no en rojo sólido: el botón "Cotizar
   ahora" ya es un bloque rojo y dos manchas del mismo color compiten entre sí
   en vez de destacar. Así se distingue de todo lo demás sin robarle el ojo
   al botón principal. */
.nav__list a.is-liquidacion{
  /* Rojo oscuro, no el rojo puro: sobre la píldora clara el rojo de marca da
     4,2:1 y solo cumple por ser texto grande. Con el oscuro son 6:1 y sigue
     cumpliendo aunque algún día se reduzca el tamaño del menú. */
  color:var(--pc-red-dark);
  background:#FEF2F1;
  border:1.5px solid #F8CFCC;
  border-radius:var(--radius-pill);
  padding:0 var(--space-4);
  margin-left:var(--space-2);
  gap:7px;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.nav__list a.is-liquidacion::after{display:none}   /* sin subrayado: ya tiene píldora */
.nav__list a.is-liquidacion:hover{
  background:var(--pc-red);border-color:var(--pc-red);color:#fff;
}
/* Punto que late, para que el ojo lo encuentre sin buscarlo */
.nav__list a.is-liquidacion::before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--pc-red);flex:none;   /* el punto sí en rojo vivo: es decorativo */
  animation:pc-latido 1.8s ease-in-out infinite;
}
.nav__list a.is-liquidacion:hover::before{background:#fff}
@keyframes pc-latido{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.4;transform:scale(.7)}
}

/* En el menú móvil, misma idea adaptada a la lista vertical */
.mobile-nav a.is-liquidacion{
  color:var(--pc-red);
  display:flex;align-items:center;gap:8px;
}
.mobile-nav a.is-liquidacion::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:currentColor;flex:none;
  animation:pc-latido 1.8s ease-in-out infinite;
}

@media(prefers-reduced-motion:reduce){
  .nav__list a.is-liquidacion::before,
  .mobile-nav a.is-liquidacion::before{animation:none}
}
.header__cta{display:none;margin-left:auto}
@media(min-width:1200px){.header__cta{display:inline-flex;margin-left:var(--space-4)}}
.burger{margin-left:auto;width:48px;height:48px;display:grid;place-items:center;
  background:none;border:2px solid var(--pc-border);border-radius:var(--radius);cursor:pointer}
@media(min-width:1200px){.burger{display:none}}
.burger svg{width:24px;height:24px}
.mobile-nav{display:none;border-top:1px solid var(--pc-border);padding:var(--space-3) 0 var(--space-5)}
.mobile-nav[data-open="true"]{display:block}
.mobile-nav a{display:block;min-height:52px;line-height:52px;
  font-family:var(--font-display);font-weight:700;font-size:1.25rem;
  text-transform:uppercase;border-bottom:1px solid var(--pc-border)}
.mobile-nav .btn{margin-top:var(--space-4)}



/* ==========================================================================
   CORRECCIONES SOBRE ELESSI
   --------------------------------------------------------------------------
   Todo lo de abajo nace de medir el sitio real, no de suponer. Elessi define
   estilos globales para `a` y `button` que ganaban a la maqueta porque la
   maqueta original se apoyaba en un reset (`a{color:inherit}`) que aquí no se
   puede aplicar: cambiaría el color de los enlaces de toda la tienda.
   La solución es dar el color explícito donde hace falta, sin !important:
   basta con la especificidad de clase.
   ========================================================================== */

/* ---------- 1. Topbar legible ----------
   Elessi pone a{color:#333}. Sobre el negro del topbar eso da 1,3:1 de
   contraste: prácticamente invisible. En blanco puro son 19:1. */
.topbar,
.topbar__list,
.topbar__list li{color:#fff}

.topbar__list a{color:#fff;text-decoration:none}
.topbar__list a:hover,
.topbar__list a:focus-visible{color:var(--pc-red);text-decoration:underline}

/* Los iconos siguen en rojo de marca: son el acento, no el texto. */
.topbar svg{color:var(--pc-red)}

/* Nada de partir un teléfono ni un email en dos líneas. */
.topbar__list li{white-space:nowrap}

/* ---------- 2. Topbar en móvil ----------
   A 375px no caben las cuatro cosas. Se prioriza por utilidad real: el
   teléfono es lo único que se toca desde un celular. */
@media(max-width:767px){
  .topbar__list--left{display:none}
  .topbar__in{justify-content:center}
  .topbar__list{font-size:.75rem;gap:var(--space-4)}
}
@media(max-width:429px){
  /* El email no cabe junto al teléfono en pantallas pequeñas y partirlo se
     ve peor que no mostrarlo. Sigue estando en el pie y en Contacto. */
  .topbar__list li:last-child{display:none}
}

/* ---------- 3. Hamburguesa visible ----------
   Elessi da a los <button> color blanco y borde de 2px. Sobre el header
   blanco, el icono desaparecía y solo se veía el recuadro del borde. */
.burger{
  color:var(--pc-black);
  background:none;
  border:0;
  padding:0;
  box-shadow:none;
  border-radius:var(--radius);
}
.burger:hover{color:var(--pc-red);background:none}
.burger svg{stroke:currentColor}

/* ---------- 4. Menú con el color de la maqueta ----------
   Mismo motivo que el topbar: sin esto heredaba el #333 de Elessi. */
.nav__list a{color:var(--pc-black);text-decoration:none}
.nav__list a:hover{color:var(--pc-red)}
.submenu a{color:var(--pc-slate-700)}
.submenu a:hover{color:var(--pc-red-dark)}
.mobile-nav a{color:var(--pc-black);text-decoration:none}

/* ---------- 5. Logo: que mande en la barra ----------
   Dos fallos se juntaban aquí:
   a) .brand es un flex item y por defecto flex-shrink:1, así que al competir
      por el espacio con el menú y el botón, el logo se comprimía. Se veía
      aplastado y mucho más pequeño de lo pedido. flex:none lo congela.
   b) Elessi aplica img{max-width:100%}, que con un contenedor estrecho
      recortaba el ancho aunque la altura estuviera fijada. */
.brand{flex:none;display:flex;align-items:center;line-height:0}
.brand img{
  width:auto;
  max-width:none;
  height:70px;                 /* móvil y tablet */
  transition:height .25s ease;
}
@media(min-width:1024px){
  .brand img{height:100px}     /* 100px dentro de una barra de 124px */
}

/* La barra crece lo justo para que el logo respire ~12px arriba y abajo.
   Si la barra no creciera, el logo grande la tocaría por ambos lados y se
   leería como un error de maquetación, no como una decisión. */
.header__in{min-height:96px}
@media(min-width:1024px){.header__in{min-height:124px}}

/* Al bajar, todo se compacta para no comerse la pantalla. */
.header[data-scrolled="true"] .brand img{height:54px}
.header[data-scrolled="true"] .header__in{min-height:76px}
@media(min-width:1024px){
  .header[data-scrolled="true"] .brand img{height:72px}
  .header[data-scrolled="true"] .header__in{min-height:92px}
}


/* ==========================================================================
   HEADER FIJO + LOGO GRANDE
   ========================================================================== */

/* ---------- 1. Que el body deje de capturar el scroll ----------
   Elessi trae body{overflow-x:hidden} en su style.css. Según la especificación
   de CSS, cuando overflow-x es 'hidden' el overflow-y calculado pasa de
   'visible' a 'auto': el body se convierte en contenedor de scroll. Y un
   position:sticky se pega respecto a su contenedor de scroll más cercano,
   que pasaría a ser un body que nunca scrollea. Resultado: sticky muerto.

   'clip' recorta exactamente igual que 'hidden' pero NO crea contenedor de
   scroll, que es justo lo que necesitamos. Los navegadores que no lo entiendan
   descartan la línea y se quedan con el 'hidden' de Elessi: no empeora nada. */
html body{overflow-x:clip}

/* ---------- 2. El sticky, en el contenedor correcto ----------
   Nuestro .header se pinta DENTRO del <header id="header-content"> de Elessi,
   y sticky solo recorre dentro de la caja de su padre. Como ese padre mide lo
   mismo que el header, no había recorrido: se iba con la página.

   La solución es pegar el contenedor de Elessi, que sí es hijo directo de
   #wrapper y abarca todo el documento. Se puede hacer sin miedo porque el
   sticky propio de Elessi está desactivado desde PHP (filtro nasa_header_sticky). */
#header-content{
  position:sticky;
  top:0;
  z-index:90;
  background:#fff;
}
/* Y el nuestro deja de intentarlo, para que no compitan dos sticky anidados. */
.header{position:static}

/* ---------- 3. Logo al máximo ----------
   El logo ocupa el 82% de la altura de la barra. Se dejan ~12px de aire arriba
   y abajo: pegado a los bordes se lee como un fallo de maquetación, no como
   una decisión. El archivo es 420x243, así que a 112px de alto mide 194 de
   ancho y sigue cabiendo de sobra junto al menú y al botón. */
.brand img{height:80px}
@media(min-width:1024px){.brand img{height:112px}}

.header__in{min-height:104px}
@media(min-width:1024px){.header__in{min-height:136px}}

/* Al bajar se compacta: la barra grande se luce arriba, que es donde importa,
   y luego cede sitio al contenido. */
.header[data-scrolled="true"] .brand img{height:58px}
.header[data-scrolled="true"] .header__in{min-height:78px}
@media(min-width:1024px){
  .header[data-scrolled="true"] .brand img{height:78px}
  .header[data-scrolled="true"] .header__in{min-height:98px}
}

/* El topbar desaparece al bajar: son datos de apoyo, no navegación, y así el
   header fijo ocupa 78px en vez de 116px. */
.topbar{transition:max-height .25s ease,opacity .2s ease;max-height:60px;overflow:hidden}
@media(min-width:1024px){
  #header-content:has(.header[data-scrolled="true"]) .topbar{max-height:0;opacity:0}
}


/* ==========================================================================
   AJUSTES FINALES
   ========================================================================== */

/* ---------- Logo al máximo ----------
   86% de la altura de la barra. Más que esto no compensa: el PNG (420x243)
   trae aire propio alrededor del texto, así que a partir de aquí se agranda
   la caja pero no la marca. Si aún se ve pequeño, el arreglo no es CSS: hay
   que reexportar el logo recortado, sin márgenes en el archivo. */
.brand img{height:88px}
@media(min-width:1024px){.brand img{height:128px}}

.header__in{min-height:112px}
@media(min-width:1024px){.header__in{min-height:148px}}

.header[data-scrolled="true"] .brand img{height:60px}
.header[data-scrolled="true"] .header__in{min-height:80px}
@media(min-width:1024px){
  .header[data-scrolled="true"] .brand img{height:82px}
  .header[data-scrolled="true"] .header__in{min-height:102px}
}

/* ---------- La franja gris bajo el header ----------
   No la produce el header: es el padding de 10px que Elementor pone por
   defecto en el contenedor exterior de la página. Con el hero a sangre, ese
   padding deja ver el fondo por arriba y por los lados.

   Lo correcto es quitarlo en Elementor (contenedor exterior → Avanzado →
   Relleno → 0). Esto es la red de seguridad, acotada a la portada para no
   tocar el resto de páginas. */
.home #main-content > .elementor > .e-con:first-child,
.home #main-content > .elementor > .elementor-section:first-child{
  padding-top:0;
  padding-left:0;
  padding-right:0;
}


/* ==========================================================================
   LOGO RECORTADO — sustituye a todos los tamaños anteriores
   --------------------------------------------------------------------------
   El logo.png nuevo es 472x138 en vez de 555x220: se le quitó el 39% de
   blanco vacío que traía arriba y abajo. La marca ahora llena su caja, así
   que la misma altura de CSS se ve mucho más grande.

   Como la proporción pasó de 2.52 a 3.42, el logo es bastante más ancho a
   igual altura (a 112px mide 383px). Por eso la altura sube por tramos en
   vez de un solo salto: en un portátil de 1280 el logo, el menú de 6 puntos
   y el botón no caben si el logo va al máximo.
   ========================================================================== */

.brand img{height:64px}                                  /* móvil */
@media(min-width:768px){ .brand img{height:76px} }        /* tablet */
@media(min-width:1024px){.brand img{height:92px} }        /* portátil */
@media(min-width:1400px){.brand img{height:112px} }       /* monitor */

.header__in{min-height:88px}
@media(min-width:768px){ .header__in{min-height:100px} }
@media(min-width:1024px){.header__in{min-height:116px} }
@media(min-width:1400px){.header__in{min-height:136px} }

/* Al bajar. Se encoge menos que antes: como ya no hay aire en el archivo,
   un recorte agresivo dejaría el logo ilegible. */
.header[data-scrolled="true"] .brand img{height:52px}
.header[data-scrolled="true"] .header__in{min-height:74px}
@media(min-width:768px){
  .header[data-scrolled="true"] .brand img{height:60px}
  .header[data-scrolled="true"] .header__in{min-height:82px}
}
@media(min-width:1024px){
  .header[data-scrolled="true"] .brand img{height:70px}
  .header[data-scrolled="true"] .header__in{min-height:92px}
}
@media(min-width:1400px){
  .header[data-scrolled="true"] .brand img{height:82px}
  .header[data-scrolled="true"] .header__in{min-height:104px}
}

/* ---------- Sitio para el logo ancho ----------
   Bug que introduje al acotar los botones: `.header .btn` (0,0,2,0) le ganaba
   a `.header__cta{display:none}` (0,0,1,0), así que el botón aparecía en el
   móvil. Con el logo ancho ya no caben logo + botón + hamburguesa en 375px,
   y encima quedaba apretado. Vuelve al plan original: en móvil solo logo y
   hamburguesa, y el botón "Cotizar ahora" va dentro del menú desplegable. */
.header .header__cta{display:none}
@media(min-width:1024px){ .header .header__cta{display:inline-flex} }

/* El menú cede ancho antes que el logo: el logo no se puede comprimir sin
   deformarse, el menú sí puede juntar sus elementos. */
.nav{min-width:0}
@media(min-width:1200px) and (max-width:1399px){
  .nav__list a{padding:0 var(--space-2);font-size:1.0625rem}
}


/* ==========================================================================
   MÓVIL Y TABLET: LOGO CENTRADO
   --------------------------------------------------------------------------
   Un logo horizontal ancho centrado se lee más equilibrado en pantalla
   estrecha que pegado a la izquierda con un hueco muerto al lado.

   Centrar cuesta tamaño: hay que reservar el mismo hueco a ambos lados aunque
   solo uno lleve la hamburguesa. Se compensa con dos ajustes — margen lateral
   de 16px en vez de 24, y hamburguesa de 44px (sigue por encima del mínimo
   táctil recomendado). Con eso el logo sube de 64 a ~71px en un iPhone SE y
   hasta 84 en móviles grandes, además de quedar centrado.
   ========================================================================== */

@media(max-width:1023px){

  /* Menos margen lateral: cada píxel cuenta para el logo. */
  .header .pc-container{padding-left:var(--space-4);padding-right:var(--space-4)}

  .header__in{
    position:relative;      /* ancla para la hamburguesa */
    justify-content:center;
    gap:0;
    min-height:100px;
  }

  /* La hamburguesa sale del flujo: así no le roba ancho al logo y el centrado
     es respecto a la fila completa, no respecto al espacio sobrante. */
  .burger{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    margin:0;
    width:44px;
    height:44px;
  }

  /* max-height + max-width en vez de height fija: la imagen se ajusta a la
     caja conservando su proporción, así que esto sigue funcionando aunque
     mañana se cambie el logo por otro de proporciones distintas.
     El 100px que se descuenta es el hueco simétrico de la hamburguesa. */
  .brand{flex:none;max-width:100%}
  .brand img{
    width:auto;
    height:auto;
    max-height:84px;
    max-width:calc(100% - 100px);
  }

  /* Al bajar, se compacta pero sigue centrado. */
  .header[data-scrolled="true"] .header__in{min-height:70px}
  .header[data-scrolled="true"] .brand img{max-height:52px}
}

/* En móviles grandes (414px o más) sobra ancho: se deja crecer un poco más. */
@media(min-width:414px) and (max-width:1023px){
  .brand img{max-height:92px}
  .header__in{min-height:110px}
}


/* ==========================================================================
   AJUSTE FINO DE TAMAÑO — bloque definitivo, manda sobre todo lo anterior
   --------------------------------------------------------------------------
   Con el logo recortado la marca se ve un 59% más grande a igual altura de
   caja, así que las medidas que valían con el archivo antiguo se quedaron
   pasadas. Se bajan ~15% en todos los tramos.

   Si en algún momento quieres retocarlo, toca SOLO este bloque: es el último
   del archivo y gana a los anteriores. Las barras se ajustan junto al logo
   para conservar los ~12px de aire arriba y abajo.
   ========================================================================== */

/* ---------- Móvil y tablet (centrado) ---------- */
@media(max-width:1023px){
  .brand img{max-height:72px}
  .header__in{min-height:88px}

  .header[data-scrolled="true"] .brand img{max-height:46px}
  .header[data-scrolled="true"] .header__in{min-height:64px}
}

@media(min-width:414px) and (max-width:1023px){
  .brand img{max-height:78px}
  .header__in{min-height:96px}
}

/* ---------- Escritorio ---------- */
@media(min-width:1024px){
  .brand img{height:78px}
  .header__in{min-height:102px}

  .header[data-scrolled="true"] .brand img{height:60px}
  .header[data-scrolled="true"] .header__in{min-height:82px}
}

@media(min-width:1400px){
  .brand img{height:94px}
  .header__in{min-height:120px}

  .header[data-scrolled="true"] .brand img{height:70px}
  .header[data-scrolled="true"] .header__in{min-height:90px}
}


/* ==========================================================================
   MÓVIL: EL TAMAÑO DEL LOGO LO MANDA .brand, NO LA IMAGEN
   --------------------------------------------------------------------------
   Bloque definitivo para móvil y tablet. Sustituye a todo lo anterior en ese
   rango; verificado midiendo los tres estados en el sitio real.

   POR QUÉ SE DEFORMABA
   Se fueron acumulando reglas sueltas de height y max-height sobre .brand img
   (había diez compitiendo) y encima un max-width:calc(100% - 100px) puesto en
   la IMAGEN, cuyo 100% se resuelve contra .brand — que a su vez se ajusta al
   tamaño de la imagen. Referencia circular. Al bajar, ese tope de ancho se
   juntaba con un height fijo: el navegador calcula el ancho automático a
   partir de la altura declarada, luego max-height recorta la altura, pero el
   ancho ya quedó fijado. Salía 57x46 con un archivo de proporción 3.42.

   CÓMO SE ARREGLA
   Una sola propiedad manda: el ANCHO de .brand. La imagen es width:100% y
   height:auto, así que su proporción no se puede romper — no hay dos límites
   peleando. Se anulan max-width y max-height en la imagen para que ninguna
   regla anterior vuelva a meterse.
   ========================================================================== */

@media(max-width:1023px){

  .header .brand{
    flex:none;
    width:246px;                      /* -> 72px de alto (246 / 3.42) */
    max-width:calc(100% - 100px);     /* hueco simétrico de la hamburguesa */
    transition:width .25s ease;
  }

  .header .brand img{
    display:block;
    width:100%;
    height:auto;
    max-width:none;                   /* anula reglas anteriores */
    max-height:none;
    transition:none;                  /* la transición va en .brand */
  }

  /* Al bajar: 164 / 3.42 = 48px de alto. */
  .header[data-scrolled="true"] .brand{width:164px}
}

/* Móviles grandes y tablets: cabe algo más. */
@media(min-width:414px) and (max-width:1023px){
  .header .brand{width:270px}
  .header[data-scrolled="true"] .brand{width:182px}
}


/* ==========================================================================
   TAMAÑO DEL LOGO — bloque de control, manda sobre todo lo anterior
   --------------------------------------------------------------------------
   Es el ÚLTIMO del archivo, así que para retocar el tamaño solo hay que tocar
   aquí. No hace falta buscar entre las reglas viejas.

   Móvil y tablet se controlan con el ANCHO de .brand (la imagen es width:100%
   y height:auto, así la proporción no se puede romper). Escritorio se controla
   con la altura de la imagen, que ahí no hay tope de ancho que la estorbe.

   Referencia: el archivo mide 472x138, proporción 3.42.
   Alto resultante en móvil = ancho / 3.42
   ========================================================================== */

/* ---------- Móvil (‹414px) ----------
   Se repiten aquí las tres líneas que neutralizan la imagen (width:100%,
   height y los dos max en auto/none). Son redundantes con el bloque anterior,
   pero hacen que ESTE bloque funcione solo: si mañana se reordena el archivo
   o se borra algo de más arriba, el logo sigue sin poder deformarse. */
@media(max-width:1023px){
  .header .brand{
    flex:none;
    width:194px;                                    /* ≈ 57px de alto */
    max-width:calc(100% - 100px);
    transition:width .25s ease;
  }
  .header .brand img{
    display:block;
    width:100%;
    height:auto;
    max-width:none;
    max-height:none;
  }
  .header[data-scrolled="true"] .brand{width:132px} /* ≈ 39px de alto */

  .header__in{min-height:74px}
  .header[data-scrolled="true"] .header__in{min-height:54px}
}

/* ---------- Móvil grande y tablet ---------- */
@media(min-width:414px) and (max-width:1023px){
  .header .brand{width:214px}                              /* ≈ 63px de alto */
  .header[data-scrolled="true"] .brand{width:144px}        /* ≈ 42px de alto */
  .header__in{min-height:82px}
  .header[data-scrolled="true"] .header__in{min-height:60px}
}

/* ---------- Portátil ---------- */
@media(min-width:1024px){
  .brand img{height:60px}
  .header__in{min-height:84px}

  .header[data-scrolled="true"] .brand img{height:48px}
  .header[data-scrolled="true"] .header__in{min-height:70px}
}

/* ---------- Monitor ---------- */
@media(min-width:1400px){
  .brand img{height:74px}
  .header__in{min-height:98px}

  .header[data-scrolled="true"] .brand img{height:56px}
  .header[data-scrolled="true"] .header__in{min-height:80px}
}
