/* Enlace de accesibilidad "Saltar al contenido". Primer elemento enfocable
   de cada página; oculto visualmente hasta recibir foco por teclado.
   z-index alto a propósito: debe quedar por encima de cualquier encabezado
   fijo/pegajoso, del botón flotante de WhatsApp y del indicador de progreso. */
.skip-link{
  position:fixed;
  top:0;
  left:12px;
  z-index:9999;
  transform:translateY(-140%);
  padding:12px 20px;
  background:var(--navy-bg,#00172b);
  color:#fff;
  border:0;
  border-bottom:3px solid var(--brick,#d70000);
  border-radius:0 0 4px 4px;
  font-family:'Archivo',sans-serif;
  font-weight:800;
  font-size:13px;
  letter-spacing:.02em;
  text-decoration:none;
  text-transform:uppercase;
  box-shadow:0 12px 28px rgba(0,23,43,.3);
  transition:transform .16s ease;
}
.skip-link:focus{
  transform:translateY(0);
  outline:2px solid #fff;
  outline-offset:2px;
}

/* ============================================================ */
/* === NAVEGACIÓN GLOBAL — "Banda de precisión industrial"      */
/* Rediseño 2026-08-23. Fuente única para las 46 páginas del     */
/* sitio: index.html, contacto.html, nuestra-empresa.html,       */
/* productos.html, proyectos.html, producto.html (plantilla de   */
/* las 30 fichas + Cámaras eléctricas) y los generadores de       */
/* guías/casos que heredan su nav de nuestra-empresa.html.        */
/* No duplicar estas reglas en el <style> inline de ninguna       */
/* página — si una página necesita un ajuste puntual, hacerlo      */
/* aquí con un selector más específico, nunca copiando el bloque.  */
/*                                                                */
/* Antes de este rediseño el logo, el teléfono y el CTA tenían     */
/* animaciones en bucle infinito (shine cada 5.2s, ring cada        */
/* 3.2s, pulse cada 2.8s) -- se eliminan por completo: la marca      */
/* solo se activa con la interacción real (hover/focus), nunca       */
/* de forma permanente.                                               */
/* ============================================================ */
:root{
  --navgi-navy:#061d33;
  --navgi-navy-deep:#04121f;
}

/* El pegado vive en el <header> banner, no en el <nav>: asi el landmark
   genera caja real y la semantica no depende de que el motor preserve un
   elemento sin caja (display:contents). El <nav> conserva su aspecto. */
header.site-header{ position:sticky; top:0; z-index:40; display:block; }
nav[aria-label="Navegación principal"]{
  background:var(--navgi-navy);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background .28s ease, box-shadow .28s ease, border-color .28s ease;
}
nav[aria-label="Navegación principal"].is-scrolled{
  background:var(--navgi-navy-deep);
  box-shadow:0 10px 30px rgba(0,10,20,.35);
  border-bottom-color:rgba(255,255,255,.16);
}
nav[aria-label="Navegación principal"]::after{
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(215,0,0,.65) 45%, rgba(255,255,255,.3) 55%, transparent);
  opacity:.4; transition:opacity .28s ease; pointer-events:none;
}
nav[aria-label="Navegación principal"].is-scrolled::after{ opacity:.7; }

/* Capa holográfica: reflejo azul petróleo / blanco muy tenue que      */
/* sigue el puntero. Solo en escritorio con puntero fino (el JS        */
/* correspondiente en mobile-nav.js ni siquiera crea el nodo fuera     */
/* de ese caso, ni con prefers-reduced-motion o ahorro de datos).      */
/* mix-blend-mode + radial-gradient, sin filtros costosos, sin canvas. */
.nav-holo{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  opacity:0; transition:opacity .3s ease; mix-blend-mode:screen;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%), rgba(150,195,255,.09), rgba(150,195,255,.03) 45%, transparent 68%);
}
nav[data-holo-ready] .nav-holo{ opacity:1; }
@media (prefers-reduced-motion:reduce), (pointer:coarse){ .nav-holo{ display:none!important; } }

.nav-inner{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between;
  padding:17px 0; transition:padding .28s ease;
}
nav[aria-label="Navegación principal"].is-scrolled .nav-inner{ padding:11px 0; }

/* ---- logo: activación única al interactuar, no en bucle ---- */
.logo{ display:flex; align-items:center; gap:13px; color:#fff; text-decoration:none; }
.logo-mark-svg{
  position:relative; overflow:hidden; width:44px; flex-shrink:0;
  filter:brightness(0) invert(1) drop-shadow(0 3px 8px rgba(0,10,20,.4));
  transition:transform .3s cubic-bezier(.22,1,.36,1);
}
.logo:hover .logo-mark-svg, .logo:focus-visible .logo-mark-svg{ transform:translateY(-1px) scale(1.03); }
.logo-mark-svg svg{ display:block; width:100%; height:auto; }
.logo-mark-svg::after{
  content:''; position:absolute; top:-20%; left:-70%; width:34%; height:140%; z-index:2;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.85) 50%, transparent);
  transform:skewX(-20deg); mix-blend-mode:screen; pointer-events:none; opacity:0;
}
.logo:hover .logo-mark-svg::after, .logo:focus-visible .logo-mark-svg::after{
  opacity:1; animation:navgiLogoShine .7s ease-in-out 1;
}
@keyframes navgiLogoShine{ 0%{ left:-70%; } 100%{ left:135%; } }
.logo-word{ position:relative; font-weight:900; font-size:15px; letter-spacing:-.005em; line-height:1.1; font-family:'Archivo',sans-serif; text-transform:uppercase; color:#fff; }
.logo-word::after{
  content:''; position:absolute; left:0; right:100%; bottom:-4px; height:2px; background:var(--brick);
  transition:right .22s cubic-bezier(.22,1,.36,1);
}
.logo:hover .logo-word::after, .logo:focus-visible .logo-word::after{ right:0; }
.logo-word span{ display:block; font-family:'Archivo',sans-serif; font-size:10px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-top:2px; }
.logo:focus-visible{ outline:2px solid #fff; outline-offset:5px; border-radius:3px; }
@media (prefers-reduced-motion:reduce){
  .logo-mark-svg, .logo-word::after{ transition:none; }
  .logo:hover .logo-mark-svg{ transform:none; }
  .logo-mark-svg::after{ animation:none!important; opacity:0!important; }
}

/* ---- enlaces: dos momentos -- texto más luminoso + trazo que avanza  */
/* de izquierda a derecha y termina en un punto rojo. Sin subrayado     */
/* genérico, sin desplazamiento de layout, 180-260ms. ---- */
.nav-links{ position:relative; z-index:1; display:flex; align-items:center; gap:22px; white-space:nowrap; }
.nav-links a{
  position:relative; display:inline-flex; align-items:center;
  color:rgba(255,255,255,.78); text-decoration:none; font-size:14px; font-weight:600;
  padding:8px 1px 9px; transition:color .2s ease;
}
.nav-links a::before{
  content:''; position:absolute; left:0; bottom:3px; height:1.5px; width:0;
  background:linear-gradient(90deg, rgba(255,255,255,.2), var(--brick));
  transition:width .22s cubic-bezier(.22,1,.36,1);
}
.nav-links a::after{
  content:''; position:absolute; bottom:1.5px; left:0; width:4px; height:4px; border-radius:50%;
  background:var(--brick); opacity:0; transform:scale(.4);
  transition:opacity .16s ease, transform .22s cubic-bezier(.22,1,.36,1), left .22s cubic-bezier(.22,1,.36,1);
}
.nav-links a:hover, .nav-links a:focus-visible{ color:#fff; }
.nav-links a:hover::before, .nav-links a:focus-visible::before{ width:calc(100% - 5px); }
.nav-links a:hover::after, .nav-links a:focus-visible::after{ opacity:1; transform:scale(1); left:calc(100% - 4px); }
.nav-links a.is-active{ color:#fff; }
.nav-links a.is-active::before{ width:calc(100% - 5px); }
.nav-links a.is-active::after{ opacity:1; transform:scale(1); left:calc(100% - 4px); }
.nav-links a:focus-visible{ outline:2px solid #fff; outline-offset:4px; border-radius:2px; }

/* ---- utilidades: teléfono + CTA, agrupadas pero sin competir ---- */
.nav-cta{ position:relative; z-index:1; display:flex; align-items:center; gap:14px; flex-shrink:0; }
.nav-tel{
  display:flex; align-items:center; gap:7px; color:rgba(255,255,255,.78); text-decoration:none;
  padding:6px 10px 6px 6px; border-radius:999px; white-space:nowrap;
  transition:color .2s ease, background .2s ease, box-shadow .2s ease;
}
.nav-tel:hover{ color:#fff; background:rgba(255,255,255,.08); box-shadow:0 0 0 1px rgba(255,255,255,.16); }
.nav-tel:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
.nav-tel .nt-ico{
  width:28px; height:28px; border-radius:50%; background:rgba(255,255,255,.1);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .2s ease;
}
.nav-tel:hover .nt-ico, .nav-tel:focus-visible .nt-ico{ background:var(--brick); }
.nav-tel svg{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.2; flex-shrink:0; transform-origin:50% 20%; }
.nav-tel:hover svg, .nav-tel:focus-visible svg{ animation:navgiTelRing .5s ease-in-out 1; }
@keyframes navgiTelRing{ 0%,100%{ transform:rotate(0); } 25%{ transform:rotate(-14deg); } 50%{ transform:rotate(10deg); } 75%{ transform:rotate(-6deg); } }
.nav-tel .nt-num{ font-family:'Archivo',sans-serif; font-size:14.5px; font-weight:600; letter-spacing:.03em; font-variant-numeric:tabular-nums; }

.nav-cta .btn-brick{
  position:relative; overflow:hidden; flex-shrink:0; white-space:nowrap;
  padding:11px 20px; font-size:13.5px;
  box-shadow:0 4px 14px rgba(215,0,0,.3);
  transition:box-shadow .2s ease;
}
.nav-cta .btn-brick::after{
  content:''; position:absolute; top:0; left:-75%; width:50%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.65) 50%, transparent);
  transform:skewX(-20deg); transition:left .36s cubic-bezier(.22,1,.36,1);
}
.nav-cta .btn-brick:hover, .nav-cta .btn-brick:focus-visible{
  box-shadow:0 6px 22px rgba(215,0,0,.5), 0 0 0 6px rgba(215,0,0,.1);
}
.nav-cta .btn-brick:hover::after, .nav-cta .btn-brick:focus-visible::after{ left:130%; }
.nav-cta .btn-brick:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
.nav-cta .btn-brick .arrow-cta{ display:inline-block; transition:transform .2s cubic-bezier(.22,1,.36,1); }
.nav-cta .btn-brick:hover .arrow-cta, .nav-cta .btn-brick:focus-visible .arrow-cta{ transform:translateX(4px); }
@media (prefers-reduced-motion:reduce){
  .nav-tel svg{ animation:none!important; }
  .nav-cta .btn-brick::after{ transition:none; }
}

/* Franja angosta de escritorio (1151-1290px, justo sobre el corte a móvil):     */
/* logo + 6 enlaces + teléfono + CTA no caben con el espaciado cómodo de         */
/* pantallas anchas -- medido: a 1151px el contenido necesita exactamente        */
/* 1151px sin holgura, y el padding lateral de página ya consume ~115px, lo que  */
/* partía "Cámaras eléctricas", el teléfono y el CTA en dos líneas. Se ajusta     */
/* solo el espaciado y la tipografía del propio nav en este rango puntual --     */
/* nunca el punto de corte a móvil (1150px), que se conserva intacto. */
@media (min-width:1151px) and (max-width:1290px){
  .nav-links{ gap:15px; }
  .nav-links a{ font-size:13px; }
  .nav-cta{ gap:9px; }
  .nav-tel .nt-num{ font-size:13.5px; }
  .nav-cta .btn-brick{ padding:12.5px 15px; font-size:12.5px; }
  .logo-word{ font-size:14px; }
}

@media (max-width:1150px){ .nav-links{ display:none; } .nav-tel{ display:none; } }

/* Sistema compartido de secciones compactas y enmarcadas.
   Se activa en escritorio; tablet y móvil conservan su flujo vertical. */
.pg-home main > section[id],
.pg-proyectos main > section[id]{ scroll-margin-top:82px; }

@media (min-width:1101px){
  .pg-home main > section[id],
  .pg-proyectos main > section[id]{ scroll-margin-top:88px; }

  .pg-home main,
  .pg-proyectos main,
  .pg-empresa2 main,
  .pg-contacto main,
  .pg-productos main,
  .pd-page main{
    background:#f1f3f4;
  }

  /* Portada: todas las secciones usan la misma unidad visual compacta. */
  .pg-home main > section{
    padding:22px 20px !important;
    background:#f1f3f4 !important;
  }

  .pg-home main > section > .wrap{
    max-width:1280px;
    padding:24px 30px;
    background:#fff;
    border:1px solid #dfe3e6;
    border-radius:10px;
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.07);
  }

  .pg-home .solutions .sol-head{ gap:28px; }
  .pg-home .solutions .sol-grid{ padding-top:22px; gap:10px; }
  .pg-home .solutions .sol-grid-scan-mask{ inset:22px 0 0; }
  .pg-home .solutions .sol-card,
  .pg-home .solutions .sol-cta{ height:clamp(330px,27vw,390px); }
  .pg-home .solutions .sol-card-body{ padding:17px 15px 15px; }
  .pg-home .solutions .sol-cta{ padding:20px 18px; }

  .pg-home .ce-top{ gap:28px; margin-bottom:12px; }
  .pg-home .ce-features{ margin:16px 0; }
  .pg-home .ce-photo-main{ height:390px; }
  .pg-home .ce-strip{ margin-top:12px; }

  .pg-home .sm-top{ gap:34px; margin-bottom:18px; }
  .pg-home .sm-photo-main{ height:300px; }
  .pg-home .sm-photos-side{ height:108px; }
  .pg-home .sm-process{ padding:18px 26px 4px; margin-bottom:12px; }
  .pg-home .sm-process-head{ margin-bottom:14px; }
  .pg-home .sm-step{ padding-bottom:18px; }
  .pg-home .sm-final-cta{ padding:18px 24px; }

  .pg-home .qp-top{ gap:32px; margin-bottom:18px; }
  .pg-home .qp-photos{ height:390px; }
  .pg-home .qp-strip{ margin-top:12px; }
  .pg-home .qp-block{ padding:18px 16px; }

  .pg-home .rp-head{ margin-bottom:18px; }
  .pg-home .rp-gallery{ height:390px; gap:10px; }
  .pg-home .rp-gallery-side{ gap:10px; }

  .pg-home .rs-eyebrow{ margin-bottom:14px; }
  .pg-home .rs-item{ padding:18px 17px; }

  .pg-home .faq-grid{ gap:40px; }
  .pg-home .faq-intro-text{ margin-bottom:18px; }
  .pg-home .faq-benefit{ padding:11px 0; }
  .pg-home .faq-q{ padding:16px 20px; }
  .pg-home .faq-close{ margin-top:14px; padding:14px 18px; }

  .pg-home .qc{
    padding:22px 20px !important;
    background:#f1f3f4 !important;
  }
  .pg-home .qc-grid{
    max-width:1280px;
    margin:0 auto;
    border:1px solid #dfe3e6;
    border-radius:10px;
    overflow:hidden;
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.08);
  }
  .pg-home .qc-left-inner{ padding:32px; max-width:none; }
  .pg-home .qc-right-inner{ padding:32px 36px; }
  .pg-home .qc-title{ font-size:clamp(38px,3vw,46px); margin-bottom:10px; }
  .pg-home .qc-intro{ line-height:1.5; margin-bottom:14px; }
  .pg-home .qc-photo{ max-height:245px; margin-bottom:14px; }
  .pg-home .qc-card-rule{ margin-bottom:16px; }
  .pg-home .qc-field{ margin-bottom:11px; }
  .pg-home .qc-field input,
  .pg-home .qc-field select{ height:46px; }
  .pg-home .qc-field textarea{ min-height:90px; }

  .pg-proyectos main > section:not(.pr-hero),
  .pg-empresa2 main > section:not(.em-hero),
  .pg-contacto main > section:not(.ct-hero){
    padding:26px 20px !important;
    background:#f1f3f4 !important;
  }

  .pg-proyectos main > section:not(.pr-hero) > .wrap,
  .pg-empresa2 main > section:not(.em-hero) > .wrap,
  .pg-contacto .ct-canales > .wrap,
  .pg-contacto .ct-ubicacion > .wrap{
    max-width:1280px;
    padding:24px 30px;
    background:#fff;
    border:1px solid #dfe3e6;
    border-radius:10px;
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.07);
  }

  /* Proyectos */
  .pr-solutions-grid{ gap:14px; }
  .pr-featured-grid{ margin-top:20px; }
  .pr-cta-inner{ padding:30px 38px; }
  .pr-process-intro{ margin-bottom:24px; }
  .pr-process-group{ margin-bottom:30px; }
  .pr-process-label{ margin-bottom:18px; }
  .pr-quality-head{ margin-bottom:28px; }
  .pr-quality-item{ padding:0 18px; }
  .pr-cta2-inner{ padding:20px 26px; }

  /* Empresa */
  .em-tray-row{ gap:36px; align-items:center; }
  .em-tray-photo{ flex-basis:230px; aspect-ratio:4/3; }
  .em-planta-head{ margin-bottom:20px; }
  .em-mosaic{ height:430px; }
  .em-proceso-head{ margin-bottom:28px; }
  .em-define > .wrap{
    background:var(--navy-bg);
    border-color:rgba(255,255,255,.12);
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.16);
  }
  .em-define-head{ margin-bottom:26px; }
  .em-define-item{ padding:0 18px; }
  .em-define-icon{ width:27px; height:27px; margin-bottom:9px; }
  .em-define-item p{ line-height:1.45; }
  .em-cta-inner{ min-height:0; padding:22px 28px; }

  /* Contacto */
  .ct-canales{ padding:20px !important; }
  .ct-canales-row{ overflow:hidden; border-radius:6px; }
  .ct-canal{ padding:17px 22px; }
  .ct-cotizacion{ padding:26px 20px !important; }
  .ct-cotizacion > .qc-grid{
    max-width:1280px;
    margin:0 auto;
    border:1px solid #dfe3e6;
    border-radius:10px;
    overflow:hidden;
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.08);
  }
  .ct-cotizacion .qc-left-inner{ padding:34px; max-width:none; }
  .ct-cotizacion .qc-right-inner{ padding:34px 38px; }
  .ct-cotizacion .qc-title{ font-size:clamp(38px,3vw,46px); margin-bottom:12px; }
  .ct-cotizacion .qc-intro{ line-height:1.5; margin-bottom:16px; }
  .ct-cotizacion .qc-photo{ max-height:260px; }
  .ct-cotizacion .qc-card-title{ margin-bottom:8px; }
  .ct-cotizacion .qc-card-rule{ margin-bottom:18px; }
  .ct-cotizacion .qc-row-2{ gap:14px; margin-bottom:12px; }
  .ct-cotizacion .qc-field{ margin-bottom:12px; }
  .ct-cotizacion .qc-field label{ margin-bottom:6px; }
  .ct-cotizacion .qc-field input,
  .ct-cotizacion .qc-field select{ height:46px; }
  .ct-cotizacion .qc-field textarea{ min-height:96px; padding:11px 14px; }
  .ct-cotizacion .qc-upload{ margin:2px 0 14px; }
  .ct-cotizacion .qc-upload-label{ padding:12px 14px; }
  .ct-cotizacion .qc-submit{ height:52px; font-size:14px; }
  .ct-cotizacion .qc-privacy{ margin-top:9px; }
  .ct-ubicacion-grid{ min-height:330px; }

  /* Catálogo: la lista mantiene scroll, pero sus unidades quedan delimitadas. */
  .pg-productos .pg-hero{ padding-top:26px; }
  .pg-productos .pg-layout{
    grid-template-columns:390px minmax(0,1fr);
    gap:40px;
    padding:26px 30px 30px;
    background:#fff;
    border:1px solid #dfe3e6;
    border-radius:10px;
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.07);
  }
  .pg-productos .pg-title{
    font-size:clamp(38px,2.55vw,41px);
    overflow-wrap:normal;
    word-break:normal;
  }
  .pg-productos .pg-strip{ margin-top:26px; }
  .pg-productos .pgx{ padding:26px 20px !important; background:#f1f3f4; }
  .pg-productos .pgx > .wrap{
    max-width:1280px;
    background:#fff;
    border-left:1px solid #dfe3e6;
    border-right:1px solid #dfe3e6;
  }
  .pg-productos .pgx > .wrap:first-child{
    padding:24px 30px !important;
    border-top:1px solid #dfe3e6;
    border-radius:10px 10px 0 0;
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.05);
  }
  .pg-productos .pgx > .wrap:nth-child(2){ padding:0 30px !important; }
  .pg-productos .pgx > .wrap:last-child{
    padding:0 30px 24px !important;
    border-bottom:1px solid #dfe3e6;
    border-radius:0 0 10px 10px;
  }
  .pg-productos .pgx-hero{ gap:32px; margin-bottom:0; }
  .pg-productos .pgx-title{ font-size:clamp(38px,3.2vw,52px); }
  .pg-productos .pgx-hero-photo{ max-height:300px; }
  .pg-productos .pgx-panel{ min-height:350px; padding:24px 22px; }
  .pg-productos .pgx-aux-item{ padding:20px 28px; }

  /* Fichas individuales de producto. */
  .pd-page main{ padding:26px 20px; }
  .pd-page main > .wrap{ max-width:1280px; }
  .pd-page main > .pd-hero{ padding-top:0; }
  .pd-page main > .wrap:not(.pd-hero){
    padding:24px 30px;
    background:#fff;
    border:1px solid #dfe3e6;
    border-radius:10px;
    box-shadow:inset 0 3px 0 var(--brick), 0 12px 36px rgba(6,24,44,.07);
  }
  .pd-page main > .wrap + .wrap{ margin-top:18px; }
  .pd-page .pd-body{ gap:34px; }
  .pd-page .pd-gallery-main{ max-height:470px; }
}

/* Densidad para notebooks y monitores medianos: cada bloque principal cabe en
   una vista de trabajo a 100 % sin perder contenido ni legibilidad. */
@media (min-width:1101px) and (max-width:1500px){
  .pg-home main > section{ padding:8px 18px !important; }
  .pg-home main > section > .wrap{ padding:16px 24px; }

  .pg-home .ce-top{ gap:24px; margin-bottom:9px; }
  .pg-home .ce-photo-main{ height:300px; }
  .pg-home .ce-features{ margin:10px 0; }
  .pg-home .ce-modules{ height:150px; margin-bottom:9px; }
  .pg-home .ce-module-photo img{ min-height:0; }
  .pg-home .ce-module-body{ padding:9px 12px; }
  .pg-home .ce-module-body p{ line-height:1.35; }
  .pg-home .ce-strip{ margin-top:8px; }
  .pg-home .ce-block{ padding:10px 12px; }

  .pg-home .sm-top{ gap:28px; margin-bottom:12px; }
  .pg-home .sm-title-mask{ margin-bottom:8px; }
  .pg-home .sm-title{ font-size:36px; }
  .pg-home .sm-title-rule{ margin-bottom:12px; }
  .pg-home .sm-intro{ font-size:14px; line-height:1.45; }
  .pg-home .sm-capabilities{ margin-top:18px; gap:13px 18px; }
  .pg-home .sm-cap-icon{ width:24px; height:24px; margin-bottom:5px; }
  .pg-home .sm-cap h3{ margin-bottom:4px; }
  .pg-home .sm-cap p{ font-size:11.5px; line-height:1.28; }
  .pg-home .sm-photo-main{ height:300px; }
  .pg-home .sm-photos-side{ display:none; }
  .pg-home .sm-process{ padding:12px 22px 2px; margin-bottom:9px; }
  .pg-home .sm-process-head{ margin-bottom:9px; }
  .pg-home .sm-step{ padding:0 12px 12px; }
  .pg-home .sm-final-cta{ padding:8px 18px; }

  .pg-home .qp-top{ gap:26px; margin-bottom:10px; }
  .pg-home .qp-photos{ height:315px; }
  .pg-home .qp-eyebrow{ margin-bottom:10px; }
  .pg-home .qp-title-mask{ margin-bottom:6px; }
  .pg-home .qp-title-rule{ margin-bottom:9px; }
  .pg-home .qp-intro{ line-height:1.42; margin-bottom:10px; }
  .pg-home .qp-pillars{ gap:8px 16px; }
  .pg-home .qp-pillar{ padding-left:10px; padding-top:10px; min-height:0; }
  .pg-home .qp-pillar:nth-child(1),
  .pg-home .qp-pillar:nth-child(2){ padding-top:0; }
  .pg-home .qp-pillar-icon{ width:20px; height:20px; margin-bottom:4px; }
  .pg-home .qp-pillar h3{ font-size:12px; line-height:1.12; margin-bottom:3px; }
  .pg-home .qp-pillar-rule{ margin-bottom:3px; }
  .pg-home .qp-pillar p{ font-size:11px; line-height:1.28; }
  .pg-home .qp-strip{ margin-top:8px; }
  .pg-home .qp-block{ padding:12px 13px; }

  .pg-home .qc{ padding:8px 18px !important; }
  .pg-home .qc-left-inner{ padding:22px 24px; }
  .pg-home .qc-right-inner{ padding:22px 28px; }
  .pg-home .qc-title{ font-size:36px; margin-bottom:7px; }
  .pg-home .qc-intro{ line-height:1.4; margin-bottom:9px; }
  .pg-home .qc-photo{ max-height:185px; margin-bottom:9px; }
  .pg-home .qc-card-title{ margin-bottom:6px; }
  .pg-home .qc-card-rule{ margin-bottom:10px; }
  .pg-home .qc-row-2{ gap:10px; margin-bottom:7px; }
  .pg-home .qc-field{ margin-bottom:7px; }
  .pg-home .qc-field label{ margin-bottom:4px; }
  .pg-home .qc-field input,
  .pg-home .qc-field select{ height:40px; }
  .pg-home .qc-field textarea{ min-height:68px; padding:9px 12px; }
  .pg-home .qc-upload{ margin:0 0 9px; }
  .pg-home .qc-upload-label{ padding:9px 12px; }
  .pg-home .qc-submit{ height:46px; }
  .pg-home .qc-privacy{ margin-top:6px; }
}

/* Tratamiento fotográfico compartido: tono sobrio y transiciones uniformes. */
.pg-home main section img,
.pg-productos .pg-card-photo img,
.pg-productos .pgx img,
.pd-page .pd-gallery img,
.pg-proyectos main img,
.pg-empresa2 main img,
.pg-contacto main img{
  filter:saturate(.94) contrast(1.025);
}

.pg-productos .pg-card-photo,
.pd-page .pd-gallery-main{
  background:linear-gradient(145deg,#111820,#05090d);
}

.pg-productos .pg-card-photo img,
.pd-page .pd-gallery-main img{
  object-position:center;
}

@media (max-width:1100px){
  .pg-home main > section,
  .pg-proyectos main > section:not(.pr-hero),
  .pg-empresa2 main > section:not(.em-hero),
  .pg-contacto main > section:not(.ct-hero),
  .pg-productos .pgx,
  .pd-page main{
    border-top:1px solid rgba(20,20,20,.09);
  }
}

/* Ajustes visuales aprobados 2026-08-20: marca, encuadres y bloque de calidad. */
.logo-mark-svg{
  filter:none !important;
}
.logo-mark-svg .cls-1{
  fill:#fff !important;
}
.logo-mark-svg .cls-2{
  fill:var(--brick,#d70000) !important;
}

.pg-home .sol-card-img-urbanizacion{
  object-position:center 48%;
}

.pg-home .qp-pillars{
  gap:0;
  overflow:hidden;
  border:1px solid #d5dce3;
  border-top:3px solid var(--brick,#d70000);
  border-radius:8px;
  background:#f5f7f9;
  box-shadow:0 8px 22px rgba(0,23,43,.07);
}
.pg-home .qp-pillar,
.pg-home .qp-pillar:first-child,
.pg-home .qp-pillar:nth-child(3){
  min-width:0;
  padding:13px 14px;
  border:0;
  background:transparent;
}
.pg-home .qp-pillar:nth-child(even){
  border-left:1px solid #d5dce3;
}
.pg-home .qp-pillar:nth-child(n+3){
  border-top:1px solid #d5dce3;
}
.pg-home .qp-pillar-icon{
  width:23px;
  height:23px;
  margin-bottom:6px;
}
.pg-home .qp-pillar h3{
  margin-bottom:4px;
}
.pg-home .qp-pillar-rule{
  margin-bottom:5px;
}
.pg-home .qp-pillar p{
  max-width:31ch;
}

@media (max-width:640px){
  .pg-home .qp-pillars{
    grid-template-columns:1fr;
  }
  .pg-home .qp-pillar,
  .pg-home .qp-pillar:first-child,
  .pg-home .qp-pillar:nth-child(2),
  .pg-home .qp-pillar:nth-child(3),
  .pg-home .qp-pillar:nth-child(4){
    padding:14px 16px;
    border-left:0;
    border-top:1px solid #d5dce3;
  }
  .pg-home .qp-pillar:first-child{
    border-top:0;
  }
  .pg-home .qp-pillar p{
    max-width:none;
  }
}

/* Observaciones visuales 2026-08-20: una sección por vista y capacidades enmarcadas. */
@media (min-width:1101px){
  .pg-home main > section[id]{
    min-height:calc(100svh - 68px);
    display:flex;
    align-items:stretch;
    box-sizing:border-box;
    scroll-snap-align:start;
  }
  .pg-home main > section[id] > .wrap{
    width:100%;
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .pg-home main > section#contacto > .qc-grid{
    width:100%;
    flex:1;
  }
  .pg-home .solutions .sol-grid{
    flex:1;
    min-height:0;
  }
  .pg-home .solutions .sol-card,
  .pg-home .solutions .sol-cta{
    height:100%;
    min-height:420px;
  }
}

.pg-home .sm-capabilities{
  gap:0;
  overflow:hidden;
  border:1px solid #d5dce3;
  border-top:3px solid var(--brick,#d70000);
  border-radius:8px;
  background:#f5f7f9;
  box-shadow:0 8px 22px rgba(0,23,43,.07);
}
.pg-home .sm-cap,
.pg-home .sm-cap:first-child{
  min-width:0;
  padding:14px 15px;
  border:0;
  background:transparent;
}
.pg-home .sm-cap::before{
  display:none;
}
.pg-home .sm-cap:nth-child(even){
  border-left:1px solid #d5dce3;
}
.pg-home .sm-cap:nth-child(n+3){
  border-top:1px solid #d5dce3;
}
.pg-home .sm-cap-icon{
  width:24px;
  height:24px;
  margin-bottom:6px;
}
.pg-home .sm-cap h3{
  margin-bottom:4px;
}
.pg-home .sm-cap-rule{
  display:block;
  width:20px;
  height:2px;
  margin-bottom:5px;
  background:var(--brick,#d70000);
}
.pg-home .sm-cap p{
  max-width:31ch;
  line-height:1.38;
}

@media (max-width:700px){
  .pg-home .sm-capabilities{
    grid-template-columns:1fr;
  }
  .pg-home .sm-cap,
  .pg-home .sm-cap:first-child,
  .pg-home .sm-cap:nth-child(2),
  .pg-home .sm-cap:nth-child(3),
  .pg-home .sm-cap:nth-child(4){
    padding:14px 16px;
    border-left:0;
    border-top:1px solid #d5dce3;
  }
  .pg-home .sm-cap:first-child{
    border-top:0;
  }
  .pg-home .sm-cap p{
    max-width:none;
  }
}

/* Soluciones: respuesta cinetica breve y profundidad editorial. */
.pg-home .solutions .sol-card{
  transition:
    opacity 170ms ease-out,
    transform 105ms cubic-bezier(.2,.9,.2,1.12),
    box-shadow 115ms ease-out,
    filter 115ms ease-out;
  will-change:transform;
}
.pg-home .solutions .sol-card-img{
  transition:transform 170ms cubic-bezier(.2,.8,.2,1),filter 150ms ease-out;
}
.pg-home .solutions .sol-card-body::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  opacity:0;
  transform:translateX(-115%) skewX(-12deg);
  background:linear-gradient(100deg,transparent 32%,rgba(255,255,255,.10) 49%,rgba(215,0,0,.13) 52%,transparent 69%);
  transition:transform 520ms cubic-bezier(.2,.72,.22,1),opacity 140ms linear;
}
@media (hover:hover) and (pointer:fine){
  .pg-home .solutions.sol-in .sol-card:hover{
    transform:translateY(-10px) scale(1.04);
    box-shadow:0 20px 46px rgba(3,28,45,.24),0 7px 18px rgba(3,28,45,.14),inset 3px 0 0 rgba(215,0,0,.55);
    transition-delay:0ms !important;
  }
  .pg-home .solutions.sol-in .sol-card:hover .sol-card-img{
    transform:scale(1.035);
    filter:contrast(1.045) brightness(1.025);
  }
  .pg-home .solutions.sol-in .sol-card:hover .sol-card-body::after{
    opacity:1;
    transform:translateX(115%) skewX(-12deg);
  }
  .pg-home .solutions.sol-in:has(.sol-card:hover) .sol-card:not(:hover){
    transform:scale(.985);
    filter:brightness(.94);
    transition:transform 115ms ease-out,filter 115ms ease-out;
    transition-delay:0ms !important;
  }
}
@media (prefers-reduced-motion:reduce){
  .pg-home .solutions .sol-card,
  .pg-home .solutions .sol-card-img,
  .pg-home .solutions .sol-card-body::after{
    transition:none !important;
    animation:none !important;
  }
  .pg-home .solutions .sol-card-body::after{ display:none; }
}

/* Dirección visual 2026-08-20 · pase de orden, ritmo y proyectos.
   Corrige alturas artificiales, equilibra texto/fotografía e integra respaldo. */
@media (min-width:1101px){
  .pg-home #medida > .wrap,
  .pg-home #proceso > .wrap,
  .pg-home #proyectos > .wrap{
    justify-content:flex-start;
    padding:26px 32px;
  }

  /* Soluciones especiales: columnas equilibradas y aire interior uniforme. */
  .pg-home #medida .sm-top{
    grid-template-columns:minmax(390px,.86fr) minmax(0,1.14fr);
    gap:40px;
    align-items:stretch;
    margin-bottom:18px;
  }
  .pg-home #medida .sm-left,
  .pg-home #medida .sm-photos{
    min-width:0;
  }
  .pg-home #medida .sm-capabilities{
    margin-top:16px;
  }
  .pg-home #medida .sm-cap,
  .pg-home #medida .sm-cap:first-child{
    padding:13px 16px;
  }
  .pg-home #medida .sm-title{
    font-size:34px;
  }
  .pg-home #medida .sm-title-rule{
    margin-bottom:11px;
  }
  .pg-home #medida .sm-intro{
    font-size:13.5px;
    line-height:1.45;
  }
  .pg-home #medida .sm-cap-icon{
    width:22px;
    height:22px;
    margin-bottom:4px;
  }
  .pg-home #medida .sm-cap h3{
    font-size:12.5px;
  }
  .pg-home #medida .sm-cap p{
    font-size:11px;
    line-height:1.3;
  }
  .pg-home #medida .sm-photo-main{
    height:100%;
    min-height:440px;
  }
  .pg-home #medida .sm-process{
    margin:0 0 12px;
    padding:12px 22px 2px;
  }
  .pg-home #medida .sm-process-head{
    margin-bottom:9px;
  }
  .pg-home #medida .sm-step{
    padding-bottom:12px;
  }
  .pg-home #medida .sm-final-cta{
    padding:10px 18px;
  }

  /* Calidad: la composición fotográfica acompaña toda la columna de texto. */
  .pg-home #proceso .qp-top{
    grid-template-columns:minmax(440px,.92fr) minmax(0,1.08fr);
    gap:38px;
    align-items:start;
    margin-bottom:18px;
  }
  .pg-home #proceso .qp-pillars{
    margin-top:18px;
  }
  .pg-home #proceso .qp-photos{
    height:clamp(520px,43vw,550px);
    min-height:0;
    align-self:start;
  }
  .pg-home #proceso .qp-strip{
    margin-top:0;
  }

  /* Proyectos: altura por contenido, cabecera editorial y respaldo integrado. */
  .pg-home main > section#proyectos{
    min-height:auto;
  }
  .pg-home #proyectos .rp-head{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
    align-items:end;
    gap:42px;
    margin-bottom:20px;
  }
  .pg-home #proyectos .rp-title{
    margin-bottom:0;
  }
  .pg-home #proyectos .rp-head-aside{
    align-items:flex-end;
    gap:22px;
    padding-bottom:3px;
  }
  .pg-home #proyectos .rp-gallery{
    grid-template-columns:1.45fr 1fr;
    gap:12px;
    height:370px;
  }
  .pg-home #proyectos .rp-gallery-side{
    gap:12px;
  }
  .pg-home #proyectos .rs-integrated{
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid #d8dee4;
  }
  .pg-home #proyectos .rs-eyebrow{
    margin-bottom:12px;
  }
  .pg-home #proyectos .rs-item{
    padding:17px 18px;
  }
}

/* Galería de proyectos: títulos fuera de la fotografía para máxima legibilidad. */
.pg-home #proyectos .rp-photo{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  background:#00172b;
  border:1px solid #d7dee5;
  border-radius:8px;
  box-shadow:0 10px 24px rgba(0,23,43,.09);
}
.pg-home #proyectos .rp-photo img{
  min-height:0;
}
.pg-home #proyectos .rp-photo figcaption,
.pg-home #proyectos .rp-photo-lg figcaption{
  position:static;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"meta arrow" "title arrow";
  align-items:center;
  gap:3px 14px;
  min-height:66px;
  padding:11px 16px 12px;
  background:#00172b;
  color:#fff;
}
.pg-home #proyectos .rp-photo figcaption .rp-meta,
.pg-home #proyectos .rp-photo-lg figcaption .rp-meta{
  grid-area:meta;
  margin:0;
  color:rgba(255,255,255,.58);
  font-size:10px;
  letter-spacing:.09em;
}
.pg-home #proyectos .rp-photo figcaption strong{
  grid-area:title;
  min-width:0;
  font-family:'Archivo',sans-serif;
  font-size:14px;
  line-height:1.2;
  color:#fff;
}
.pg-home #proyectos .rp-photo-lg figcaption strong{
  font-size:16px;
}
.pg-home #proyectos .rp-photo figcaption .arrow-cta{
  grid-area:arrow;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--brick,#d70000);
  color:#fff;
}
@media (hover:hover) and (pointer:fine){
  .pg-home #proyectos .rp-photo:hover figcaption{
    background:#00172b;
  }
}

/* ============================================================ */
/* CORRECCION 2026-08-24 · el origen de los 1494 px en #proyectos */
/* ------------------------------------------------------------ */
/* Estas reglas se escribieron para el marcado ANTERIOR de        */
/* #proyectos (.rp-photo / .rp-gallery-side). El rediseño         */
/* "Archivo de evidencia" del 2026-08-23 lo reemplazo por         */
/* .rp-case / .rp-strip, y quedaron huerfanas: hoy .rp-photo y    */
/* .rp-gallery-side no existen en index.html (0 coincidencias).   */
/*                                                                */
/* Consecuencia medida a 1024x768: height:auto quitaba la altura  */
/* definida de .rp-gallery y NADA la reponia, porque la caida a   */
/* una sola columna vive en index.html con @media(max-width:900px)*/
/* -> entre 901 y 1100 px la galeria quedaba en DOS columnas SIN  */
/* altura. Ahi .rp-strip{grid-template-rows:repeat(3,1fr)} resuelve*/
/* cada 1fr como max-content, .rp-strip-item img{height:100%}     */
/* cae a auto sobre una pista indefinida y la imagen usa su       */
/* relacion de aspecto (width=1200 height=1600 del HTML):         */
/*   365,609 px de ancho x 4/3 = 487,469 px por fila              */
/*   487,469 x 3 + 2 x 16 px de gap = 1494,41 px                  */
/* y align-items:stretch trasladaba esa altura a .rp-case,        */
/* dando la tarjeta de 548 x 1494 px y una seccion de 2323 px.    */
/*                                                                */
/* Se acotan al tramo donde el apilado real existe (<=900 px).    */
/* El tramo 901-1100 px tiene su modo compacto propio en          */
/* home-editorial-v35.css.                                        */
/* ============================================================ */
@media (max-width:900px){
  .pg-home #proyectos .rp-head{
    display:block;
    margin-bottom:22px;
  }
  .pg-home #proyectos .rp-title{
    margin-bottom:18px;
  }
  .pg-home #proyectos .rp-gallery,
  .pg-home #proyectos .rp-gallery-side{
    height:auto;
  }
}
@media (max-width:1100px){
  .pg-home #proyectos .rs-integrated{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid #d8dee4;
  }
}

@media (max-width:640px){
  .pg-home #proyectos .rp-photo{
    min-height:280px;
  }
  .pg-home #proyectos .rp-gallery-side .rp-photo{
    height:auto;
  }
  .pg-home #proyectos .rp-photo figcaption,
  .pg-home #proyectos .rp-photo-lg figcaption{
    min-height:64px;
    padding:11px 14px;
  }
}

/* Pase interactivo 2026-08-20 · ritmo común, navegación y conversión. */
@media (min-width:1101px){
  .pg-home main > section{
    padding:8px 18px !important;
  }
  .pg-home main > section > .wrap,
  .pg-home #medida > .wrap,
  .pg-home #proceso > .wrap,
  .pg-home #proyectos > .wrap{
    padding:26px 32px;
  }
  .pg-home main > section#contacto{
    padding:8px 18px !important;
  }
}

/* Navegación tipo páginas: conserva el scroll nativo y permite leer bloques altos. */
@media (min-width:1101px) and (hover:hover) and (pointer:fine){
  html:has(body.pg-home){
    scroll-snap-type:y mandatory;
    scroll-padding-top:0;
  }
  body.pg-home .hero,
  body.pg-home main > section[id]{
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
}

@supports (animation-timeline:view()){
  @media (min-width:1101px) and (prefers-reduced-motion:no-preference){
    .pg-home main > section[id] > .wrap,
    .pg-home main > section#contacto > .qc-grid{
      animation:sectionPageReveal .5s cubic-bezier(.2,.8,.2,1) both;
      animation-timeline:view();
      animation-range:entry 0% entry 34%;
    }
  }
}
@keyframes sectionPageReveal{
  from{ opacity:1; transform:translateY(26px) scale(.985); filter:blur(2px); }
  to{ opacity:1; transform:none; filter:none; }
}

/* Selector holográfico sobrio: vidrio industrial, reflejo y respuesta de enlace. */
.pg-home .hero-panel{
  isolation:isolate;
  overflow:clip;
  background:linear-gradient(145deg,rgba(5,24,42,.74),rgba(2,16,30,.5));
  border:1px solid rgba(214,235,255,.24);
  box-shadow:0 24px 56px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.16), 0 0 34px rgba(96,182,255,.08);
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
}
.pg-home .hero-panel::before{
  content:'';
  position:absolute;
  inset:-45% -80%;
  z-index:0;
  pointer-events:none;
  opacity:.38;
  background:linear-gradient(105deg,transparent 40%,rgba(172,226,255,.18) 47%,rgba(255,255,255,.34) 50%,rgba(255,96,88,.13) 53%,transparent 60%);
  transform:translateX(-38%) rotate(6deg);
}
.pg-home .hero-panel::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 28%,transparent 72%,rgba(215,0,0,.08));
}
.pg-home .hero-panel.is-switching::before{
  animation:heroHoloSweep .72s cubic-bezier(.2,.8,.2,1);
}
@keyframes heroHoloSweep{
  from{ transform:translateX(-42%) rotate(6deg); opacity:.18; }
  55%{ opacity:.62; }
  to{ transform:translateX(42%) rotate(6deg); opacity:.28; }
}
.pg-home .hero-panel .hp-item{
  position:relative;
  z-index:1;
  border-radius:5px;
  transition:border-color .22s ease, background .22s ease, box-shadow .22s ease, translate .22s cubic-bezier(.2,.8,.2,1), scale .22s cubic-bezier(.2,.8,.2,1);
}
.pg-home .hero-panel .hp-item:hover{
  translate:-6px 0;
  scale:1.035;
  background:linear-gradient(90deg,rgba(255,255,255,.1),rgba(142,211,255,.035));
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.pg-home .hero-panel .hp-item.is-active{
  background:linear-gradient(90deg,rgba(215,0,0,.13),rgba(255,255,255,.035) 56%,transparent);
  box-shadow:inset 12px 0 22px rgba(215,0,0,.055);
}
.pg-home .hero-panel.is-switching .hp-item.is-active .hp-text{
  animation:heroLinkZoom .58s cubic-bezier(.16,1,.3,1);
}
@keyframes heroLinkZoom{
  0%{ opacity:.35; transform:translateX(-6px) scale(.94); }
  58%{ opacity:1; transform:translateX(3px) scale(1.035); }
  100%{ opacity:1; transform:none; }
}

/* Calidad: rótulos breves que nunca quiebran palabras. */
.pg-home .qp-photo-label span,
.pg-home .qp-photos-bottom .qp-photo-label span{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}
.pg-home .qp-photos-bottom .qp-photo-label{
  padding:9px 8px 8px;
}
.pg-home .qp-photos-bottom .qp-photo-label span{
  font-size:9px;
  line-height:1.15;
  letter-spacing:.01em;
}

/* Cotización: panel de apoyo fotográfico + formulario técnico contenido. */
@media (min-width:1101px){
  .pg-home #contacto .qc-grid{
    grid-template-columns:43% 57%;
  }
  .pg-home #contacto .qc-left{
    background:linear-gradient(145deg,#041a2e 0%,#00172b 58%,#082945 100%);
  }
  .pg-home #contacto .qc-left-inner{
    padding:27px 30px;
  }
  .pg-home #contacto .qc-right{
    padding:18px;
    background:linear-gradient(145deg,#eef2f6,#f8fafc 58%,#eef3f7);
  }
  .pg-home #contacto .qc-right-inner{
    padding:24px 26px;
    background:#fff;
    border:1px solid #d9e0e7;
    border-radius:9px;
    box-shadow:0 16px 36px rgba(3,28,49,.09), inset 0 3px 0 var(--brick,#d70000);
  }
}
.pg-home #contacto .qc-photo{
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 14px 28px rgba(0,0,0,.2);
}
.pg-home #contacto .qc-photo::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 48%,rgba(0,23,43,.86));
}
.pg-home #contacto .qc-photo figcaption{
  position:absolute;
  left:16px;
  right:16px;
  bottom:13px;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  font-family:'Archivo',sans-serif;
  font-size:12px;
  font-weight:700;
  color:#fff;
}
.pg-home #contacto .qc-photo figcaption span{
  color:#ff5b50;
  font-size:9.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pg-home #contacto .qc-form-head{
  margin-bottom:12px;
}
.pg-home #contacto .qc-form-kicker{
  display:block;
  margin-bottom:5px;
  font-family:'Archivo',sans-serif;
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--brick,#d70000);
}
.pg-home #contacto .qc-card-title{
  margin-bottom:6px;
}
.pg-home #contacto .qc-form-intro{
  max-width:58ch;
  margin:0;
  font-size:12px;
  line-height:1.45;
  color:#5b6672;
}
.pg-home #contacto .qc-form-flow{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin:0 0 14px;
}
.pg-home #contacto .qc-form-flow span{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  padding:8px 10px;
  border:1px solid #dbe2e9;
  border-radius:5px;
  background:#f5f8fa;
  font-family:'Archivo',sans-serif;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  color:#3f4c59;
}
.pg-home #contacto .qc-form-flow b{
  color:var(--brick,#d70000);
}
.pg-home #contacto .qc-field input,
.pg-home #contacto .qc-field select,
.pg-home #contacto .qc-field textarea{
  background:#f8fafc;
  border-color:#d5dde5;
}
.pg-home #contacto .qc-field input:focus,
.pg-home #contacto .qc-field select:focus,
.pg-home #contacto .qc-field textarea:focus{
  background:#fff;
}
.pg-home #contacto .qc-upload-label{
  background:#f8fafc;
}

/* Contacto flotante: Juan como fotografía de fondo, sin insignia circular. */






@media (max-width:1100px){
  .pg-home #contacto .qc-right{
    padding:12px;
    background:#eef3f7;
  }
  .pg-home #contacto .qc-right-inner{
    padding:28px 24px;
    background:#fff;
    border:1px solid #d9e0e7;
    border-radius:8px;
  }
}
@media (max-width:640px){
  .pg-home #contacto .qc-form-flow{
    grid-template-columns:1fr;
  }
  .pg-home #contacto .qc-photo figcaption{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }

}

@media (prefers-reduced-motion:reduce){
  html:has(body.pg-home){ scroll-snap-type:none; }
  .pg-home .hero-panel::before,
  .pg-home .hero-panel.is-switching::before,
  .pg-home .hero-panel.is-switching .hp-item.is-active .hp-text{
    animation:none !important;
  }
}

/* Sistema visual general 2026-08-20 · marcos, respiración y continuidad. */
.page-progress{ display:none; }

@media (min-width:1101px){
  .pg-home{
    --section-frame-max:1220px;
    --section-frame-radius:14px;
    --section-frame-border:rgba(0,23,43,.14);
    --section-frame-shadow:0 18px 44px rgba(5,27,47,.085), inset 0 3px 0 var(--brick,#d70000);
  }

  .pg-home main > section,
  .pg-home main > section#contacto{
    padding:14px 36px !important;
  }

  .pg-home main > section > .wrap,
  .pg-home #medida > .wrap,
  .pg-home #proceso > .wrap,
  .pg-home #proyectos > .wrap{
    width:100%;
    max-width:var(--section-frame-max);
    padding:30px 36px 38px;
    border:1px solid var(--section-frame-border);
    border-radius:var(--section-frame-radius);
    box-shadow:var(--section-frame-shadow);
  }

  .pg-home main > section#contacto > .qc-grid{
    width:100%;
    max-width:var(--section-frame-max);
    border:1px solid var(--section-frame-border);
    border-radius:var(--section-frame-radius);
    box-shadow:var(--section-frame-shadow);
  }

  .pg-home #contacto .qc-left-inner,
  .pg-home #contacto .qc-right-inner{
    padding-bottom:34px;
  }

  .pg-home main > section[id],
  .pg-home main > section#proyectos{
    min-height:calc(100svh - 68px);
    scroll-margin-top:0;
  }

  /* El ajuste por proximidad conserva el efecto de página, pero permite leer
     bloques altos y alcanzar el footer sin que el scroll rebote hacia atrás. */
  html:has(body.pg-home){
    scroll-snap-type:y proximity;
    scroll-padding-top:68px;
  }
  body.pg-home .hero,
  body.pg-home main > section[id],
  body.pg-home footer{
    scroll-snap-align:start;
  }
  body.pg-home footer{
    scroll-snap-stop:normal;
  }

  .page-progress{
    position:fixed;
    top:50%;
    right:9px;
    z-index:55;
    display:grid;
    justify-items:center;
    gap:6px;
    width:58px;
    padding:10px 8px;
    transform:translateY(-50%);
    color:#fff;
    background:linear-gradient(180deg,rgba(0,23,43,.96),rgba(4,39,67,.92));
    border:1px solid rgba(255,255,255,.22);
    border-left:3px solid var(--brick,#d70000);
    border-radius:2px;
    box-shadow:0 18px 40px rgba(0,23,43,.26), inset 0 1px 0 rgba(255,255,255,.1);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  .pp-count{
    display:flex;
    align-items:baseline;
    font-family:'Archivo',sans-serif;
    font-weight:800;
    line-height:1;
  }
  .pp-count b{ font-size:12px; color:#fff; }
  .pp-count small{ font-size:8px; color:rgba(255,255,255,.52); }
  .pp-stops{ position:relative; display:grid; justify-items:center; gap:1px; padding:4px 0; }
  .pp-stops::before{ content:''; position:absolute; z-index:0; top:14px; bottom:14px; left:50%; width:1px; background:rgba(255,255,255,.2); transform:translateX(-50%); }
  .pp-stop{ position:relative; z-index:1; width:34px; height:22px; padding:0; display:grid; place-items:center; border:0; background:transparent; color:#fff; cursor:pointer; }
  .pp-stop > span{ width:7px; height:7px; border:1px solid rgba(255,255,255,.7); border-radius:0; background:var(--navy-bg,#00172b); transform:rotate(45deg); transition:width .14s ease,height .14s ease,background .14s ease,transform .14s ease; }
  .pp-stop > i{ display:none; }
  .pp-stop > em{ position:absolute; right:45px; top:50%; min-width:max-content; padding:6px 9px; opacity:0; pointer-events:none; transform:translate(5px,-50%); color:#fff; background:var(--navy-bg,#00172b); border-left:2px solid var(--brick,#d70000); box-shadow:0 8px 20px rgba(0,23,43,.22); font-family:'Archivo',sans-serif; font-size:9px; font-style:normal; font-weight:750; letter-spacing:.04em; text-transform:uppercase; transition:opacity .14s ease,transform .14s ease; }
  .pp-stop:hover > em,.pp-stop:focus-visible > em{ opacity:1; transform:translate(0,-50%); }
  .pp-stop:hover > span{ background:rgba(255,255,255,.35); }
  .pp-stop.is-active > span{ width:12px; height:12px; border-color:#fff; background:var(--brick,#d70000); box-shadow:0 0 0 3px rgba(215,0,0,.22); transform:rotate(45deg); }
  .pp-stop:focus-visible{ outline:1px solid #fff; outline-offset:1px; }
  .pp-label{
    max-width:48px;
    overflow:hidden;
    writing-mode:horizontal-tb;
    transform:none;
    font-family:'Archivo',sans-serif;
    font-size:8px;
    font-weight:700;
    letter-spacing:.08em;
    line-height:1.2;
    text-align:center;
    text-transform:uppercase;
    color:rgba(255,255,255,.68);
  }
  .pp-control,.pp-next{
    width:32px;
    height:25px;
    padding:0;
    display:grid;
    place-items:center;
    color:#fff;
    background:transparent;
    border:1px solid rgba(255,255,255,.32);
    border-radius:1px;
    cursor:pointer;
    box-shadow:none;
    transition:background .14s ease,transform .14s ease,opacity .14s ease;
  }
  .pp-control:hover,.pp-next:hover{ background:var(--brick,#d70000); transform:scale(1.04); }
  .pp-control:focus-visible,.pp-next:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
  .pp-control svg,.pp-next svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  .pp-control.is-hidden,.pp-next.is-hidden{ opacity:.25; pointer-events:none; }
  html.is-page-jumping:has(body.pg-home){ scroll-snap-type:none !important; }
}

/* Contacto flotante: fotografía circular de Juan + sello WhatsApp integrado. */







@media (max-width:1100px){
  .page-progress{ display:none; }
  .pg-home main > section > .wrap,
  .pg-home main > section#contacto > .qc-grid{
    margin-left:14px;
    margin-right:14px;
    width:auto;
  }
}

@media (max-width:640px){


}

@media (prefers-reduced-motion:reduce){
  html:has(body.pg-home){ scroll-snap-type:none; }
  .pp-fill,
  .pp-fill i,
  .pp-next,

}

/* Rendimiento y accesibilidad 2026-08-20: navegación móvil global. */
.mobile-nav-toggle,
.mobile-nav-panel,
.mobile-nav-overlay{
  display:none;
}

@media (max-width:1150px){
  body.mobile-nav-open{ overflow:hidden; }
  nav .nav-inner{ gap:10px; }
  nav .nav-cta{ margin-left:auto; }
  nav .nav-cta .btn{ display:none; }

  .mobile-nav-toggle{
    position:relative;
    z-index:73;
    display:grid;
    place-content:center;
    gap:5px;
    width:46px;
    height:46px;
    flex:0 0 46px;
    padding:0;
    color:#fff;
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.2);
    border-radius:8px;
    cursor:pointer;
  }
  .mobile-nav-toggle span{
    display:block;
    width:20px;
    height:2px;
    background:currentColor;
    border-radius:2px;
    transform-origin:center;
    transition:transform .2s ease, opacity .2s ease;
  }
  .mobile-nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .mobile-nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .mobile-nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .mobile-nav-panel{
    position:fixed;
    top:68px;
    right:0;
    z-index:72;
    display:block;
    width:min(88vw,380px);
    height:calc(100dvh - 68px);
    padding:24px 22px 30px;
    color:#fff;
    background:linear-gradient(155deg,#061d33,#00172b 72%);
    border-left:1px solid rgba(255,255,255,.12);
    box-shadow:-24px 0 50px rgba(0,0,0,.28);
    overflow:auto;
    overscroll-behavior:contain;
  }
  .mobile-nav-panel[hidden],
  .mobile-nav-overlay[hidden]{ display:none; }
  .mobile-nav-overlay{
    position:fixed;
    inset:68px 0 0;
    z-index:71;
    display:block;
    background:rgba(0,12,24,.58);
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
  }
  .mobile-nav-head{
    display:flex; align-items:center; justify-content:space-between;
    margin:0 0 14px;
  }
  .mobile-nav-heading{
    margin:0;
    color:rgba(255,255,255,.55);
    font-size:11px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .mobile-nav-close{
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px; padding:0; flex:0 0 38px;
    color:#fff; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.2);
    border-radius:8px; cursor:pointer; font-size:20px; line-height:1;
  }
  .mobile-nav-close:focus-visible,
  .mobile-nav-toggle:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
  .mobile-nav-links{ display:grid; counter-reset:navstep; }
  .mobile-nav-links a{
    counter-increment:navstep;
    display:flex;
    align-items:center;
    min-height:52px;
    color:#fff;
    border-bottom:1px solid rgba(255,255,255,.12);
    font-size:16px;
    font-weight:700;
    text-decoration:none;
  }
  .mobile-nav-links a::before{
    content:counter(navstep,decimal-leading-zero);
    margin-right:12px;
    color:var(--brick);
    font-family:'Archivo',sans-serif;
    font-weight:800;
    font-size:11px;
    letter-spacing:.04em;
  }
  .mobile-nav-links a::after{
    content:'\2192';
    margin-left:auto;
    color:#ff3b30;
  }
  .mobile-nav-links a:focus-visible{ outline:2px solid #fff; outline-offset:-2px; }
  .mobile-nav-links a.is-active,
  .mobile-nav-links a[aria-current="page"]{ color:#ff6b63; }
  .mobile-nav-utilities{
    display:grid; gap:10px; margin-top:22px;
  }
  .mobile-nav-tel{
    display:flex; align-items:center; gap:10px;
    min-height:52px; padding:0 14px;
    color:#fff; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16);
    border-radius:8px; text-decoration:none; font-family:'Archivo',sans-serif; font-weight:700; font-size:15px;
  }
  .mobile-nav-tel svg{ width:16px; height:16px; stroke:var(--brick); fill:none; stroke-width:2.2; flex-shrink:0; }
  .mobile-nav-tel:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
  .mobile-nav-contact{
    display:grid;
    gap:4px;
    min-height:56px;
    padding:12px 16px;
    color:#fff;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.16);
    border-radius:8px;
    text-decoration:none;
  }
  .mobile-nav-contact:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
  .mobile-nav-contact span{ font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); }
  .mobile-nav-contact strong{ font-size:14.5px; }
  .mobile-nav-cta{
    display:flex; align-items:center; justify-content:center; gap:8px;
    min-height:54px; margin-top:4px;
    color:#fff; background:var(--brick);
    border-radius:8px; text-decoration:none;
    font-family:'Archivo',sans-serif; font-weight:800; font-size:14.5px; text-transform:uppercase; letter-spacing:.02em;
  }
  .mobile-nav-cta:focus-visible{ outline:2px solid #fff; outline-offset:3px; }
}
@media (prefers-reduced-motion:reduce){
  .mobile-nav-toggle span{ transition:none; }
}

/* Corrige el colapso de la galería en fichas de producto móviles. */
@media (max-width:760px){
  .pd-page #pdBody{
    grid-template-columns:minmax(0,1fr);
    gap:26px;
  }
  .pd-page #pdBody > .pd-gallery,
  .pd-page #pdBody > .pd-info,
  .pd-page #pdBody > .pd-sections-wrap{
    grid-column:1;
  }
  .pd-page .pd-thumbs{
    gap:10px;
    overflow-x:auto;
    padding:2px 2px 7px;
    scrollbar-width:thin;
  }
  .pd-page .pd-thumb{
    width:68px;
    min-width:68px;
    height:68px;
    flex:0 0 68px;
  }
}

/* Estados de teclado visibles y contraste del selector inicial. */
:where(a,button,input,select,textarea):focus-visible{
  outline:3px solid #ff3b30;
  outline-offset:3px;
}
.pg-home #contacto .qc-field select:invalid{ color:#5f6873; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto !important; }
  .mobile-nav-toggle span,
  .mobile-nav-panel,
  .mobile-nav-overlay{ transition:none !important; }
}

/* Respaldo verificable: mantiene el sistema editorial sin publicar reseñas no confirmadas. */
.pg-home .rvw-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  align-items:end;
  gap:48px;
  margin-bottom:26px;
}
.pg-home .rvw-eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  font-family:'Archivo',sans-serif;
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--brick,#d70000);
}
.pg-home .rvw-eyebrow span{ width:22px; height:2px; background:currentColor; }
.pg-home .rvw-title{
  margin:0 0 12px;
  font-family:'Archivo',sans-serif;
  font-size:clamp(38px,3.4vw,52px);
  line-height:.98;
  letter-spacing:-.035em;
  text-transform:uppercase;
  color:#00172b;
}
.pg-home .rvw-title em{ font-style:normal; color:var(--brick,#d70000); }
.pg-home .rvw-head-copy p{
  max-width:62ch;
  margin:0;
  font-size:14px;
  line-height:1.55;
  color:#52606d;
}
.pg-home .rvw-rating{
  position:relative;
  overflow:hidden;
  display:grid;
  gap:8px;
  padding:22px 24px;
  color:#fff;
  text-decoration:none;
  background:linear-gradient(145deg,#00172b,#0a3454);
  border:1px solid rgba(255,255,255,.12);
  border-radius:9px;
  box-shadow:0 14px 30px rgba(0,23,43,.16);
  transition:transform .22s ease, box-shadow .22s ease;
}
.pg-home .rvw-rating::after{
  content:'';
  position:absolute;
  right:-34px;
  top:-42px;
  width:120px;
  height:120px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:50%;
}
.pg-home .rvw-rating:hover{ transform:translateY(-4px); box-shadow:0 20px 38px rgba(0,23,43,.22); }
.pg-home .rvw-rating-source{
  font-family:'Archivo',sans-serif;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.68);
}
.pg-home .rvw-rating-row{ display:flex; align-items:center; gap:14px; }
.pg-home .rvw-rating-row strong{ font-family:'Archivo',sans-serif; font-size:34px; line-height:1; text-transform:uppercase; }
.pg-home .rvw-rating-note{ max-width:16ch; font-size:11px; line-height:1.35; color:rgba(255,255,255,.72); }
.pg-home .rvw-stars,
.pg-home .rvw-card-stars{ color:#fbbc04; letter-spacing:.07em; }
.pg-home .rvw-stars{ font-size:15px; }
.pg-home .rvw-rating-link{
  display:flex;
  justify-content:space-between;
  padding-top:9px;
  border-top:1px solid rgba(255,255,255,.15);
  font-size:11px;
  font-weight:700;
}
.pg-home .rvw-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.pg-home .rvw-card{
  position:relative;
  display:flex;
  min-height:190px;
  flex-direction:column;
  justify-content:space-between;
  padding:24px;
  background:#f5f7f9;
  border:1px solid #d7dee5;
  border-top:3px solid var(--brick,#d70000);
  border-radius:8px;
  box-shadow:0 10px 24px rgba(0,23,43,.06);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.pg-home .rvw-card:hover{ transform:translateY(-5px); border-color:#c2ccd5; box-shadow:0 16px 30px rgba(0,23,43,.11); }
.pg-home .rvw-card-stars{ font-size:12px; }
.pg-home .rvw-card-kicker{
  font-family:'Archivo',sans-serif;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--brick,#d70000);
}
.pg-home .rvw-card h3{
  margin:15px 0 9px;
  font-family:'Archivo',sans-serif;
  font-size:18px;
  line-height:1.2;
  color:#00172b;
}
.pg-home .rvw-card p{ margin:0 0 22px; font-size:12px; line-height:1.55; color:#52606d; }
.pg-home .rvw-card-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid #d5dce3;
  font-family:'Archivo',sans-serif;
  font-size:11px;
  font-weight:800;
  color:#00172b;
  text-decoration:none;
  text-transform:uppercase;
}
.pg-home .rvw-card-link:hover{ color:var(--brick,#d70000); }
.pg-home .rvw-card blockquote{
  margin:16px 0 22px;
  font-family:'Archivo',sans-serif;
  font-size:18px;
  font-weight:700;
  line-height:1.35;
  color:#00172b;
}
.pg-home .rvw-author{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:12px;
  border-top:1px solid #d5dce3;
}
.pg-home .rvw-author span{ font-family:'Archivo',sans-serif; font-size:11px; font-weight:800; color:#00172b; }
.pg-home .rvw-author small{ font-size:10px; color:#71808e; }
.pg-home .rvw-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:16px;
  padding:15px 18px;
  background:#00172b;
  border-radius:7px;
  color:#fff;
}
.pg-home .rvw-bottom div{ display:flex; align-items:baseline; gap:12px; }
.pg-home .rvw-bottom strong{ font-family:'Archivo',sans-serif; font-size:12px; text-transform:uppercase; }
.pg-home .rvw-bottom div span{ font-size:11px; color:rgba(255,255,255,.66); }
.pg-home .rvw-bottom a{
  display:flex;
  align-items:center;
  gap:18px;
  flex-shrink:0;
  padding:10px 15px;
  color:#fff;
  background:var(--brick,#d70000);
  border-radius:5px;
  font-family:'Archivo',sans-serif;
  font-size:11px;
  font-weight:800;
  text-decoration:none;
  text-transform:uppercase;
}

@media (max-width:1100px){
  .pg-home .rvw-head{ grid-template-columns:1fr; gap:22px; }
  .pg-home .rvw-rating{ max-width:360px; }
}
@media (max-width:820px){
  .pg-home .rvw-grid{ grid-template-columns:1fr; }
  .pg-home .rvw-card{ min-height:0; }
  .pg-home .rvw-bottom,
  .pg-home .rvw-bottom div{ align-items:flex-start; flex-direction:column; }
}

/* Sistema visual definitivo 2026-08-20 v14.
   Una sola geometria para portada, catalogo, fichas y paginas interiores. */
:where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page){
  --vn-content-max:1220px;
  --vn-page-bg:#eef1f3;
  --vn-surface:#fff;
  --vn-surface-soft:#f5f7f9;
  --vn-border:#d7dee5;
  --vn-border-strong:rgba(0,23,43,.17);
  --vn-frame-radius:14px;
  --vn-card-radius:9px;
  --vn-section-shadow:0 16px 38px rgba(0,23,43,.075),inset 0 3px 0 var(--brick,#d70000);
  --vn-card-shadow:0 8px 22px rgba(0,23,43,.065);
  --vn-section-space:14px;
  --vn-frame-pad-x:clamp(24px,2.65vw,36px);
  --vn-frame-pad-y:clamp(24px,2.25vw,32px);
}

:where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page) main{
  background:var(--vn-page-bg);
}

@media (min-width:1101px){
  /* Ritmo editorial de portada: cada bloque corto ocupa la vista util completa.
     Los bloques con mas contenido pueden crecer sin recortes. */
  .pg-home main > section,
  .pg-home main > section#contacto{
    min-height:calc(100svh - 68px) !important;
    padding:var(--vn-section-space) 36px !important;
    display:flex;
    align-items:stretch;
    box-sizing:border-box;
  }
  .pg-home main > section[id] > .wrap,
  .pg-home main > section#contacto > .qc-grid{
    width:100%;
    max-width:var(--vn-content-max);
    min-height:0;
    margin-inline:auto;
    border:1px solid var(--vn-border-strong);
    border-radius:var(--vn-frame-radius);
    box-shadow:var(--vn-section-shadow);
  }
  .pg-home main > section[id] > .wrap{
    padding:var(--vn-frame-pad-y) var(--vn-frame-pad-x);
    flex:1 1 auto;
    justify-content:center;
  }
  .pg-home main > section#contacto > .qc-grid{
    flex:1 1 auto;
    overflow:hidden;
  }
  .pg-home .solutions .sol-card,
  .pg-home .solutions .sol-cta{
    height:100%;
    min-height:350px;
  }

  /* Paginas interiores: misma anchura, separacion y marco que la portada. */
  .pg-proyectos main > section:not(.pr-hero),
  .pg-empresa2 main > section:not(.em-hero),
  .pg-contacto main > section:not(.ct-hero){
    padding:var(--vn-section-space) 36px !important;
  }
  .pg-proyectos main > section:not(.pr-hero) > .wrap,
  .pg-empresa2 main > section:not(.em-hero) > .wrap,
  .pg-contacto .ct-canales > .wrap,
  .pg-contacto .ct-ubicacion > .wrap,
  .pg-contacto .ct-cotizacion > .qc-grid{
    width:100%;
    max-width:var(--vn-content-max);
    margin-inline:auto;
    padding:var(--vn-frame-pad-y) var(--vn-frame-pad-x);
    background:var(--vn-surface);
    border:1px solid var(--vn-border-strong);
    border-radius:var(--vn-frame-radius);
    box-shadow:var(--vn-section-shadow);
  }
  .pg-contacto .ct-cotizacion > .qc-grid{
    padding:0;
    overflow:hidden;
  }

  /* Catalogo y fichas usan la misma regla de alineacion horizontal. */
  .pg-productos .pg-hero > .wrap,
  .pg-productos main > .wrap,
  .pg-productos .pgx > .wrap,
  .pd-page main > .wrap{
    width:100%;
    max-width:var(--vn-content-max);
    margin-inline:auto;
  }
  .pg-productos .pg-layout,
  .pd-page main > .wrap:not(.pd-hero){
    border:1px solid var(--vn-border-strong);
    border-radius:var(--vn-frame-radius);
    box-shadow:var(--vn-section-shadow);
  }
  .pg-productos .pg-layout,
  .pd-page main > .wrap:not(.pd-hero){
    padding:var(--vn-frame-pad-y) var(--vn-frame-pad-x);
  }
  .pg-productos .pgx{
    padding:var(--vn-section-space) 36px !important;
  }
  .pg-productos .pgx > .wrap:first-child{
    border-radius:var(--vn-frame-radius) var(--vn-frame-radius) 0 0;
  }
  .pg-productos .pgx > .wrap:last-child{
    border-radius:0 0 var(--vn-frame-radius) var(--vn-frame-radius);
  }
  .pd-page main{
    padding:var(--vn-section-space) 36px 28px;
  }
}

/* Componentes internos: borde industrial sutil y radios consistentes. */
:where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page)
  :where(.sol-card,.sol-cta,.ce-module,.ce-block,.sm-capabilities,.sm-process,.sm-final-cta,
  .qp-pillars,.qp-block,.rp-photo,.rs-item,.rvw-rating,.rvw-card,.rvw-bottom,.faq-list,
  .faq-close,.pg-card,.pgx-panel,.pgx-aux-item,.pr-solution-card,.pr-featured-card,
  .pr-process-group,.pr-quality-grid,.em-tray-row,.em-mosaic,.em-proceso-grid,.em-guides-grid,
  .ct-canales-row,.ct-ubicacion-grid,.pd-gallery-main,.pd-section,.pd-cta){
  border-radius:var(--vn-card-radius);
}

:where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page)
  :where(.sol-card,.ce-module,.sm-capabilities,.qp-pillars,.rp-photo,.rvw-card,.pg-card,
  .pr-solution-card,.pr-featured-card,.em-tray-row,.em-mosaic,.em-proceso-grid,
  .em-guides-grid,.ct-canales-row,.ct-ubicacion-grid,.pd-gallery-main,.pd-section){
  box-shadow:var(--vn-card-shadow);
}

/* Las fotografias comparten encuadre, terminacion y transicion discretos. */
:where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page)
  :where(figure,.pg-card-photo,.pgx-hero-photo,.em-tray-photo,.ct-map,.pd-gallery-main){
  overflow:hidden;
  border-radius:var(--vn-card-radius);
}
:where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page) main img{
  transition:transform .38s cubic-bezier(.2,.8,.2,1),filter .38s ease;
}
@media (hover:hover) and (pointer:fine){
  :where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page)
    :where(a,figure,.pg-card,.pr-featured-card):hover > img,
  :where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page)
    :where(a,figure,.pg-card,.pr-featured-card):hover img{
    transform:scale(1.025);
  }
}

/* Tablet: marco visible, sin pegar el contenido a los bordes. */
@media (max-width:1100px){
  :where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page){
    --vn-frame-radius:12px;
    --vn-section-space:11px;
  }
  .pg-home main > section,
  .pg-home main > section#contacto,
  .pg-proyectos main > section:not(.pr-hero),
  .pg-empresa2 main > section:not(.em-hero),
  .pg-contacto main > section:not(.ct-hero),
  .pg-productos .pgx,
  .pd-page main{
    padding:var(--vn-section-space) 14px !important;
    background:var(--vn-page-bg) !important;
    border-top:0;
  }
  .pg-home main > section > .wrap,
  .pg-home main > section#contacto > .qc-grid,
  .pg-proyectos main > section:not(.pr-hero) > .wrap,
  .pg-empresa2 main > section:not(.em-hero) > .wrap,
  .pg-contacto .ct-canales > .wrap,
  .pg-contacto .ct-ubicacion > .wrap,
  .pg-contacto .ct-cotizacion > .qc-grid,
  .pg-productos .pg-layout,
  .pd-page main > .wrap:not(.pd-hero){
    width:100%;
    margin-inline:auto;
    background:var(--vn-surface);
    border:1px solid var(--vn-border-strong);
    border-radius:var(--vn-frame-radius);
    box-shadow:var(--vn-section-shadow);
  }
  .pg-home main > section > .wrap,
  .pg-proyectos main > section:not(.pr-hero) > .wrap,
  .pg-empresa2 main > section:not(.em-hero) > .wrap,
  .pg-contacto .ct-canales > .wrap,
  .pg-contacto .ct-ubicacion > .wrap,
  .pd-page main > .wrap:not(.pd-hero){
    padding:24px;
  }
  .pg-home main > section#contacto > .qc-grid,
  .pg-contacto .ct-cotizacion > .qc-grid{
    overflow:hidden;
  }
}

/* Movil: respiracion compacta y uniforme sin perder jerarquia. */
@media (max-width:640px){
  :where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page){
    --vn-frame-radius:10px;
    --vn-card-radius:8px;
    --vn-section-shadow:0 9px 24px rgba(0,23,43,.065),inset 0 3px 0 var(--brick,#d70000);
    --vn-section-space:8px;
  }
  .pg-home main > section,
  .pg-home main > section#contacto,
  .pg-proyectos main > section:not(.pr-hero),
  .pg-empresa2 main > section:not(.em-hero),
  .pg-contacto main > section:not(.ct-hero),
  .pg-productos .pgx,
  .pd-page main{
    padding:var(--vn-section-space) 8px !important;
  }
  .pg-home main > section > .wrap,
  .pg-proyectos main > section:not(.pr-hero) > .wrap,
  .pg-empresa2 main > section:not(.em-hero) > .wrap,
  .pg-contacto .ct-canales > .wrap,
  .pg-contacto .ct-ubicacion > .wrap,
  .pd-page main > .wrap:not(.pd-hero){
    padding:20px 16px;
  }
  .pg-home main > section > .wrap,
  .pg-home main > section#contacto > .qc-grid{
    margin-left:0;
    margin-right:0;
  }
  .pg-productos .pg-layout{
    padding:20px 16px;
  }
}

@media (prefers-reduced-motion:reduce){
  :where(.pg-home,.pg-productos,.pg-proyectos,.pg-empresa2,.pg-contacto,.pd-page) main img{
    transition:none !important;
    transform:none !important;
  }
}

/* Soluciones especiales 2026-08-21: capacidades explicadas y piezas completas. */
.pg-home #medida .sm-top{
  grid-template-columns:minmax(360px,.76fr) minmax(0,1.24fr);
  gap:30px;
  align-items:stretch;
}
.pg-home #medida .sm-capabilities{
  grid-template-columns:1fr;
  gap:0;
  margin-top:18px;
  border:1px solid #d5dde5;
  border-top:3px solid var(--brick,#d70000);
  border-radius:10px;
  background:#f7f9fb;
  box-shadow:0 10px 26px rgba(0,23,43,.065);
}
.pg-home #medida .sm-cap,
.pg-home #medida .sm-cap:first-child,
.pg-home #medida .sm-cap:nth-child(2),
.pg-home #medida .sm-cap:nth-child(3),
.pg-home #medida .sm-cap:nth-child(4){
  display:grid;
  grid-template-columns:28px 34px minmax(0,1fr);
  align-items:start;
  gap:10px;
  padding:12px 14px;
  border:0;
  border-top:1px solid #dbe1e7;
}
.pg-home #medida .sm-cap:first-child{ border-top:0; }
.pg-home #medida .sm-cap-num{
  font-family:'Archivo',sans-serif;
  font-size:11px;
  line-height:28px;
  font-weight:900;
  color:var(--brick,#d70000);
}
.pg-home #medida .sm-cap-icon{
  width:28px;
  height:28px;
  margin:0;
  padding:5px;
  border:1px solid rgba(215,0,0,.24);
  border-radius:6px;
  background:#fff;
}
.pg-home #medida .sm-cap-copy{ min-width:0; }
.pg-home #medida .sm-cap h3{
  margin:0 0 3px;
  font-size:12px;
  line-height:1.2;
}
.pg-home #medida .sm-cap p{
  max-width:none;
  margin:0;
  font-size:11.25px;
  line-height:1.38;
}
.pg-home #medida .sm-examples{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  min-width:0;
}
.pg-home #medida .sm-example{
  min-width:0;
  margin:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid #d5dde5;
  border-radius:10px;
  background:#fff;
  box-shadow:0 12px 28px rgba(0,23,43,.09);
}
.pg-home #medida .sm-example-media{
  min-height:0;
  aspect-ratio:3/4;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:linear-gradient(145deg,#eef1f4,#dfe4e8);
}
.pg-home #medida .sm-example-media img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  transition:transform .25s ease;
}
.pg-home #medida .sm-example:hover .sm-example-media img{ transform:scale(1.018); }
.pg-home #medida .sm-example figcaption{
  min-height:104px;
  padding:12px 14px 14px;
  border-top:3px solid var(--brick,#d70000);
  background:#fff;
}
.pg-home #medida .sm-example-kicker{
  display:block;
  margin-bottom:5px;
  font-family:'Archivo',sans-serif;
  font-size:9.5px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
  color:var(--brick,#d70000);
}
.pg-home #medida .sm-example h3{
  margin:0 0 5px;
  font-family:'Archivo',sans-serif;
  font-size:13px;
  line-height:1.18;
  font-weight:850;
  text-transform:uppercase;
  color:#06182c;
}
.pg-home #medida .sm-example p{
  margin:0;
  font-size:11.25px;
  line-height:1.4;
  color:#56616c;
}
@media (max-width:1100px){
  .pg-home #medida .sm-top{ grid-template-columns:1fr; gap:22px; }
  .pg-home #medida .sm-capabilities{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pg-home #medida .sm-cap,
  .pg-home #medida .sm-cap:first-child,
  .pg-home #medida .sm-cap:nth-child(2),
  .pg-home #medida .sm-cap:nth-child(3),
  .pg-home #medida .sm-cap:nth-child(4){ border-top:1px solid #dbe1e7; }
  .pg-home #medida .sm-cap:nth-child(-n+2){ border-top:0; }
  .pg-home #medida .sm-cap:nth-child(even){ border-left:1px solid #dbe1e7; }
  .pg-home #medida .sm-example-media{ aspect-ratio:4/3; }
}
@media (max-width:640px){
  .pg-home #medida .sm-capabilities,
  .pg-home #medida .sm-examples{ grid-template-columns:1fr; }
  .pg-home #medida .sm-cap,
  .pg-home #medida .sm-cap:first-child,
  .pg-home #medida .sm-cap:nth-child(2),
  .pg-home #medida .sm-cap:nth-child(3),
  .pg-home #medida .sm-cap:nth-child(4){ border-left:0; border-top:1px solid #dbe1e7; }
  .pg-home #medida .sm-cap:first-child{ border-top:0; }
  .pg-home #medida .sm-example-media{ aspect-ratio:3/4; }
  .pg-home #medida .sm-example figcaption{ min-height:0; }
}
@media (prefers-reduced-motion:reduce){
  .pg-home #medida .sm-example-media img{ transition:none; }
  .pg-home #medida .sm-example:hover .sm-example-media img{ transform:none; }
}

/* ==========================================================
   Refinamiento editorial portada · 2026-08-21
   Navegacion sutil, evidencia visual y cierre comercial
   ========================================================== */

/* Navegador de secciones: una linea optica, no un panel flotante */
@media (min-width:1101px){
  .pg-home .page-progress{
    right:10px;
    top:50%;
    width:22px;
    min-height:0;
    padding:5px 3px;
    gap:2px;
    border:0;
    border-radius:0;
    background:linear-gradient(180deg,rgba(2,22,39,.08),rgba(2,22,39,.28),rgba(2,22,39,.08));
    box-shadow:none;
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
  }
  .pg-home .page-progress::before{
    content:'';
    position:absolute;
    inset:0 auto 0 50%;
    width:1px;
    transform:translateX(-50%);
    background:linear-gradient(180deg,transparent,rgba(109,224,255,.65) 14%,rgba(255,255,255,.78) 48%,rgba(215,0,0,.82) 72%,transparent);
    box-shadow:0 0 7px rgba(90,213,255,.3);
    pointer-events:none;
  }
  .pg-home .pp-count{
    position:absolute;
    right:28px;
    top:50%;
    display:flex;
    align-items:baseline;
    min-width:35px;
    padding:3px 5px;
    transform:translateY(-50%);
    opacity:0;
    color:#fff;
    background:rgba(1,24,44,.82);
    border-left:1px solid rgba(102,224,255,.7);
    font-size:9px;
    line-height:1;
    pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
  }
  .pg-home .page-progress:hover .pp-count,
  .pg-home .page-progress:focus-within .pp-count{ opacity:1; transform:translate(-3px,-50%); }
  .pg-home .pp-count b{ font-size:10px; }
  .pg-home .pp-count small{ font-size:7px; opacity:.7; }
  .pg-home .pp-stops{ gap:3px; padding:2px 0; z-index:1; }
  .pg-home .pp-stops::before{ display:none; }
  .pg-home .pp-stop{
    width:14px;
    height:14px;
    padding:0;
    border:0;
    background:transparent;
  }
  .pg-home .pp-stop > span{
    width:4px;
    height:4px;
    border:1px solid rgba(203,239,255,.78);
    border-radius:50%;
    background:#092c45;
    box-shadow:0 0 4px rgba(116,222,255,.28);
    transform:none;
    transition:width .16s ease,height .16s ease,background .16s ease,box-shadow .16s ease;
  }
  .pg-home .pp-stop:hover > span,
  .pg-home .pp-stop:focus-visible > span{ width:6px; height:6px; background:#fff; box-shadow:0 0 8px rgba(113,226,255,.85); }
  .pg-home .pp-stop.is-active > span{
    width:8px;
    height:8px;
    border-color:#fff;
    border-radius:50%;
    background:var(--brick,#d70000);
    box-shadow:0 0 0 2px rgba(215,0,0,.2),0 0 9px rgba(255,72,72,.72);
    transform:none;
  }
  .pg-home .pp-stop i,
  .pg-home .pp-stop em{ display:none; }
  .pg-home .pp-control,
  .pg-home .pp-next{
    position:relative;
    z-index:2;
    width:16px;
    height:16px;
    min-height:0;
    padding:0;
    border:0;
    border-radius:0;
    color:rgba(221,247,255,.75);
    background:rgba(1,25,44,.5);
    box-shadow:none;
  }
  .pg-home .pp-control:hover,
  .pg-home .pp-next:hover{ color:#fff; background:rgba(215,0,0,.78); transform:none; }
  .pg-home .pp-control svg,
  .pg-home .pp-next svg{ width:9px; height:9px; }
  .pg-home .pp-label{
    position:absolute;
    right:28px;
    bottom:6px;
    width:max-content;
    max-width:160px;
    margin:0;
    padding:5px 8px;
    opacity:0;
    color:#fff;
    background:rgba(1,24,44,.88);
    border-right:2px solid var(--brick,#d70000);
    font-size:8px;
    line-height:1.15;
    letter-spacing:.07em;
    writing-mode:horizontal-tb;
    transform:translateX(4px);
    pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
  }
  .pg-home .page-progress:hover .pp-label,
  .pg-home .page-progress:focus-within .pp-label{ opacity:1; transform:none; }
}

/* Soluciones especiales: cuatro pruebas visuales complementarias */
.pg-home #medida .sm-example-strip{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:2px;
}
.pg-home #medida .sm-example-strip figure{
  position:relative;
  min-height:94px;
  margin:0;
  overflow:hidden;
  border:1px solid #d8e0e7;
  border-radius:7px;
  background:#061c31;
  box-shadow:0 7px 16px rgba(0,23,43,.08);
}
.pg-home #medida .sm-example-strip img{
  width:100%;
  height:100%;
  min-height:94px;
  max-height:118px;
  display:block;
  object-fit:cover;
  object-position:center 52%;
  filter:saturate(.9) contrast(1.04);
  transition:transform .28s ease,filter .28s ease;
}
.pg-home #medida .sm-example-strip figure:hover img{ transform:scale(1.035); filter:saturate(1) contrast(1.06); }
.pg-home #medida .sm-example-strip figcaption{
  position:absolute;
  inset:auto 0 0;
  padding:18px 10px 8px;
  color:#fff;
  background:linear-gradient(transparent,rgba(1,22,40,.92));
  font-family:'Archivo',sans-serif;
  font-size:9px;
  line-height:1;
  font-weight:800;
  letter-spacing:.075em;
  text-transform:uppercase;
}

/* Sello de calidad: impacto breve y profesional al entrar en la seccion */
.pg-home #proceso .qp-quality-seal{
  position:relative;
  flex:0 0 42px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  color:#ff1c21;
  border:1px solid rgba(255,35,40,.42);
  border-radius:50%;
  background:radial-gradient(circle,rgba(215,0,0,.16),transparent 68%);
  box-shadow:0 0 0 5px rgba(215,0,0,.055),inset 0 0 14px rgba(215,0,0,.12);
  opacity:0;
  transform:scale(.65) rotate(-22deg);
}
.pg-home #proceso .qp-quality-seal svg{ width:29px; height:29px; stroke:currentColor; stroke-width:2.2; }
.pg-home #proceso.qp-in .qp-quality-seal{ animation:qualityStamp .62s cubic-bezier(.2,.8,.2,1) .16s forwards; }
.pg-home #proceso.qp-in .qp-quality-seal::after{
  content:'';
  position:absolute;
  inset:-8px;
  border:1px solid rgba(255,39,43,.6);
  border-radius:50%;
  opacity:0;
  animation:qualityRing .72s ease-out .52s;
}
.pg-home #proceso .qp-callout-kicker{
  display:block;
  margin-bottom:3px;
  color:#ff464a;
  font-family:'Archivo',sans-serif;
  font-size:8px;
  line-height:1;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
@keyframes qualityStamp{ 0%{opacity:0;transform:scale(.65) rotate(-22deg)} 72%{opacity:1;transform:scale(1.08) rotate(2deg)} 100%{opacity:1;transform:scale(1) rotate(0)} }
@keyframes qualityRing{ 0%{opacity:.75;transform:scale(.75)} 100%{opacity:0;transform:scale(1.3)} }

/* Proyectos: relato visual por etapas y fichas con lectura editorial */
.pg-home #proyectos .rp-head-aside{
  align-self:stretch;
  padding:14px 16px 13px;
  border-left:3px solid var(--brick,#d70000);
  background:linear-gradient(135deg,#f7f9fb,#edf2f6);
  box-shadow:inset 0 0 0 1px #dfe6ec;
}
.pg-home #proyectos .rp-context-kicker{
  display:block;
  margin-bottom:6px;
  color:var(--brick,#d70000);
  font-family:'Archivo',sans-serif;
  font-size:9px;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.pg-home #proyectos .rp-head-aside .rp-intro{ margin:0; max-width:48ch; line-height:1.5; }
.pg-home #proyectos .rp-context-stages{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
  margin-top:11px;
}
.pg-home #proyectos .rp-context-stages span{
  padding:6px 7px;
  border-top:1px solid #bfcbd5;
  color:#4d5d69;
  font-size:8.5px;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.pg-home #proyectos .rp-head-aside .rp-cta{ margin-top:10px; }
.pg-home #proyectos .rp-photo{
  border:1px solid #d9e2e9;
  box-shadow:0 10px 24px rgba(0,28,49,.1);
  transition:transform .22s ease,box-shadow .22s ease;
}
.pg-home #proyectos .rp-photo:hover{ transform:translateY(-3px); box-shadow:0 15px 28px rgba(0,28,49,.16); }
.pg-home #proyectos .rp-photo figcaption,
.pg-home #proyectos .rp-photo-lg figcaption{
  grid-template-columns:32px minmax(0,1fr) 34px;
  grid-template-areas:'index meta arrow' 'index title arrow';
  column-gap:10px;
  min-height:66px;
  padding:10px 12px;
}
.pg-home #proyectos .rp-photo-index{
  grid-area:index;
  align-self:center;
  color:#ef1016;
  font-family:'Archivo',sans-serif;
  font-size:21px;
  line-height:1;
  font-weight:900;
}
.pg-home #proyectos .rp-photo figcaption .rp-meta{ grid-area:meta; align-self:end; }
.pg-home #proyectos .rp-photo figcaption strong{ grid-area:title; align-self:start; }
.pg-home #proyectos .rp-photo figcaption .arrow-cta{ grid-area:arrow; align-self:center; }

/* Respaldo: cada afirmacion deja visible su fuente propia */
.pg-home #opiniones .rvw-card{
  display:flex;
  flex-direction:column;
  background:linear-gradient(145deg,#fff,#f2f6f9);
  box-shadow:0 9px 22px rgba(0,25,45,.07);
}
.pg-home #opiniones .rvw-source{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:auto;
  padding:10px 0 11px;
  border-top:1px solid #d8e1e8;
}
.pg-home #opiniones .rvw-source-icon{
  flex:0 0 31px;
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  color:var(--brick,#d70000);
  border:1px solid rgba(215,0,0,.25);
  border-radius:50%;
  background:#fff;
  box-shadow:0 4px 10px rgba(0,20,40,.06);
}
.pg-home #opiniones .rvw-source-icon svg{ width:16px; height:16px; stroke-width:1.8; }
.pg-home #opiniones .rvw-source span:last-child{ display:grid; gap:2px; min-width:0; }
.pg-home #opiniones .rvw-source small{
  color:#788793;
  font-size:7.5px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pg-home #opiniones .rvw-source b{ color:#12273a; font-size:10.5px; line-height:1.2; }

/* Cotizacion: una antesala de asesoria con mas profundidad y jerarquia */
.pg-home #contacto .qc-left{
  position:relative;
  overflow:hidden;
  border-right:1px solid rgba(118,218,255,.2);
  background:
    linear-gradient(145deg,rgba(4,31,53,.18),rgba(0,11,23,.4)),
    repeating-linear-gradient(125deg,transparent 0 28px,rgba(128,210,242,.035) 29px 30px),
    #021a2e;
}
.pg-home #contacto .qc-left::before{
  content:'';
  position:absolute;
  top:-110px;
  right:-90px;
  width:280px;
  height:280px;
  border:1px solid rgba(105,213,255,.13);
  border-radius:50%;
  box-shadow:0 0 0 34px rgba(105,213,255,.035),0 0 0 68px rgba(105,213,255,.025);
  pointer-events:none;
}
.pg-home #contacto .qc-left-inner{ position:relative; z-index:1; }
.pg-home #contacto .qc-authority{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:12px 0 13px;
}
.pg-home #contacto .qc-authority span{
  padding:5px 8px;
  color:#dcecf6;
  border:1px solid rgba(138,211,240,.2);
  background:rgba(255,255,255,.045);
  font-family:'Archivo',sans-serif;
  font-size:7.5px;
  line-height:1;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pg-home #contacto .qc-photo{
  position:relative;
  margin:0 18px;
  border:1px solid rgba(154,224,250,.35);
  border-radius:7px;
  box-shadow:0 15px 30px rgba(0,0,0,.28),0 0 0 5px rgba(255,255,255,.035);
}
.pg-home #contacto .qc-photo::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,rgba(1,20,36,.3),transparent 50%,rgba(1,20,36,.08));
  pointer-events:none;
}
.pg-home #contacto .qc-supports{ gap:7px; margin-top:15px; }
.pg-home #contacto .qc-support{
  padding:10px 9px 11px;
  border:1px solid rgba(139,211,240,.14);
  background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.025));
}
.pg-home #contacto .qc-support + .qc-support{ border-left:1px solid rgba(139,211,240,.14); }
.pg-home #contacto .qc-channel{
  padding:9px 0;
  border-color:rgba(174,217,236,.19);
}

@media (max-width:900px){
  .pg-home #medida .sm-example-strip{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pg-home #proyectos .rp-head-aside{ margin-top:12px; }
}
@media (max-width:640px){
  .pg-home #medida .sm-example-strip{ gap:6px; }
  .pg-home #medida .sm-example-strip img{ min-height:102px; max-height:112px; }
  .pg-home #proyectos .rp-context-stages{ grid-template-columns:1fr; gap:0; }
  .pg-home #proyectos .rp-photo figcaption,
  .pg-home #proyectos .rp-photo-lg figcaption{ grid-template-columns:28px minmax(0,1fr) 30px; min-height:62px; }
  .pg-home #contacto .qc-photo{ margin-inline:5px; }
  .pg-home #contacto .qc-supports{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){
  .pg-home #proceso.qp-in .qp-quality-seal,
  .pg-home #proceso.qp-in .qp-quality-seal::after{ animation:none; opacity:1; transform:none; }
  .pg-home #proyectos .rp-photo,
  .pg-home #medida .sm-example-strip img,
  .pg-home .page-progress *{ transition:none!important; }
}

/* Footer de marca · cierre editorial 2026-08-21 */
.pg-home footer{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:0;
  color:#fff;
  background:
    radial-gradient(circle at 88% 18%,rgba(18,82,118,.42),transparent 28%),
    radial-gradient(circle at 12% 102%,rgba(215,0,0,.13),transparent 26%),
    linear-gradient(145deg,#001321 0%,#03223a 52%,#001625 100%);
}
.pg-home footer::before{
  content:'';
  position:absolute;
  z-index:-1;
  inset:0;
  opacity:.22;
  background:
    repeating-linear-gradient(122deg,transparent 0 42px,rgba(132,218,247,.09) 43px 44px),
    linear-gradient(90deg,transparent 49.9%,rgba(255,255,255,.06) 50%,transparent 50.1%);
  mask-image:linear-gradient(to bottom,#000,transparent 88%);
}
.pg-home footer::after{
  content:'';
  position:absolute;
  z-index:-1;
  top:0;
  left:0;
  width:36%;
  height:3px;
  background:linear-gradient(90deg,var(--brick,#d70000),#ff3b40,transparent);
  box-shadow:0 0 18px rgba(215,0,0,.45);
}
.pg-home footer .wrap{ position:relative; padding-top:0; }
.pg-home .f2-signature{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(380px,.75fr);
  gap:60px;
  align-items:end;
  padding:58px 0 42px;
  border-bottom:1px solid rgba(173,222,244,.19);
}
.pg-home .f2-signature-kicker{
  display:flex;
  align-items:center;
  gap:11px;
  margin-bottom:14px;
  color:#b5cbd8;
  font-family:'Archivo',sans-serif;
  font-size:9px;
  line-height:1;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.pg-home .f2-signature-kicker::before{ content:''; width:25px; height:2px; background:var(--brick,#d70000); }
.pg-home .f2-signature h2{
  max-width:800px;
  margin:0;
  color:#fff;
  font-family:'Archivo',sans-serif;
  font-size:clamp(31px,3.15vw,48px);
  line-height:.98;
  font-weight:900;
  letter-spacing:-.035em;
  text-transform:uppercase;
}
.pg-home .f2-signature h2 em{ color:#ef1016; font-style:normal; }
.pg-home .f2-signature-copy > p{ max-width:660px; margin:17px 0 0; color:rgba(225,239,247,.72); font-size:13px; line-height:1.55; }
.pg-home .f2-signature-proof{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.28);
  border-bottom:1px solid rgba(255,255,255,.13);
}
.pg-home .f2-signature-proof > span{
  min-width:0;
  padding:13px 11px 15px;
  border-left:1px solid rgba(255,255,255,.13);
}
.pg-home .f2-signature-proof > span:first-child{ border-left:0; }
.pg-home .f2-signature-proof b{ display:block; margin-bottom:6px; color:#ef1016; font-size:10px; line-height:1; letter-spacing:.1em; }
.pg-home .f2-signature-proof small{ display:block; color:#fff; font-family:'Archivo',sans-serif; font-size:9px; line-height:1.25; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.pg-home .f2-cols{
  grid-template-columns:1.3fr 1fr .9fr 1fr;
  gap:48px;
  padding:38px 0 34px;
  margin:0;
  border-bottom:1px solid rgba(173,222,244,.13);
}
.pg-home .f2-logo-svg{ width:115px; margin-bottom:14px; filter:drop-shadow(0 8px 18px rgba(0,0,0,.2)); }
.pg-home .f2-tagline{ color:rgba(227,240,247,.74); font-size:12.5px; line-height:1.55; }
.pg-home .f2-origin{
  display:inline-flex;
  margin-top:15px;
  padding-top:10px;
  color:#96b1c0;
  border-top:1px solid rgba(255,255,255,.13);
  font-family:'Archivo',sans-serif;
  font-size:8px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.pg-home .f2-col h3{ position:relative; margin-bottom:17px; padding-bottom:10px; color:#fff; font-size:10.5px; letter-spacing:.09em; }
.pg-home .f2-col h3::after{ content:''; position:absolute; left:0; bottom:0; width:20px; height:2px; background:var(--brick,#d70000); }
.pg-home .f2-col a{ width:max-content; max-width:100%; margin-bottom:9px; color:rgba(225,239,247,.7); font-size:12.5px; line-height:1.35; }
.pg-home .f2-col a:hover{ color:#fff; }
.pg-home .f2-highlight{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:25px;
  margin:22px 0 20px;
  padding:20px 22px;
  overflow:hidden;
  border:1px solid rgba(119,205,238,.24);
  border-radius:0;
  background:linear-gradient(100deg,rgba(12,55,83,.88),rgba(4,31,50,.72));
  box-shadow:inset 3px 0 0 var(--brick,#d70000),0 12px 28px rgba(0,0,0,.16);
}
.pg-home .f2-highlight::after{
  content:'';
  position:absolute;
  right:-38px;
  top:50%;
  width:135px;
  height:135px;
  transform:translateY(-50%) rotate(45deg);
  border:1px solid rgba(121,216,251,.12);
  box-shadow:0 0 0 22px rgba(121,216,251,.025);
  pointer-events:none;
}
.pg-home .f2-highlight-left{ position:relative; z-index:1; gap:16px; }
.pg-home .f2-highlight-left > svg{ width:30px; height:30px; }
.pg-home .f2-highlight-kicker{ display:block; margin-bottom:4px; color:#89aabb; font-size:7.5px; line-height:1; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.pg-home .f2-highlight h3{ margin:0 0 4px; font-size:14px; letter-spacing:.015em; }
.pg-home .f2-highlight p{ font-size:12px; line-height:1.45; }
.pg-home .f2-highlight-btn{
  position:relative;
  z-index:1;
  align-self:center;
  padding:12px 17px;
  border-color:var(--brick,#d70000);
  border-radius:3px;
  background:var(--brick,#d70000);
  box-shadow:0 8px 18px rgba(215,0,0,.2);
}
.pg-home .f2-highlight-btn:hover{ border-color:#f31b21; background:#f31b21; }
.pg-home .f2-legal{ padding:0 0 21px; border:0; color:rgba(213,233,244,.47); font-size:10.5px; }

@media (max-width:980px){
  .pg-home .f2-signature{ grid-template-columns:1fr; gap:27px; padding:46px 0 34px; }
  .pg-home .f2-signature-proof{ max-width:560px; }
  .pg-home .f2-cols{ grid-template-columns:1.25fr 1fr 1fr; gap:34px; }
  .pg-home .f2-cols > .f2-col:first-child{ grid-column:1/-1; display:grid; grid-template-columns:auto 1fr; column-gap:24px; align-items:center; }
  .pg-home .f2-cols > .f2-col:first-child .f2-logo-svg{ grid-row:1/3; margin:0; }
  .pg-home .f2-cols > .f2-col:first-child .f2-origin{ align-self:start; width:max-content; margin-top:7px; }
}
@media (max-width:640px){
  .pg-home .f2-signature{ padding:38px 0 28px; }
  .pg-home .f2-signature h2{ font-size:clamp(29px,9.2vw,38px); line-height:1.02; }
  .pg-home .f2-signature-copy > p{ font-size:12.5px; }
  .pg-home .f2-signature-proof small{ font-size:7.5px; }
  .pg-home .f2-cols{ grid-template-columns:1fr 1fr; gap:30px 24px; padding:30px 0; }
  .pg-home .f2-cols > .f2-col:first-child{ display:block; grid-column:1/-1; }
  .pg-home .f2-cols > .f2-col:first-child .f2-logo-svg{ margin-bottom:13px; }
  .pg-home .f2-cols > .f2-col:last-child{ grid-column:1/-1; }
  .pg-home .f2-highlight{ grid-template-columns:1fr; padding:19px 18px; }
  .pg-home .f2-highlight-left{ align-items:flex-start; }
  .pg-home .f2-highlight-btn{ width:100%; justify-content:space-between; }
  .pg-home .f2-legal{ flex-direction:column; padding-bottom:90px; }
}

/* Responsables integrados en Nuestra planta */
.pg-empresa2 .em-plant-team{
  scroll-margin-top:110px;
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.6fr);
  gap:28px;
  align-items:stretch;
  margin-top:22px;
  padding:24px;
  border-top:3px solid var(--brick,#d70000);
  background:linear-gradient(135deg,#fff,#edf3f6);
  box-shadow:0 14px 34px rgba(0,29,50,.08);
}
.pg-empresa2 .em-plant-team-intro{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:4px 12px 4px 3px;
}
.pg-empresa2 .em-plant-team-kicker{ margin:0 0 10px; color:var(--brick,#d70000); font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.pg-empresa2 .em-plant-team-intro h3{ margin:0 0 10px; color:#071b2d; font-family:'Archivo',sans-serif; font-size:clamp(20px,2vw,28px); line-height:1.05; font-weight:900; text-transform:uppercase; }
.pg-empresa2 .em-plant-team-intro p{ margin:0; color:#56646e; font-size:12.5px; line-height:1.55; }
.pg-empresa2 .em-plant-people{ min-width:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pg-empresa2 .em-plant-person{
  min-width:0;
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  overflow:hidden;
  border:1px solid #d5dfe6;
  background:#fff;
}
.pg-empresa2 .em-plant-person-media{ min-height:172px; overflow:hidden; background:#06243d; }
.pg-empresa2 .em-plant-person-media img{ width:100%; height:100%; display:block; object-fit:cover; object-position:center 28%; }
.pg-empresa2 .em-plant-person-media-sebastian{ position:relative; }
.pg-empresa2 .em-plant-person-media-sebastian::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:34%;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(0,23,43,.2));
}
.pg-empresa2 .em-plant-person-sebastian{ grid-template-columns:118px minmax(0,1fr); }
.pg-empresa2 .em-plant-person-media-sebastian img{
  object-fit:contain;
  object-position:center;
  filter:saturate(.94) contrast(1.035);
}
.pg-empresa2 .em-plant-person-copy{ min-width:0; padding:18px 17px 16px; }
.pg-empresa2 .em-plant-person-copy > span{ display:block; margin-bottom:8px; color:var(--brick,#d70000); font-size:8px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.pg-empresa2 .em-plant-person-copy h3{ margin:0 0 3px; color:#071b2d; font-family:'Archivo',sans-serif; font-size:18px; line-height:1.05; font-weight:900; text-transform:uppercase; }
.pg-empresa2 .em-plant-person-copy strong{ display:block; margin-bottom:10px; color:#6b7881; font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.pg-empresa2 .em-plant-person-copy p{ margin:0; color:#52616c; font-size:11px; line-height:1.5; }
.pg-empresa2 .em-plant-person-copy a{ display:inline-flex; gap:12px; margin-top:12px; color:#071b2d; font-size:9px; font-weight:850; text-decoration:none; text-transform:uppercase; }
.pg-empresa2 .em-plant-person-copy a:hover{ color:var(--brick,#d70000); }

@media (max-width:980px){
  .pg-empresa2 .em-plant-team{ grid-template-columns:1fr; }
}
@media (max-width:700px){
  .pg-empresa2 .em-plant-team{ margin-top:14px; padding:18px; gap:18px; }
  .pg-empresa2 .em-plant-people{ grid-template-columns:1fr; }
  .pg-empresa2 .em-plant-person{ grid-template-columns:82px minmax(0,1fr); }
  .pg-empresa2 .em-plant-person-media{ min-height:156px; }
}

/* Empresa · portada editorial vanguardista y pagina compacta · 2026-08-21 */
.pg-empresa2 .logo-mark-svg .cls-1{ fill:#141414 !important; }
.pg-empresa2 .logo-mark-svg .cls-2{ fill:var(--brick,#d70000) !important; }

.pg-empresa2 .em-hero-editorial{
  position:relative;
  isolation:isolate;
  min-height:calc(100svh - 78px);
  overflow:hidden;
  color:#fff;
  background:#00172b;
}
.pg-empresa2 .em-editorial-photo{
  position:absolute;
  inset:0;
  z-index:-4;
  overflow:hidden;
}
.pg-empresa2 .em-editorial-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
  filter:saturate(.78) contrast(1.08) brightness(.72);
  transform:scale(1.018);
  animation:emEditorialPhoto 14s cubic-bezier(.2,.7,.2,1) both;
}
.pg-empresa2 .em-editorial-shade{
  position:absolute;
  inset:0;
  z-index:-3;
  background:
    linear-gradient(90deg,rgba(0,18,35,.98) 0%,rgba(0,23,43,.91) 36%,rgba(0,23,43,.42) 66%,rgba(0,12,24,.2) 100%),
    linear-gradient(180deg,rgba(0,0,0,.08),transparent 42%,rgba(0,10,21,.78));
}
.pg-empresa2 .em-editorial-grid{
  position:absolute;
  inset:0;
  z-index:-2;
  opacity:.2;
  background-image:
    linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);
  background-size:100% 25%,12.5% 100%;
  mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.35) 68%,transparent);
}
.pg-empresa2 .em-hero-editorial::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:48.5%;
  width:5px;
  z-index:-1;
  background:linear-gradient(180deg,transparent,var(--brick,#d70000) 15% 85%,transparent);
  transform:skewX(-8deg);
  box-shadow:0 0 32px rgba(215,0,0,.34);
}
.pg-empresa2 .em-editorial-wrap{
  min-height:calc(100svh - 78px);
  display:grid;
  grid-template-columns:74px minmax(360px,600px) minmax(230px,1fr);
  grid-template-rows:1fr auto;
  align-items:center;
  column-gap:clamp(22px,3vw,52px);
  padding-top:clamp(48px,7vh,78px);
  padding-bottom:94px;
}
.pg-empresa2 .em-editorial-index{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:9px;
  border-right:1px solid rgba(255,255,255,.22);
  font-family:'Archivo',sans-serif;
  text-transform:uppercase;
}
.pg-empresa2 .em-editorial-index span{ color:var(--brick,#d70000); font-size:34px; line-height:1; font-weight:900; }
.pg-empresa2 .em-editorial-index b{ font-size:10px; letter-spacing:.14em; writing-mode:vertical-rl; transform:rotate(180deg); }
.pg-empresa2 .em-editorial-index i{ color:rgba(255,255,255,.52); font-size:8px; font-style:normal; letter-spacing:.1em; writing-mode:vertical-rl; transform:rotate(180deg); }

.pg-empresa2 .em-editorial-copy{ align-self:center; padding:18px 0; }
.pg-empresa2 .em-editorial-copy,
.pg-empresa2 .em-editorial-proof{ min-width:0; }
.pg-empresa2 .em-editorial-kicker{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:22px;
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.pg-empresa2 .em-editorial-kicker span{ width:34px; height:3px; background:var(--brick,#d70000); box-shadow:0 0 16px rgba(215,0,0,.7); }
.pg-empresa2 .em-editorial-copy h1{
  margin:0;
  max-width:11ch;
  color:#fff;
  font-family:'Archivo',sans-serif;
  font-size:clamp(48px,5.5vw,82px);
  font-weight:900;
  line-height:.9;
  letter-spacing:-.045em;
  text-transform:uppercase;
  text-shadow:0 14px 38px rgba(0,0,0,.34);
}
.pg-empresa2 .em-editorial-copy h1 em{ color:#ff1919; font-style:normal; }
.pg-empresa2 .em-editorial-copy > p{
  max-width:48ch;
  margin:26px 0 0;
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.62;
}
.pg-empresa2 .em-editorial-actions{ display:flex; align-items:center; flex-wrap:wrap; gap:22px; margin-top:30px; }
.pg-empresa2 .em-editorial-actions .btn{ border-radius:3px; padding:15px 22px; font-size:13px; text-transform:uppercase; }
.pg-empresa2 .em-editorial-actions .btn span{ margin-left:5px; }
.pg-empresa2 .em-editorial-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:12px 0 5px;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.44);
  font-size:12px;
  font-weight:800;
  text-decoration:none;
  text-transform:uppercase;
}
.pg-empresa2 .em-editorial-link span{ color:var(--brick,#d70000); transition:transform .2s ease; }
.pg-empresa2 .em-editorial-link:hover span{ transform:translateX(5px); }

.pg-empresa2 .em-editorial-proof{
  align-self:end;
  grid-column:3;
  grid-row:1;
  width:min(100%,360px);
  justify-self:end;
  margin-bottom:18px;
  border:1px solid rgba(255,255,255,.24);
  border-top:3px solid var(--brick,#d70000);
  background:rgba(0,23,43,.7);
  box-shadow:0 22px 54px rgba(0,0,0,.3);
  backdrop-filter:blur(13px);
}
.pg-empresa2 .em-editorial-years{ display:flex; align-items:end; gap:14px; padding:20px 22px 17px; border-bottom:1px solid rgba(255,255,255,.16); }
.pg-empresa2 .em-editorial-years strong{ color:#fff; font-size:64px; line-height:.75; letter-spacing:-.07em; }
.pg-empresa2 .em-editorial-years span{ color:#ff3a32; font-size:10px; font-weight:850; line-height:1.15; text-transform:uppercase; }
.pg-empresa2 .em-editorial-facts{ display:grid; grid-template-columns:1fr; }
.pg-empresa2 .em-editorial-facts div{ display:grid; grid-template-columns:1fr 1.2fr; gap:12px; padding:12px 22px; border-bottom:1px solid rgba(255,255,255,.11); }
.pg-empresa2 .em-editorial-facts div:last-child{ border-bottom:0; }
.pg-empresa2 .em-editorial-facts b{ color:#fff; font-size:10px; text-transform:uppercase; }
.pg-empresa2 .em-editorial-facts span{ color:rgba(255,255,255,.6); font-size:10px; }

.pg-empresa2 .em-editorial-rail{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  min-height:52px;
  padding:12px var(--page-pad,5vw);
  color:rgba(255,255,255,.72);
  border-top:1px solid rgba(255,255,255,.17);
  background:rgba(0,16,31,.76);
  backdrop-filter:blur(10px);
  font-size:10px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.pg-empresa2 .em-editorial-rail i{ width:4px; height:4px; background:var(--brick,#d70000); transform:rotate(45deg); }
@keyframes emEditorialPhoto{ from{ transform:scale(1.07); filter:saturate(.55) contrast(1.02) brightness(.58); } to{ transform:scale(1.018); filter:saturate(.78) contrast(1.08) brightness(.72); } }

/* Compactacion y continuidad editorial del resto de Empresa. */
.pg-empresa2 main > section:not(.em-hero){ padding:12px 36px !important; }
.pg-empresa2 main > section:not(.em-hero) > .wrap{ padding:28px 34px; border-radius:12px; box-shadow:inset 0 3px 0 var(--brick,#d70000),0 14px 38px rgba(0,23,43,.065); }
.pg-empresa2 .em-planta > .wrap,
.pg-empresa2 .em-proceso > .wrap{ background:linear-gradient(180deg,#fff,#f8fafb); }
.pg-empresa2 .em-planta-head{ max-width:none; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(280px,.72fr); align-items:end; column-gap:54px; margin:0 0 24px; }
.pg-empresa2 .em-planta-head .em-eyebrow{ grid-column:1/-1; margin-bottom:13px; }
.pg-empresa2 .em-planta-head .em-h2{ margin-bottom:0; }
.pg-empresa2 .em-planta-intro{ max-width:44ch; padding-bottom:4px; }
.pg-empresa2 .em-mosaic{ height:390px; gap:4px; box-shadow:0 14px 30px rgba(0,23,43,.11); }
.pg-empresa2 .em-mosaic-item img{ filter:saturate(.88) contrast(1.04); }
.pg-empresa2 .em-mosaic-item::after{ background:linear-gradient(to top,rgba(0,18,35,.8),rgba(0,18,35,.13) 48%,transparent 72%); }
.pg-empresa2 .em-plant-team{ margin-top:18px; padding:20px 22px; gap:22px; background:linear-gradient(105deg,#f7f9fa,#eef3f6); }
.pg-empresa2 .em-plant-team-intro h3{ font-size:clamp(19px,1.8vw,25px); }
.pg-empresa2 .em-plant-person{ box-shadow:0 10px 25px rgba(0,23,43,.07); }
.pg-empresa2 .em-proceso-head{ margin:0 0 22px; }
.pg-empresa2 .em-proceso-row{ padding:26px 24px 24px; border:1px solid rgba(0,23,43,.12); border-top:3px solid var(--brick,#d70000); border-radius:8px; background:#fff; }
.pg-empresa2 .em-proceso-line{ top:48px; left:46px; right:46px; }
.pg-empresa2 .em-define > .wrap{ padding:30px 34px; background:radial-gradient(circle at 90% 15%,rgba(215,0,0,.12),transparent 26%),linear-gradient(135deg,#00172b,#062d4c); }
.pg-empresa2 .em-define-head{ margin-bottom:22px; }
.pg-empresa2 .em-define-item{ padding:6px 20px; }
.pg-empresa2 .em-guides > .wrap{ padding:28px 30px; }
.pg-empresa2 .em-guides-head{ margin-bottom:20px; }
.pg-empresa2 .em-guides-head h2{ font-size:clamp(27px,3vw,40px); }
.pg-empresa2 .em-guides-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; box-shadow:none; }
.pg-empresa2 .em-guide-card{ display:flex; flex-direction:column; min-height:350px; border-radius:8px; }
.pg-empresa2 .em-guide-card img{ width:100%; height:128px; flex:0 0 128px; object-fit:cover; }
.pg-empresa2 .em-guide-card-copy{ padding:18px; }
.pg-empresa2 .em-guide-card-copy h3{ font-size:16px; }
.pg-empresa2 .em-guide-card-copy p{ font-size:12.5px; }
.pg-empresa2 .em-cta > .wrap{ padding:18px 26px; }
.pg-empresa2 .em-cta-inner{ padding:20px 26px; background:linear-gradient(100deg,#fff,#f4f7f9); }

@media (max-width:1100px){
  .pg-empresa2 .em-editorial-wrap{ grid-template-columns:58px minmax(330px,1fr) minmax(240px,.7fr); }
  .pg-empresa2 .em-editorial-copy h1{ font-size:clamp(44px,5.7vw,66px); }
  .pg-empresa2 main > section:not(.em-hero){ padding:10px 14px !important; }
  .pg-empresa2 .em-guides-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px){
  .pg-empresa2 .em-hero-editorial{ min-height:auto; }
  .pg-empresa2 .em-editorial-photo{ position:relative; z-index:-4; height:48svh; min-height:380px; }
  .pg-empresa2 .em-editorial-photo img{ object-position:center 42%; }
  .pg-empresa2 .em-editorial-shade{ background:linear-gradient(180deg,rgba(0,23,43,.1) 0%,rgba(0,23,43,.28) 36%,#00172b 62%,#00172b 100%); }
  .pg-empresa2 .em-editorial-grid{ opacity:.12; }
  .pg-empresa2 .em-hero-editorial::before{ left:18%; top:31%; bottom:36%; width:4px; }
  .pg-empresa2 .em-editorial-wrap{ min-height:0; display:grid; grid-template-columns:42px 1fr; grid-template-rows:auto auto; padding-top:0; padding-bottom:82px; margin-top:-145px; }
  .pg-empresa2 .em-editorial-index{ grid-row:1/3; }
  .pg-empresa2 .em-editorial-copy{ grid-column:2; }
  .pg-empresa2 .em-editorial-proof{ grid-column:2; grid-row:2; width:100%; margin:28px 0 0; justify-self:stretch; }
  .pg-empresa2 .em-editorial-years{ padding:18px 20px 15px; }
  .pg-empresa2 .em-editorial-facts{ grid-template-columns:repeat(3,1fr); }
  .pg-empresa2 .em-editorial-facts div{ display:block; padding:13px 15px; border-right:1px solid rgba(255,255,255,.11); border-bottom:0; }
  .pg-empresa2 .em-editorial-facts b,.pg-empresa2 .em-editorial-facts span{ display:block; }
  .pg-empresa2 .em-editorial-facts span{ margin-top:4px; }
  .pg-empresa2 .em-planta-head{ grid-template-columns:1fr; gap:14px; }
  .pg-empresa2 .em-planta-head .em-eyebrow{ grid-column:auto; }
  .pg-empresa2 .em-mosaic{ height:auto; }
  .pg-empresa2 .em-proceso-row{ padding:22px; }
  .pg-empresa2 .em-proceso-line{ left:21px; }
}

@media (max-width:640px){
  .pg-empresa2 .logo-mark-svg{ width:40px; }
  .pg-empresa2 .em-editorial-photo{ height:54svh; min-height:360px; }
  .pg-empresa2 .em-editorial-photo img{ object-position:53% 44%; }
  .pg-empresa2 .em-editorial-wrap{ width:100%; max-width:100%; grid-template-columns:24px minmax(0,1fr); column-gap:12px; margin-top:-115px; padding:0 16px 76px; }
  .pg-empresa2 .em-editorial-index span{ font-size:24px; }
  .pg-empresa2 .em-editorial-index b,.pg-empresa2 .em-editorial-index i{ display:none; }
  .pg-empresa2 .em-editorial-kicker{ gap:8px; font-size:8.5px; line-height:1.35; margin-bottom:14px; }
  .pg-empresa2 .em-editorial-kicker span{ width:24px; }
  .pg-empresa2 .em-editorial-copy h1{ max-width:none; font-size:clamp(34px,10.6vw,43px); line-height:.93; overflow-wrap:normal; }
  .pg-empresa2 .em-editorial-copy > p{ margin-top:20px; font-size:14px; }
  .pg-empresa2 .em-editorial-actions{ align-items:stretch; gap:13px; margin-top:23px; }
  .pg-empresa2 .em-editorial-actions .btn{ width:100%; justify-content:center; }
  .pg-empresa2 .em-editorial-link{ justify-content:center; width:100%; }
  .pg-empresa2 .em-editorial-years strong{ font-size:52px; }
  .pg-empresa2 .em-editorial-facts{ grid-template-columns:1fr; }
  .pg-empresa2 .em-editorial-facts div{ display:grid; grid-template-columns:1fr 1.2fr; border-right:0; border-bottom:1px solid rgba(255,255,255,.11); }
  .pg-empresa2 .em-editorial-rail{ justify-content:flex-start; gap:13px; overflow:hidden; white-space:nowrap; font-size:8px; }
  .pg-empresa2 main > section:not(.em-hero){ padding:8px !important; }
  .pg-empresa2 main > section:not(.em-hero) > .wrap{ padding:22px 16px; }
  .pg-empresa2 .em-mosaic{ box-shadow:none; }
  .pg-empresa2 .em-plant-team{ padding:18px 14px; }
  .pg-empresa2 .em-guides-grid{ grid-template-columns:1fr; }
  .pg-empresa2 .em-guide-card{ min-height:0; display:grid; grid-template-columns:112px 1fr; }
  .pg-empresa2 .em-guide-card img{ width:112px; height:100%; min-height:176px; }
  .pg-empresa2 .em-guide-card-copy{ padding:16px; }
}

@media (prefers-reduced-motion:reduce){
  .pg-empresa2 .em-editorial-photo img{ animation:none !important; transform:none !important; }
  .pg-empresa2 .em-editorial-link span{ transition:none !important; }
}

/* Empresa · operacion y metodo unificado · 2026-08-21 */
.pg-empresa2 .em-mosaic-operation img{
  object-position:center 48%;
  filter:saturate(.92) contrast(1.08) brightness(.84);
}
.pg-empresa2 .em-mosaic-operation::before{
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:linear-gradient(110deg,rgba(0,18,35,.1),transparent 48%,rgba(215,0,0,.08));
}
.pg-empresa2 .em-method-head{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.72fr);
  gap:48px;
  align-items:end;
}
.pg-empresa2 .em-method-head > p{
  max-width:43ch;
  margin:0 0 4px;
  color:#586875;
  font-size:14px;
  line-height:1.6;
}
.pg-empresa2 .em-method-principles{
  scroll-margin-top:110px;
  display:grid;
  grid-template-columns:minmax(210px,.68fr) minmax(0,1.8fr);
  gap:24px;
  align-items:stretch;
  margin-top:14px;
  padding:20px 22px;
  color:#fff;
  background:
    radial-gradient(circle at 92% 18%,rgba(45,136,181,.22),transparent 26%),
    repeating-linear-gradient(125deg,transparent 0 42px,rgba(130,215,246,.035) 43px 44px),
    linear-gradient(135deg,#00172b,#062d4c);
  box-shadow:inset 3px 0 0 var(--brick,#d70000),0 14px 30px rgba(0,23,43,.12);
}
.pg-empresa2 .em-method-principles-head{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:2px 18px 2px 3px;
  border-right:1px solid rgba(255,255,255,.14);
}
.pg-empresa2 .em-method-principles-head > span{
  margin-bottom:9px;
  color:#ff3135;
  font-size:8px;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.pg-empresa2 .em-method-principles-head h3{
  margin:0;
  color:#fff;
  font-family:'Archivo',sans-serif;
  font-size:clamp(18px,1.75vw,24px);
  font-weight:900;
  line-height:1.03;
  text-transform:uppercase;
}
.pg-empresa2 .em-method-principles-grid{
  min-width:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.pg-empresa2 .em-method-principle{
  min-width:0;
  padding:4px 16px;
  border-left:1px solid rgba(255,255,255,.13);
}
.pg-empresa2 .em-method-principle:first-child{ border-left:0; }
.pg-empresa2 .em-method-principle .em-define-icon{
  width:22px;
  height:22px;
  margin:0 0 12px;
  color:#ff1919;
}
.pg-empresa2 .em-method-principle h3{
  margin:0 0 7px;
  color:#fff;
  font-family:'Archivo',sans-serif;
  font-size:11px;
  font-weight:850;
  line-height:1.15;
  text-transform:uppercase;
}
.pg-empresa2 .em-method-principle p{
  margin:0;
  color:rgba(228,239,245,.7);
  font-size:10.5px;
  line-height:1.45;
}
.pg-empresa2 .em-guides{ padding-top:7px !important; }
.pg-empresa2 .em-cta{ padding-top:0 !important; }

@media (max-width:900px){
  .pg-empresa2 .em-method-head{ grid-template-columns:1fr; gap:12px; }
  .pg-empresa2 .em-method-principles{ grid-template-columns:1fr; gap:16px; }
  .pg-empresa2 .em-method-principles-head{ padding:0 0 14px; border-right:0; border-bottom:1px solid rgba(255,255,255,.14); }
}
@media (max-width:700px){
  .pg-empresa2 .em-method-principles{ padding:18px 16px; }
  .pg-empresa2 .em-method-principles-grid{ grid-template-columns:1fr 1fr; }
  .pg-empresa2 .em-method-principle{ padding:13px 12px; border-top:1px solid rgba(255,255,255,.12); }
  .pg-empresa2 .em-method-principle:nth-child(odd){ border-left:0; }
  .pg-empresa2 .em-method-principle:nth-child(-n+2){ border-top:0; }
}
@media (max-width:460px){
  .pg-empresa2 .em-method-principles-grid{ grid-template-columns:1fr; }
  .pg-empresa2 .em-method-principle{ display:grid; grid-template-columns:28px 1fr; column-gap:10px; padding:12px 0; border-left:0; }
  .pg-empresa2 .em-method-principle:nth-child(2){ border-top:1px solid rgba(255,255,255,.12); }
  .pg-empresa2 .em-method-principle .em-define-icon{ grid-row:1/3; margin:1px 0 0; }
}

/* Empresa · continuidad editorial por capítulos · 2026-08-21 */
.pg-empresa2 .em-hero-editorial::before{
  transform-origin:center top;
  animation:emRedCut 1.15s .18s cubic-bezier(.2,.78,.2,1) both;
}
.pg-empresa2 .em-editorial-index{ animation:emIntroLeft .75s .18s cubic-bezier(.2,.78,.2,1) both; }
.pg-empresa2 .em-editorial-kicker{ animation:emIntroUp .62s .28s cubic-bezier(.2,.78,.2,1) both; }
.pg-empresa2 .em-editorial-copy h1{ animation:emIntroUp .78s .36s cubic-bezier(.2,.78,.2,1) both; }
.pg-empresa2 .em-editorial-copy > p{ animation:emIntroUp .65s .5s cubic-bezier(.2,.78,.2,1) both; }
.pg-empresa2 .em-editorial-actions{ animation:emIntroUp .65s .59s cubic-bezier(.2,.78,.2,1) both; }
.pg-empresa2 .em-editorial-proof{ animation:emIntroProof .85s .56s cubic-bezier(.16,.82,.2,1) both; }
.pg-empresa2 .em-editorial-years strong{ animation:emYearsPulse .7s 1.05s cubic-bezier(.2,.78,.2,1) both; }
.pg-empresa2 .em-editorial-rail{ animation:emIntroUp .6s .82s cubic-bezier(.2,.78,.2,1) both; }
@keyframes emRedCut{ from{ opacity:0; transform:skewX(-8deg) scaleY(0); } to{ opacity:1; transform:skewX(-8deg) scaleY(1); } }
@keyframes emIntroLeft{ from{ opacity:0; transform:translateX(-26px); } to{ opacity:1; transform:none; } }
@keyframes emIntroUp{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:none; } }
@keyframes emIntroProof{ from{ opacity:0; transform:translate(34px,18px); backdrop-filter:blur(0); } to{ opacity:1; transform:none; backdrop-filter:blur(13px); } }
@keyframes emYearsPulse{ from{ opacity:.2; transform:scale(.72); } 70%{ transform:scale(1.055); } to{ opacity:1; transform:none; } }

.pg-empresa2 .em-chapter{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  scroll-margin-top:82px;
}
.pg-empresa2 .em-chapter::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  opacity:.5;
  background:
    linear-gradient(90deg,transparent 49.92%,rgba(0,23,43,.035) 50%,transparent 50.08%),
    repeating-linear-gradient(122deg,transparent 0 52px,rgba(0,23,43,.025) 53px 54px);
}
.pg-empresa2 .em-chapter > .wrap{
  position:relative;
  overflow:hidden;
  border-radius:0 !important;
}
.pg-empresa2 .em-chapter > .wrap::before{
  content:attr(data-chapter);
  position:absolute;
  z-index:0;
  top:18px;
  right:27px;
  color:rgba(0,23,43,.055);
  font-family:'Archivo',sans-serif;
  font-size:clamp(74px,9vw,126px);
  font-weight:900;
  line-height:.8;
  letter-spacing:-.08em;
  pointer-events:none;
}
.pg-empresa2 .em-chapter > .wrap::after{
  content:attr(data-chapter-label);
  position:absolute;
  z-index:2;
  top:24px;
  right:34px;
  color:rgba(0,23,43,.48);
  font-size:8px;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
  pointer-events:none;
}
.pg-empresa2 .em-chapter > .wrap > *{ position:relative; z-index:1; }

/* Capítulo 02 · planta y responsables */
.pg-empresa2 .em-planta > .wrap{
  padding-top:36px;
  background:
    radial-gradient(circle at 90% 5%,rgba(215,0,0,.045),transparent 21%),
    linear-gradient(180deg,#fff,#f2f6f8);
}
.pg-empresa2 .em-planta-head{
  padding-right:150px;
  border-bottom:1px solid rgba(0,23,43,.14);
  padding-bottom:20px;
}
.pg-empresa2 .em-planta .em-mosaic{
  position:relative;
  border-left:4px solid var(--brick,#d70000);
  box-shadow:0 20px 48px rgba(0,23,43,.16);
}
.pg-empresa2 .em-planta .em-mosaic::before{
  content:"EVIDENCIA DE OPERACIÓN";
  position:absolute;
  z-index:4;
  top:15px;
  left:16px;
  padding:7px 10px;
  color:#fff;
  background:rgba(0,23,43,.78);
  border-left:2px solid var(--brick,#d70000);
  font-size:7.5px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.pg-empresa2 .em-mosaic-item img{ transition:transform .72s cubic-bezier(.2,.75,.2,1),filter .72s ease; }
.pg-empresa2 .em-mosaic-item:hover img{ transform:scale(1.035); filter:saturate(1) contrast(1.08); }
.pg-empresa2 .em-plant-team{
  border-top:0;
  border-left:4px solid var(--brick,#d70000);
  background:linear-gradient(105deg,#eef3f6 0 31%,#fff 31% 100%);
  box-shadow:0 18px 42px rgba(0,23,43,.1);
}

/* Capítulo 03 · método */
.pg-empresa2 .em-proceso > .wrap{
  padding-top:38px;
  color:#fff;
  background-color:#001522 !important;
  background-image:
    radial-gradient(circle at 88% 12%,rgba(36,128,174,.26),transparent 25%),
    repeating-linear-gradient(122deg,transparent 0 52px,rgba(127,212,244,.035) 53px 54px),
    linear-gradient(140deg,#001522,#052b47) !important;
  box-shadow:inset 0 3px 0 var(--brick,#d70000),0 18px 46px rgba(0,23,43,.15) !important;
}
.pg-empresa2 .em-proceso > .wrap::before{ color:rgba(255,255,255,.055); }
.pg-empresa2 .em-proceso > .wrap::after{ color:rgba(255,255,255,.46); }
.pg-empresa2 .em-proceso .em-eyebrow{ color:#ff3438; }
.pg-empresa2 .em-proceso .em-h2{ color:#fff !important; }
.pg-empresa2 .em-method-head{ padding-right:150px; }
.pg-empresa2 .em-method-head > p{ color:rgba(229,240,246,.68); }
.pg-empresa2 .em-proceso-row{
  color:#071b2d;
  border:0;
  border-top:3px solid var(--brick,#d70000);
  border-radius:0;
  box-shadow:0 18px 42px rgba(0,0,0,.2);
}
.pg-empresa2 .em-method-principles{
  margin-top:6px;
  border-top:1px solid rgba(255,255,255,.15);
  background:rgba(0,13,26,.44);
  box-shadow:inset 3px 0 0 var(--brick,#d70000);
  backdrop-filter:blur(8px);
}

/* Capítulo 04 · archivo de experiencia */
.pg-empresa2 .em-guides > .wrap{
  padding-top:36px;
  background:
    radial-gradient(circle at 91% 6%,rgba(215,0,0,.055),transparent 22%),
    linear-gradient(180deg,#fff,#f3f6f8);
}
.pg-empresa2 .em-guides-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
  column-gap:50px;
  align-items:end;
  padding:0 150px 22px 0;
  border-bottom:1px solid rgba(0,23,43,.14);
}
.pg-empresa2 .em-guides-kicker{
  grid-column:1/-1;
  margin-bottom:12px;
  color:var(--brick,#d70000);
  font-size:8px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.pg-empresa2 .em-guides-head h2{ margin:0; }
.pg-empresa2 .em-guides-head p{ margin:0; }
.pg-empresa2 .em-guides-grid{ counter-reset:guide; }
.pg-empresa2 .em-guide-card{
  counter-increment:guide;
  position:relative;
  overflow:hidden;
  border:0;
  border-top:3px solid var(--brick,#d70000);
  border-radius:0;
  background:#fff;
  box-shadow:0 14px 32px rgba(0,23,43,.09);
  transition:transform .3s cubic-bezier(.2,.75,.2,1),box-shadow .3s ease;
}
.pg-empresa2 .em-guide-card::before{
  content:"0" counter(guide);
  position:absolute;
  z-index:3;
  top:12px;
  left:12px;
  padding:5px 7px;
  color:#fff;
  background:rgba(0,23,43,.82);
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
}
.pg-empresa2 .em-guide-card:hover{ transform:translateY(-6px); box-shadow:0 22px 40px rgba(0,23,43,.16); }
.pg-empresa2 .em-guide-card img{ transition:transform .6s cubic-bezier(.2,.75,.2,1),filter .4s ease; filter:saturate(.82) contrast(1.05); }
.pg-empresa2 .em-guide-card:hover img{ transform:scale(1.045); filter:saturate(1) contrast(1.06); }

/* Capítulo 05 · cierre */
.pg-empresa2 .em-cta > .wrap{
  padding:0;
  background:#00172b;
  box-shadow:inset 0 3px 0 var(--brick,#d70000),0 16px 38px rgba(0,23,43,.13) !important;
}
.pg-empresa2 .em-cta > .wrap::before{ color:rgba(255,255,255,.06); right:34px; }
.pg-empresa2 .em-cta > .wrap::after{ color:rgba(255,255,255,.48); top:20px; }
.pg-empresa2 .em-cta-inner{
  min-height:170px;
  padding:36px 42px;
  color:#fff;
  border-left:4px solid var(--brick,#d70000);
  background:
    radial-gradient(circle at 88% 20%,rgba(35,129,177,.25),transparent 28%),
    repeating-linear-gradient(125deg,transparent 0 44px,rgba(126,210,243,.035) 45px 46px),
    linear-gradient(135deg,#00172b,#062d4c);
}
.pg-empresa2 .em-cta-text > span{
  display:block;
  margin-bottom:10px;
  color:#ff3034;
  font-size:8px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.pg-empresa2 .em-cta-text h2{ color:#fff; font-size:clamp(22px,2.2vw,31px); line-height:1.05; }
.pg-empresa2 .em-cta .em-cta-link{ color:#fff !important; border-bottom:1px solid rgba(255,255,255,.4); }

/* Entrada por capítulos; se reinicia al volver a una sección. */
.has-editorial-motion .pg-empresa2 .em-chapter > .wrap{
  opacity:.18;
  transform:translateY(34px);
  clip-path:inset(0 0 14% 0);
  transition:opacity .52s ease,transform .72s cubic-bezier(.18,.78,.2,1),clip-path .78s cubic-bezier(.18,.78,.2,1);
}
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in > .wrap{ opacity:1; transform:none; clip-path:inset(0); }
.has-editorial-motion .pg-empresa2 .em-chapter .em-mosaic-item,
.has-editorial-motion .pg-empresa2 .em-chapter .em-plant-team-intro,
.has-editorial-motion .pg-empresa2 .em-chapter .em-plant-person,
.has-editorial-motion .pg-empresa2 .em-chapter .em-guide-card{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .5s ease,transform .62s cubic-bezier(.18,.78,.2,1);
}
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-mosaic-item,
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-plant-team-intro,
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-plant-person,
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-guide-card{ opacity:1; transform:none; }
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-mosaic-item:nth-child(2),
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-plant-person:nth-child(1),
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-guide-card:nth-child(2){ transition-delay:.08s; }
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-mosaic-item:nth-child(3),
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-plant-person:nth-child(2),
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-guide-card:nth-child(3){ transition-delay:.16s; }
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-mosaic-item:nth-child(4),
.has-editorial-motion .pg-empresa2 .em-chapter.is-editorial-in .em-guide-card:nth-child(4){ transition-delay:.24s; }

@media (max-width:900px){
  .pg-empresa2 .em-planta-head,
  .pg-empresa2 .em-method-head,
  .pg-empresa2 .em-guides-head{ padding-right:0; }
  .pg-empresa2 .em-guides-head{ grid-template-columns:1fr; gap:12px; }
  .pg-empresa2 .em-chapter > .wrap::before{ top:18px; right:18px; font-size:72px; }
  .pg-empresa2 .em-chapter > .wrap::after{ top:22px; right:23px; }
}
@media (max-width:640px){
  .pg-empresa2 .em-chapter > .wrap::before{ font-size:58px; opacity:.85; }
  .pg-empresa2 .em-chapter > .wrap::after{ font-size:7px; }
  .pg-empresa2 .em-planta-head,
  .pg-empresa2 .em-guides-head{ padding-top:42px; }
  .pg-empresa2 .em-method-head{ padding-top:40px; }
  .pg-empresa2 .em-planta .em-mosaic::before{ top:10px; left:10px; }
  .pg-empresa2 .em-plant-team{ background:linear-gradient(180deg,#eef3f6 0 22%,#fff 22% 100%); }
  .pg-empresa2 .em-cta-inner{ padding:64px 22px 26px; }
}
@media (prefers-reduced-motion:reduce){
  .pg-empresa2 .em-hero-editorial::before,
  .pg-empresa2 .em-editorial-index,
  .pg-empresa2 .em-editorial-kicker,
  .pg-empresa2 .em-editorial-copy h1,
  .pg-empresa2 .em-editorial-copy > p,
  .pg-empresa2 .em-editorial-actions,
  .pg-empresa2 .em-editorial-proof,
  .pg-empresa2 .em-editorial-years strong,
  .pg-empresa2 .em-editorial-rail{ animation:none !important; }
  .pg-empresa2 .em-chapter > .wrap,
  .pg-empresa2 .em-chapter *{ transition:none !important; }
}

/* Empresa · páginas de revista y navegación por saltos · versión 29 */
.pg-empresa2 .em-magazine-nav{
  position:fixed;
  z-index:870;
  top:50%;
  right:13px;
  display:none;
  width:24px;
  padding:10px 0;
  transform:translateY(-50%);
}
.pg-empresa2 .em-magazine-nav::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:14px;
  bottom:14px;
  left:50%;
  width:1px;
  background:linear-gradient(180deg,transparent,rgba(110,199,234,.48) 13%,rgba(110,199,234,.48) 87%,transparent);
  box-shadow:0 0 12px rgba(81,194,235,.28);
}
.pg-empresa2 .em-magazine-nav button{
  position:relative;
  display:grid;
  place-items:center;
  width:24px;
  height:32px;
  padding:0;
  border:0;
  color:#9ab1c1;
  background:transparent;
  cursor:pointer;
}
.pg-empresa2 .em-magazine-nav button::before{
  content:"";
  width:6px;
  height:6px;
  border:1px solid rgba(151,210,233,.72);
  background:#05243a;
  transform:rotate(45deg);
  transition:transform .24s ease,background .24s ease,box-shadow .24s ease,border-color .24s ease;
}
.pg-empresa2 .em-magazine-nav button span{
  position:absolute;
  right:26px;
  color:#fff;
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
  opacity:0;
  transform:translateX(5px);
  transition:opacity .2s ease,transform .2s ease;
}
.pg-empresa2 .em-magazine-nav button b{
  position:absolute;
  right:46px;
  width:max-content;
  padding:5px 8px;
  color:#fff;
  border-left:2px solid var(--brick,#d70000);
  background:rgba(0,23,43,.9);
  box-shadow:0 8px 24px rgba(0,23,43,.18);
  font-size:8px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:0;
  pointer-events:none;
  transform:translateX(7px);
  transition:opacity .2s ease,transform .2s ease;
}
.pg-empresa2 .em-magazine-nav button:hover b,
.pg-empresa2 .em-magazine-nav button:focus-visible b{ opacity:1; transform:none; }
.pg-empresa2 .em-magazine-nav button.is-active::before{
  border-color:#fff;
  background:var(--brick,#d70000);
  box-shadow:0 0 0 3px rgba(215,0,0,.14),0 0 15px rgba(215,0,0,.55);
  transform:rotate(45deg) scale(1.28);
}
.pg-empresa2 .em-magazine-nav button.is-active span{ opacity:1; transform:none; }
.pg-empresa2 .em-magazine-nav button:focus-visible{ outline:1px solid #fff; outline-offset:2px; }

/* La portada también reinicia su entrada cuando se vuelve a ella. */
.has-editorial-motion .pg-empresa2 .em-hero-editorial:not(.is-editorial-in) .em-editorial-index,
.has-editorial-motion .pg-empresa2 .em-hero-editorial:not(.is-editorial-in) .em-editorial-kicker,
.has-editorial-motion .pg-empresa2 .em-hero-editorial:not(.is-editorial-in) .em-editorial-copy h1,
.has-editorial-motion .pg-empresa2 .em-hero-editorial:not(.is-editorial-in) .em-editorial-copy > p,
.has-editorial-motion .pg-empresa2 .em-hero-editorial:not(.is-editorial-in) .em-editorial-actions,
.has-editorial-motion .pg-empresa2 .em-hero-editorial:not(.is-editorial-in) .em-editorial-proof,
.has-editorial-motion .pg-empresa2 .em-hero-editorial:not(.is-editorial-in) .em-editorial-rail{
  animation:none !important;
  opacity:0;
}
.has-editorial-motion .pg-empresa2 .em-hero-editorial.is-editorial-in .em-editorial-index{ animation:emIntroLeft .48s .04s cubic-bezier(.2,.78,.2,1) both; }
.has-editorial-motion .pg-empresa2 .em-hero-editorial.is-editorial-in .em-editorial-kicker{ animation:emIntroUp .42s .09s cubic-bezier(.2,.78,.2,1) both; }
.has-editorial-motion .pg-empresa2 .em-hero-editorial.is-editorial-in .em-editorial-copy h1{ animation:emIntroUp .52s .13s cubic-bezier(.2,.78,.2,1) both; }
.has-editorial-motion .pg-empresa2 .em-hero-editorial.is-editorial-in .em-editorial-copy > p{ animation:emIntroUp .44s .2s cubic-bezier(.2,.78,.2,1) both; }
.has-editorial-motion .pg-empresa2 .em-hero-editorial.is-editorial-in .em-editorial-actions{ animation:emIntroUp .44s .25s cubic-bezier(.2,.78,.2,1) both; }
.has-editorial-motion .pg-empresa2 .em-hero-editorial.is-editorial-in .em-editorial-proof{ animation:emIntroProof .56s .2s cubic-bezier(.16,.82,.2,1) both; }
.has-editorial-motion .pg-empresa2 .em-hero-editorial.is-editorial-in .em-editorial-rail{ animation:emIntroUp .4s .31s cubic-bezier(.2,.78,.2,1) both; }

@media (min-width:1101px) and (prefers-reduced-motion:no-preference){
  html:has(body.pg-empresa2){
    scroll-behavior:auto !important;
    scroll-snap-type:none !important;
    scroll-padding-top:0 !important;
  }
  .pg-empresa2{ --em-page-height:calc(100svh - var(--em-nav-height,79px)); }
  .pg-empresa2 .em-magazine-nav{ display:block; }
  .pg-empresa2 main > section,
  .pg-empresa2 footer{
    scroll-snap-align:none;
    scroll-margin-top:0 !important;
  }
  .pg-empresa2 main > section{
    width:100%;
    height:var(--em-page-height);
    min-height:var(--em-page-height);
    max-height:var(--em-page-height);
  }
  .pg-empresa2 .em-hero-editorial{ height:var(--em-page-height); min-height:var(--em-page-height); }
  .pg-empresa2 main > .em-chapter{
    display:flex;
    align-items:stretch;
    padding:8px 36px !important;
  }
  .pg-empresa2 .em-chapter > .wrap{
    display:flex;
    flex-direction:column;
    justify-content:center;
    flex:1 1 auto;
    width:100%;
    height:auto;
    min-height:0;
  }

  /* Página 02: toda la operación cabe sin perder el relato ni las personas. */
  .pg-empresa2 .em-planta > .wrap{ padding:20px 30px; }
  .pg-empresa2 .em-planta-head{ flex:0 0 auto; margin-bottom:11px; padding:0 150px 11px 0; }
  .pg-empresa2 .em-planta-head .em-eyebrow{ margin-bottom:7px; }
  .pg-empresa2 .em-planta-head .em-h2{ font-size:clamp(25px,2.25vw,34px); }
  .pg-empresa2 .em-planta-intro{ font-size:13px; line-height:1.42; }
  .pg-empresa2 .em-mosaic{
    flex:1 1 auto;
    height:auto;
    min-height:210px;
    max-height:clamp(232px,35svh,310px);
  }
  .pg-empresa2 .em-plant-team{ flex:0 0 auto; margin-top:11px; padding:12px 16px; gap:14px; }
  .pg-empresa2 .em-plant-team-intro h3{ margin-bottom:6px; font-size:clamp(17px,1.45vw,22px); }
  .pg-empresa2 .em-plant-team-intro p{ font-size:11px; }
  .pg-empresa2 .em-plant-person{ grid-template-columns:84px minmax(0,1fr); }
  .pg-empresa2 .em-plant-person-media{ min-height:142px; }
  .pg-empresa2 .em-plant-person-copy{ padding:12px 13px 11px; }
  .pg-empresa2 .em-plant-person-copy > span{ margin-bottom:5px; }
  .pg-empresa2 .em-plant-person-copy h3{ font-size:16px; }
  .pg-empresa2 .em-plant-person-copy strong{ margin-bottom:6px; font-size:8px; }
  .pg-empresa2 .em-plant-person-copy p{ font-size:9.5px; line-height:1.42; }
  .pg-empresa2 .em-plant-person-copy a{ margin-top:7px; font-size:8px; }

  /* Página 03: método centrado como doble página técnica. */
  .pg-empresa2 .em-proceso > .wrap{ padding:25px 30px; }
  .pg-empresa2 .em-proceso-head{ margin-bottom:14px; }
  .pg-empresa2 .em-proceso-row{ padding:20px 20px 18px; }
  .pg-empresa2 .em-method-principles{ margin-top:5px; }

  /* Página 04: cuatro artículos distribuidos de borde a borde. */
  .pg-empresa2 .em-guides > .wrap{ padding:24px 30px; }
  .pg-empresa2 .em-guides-head{ flex:0 0 auto; margin-bottom:14px; padding:0 150px 14px 0; }
  .pg-empresa2 .em-guides-head h2{ font-size:clamp(25px,2.65vw,36px); }
  .pg-empresa2 .em-guides-head p{ font-size:12.5px; line-height:1.45; }
  .pg-empresa2 .em-guides-grid{ flex:1 1 auto; min-height:0; }
  .pg-empresa2 .em-guide-card{ min-height:0; }
  .pg-empresa2 .em-guide-card img{ height:clamp(96px,17svh,138px); flex-basis:clamp(96px,17svh,138px); }
  .pg-empresa2 .em-guide-card-copy{ padding:14px 15px; }
  .pg-empresa2 .em-guide-card-copy h3{ font-size:14px; }
  .pg-empresa2 .em-guide-card-copy p{ font-size:11px; line-height:1.42; }

  /* Página 05: contraportada comercial, no una franja residual. */
  .pg-empresa2 .em-cta > .wrap{ justify-content:stretch; }
  .pg-empresa2 .em-cta-inner{
    flex:1;
    min-height:0;
    padding:clamp(55px,9svh,92px) clamp(45px,7vw,90px);
    align-items:center;
  }
  .pg-empresa2 .em-cta-text h2{ font-size:clamp(34px,4vw,54px); max-width:650px; }
  .pg-empresa2 .em-cta-actions{ gap:24px; }

  /* Página 06: el pie funciona como cierre editorial independiente. */
  .pg-empresa2 footer{
    display:flex;
    align-items:center;
    min-height:var(--em-page-height);
    padding:34px 0;
    background:
      radial-gradient(circle at 86% 20%,rgba(36,128,174,.18),transparent 28%),
      repeating-linear-gradient(125deg,transparent 0 54px,rgba(127,212,244,.025) 55px 56px),
      #00172b;
  }
}

@media (max-width:1100px), (prefers-reduced-motion:reduce){
  .pg-empresa2 .em-magazine-nav{ display:none !important; }
  html:has(body.pg-empresa2){ scroll-snap-type:none !important; }
}

/* Empresa · edición revista premium · versión 31 */
.pg-empresa2 .em-h2 em,
.pg-empresa2 .em-guides-head h2 em,
.pg-empresa2 .em-cta-text h2 em{
  color:var(--brick,#d70000);
  font-style:normal;
}
.pg-empresa2 .em-planta-head{
  display:grid;
  grid-template-columns:minmax(0,1.16fr) minmax(300px,.72fr);
  grid-template-areas:"eyebrow intro" "title intro";
  column-gap:48px;
  align-items:end;
}
.pg-empresa2 .em-planta-head .em-eyebrow{ grid-area:eyebrow; align-self:end; }
.pg-empresa2 .em-planta-head .em-h2{ grid-area:title; }
.pg-empresa2 .em-planta-intro{
  grid-area:intro;
  max-width:43ch;
  margin:0 0 4px;
  padding:15px 0 4px 18px;
  border-left:2px solid var(--brick,#d70000);
  color:#4e5d68;
}
.pg-empresa2 .em-planta-intro b{ color:#071b2d; }

.pg-empresa2 .em-plant-team{
  grid-template-columns:minmax(245px,.72fr) minmax(0,2fr);
  border-top:1px solid rgba(0,23,43,.14);
  border-left:3px solid var(--brick,#d70000);
  background:linear-gradient(112deg,#edf2f5 0 32%,#f9fbfc 32% 100%);
}
.pg-empresa2 .em-plant-people{ gap:10px; }
.pg-empresa2 .em-plant-person{
  grid-template-columns:102px minmax(0,1fr);
  min-height:156px;
  border:1px solid rgba(0,23,43,.12);
  border-top:2px solid var(--brick,#d70000);
  background:#fff;
  box-shadow:0 14px 32px rgba(0,23,43,.08);
}
.pg-empresa2 .em-plant-person-sebastian{ grid-template-columns:118px minmax(0,1fr); }
.pg-empresa2 .em-plant-person-media,
.pg-empresa2 .em-plant-person-media-sebastian{
  min-height:154px;
  background:#061d32;
}
.pg-empresa2 .em-plant-person-media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 56%,rgba(0,23,43,.22));
}
.pg-empresa2 .em-plant-person-media{ position:relative; }
.pg-empresa2 .em-plant-person-media img,
.pg-empresa2 .em-plant-person-media-sebastian img{
  object-position:center 27%;
  filter:saturate(.92) contrast(1.04);
}
.pg-empresa2 .em-plant-person-media-sebastian img{
  object-fit:contain;
  object-position:center;
}
.pg-empresa2 .em-plant-person-copy{ display:flex; flex-direction:column; justify-content:center; }

.pg-empresa2 .em-proceso-head.em-method-head{
  width:100%;
  max-width:none;
  grid-template-columns:minmax(0,1.2fr) minmax(330px,.72fr);
  gap:48px;
}
.pg-empresa2 .em-proceso-head .em-h2{ max-width:680px; }
.pg-empresa2 .em-proceso-head .em-h2 em{ color:#ff3135; }
.pg-empresa2 .em-proceso-row{
  gap:0;
  border-top:3px solid var(--brick,#d70000);
  background:linear-gradient(180deg,#fff,#f3f6f8);
  box-shadow:0 18px 42px rgba(0,17,32,.2);
}
.pg-empresa2 .em-step{
  position:relative;
  min-width:0;
  padding:22px 20px 20px;
  border-right:1px solid #d3dce2;
  background:transparent;
}
.pg-empresa2 .em-step:last-child{ border-right:0; }
.pg-empresa2 .em-step::after{
  content:"";
  position:absolute;
  right:-5px;
  top:27px;
  z-index:3;
  width:9px;
  height:9px;
  border:2px solid #fff;
  border-radius:50%;
  background:var(--brick,#d70000);
  box-shadow:0 0 0 3px rgba(215,0,0,.12);
}
.pg-empresa2 .em-step:last-child::after{ display:none; }
.pg-empresa2 .em-step-num{
  width:42px;
  height:42px;
  margin-bottom:14px;
  border-color:var(--brick,#d70000);
  background:#fff;
  box-shadow:0 8px 20px rgba(0,23,43,.08);
}
.has-editorial-motion .pg-empresa2 .em-proceso:not(.is-in) .em-step{
  opacity:0;
  transform:translateX(-20px);
}
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-step{
  animation:emProcessStepV31 .42s cubic-bezier(.16,.8,.2,1) both;
}
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-step:nth-of-type(2){ animation-delay:.08s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-step:nth-of-type(3){ animation-delay:.16s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-step:nth-of-type(4){ animation-delay:.24s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-step:nth-of-type(5){ animation-delay:.32s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-step:nth-of-type(6){ animation-delay:.40s; }
@keyframes emProcessStepV31{
  0%{ opacity:0; transform:translateX(-20px); }
  70%{ opacity:1; transform:translateX(3px); }
  100%{ opacity:1; transform:none; }
}

.pg-empresa2 .em-guides-head{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.75fr);
  grid-template-areas:"kicker copy" "title copy";
  align-items:end;
  column-gap:48px;
  border-bottom:1px solid rgba(0,23,43,.14);
}
.pg-empresa2 .em-guides-kicker{ grid-area:kicker; }
.pg-empresa2 .em-guides-head h2{ grid-area:title; }
.pg-empresa2 .em-guides-head > p{
  grid-area:copy;
  max-width:43ch;
  padding-left:18px;
  border-left:2px solid var(--brick,#d70000);
}
.pg-empresa2 .em-guides-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr .85fr;
  grid-template-rows:1fr 1fr;
  gap:10px;
}
.pg-empresa2 .em-guide-card{
  min-height:0;
  border:1px solid rgba(0,23,43,.1);
  border-top:2px solid var(--brick,#d70000);
  background:#fff;
  box-shadow:0 12px 28px rgba(0,23,43,.07);
}
.pg-empresa2 .em-guide-card:nth-child(1){ grid-column:1; grid-row:1 / span 2; }
.pg-empresa2 .em-guide-card:nth-child(2){ grid-column:2 / span 2; grid-row:1; display:grid; grid-template-columns:42% 1fr; }
.pg-empresa2 .em-guide-card:nth-child(3){ grid-column:2; grid-row:2; }
.pg-empresa2 .em-guide-card:nth-child(4){ grid-column:3; grid-row:2; }
.pg-empresa2 .em-guide-card:nth-child(1) img{ flex-basis:48%; height:48%; }
.pg-empresa2 .em-guide-card:nth-child(2) img{ width:100%; height:100%; min-height:0; }
.pg-empresa2 .em-guide-card-copy{ display:flex; flex-direction:column; justify-content:flex-start; }
.pg-empresa2 .em-guide-card-copy b{ margin-top:auto; }

.pg-empresa2 .em-cta{
  background:linear-gradient(115deg,#00172b,#063553);
}
.pg-empresa2 .em-cta > .wrap{ background:transparent; }
.pg-empresa2 .em-cta-inner{
  border:0;
  border-left:3px solid var(--brick,#d70000);
  background:
    radial-gradient(circle at 86% 25%,rgba(47,141,186,.22),transparent 25%),
    repeating-linear-gradient(125deg,transparent 0 44px,rgba(125,211,244,.035) 45px 46px),
    linear-gradient(115deg,#00172b,#073553);
}
.pg-empresa2 .em-cta-text h2 em{ color:#ff3135; }
.pg-empresa2 .em-cta-text p{ max-width:58ch; margin:14px 0 0; color:#b9c9d3; font-size:13px; line-height:1.55; }
.pg-empresa2 #empresa-footer{
  border-top:1px solid rgba(119,205,238,.15);
  background:
    radial-gradient(circle at 88% 10%,rgba(46,143,190,.16),transparent 28%),
    #00172b;
}
.pg-empresa2 #empresa-footer .f2-highlight{ display:none; }

@media (min-width:1101px) and (prefers-reduced-motion:no-preference){
  .pg-empresa2 .em-planta-head{ padding-right:145px; }
  .pg-empresa2 .em-plant-team{ grid-template-columns:minmax(260px,.72fr) minmax(0,2fr); }
  .pg-empresa2 .em-plant-person{ grid-template-columns:92px minmax(0,1fr); min-height:142px; }
  .pg-empresa2 .em-plant-person-sebastian{ grid-template-columns:118px minmax(0,1fr); }
  .pg-empresa2 .em-plant-person-media,
  .pg-empresa2 .em-plant-person-media-sebastian{ min-height:140px; }
  .pg-empresa2 .em-proceso-row{ flex:1 1 auto; align-items:stretch; }
  .pg-empresa2 .em-step{ display:flex; flex-direction:column; justify-content:center; }
  .pg-empresa2 .em-guides-head{ padding-right:145px; }
  .pg-empresa2 .em-guides-grid{ flex:1 1 auto; min-height:0; }
  .pg-empresa2 .em-guide-card img{ object-fit:cover; }

  .pg-empresa2 main > #cierre{
    height:calc(var(--em-page-height) * .42) !important;
    min-height:calc(var(--em-page-height) * .42) !important;
    max-height:calc(var(--em-page-height) * .42) !important;
    padding:8px 36px 0 !important;
    scroll-margin-top:0 !important;
  }
  .pg-empresa2 #cierre > .wrap{ padding:0; }
  .pg-empresa2 #cierre .em-cta-inner{
    display:grid;
    grid-template-columns:minmax(0,1.3fr) auto;
    min-height:100%;
    padding:28px clamp(38px,5vw,68px);
  }
  .pg-empresa2 #cierre .em-cta-text h2{ margin:4px 0 0; font-size:clamp(27px,3vw,41px); }
  .pg-empresa2 #empresa-footer{
    scroll-snap-align:none !important;
    height:calc(var(--em-page-height) * .58) !important;
    min-height:calc(var(--em-page-height) * .58) !important;
    max-height:calc(var(--em-page-height) * .58) !important;
    padding:0 36px 8px !important;
  }
  .pg-empresa2 #empresa-footer > .wrap{
    display:flex;
    flex-direction:column;
    justify-content:center;
    width:100%;
    height:100%;
    padding:20px 30px 14px;
    border-left:3px solid var(--brick,#d70000);
  }
  .pg-empresa2 #empresa-footer .f2-cols{ margin:0; }
  .pg-empresa2 #empresa-footer .f2-legal{ margin-top:16px; padding-top:12px; }
}

@media (max-width:1100px){
  .pg-empresa2 .em-planta-head,
  .pg-empresa2 .em-guides-head{ display:block; }
  .pg-empresa2 .em-planta-intro,
  .pg-empresa2 .em-guides-head > p{ max-width:none; margin-top:14px; }
  .pg-empresa2 .em-plant-team{ grid-template-columns:1fr; background:linear-gradient(180deg,#eef3f6,#fff); }
  .pg-empresa2 .em-guides-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; }
  .pg-empresa2 .em-guide-card:nth-child(n){ grid-column:auto; grid-row:auto; display:flex; }
  .pg-empresa2 .em-guide-card:nth-child(2){ display:flex; }
  .pg-empresa2 .em-guide-card:nth-child(2) img{ height:clamp(150px,26vw,230px); }
}

@media (max-width:640px){
  .pg-empresa2 .em-plant-person{ grid-template-columns:92px minmax(0,1fr); }
  .pg-empresa2 .em-plant-person-sebastian{ grid-template-columns:124px minmax(0,1fr); }
  .pg-empresa2 .em-plant-person-media,
  .pg-empresa2 .em-plant-person-media-sebastian{ height:220px; min-height:220px; }
  .pg-empresa2 .em-plant-person-sebastian .em-plant-person-media-sebastian{ height:166px; min-height:166px; }
  .pg-empresa2 .em-proceso-row{ display:grid; grid-template-columns:1fr; padding:0; }
  .pg-empresa2 .em-proceso-line{ display:none; }
  .pg-empresa2 .em-step{ padding:18px 18px 18px 72px; border-right:0; border-bottom:1px solid #d3dce2; }
  .pg-empresa2 .em-step-num{ position:absolute; left:16px; top:17px; margin:0; }
  .pg-empresa2 .em-step::after{ left:35px; right:auto; top:auto; bottom:-5px; }
  .pg-empresa2 .em-guides-grid{ grid-template-columns:1fr; }
  .pg-empresa2 #cierre .em-cta-inner{ padding:48px 24px 30px; }
}

@media (prefers-reduced-motion:reduce){
  .pg-empresa2 .em-step{ opacity:1 !important; transform:none !important; animation:none !important; }
}

/* Empresa · recorrido operativo y cierre integrado · versión 34 */
.pg-empresa2 .em-process-route{
  position:relative;
  overflow:hidden;
  border-top:3px solid var(--brick,#d70000);
  background:linear-gradient(180deg,#fff 0%,#f2f6f8 100%);
  box-shadow:0 18px 42px rgba(0,17,32,.2);
}
.pg-empresa2 .em-process-route::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(105deg,rgba(215,0,0,.035),transparent 30%,rgba(0,49,79,.045));
}
.pg-empresa2 .em-process-route-meta{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  padding:13px 20px 11px;
  border-bottom:1px solid #d7e0e5;
  color:#60717d;
  font-family:'Archivo',sans-serif;
  font-size:9px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.pg-empresa2 .em-process-route-meta span:last-child{ color:var(--brick,#d70000); }
.pg-empresa2 .em-process-route-track{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  min-height:250px;
  padding:18px 16px 20px;
}
.pg-empresa2 .em-process-stage{
  position:relative;
  display:grid;
  grid-template-rows:72px 1fr;
  min-width:0;
  padding:0 18px;
  border-right:1px solid #d5dee4;
}
.pg-empresa2 .em-process-stage:last-child{ border-right:0; }
.pg-empresa2 .em-process-stage-button{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  max-width:112px;
  height:54px;
  padding:0 13px;
  border:1px solid #b9c7d0;
  border-top:3px solid var(--brick,#d70000);
  border-radius:2px;
  background:#fff;
  color:#09233a;
  box-shadow:0 9px 18px rgba(0,23,43,.08);
}
.pg-empresa2 .em-process-stage-button::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-1px;
  height:3px;
  background:var(--brick,#d70000);
}
.pg-empresa2 .em-process-stage-num{
  color:var(--brick,#d70000);
  font-family:'Archivo',sans-serif;
  font-size:17px;
  font-weight:900;
}
.pg-empresa2 .em-process-stage-button svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.pg-empresa2 .em-process-stage-copy{ padding-top:6px; }
.pg-empresa2 .em-process-stage-copy > span{
  display:block;
  margin-bottom:5px;
  color:var(--brick,#d70000);
  font-family:'Archivo',sans-serif;
  font-size:8px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.pg-empresa2 .em-process-stage-copy h3{
  margin:0 0 8px;
  color:#071b2d;
  font-family:'Archivo',sans-serif;
  font-size:14px;
  font-weight:900;
  letter-spacing:-.01em;
  text-transform:uppercase;
}
.pg-empresa2 .em-process-stage-copy p{
  max-width:22ch;
  margin:0;
  color:#52636f;
  font-size:11px;
  line-height:1.48;
}
.pg-empresa2 .em-process-stage-arrow{
  position:absolute;
  z-index:3;
  top:18px;
  right:-13px;
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border:1px solid #f0a4a4;
  border-radius:50%;
  background:#fff;
  color:var(--brick,#d70000);
  font-size:17px;
  font-weight:800;
  box-shadow:0 0 0 5px #f4f7f8;
}

.has-editorial-motion .pg-empresa2 .em-proceso:not(.is-in) .em-process-stage{
  opacity:.18;
  transform:translateX(-16px);
}
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage{
  animation:emProcessStageV34 .48s cubic-bezier(.2,.78,.2,1) both;
}
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(2){ animation-delay:.14s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(3){ animation-delay:.28s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(4){ animation-delay:.42s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(5){ animation-delay:.56s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage-button::after{
  animation:emProcessUnderlineV34 .4s ease-out both;
  animation-delay:.18s;
}
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(2) .em-process-stage-button::after{ animation-delay:.32s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(3) .em-process-stage-button::after{ animation-delay:.46s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(4) .em-process-stage-button::after{ animation-delay:.60s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(5) .em-process-stage-button::after{ animation-delay:.74s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage-arrow{ animation:emProcessArrowV34 .34s ease-out both; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(2) .em-process-stage-arrow{ animation-delay:.20s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(3) .em-process-stage-arrow{ animation-delay:.34s; }
.has-editorial-motion .pg-empresa2 .em-proceso.is-in .em-process-stage:nth-child(4) .em-process-stage-arrow{ animation-delay:.48s; }
@keyframes emProcessStageV34{
  0%{ opacity:.18; transform:translateX(-16px); }
  100%{ opacity:1; transform:none; }
}
@keyframes emProcessUnderlineV34{
  0%{ right:100%; }
  100%{ right:0; }
}
@keyframes emProcessArrowV34{
  0%{ opacity:0; transform:translateX(-8px) scale(.7); }
  100%{ opacity:1; transform:none; }
}

/* El llamado y el pie son una sola pieza estructural y visual. */
.pg-empresa2 #cierre{ background:#00172b; }
.pg-empresa2 .em-closing-shell{
  position:relative;
  overflow:hidden;
  width:100%;
  height:100%;
  border-left:3px solid var(--brick,#d70000);
  background:
    radial-gradient(circle at 88% 8%,rgba(47,141,186,.19),transparent 28%),
    repeating-linear-gradient(125deg,transparent 0 44px,rgba(125,211,244,.028) 45px 46px),
    linear-gradient(115deg,#00172b,#063553);
}
.pg-empresa2 .em-closing-shell::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:42%;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--brick,#d70000));
}
.pg-empresa2 .em-closing-hero{ position:relative; z-index:1; background:transparent; }
.pg-empresa2 .em-closing-shell .em-cta-inner{
  border:0;
  border-bottom:1px solid rgba(119,205,238,.18);
  background:transparent;
}
.pg-empresa2 .em-closing-shell #empresa-footer{
  position:relative;
  z-index:1;
  border:0;
  background:transparent;
}
.pg-empresa2 .em-closing-shell #empresa-footer > .wrap{ border-left:0; }

@media (min-width:1101px) and (prefers-reduced-motion:no-preference){
  .pg-empresa2 .em-proceso > .wrap{ padding:23px 30px; }
  .pg-empresa2 .em-proceso-head{ margin-bottom:12px; }
  .pg-empresa2 .em-process-route-track{ min-height:245px; }
  .pg-empresa2 .em-method-principles{ margin-top:5px; }

  .pg-empresa2 main > #cierre{
    height:var(--em-page-height) !important;
    min-height:var(--em-page-height) !important;
    max-height:var(--em-page-height) !important;
    padding:8px 36px !important;
  }
  .pg-empresa2 #cierre > .em-closing-shell{
    display:grid;
    grid-template-rows:minmax(0,40%) minmax(0,60%);
  }
  .pg-empresa2 #cierre .em-closing-hero{
    width:100%;
    height:100%;
    padding:0;
  }
  .pg-empresa2 #cierre .em-cta-inner{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) auto;
    height:100%;
    min-height:0;
    padding:24px clamp(38px,5vw,68px);
  }
  .pg-empresa2 #cierre .em-cta-text h2{ margin:4px 0 0; font-size:clamp(27px,3vw,41px); }
  .pg-empresa2 #cierre #empresa-footer{
    width:100%;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding:0 !important;
  }
  .pg-empresa2 #cierre #empresa-footer > .wrap{
    display:flex;
    flex-direction:column;
    justify-content:center;
    width:100%;
    height:100%;
    padding:20px 30px 14px;
  }
}

@media (max-width:1100px){
  .pg-empresa2 .em-proceso-head.em-method-head{
    display:block;
    padding-right:0;
  }
  .pg-empresa2 .em-method-head > p{
    max-width:54ch;
    margin:18px 0 0;
  }
  .pg-empresa2 .em-process-route-track{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
  .pg-empresa2 .em-process-stage{ min-height:205px; padding:18px 22px; border-bottom:1px solid #d5dee4; }
  .pg-empresa2 .em-process-stage:nth-child(2n){ border-right:0; }
  .pg-empresa2 .em-process-stage-arrow{ display:none; }
  .pg-empresa2 .em-closing-shell{ height:auto; }
}

@media (max-width:640px){
  .pg-empresa2 .em-process-route-meta{ padding:11px 15px 9px; font-size:7.5px; }
  .pg-empresa2 .em-process-route-track{ display:block; padding:0; }
  .pg-empresa2 .em-process-stage{
    grid-template-columns:76px minmax(0,1fr);
    grid-template-rows:auto;
    min-height:0;
    padding:16px;
    border-right:0;
    border-bottom:1px solid #d5dee4;
  }
  .pg-empresa2 .em-process-stage:last-child{ border-bottom:0; }
  .pg-empresa2 .em-process-stage-button{ width:62px; height:58px; padding:0 8px; }
  .pg-empresa2 .em-process-stage-button svg{ width:21px; height:21px; }
  .pg-empresa2 .em-process-stage-copy{ padding:2px 0 0; }
  .pg-empresa2 .em-process-stage-copy p{ max-width:none; }
  .pg-empresa2 .em-closing-shell{ border-left:0; }
  .pg-empresa2 #cierre .em-closing-hero{ padding:0; }
  .pg-empresa2 #cierre .em-cta-inner{ padding:44px 24px 30px; }
  .pg-empresa2 #cierre #empresa-footer{ padding:44px 24px 20px; }
}

@media (prefers-reduced-motion:reduce){
  .pg-empresa2 .em-process-stage,
  .pg-empresa2 .em-process-stage-button::after,
  .pg-empresa2 .em-process-stage-arrow{
    opacity:1 !important;
    transform:none !important;
    animation:none !important;
  }
  .pg-empresa2 .em-process-stage-button::after{ right:0; }
}

/* ============================================================
   .wa-fab — acceso compacto a WhatsApp   (2026-08-24)
   ------------------------------------------------------------
   Sustituye al widget anterior (.wa-float / .wa-btn / .wa-bubble),
   que mostraba un retrato de 60px con burbuja de 270px y llegaba a
   tapar CTA y pies de foto. Componente unico, compartido por las 4
   paginas manuales y por las 8 generadas (guias + caso), que lo
   heredan de nuestra-empresa.html via los generadores.
   No convive con el widget antiguo: aquel se elimino por completo.
   ============================================================ */
.wa-fab{
  position:fixed; z-index:60;
  right:max(20px, calc(env(safe-area-inset-right) + 20px));
  bottom:max(20px, calc(env(safe-area-inset-bottom) + 16px));
  display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:50%;
  background:#1f8f4e; color:#fff; text-decoration:none;
  box-shadow:0 6px 18px rgba(6,29,51,.28);
  border:1px solid rgba(255,255,255,.34);
  transition:transform .22s cubic-bezier(.22,1,.36,1), opacity .22s ease, background-color .18s ease;
}
/* Area tactil real de 44x44 como minimo, sin engordar el circulo visible. */
.wa-fab::before{
  content:''; position:absolute; left:50%; top:50%;
  width:max(44px,100%); height:max(44px,100%);
  transform:translate(-50%,-50%);
}
.wa-fab-icon{ width:25px; height:25px; fill:#fff; pointer-events:none; }
.wa-fab:hover{ background:#177a41; }
.wa-fab:focus-visible{ outline:3px solid #fff; outline-offset:3px; box-shadow:0 0 0 5px rgba(31,143,78,.5); }

/* Tooltip accesible: se apoya en el mismo texto del aria-label, no anade
   contenido nuevo al arbol de accesibilidad. */
.wa-fab-tip{
  position:absolute; right:calc(100% + 10px); top:50%; transform:translateY(-50%) translateX(4px);
  padding:6px 10px; border-radius:3px; white-space:nowrap;
  background:rgba(0,23,43,.94); color:#fff;
  font:700 11px/1 'Archivo',sans-serif; letter-spacing:.03em;
  opacity:0; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.wa-fab:hover .wa-fab-tip,
.wa-fab:focus-visible .wa-fab-tip{ opacity:1; transform:translateY(-50%) translateX(0); }

/* ---- escritorio: franja segura del indicador lateral ----
   El riel de capitulos (page-progress / pje-local-nav) vive pegado al borde
   derecho. El boton se aparta lo suficiente para no solaparlo ni estorbar
   sus puntos, y queda por debajo de el en z-index. */
@media (min-width:1101px){
  .wa-fab{ right:64px; bottom:26px; }
}

/* ---- movil: se repliega al desplazarse ----
   Nunca display:none ni visibility:hidden -- solo se desplaza parcialmente
   hacia el borde y baja su presencia, para no tapar contenido mientras se
   lee. Vuelve solo ~800ms despues de detener el scroll (ver wa-fab.js). */
@media (max-width:1100px){
  .wa-fab.is-tucked{ transform:translateX(38%); opacity:.55; }
  .wa-fab.is-tucked .wa-fab-tip{ opacity:0; }
}
/* El foco de teclado siempre lo restituye completo, de inmediato. */
.wa-fab:focus-visible.is-tucked,
.wa-fab.is-tucked:focus-visible{ transform:none; opacity:1; }

@media (prefers-reduced-motion:reduce){
  .wa-fab, .wa-fab-tip{ transition:none; }
}

/* ============================================================ */
/* MICROCORRECCION 2026-08-24 · WhatsApp en la barra movil       */
/* ------------------------------------------------------------ */
/* Hasta 1150px el acceso deja de flotar y vive DENTRO del       */
/* header, junto al boton de menu; por encima de 1150px manda    */
/* el .wa-fab lateral. El corte coincide con el del propio nav   */
/* (.nav-links y .nav-tel desaparecen en ese mismo ancho).       */
/*                                                                */
/* Nunca hay dos accesos a la vez: en cada tramo uno de los dos  */
/* es display:none, asi que tampoco es enfocable -- no basta con */
/* ocultarlo visualmente.                                        */
/*                                                                */
/* El enlace es HTML estatico dentro de .nav-inner, colocado     */
/* justo antes del boton de menu (que lo inyecta mobile-nav.js   */
/* al final): el orden visual y el de tabulacion coinciden, y    */
/* funciona sin JavaScript.                                      */
/* ============================================================ */
.nav-wa{ display:none; }

@media (max-width:1150px){
  .nav-wa{
    position:relative; z-index:73;
    display:inline-grid; place-content:center;
    width:46px; height:46px; flex:0 0 46px;
    margin-left:10px;
    border-radius:50%;
    color:#fff; background:#1f8f4e;
    border:1px solid rgba(255,255,255,.28);
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
    transition:background .18s ease;
  }
  /* Area tactil real de 44x44 como minimo, sin engordar el circulo. */
  .nav-wa::before{
    content:''; position:absolute; left:50%; top:50%;
    width:max(44px,100%); height:max(44px,100%);
    transform:translate(-50%,-50%);
  }
  .nav-wa svg{ width:22px; height:22px; fill:#fff; pointer-events:none; }
  .nav-wa:hover{ background:#177a41; }
  .nav-wa:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
  /* El flotante no existe en este tramo: ni visible ni enfocable. */
  .wa-fab{ display:none !important; }
}

@media (prefers-reduced-motion:reduce){
  .nav-wa{ transition:none; }
}

/* ---- cierre visual 2026-08-24: el corredor tambien en la portada ----
   El bloque de mas arriba reserva 86px a la derecha en main>section[id],
   pero la portada NO es una de ellas: su tira de confianza va a sangre y
   el cuarto item ("Asesoria tecnica") quedaba bajo el boton flotante a
   1440 y 1290. Se le reserva la misma franja, solo en escritorio, sin
   tocar el fondo a sangre ni la composicion de la portada. */
@media (min-width:1101px){
  /* 124px y no 86: el boton ocupa de 64 a 112px desde el borde derecho, asi
     que reservar 86 dejaba 26px de solape. Con 124 la tira termina antes de
     que empiece el boton, con holgura. */
  .pg-home .trust .trust-inner{ padding-right:128px; }
}

/* ---- cierre visual 2026-08-24: ajuste fino en tablet y movil ----
   Medido: a 1024 el pie de la fotografia del hero y a 390 los CTA anchos
   llegaban a la esquina. El boton baja a 46px (dentro del rango pedido),
   se pega mas al margen -- sin bajar de 44x44 de area tactil, que sostiene
   ::before -- y su repliegue durante el scroll es mas marcado, para que no
   estorbe la lectura. Nunca se oculta ni deja de ser alcanzable. */
@media (max-width:1100px){
  .wa-fab{
    width:46px; height:46px;
    right:max(12px, calc(env(safe-area-inset-right) + 12px));
    bottom:max(14px, calc(env(safe-area-inset-bottom) + 12px));
  }
  .wa-fab-icon{ width:23px; height:23px; }
  .wa-fab.is-tucked{ transform:translateX(58%) scale(.88); opacity:.4; }
}


/* ============================================================
   Corredor del .wa-fab en el pie de pagina   (2026-08-24)
   ------------------------------------------------------------
   El pie es compartido por todo el sitio, pero el flotante solo
   existe en Home, Contacto, Nuestra empresa, Proyectos, las 7
   guias y el caso ferroviario. Se usa :has(.wa-fab) para
   reservar la franja UNICAMENTE en esas paginas: Productos y las
   Las fichas de producto no llevan botón y conservan su pie intacto.
   128px = 64 (distancia al borde) + 48 (ancho) + 16 (seguridad).
   ============================================================ */
@media (min-width:1151px){
  body:has(.wa-fab) footer .wrap{ padding-right:128px; }
}

/* La franja de cierre de Nuestra empresa llega al borde derecho y su flecha
   quedaba bajo el boton. Se le reserva el mismo corredor, solo donde el
   flotante existe. */
@media (min-width:1151px){
  body:has(.wa-fab) .em-cta{ padding-right:128px; }
}


/* Navegacion de respaldo sin JavaScript (2026-08-25). Solo existe en el DOM
   cuando el script esta desactivado, porque vive dentro de <noscript>.
   Por encima de 1150px la nav normal ya lista todos los enlaces sin JS,
   asi que este bloque unicamente aparece por debajo de ese umbral. */
.site-nav-nojs{ display:none; }
@media (max-width:1150px){
  .site-nav-nojs{
    display:flex; flex-wrap:wrap; gap:2px 0;
    padding:0 clamp(12px,4vw,20px) 10px;
    background:var(--navgi-navy); border-top:1px solid rgba(255,255,255,.10);
  }
  .site-nav-nojs a{
    display:flex; align-items:center; min-height:44px; padding:0 12px 0 0;
    flex:1 1 auto; min-width:0; white-space:nowrap;
    font-family:'Archivo',sans-serif; font-weight:700; font-size:12px;
    letter-spacing:.03em; text-transform:uppercase;
    color:#fff; text-decoration:none;
  }
  .site-nav-nojs a:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
}

/* Reflow a 320px (WCAG 1.4.10): el campo trampa vive en left:-9999px y su
   contenido interno ensanchaba el area desplazable del formulario en 17px.
   Se acota sin tocar su funcion anti-bot: sigue en el DOM, sigue enviandose
   y sigue siendo invisible e inalcanzable por teclado. */
.qc-hp{ max-width:0; overflow:hidden; }
/* Barra del catalogo: el contador se salia 3px a 320px. */
@media (max-width:360px){ .pg-toolbar-right{ min-width:0; flex-wrap:wrap; } }

/* Reflow del formulario por debajo de 360px. El widget de Turnstile tiene un
   ancho minimo propio (~300px) que no reduce; a 320px el contenido del marco
   quedaba en 246px y desbordaba 17px. Se recorta el aire lateral del marco
   SOLO en ese tramo: no se toca Turnstile, no se recorta ningun campo y los
   controles conservan su altura minima de 44px. */
@media (max-width:360px){
  .ct-main.exp{ padding-left:4px; padding-right:4px; }
  .exp-body{ padding-left:8px; padding-right:8px; }
  .exp-head-copy{ padding-left:12px; padding-right:12px; }
}

/* ============================================================ */
/* Objetivos tactiles (Lote 4, 2026-08-25)                      */
/* Todo vive bajo pointer:coarse: en escritorio con raton la     */
/* densidad visual no cambia ni un pixel. Donde el diseno exige  */
/* un glifo pequeno se amplia el AREA con ::before, sin tocar    */
/* la apariencia del control.                                    */
/* ============================================================ */
@media (pointer:coarse){
  /* Enlaces del pie: 15px de alto visual. Se les da caja tactil */
  /* propia y se recorta el margen para no alargar de mas la     */
  /* columna: paso de 27px a 46px, no de 27px a 56px.            */
  .f2-col a{ min-height:44px; margin-bottom:2px; }
  .f2-legal a{ display:inline-flex; align-items:center; min-height:44px; }

  /* Logo del header: 243x30. El header mide 77px, asi que la    */
  /* caja de 44px cabe holgada y solo crece en vertical, sin     */
  /* invadir la navegacion (separada 42px en horizontal).        */
  .logo{ position:relative; }
  .logo::before{
    content:""; position:absolute; left:0; right:0;
    top:50%; height:44px; transform:translateY(-50%);
  }

  /* Cierre del menu movil: glifo de 38px, area de 44px. */
  .mobile-nav-close{ position:relative; }
  .mobile-nav-close::before{
    content:""; position:absolute; top:-3px; right:-3px; bottom:-3px; left:-3px;
  }

  /* Salto al contenido: 41px, tres pixeles por debajo. */
  .skip-link{ display:inline-flex; align-items:center; min-height:44px; }

  /* Miga de pan: enlaces de texto en linea. Se convierten en    */
  /* inline-block con relleno vertical para alcanzar 44px sin    */
  /* cambiar el cuerpo tipografico ni romper la linea.           */
  .pd-crumb a{ display:inline-block; padding:15px 7px; }
  .pd-crumb{ margin-bottom:12px; }
}

/* CTA y controles compactos (Lote 4). Se usa min-height + inline-flex,   */
/* NO un ::before superpuesto: al crecer la caja los vecinos se separan,   */
/* mientras que una capa flotante se habria solapado con el enlace de al   */
/* lado (varios pares estaban a solo 12-20px). Sigue todo bajo coarse:     */
/* con raton no cambia ni la densidad ni el interlineado.                  */
/* Excluido a proposito: .vn-intro__skip -- la intro esta aprobada y       */
/* protegida, no se toca ninguno de sus controles.                         */
@media (pointer:coarse){
  .f2-highlight-btn, .hero-doc-link, .sm-tech-open, .cex-button,
  .ce-cta-sec, .ce-cta-main, .qcb-secondary, .rp-cta-main, .rp-cta-sec,
  .atlas-cta-main, .atlas-cta-alt, .pd-ante-guide, .em-editorial-link,
  .em-cta-link, .pje-atlas-cap-link, .qp-cta-link, .pgx-aux-cta,
  .pd-back, .pje-case-cta, .rvw-bottom a{
    display:inline-flex; align-items:center; min-height:44px;
  }
  /* Selectores nativos del catalogo. */
  .pg-toolbar select, .pgx-filters select{ min-height:44px; }
  /* Miga del catalogo, igual que la de ficha. */
  .pg-crumb a, .guide-crumb a, .case-crumb a{ display:inline-block; padding:15px 7px; }
  /* Lista de guias relacionadas: enlaces a 9px unos de otros. Se crece  */
  /* la caja (no una capa) para que la separacion aumente en vez de      */
  /* solaparse.                                                          */
  .guide-links a{ display:flex; align-items:center; min-height:44px; }
  .pje-evidence-links a{ display:inline-flex; align-items:center; min-height:44px; }
  /* Lupa sobre la fotografia: 36x36. Aqui SI se amplia por capa, porque   */
  /* crecer la caja moveria la imagen y el vecino esta a 122px.           */
  .pd-zoom{ position:relative; }
  .pd-zoom::before{ content:""; position:absolute; top:-4px; right:-4px; bottom:-4px; left:-4px; }
}

/* ============================================================ */
/* Reflow del titulo de Soluciones bajo 340px (Lote 6, 2026-08-25) */
/* Causa raiz medida, no supuesta:                                 */
/*  - .sol-head es flex con 266px de ancho de contenido a 320px.   */
/*  - .sol-head-left es un item flex con min-width:auto computado,  */
/*    asi que no puede encoger por debajo de su min-content.        */
/*  - ese min-content lo fija la palabra indivisible PREFABRICADAS: */
/*    317px con el clamp(34px,3.8vw,56px), que a 320px se queda en  */
/*    su minimo de 34px.                                            */
/*  - resultado: la caja mide 338px y 18px escapan del documento.   */
/* min-width:0 devuelve al item su capacidad de encoger. El cuerpo  */
/* baja a 28px SOLO por debajo de 340px porque es el mayor tamano   */
/* que cabe: 26px=243, 28px=261, 30px=280 > 266 disponibles.        */
/* El titulo se mantiene completo, sin cortes ni guiones, y el      */
/* diseno aprobado de 340px en adelante queda intacto.              */
/* ============================================================ */
@media (max-width:339.98px){
  .pg-home #soluciones .sol-head-left{ min-width:0; }
  .pg-home #soluciones .sol-title{ font-size:28px; }
}
