

:root{
  --naranja: #E87722;      
  --naranja-oscuro: #C9631A;

  --naranja-texto: #e9822d;
  --naranja-texto-hover: #9E4E0D;
  --azul: #1A4E8C;         
  --azul-claro: #EAF1F8;
  --azul-oscuro: #1A4E8C;
  --texto: #262626;
  --texto-suave: #5B6570;
  --borde: #DFE5EC;
  
  --fondo-base: #e8ebf3;
  --fondo-alt: #E4EBF3;
  --radio: 10px;
  --sombra: 0 10px 30px rgba(20,40,60,0.08);
  --sombra-fuerte: 0 22px 44px rgba(18,40,66,0.20);

  --alto-header: 85px;
  --alto-feria: 60px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: 'Segoe UI', system-ui, -apple-system, Arial, sans-serif;
  color: var(--texto);
  line-height:1.6;
  
  background-color: var(--fondo-base);
}
h1,h2,h3{ line-height:1.15; margin:0 0 16px; color:#1a1a1a; font-weight:700; }

h1{ font-size: clamp(30px, 3.9vw, 42px); }
h2{ font-size: clamp(28px, 3.5vw, 38px); }
h3{ font-size:20px; }
p{ margin:0 0 16px; color: var(--texto-suave); }
a{ color: var(--azul); }
ul{ padding:0; list-style:none; margin:0; }

.wrap{ max-width:1200px; margin:0 auto; padding:0 24px; }
.section{ padding:96px 0; scroll-margin-top:96px; }
.section-lead{ max-width:640px; font-size:17px; margin-bottom:48px; }

.brochure-link{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px;
  color: var(--azul); text-decoration:none; margin:0 0 20px;
}

#productos .section-lead{ margin-bottom:22px; }
.brochure-link:hover{ color: var(--naranja); }

.btn{
  display:inline-block;
  padding:14px 28px;
  border-radius: 8px;
  font-weight:600;
  font-size:15px;
  text-decoration:none;
  border:2px solid transparent;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
}

.btn-primary{ background: var(--naranja-texto); color:#fff; }
.btn-primary:hover{ background: var(--naranja-texto-hover); transform: translateY(-1px); }
.btn-ghost{ border-color: var(--azul); color: var(--azul); }
.btn-ghost:hover{ background: var(--azul); color:#fff; }
.btn-whatsapp{ background:#1DA851; color:#fff; }
.btn-whatsapp:hover{ background:#178C43; }

.site-header{
  position: sticky; top:0; z-index:50;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--borde);
}

.site-header::before{
  content:""; display:block; height:4px;
  background: linear-gradient(90deg, var(--azul) 0%, var(--azul) 55%, var(--naranja) 100%);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:80px;
}
.logo{
  font-weight:800; font-size:20px; letter-spacing:.02em;
  color: var(--azul); text-decoration:none;
  display:flex; align-items:center;
}
.logo span{ color: var(--naranja); }
.logo-img{ height:50px; width:auto; display:block; }
.main-nav{ display:flex; gap:32px; }
.main-nav a{
  color: var(--texto); text-decoration:none; font-weight:600; font-size:15px;
  position:relative;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px;
  background: var(--naranja); transition: width .2s ease;
}
.main-nav a:hover::after{ width:100%; }

.main-nav a.active{ color: var(--naranja-texto); }
.main-nav a.active::after{ width:100%; }
.nav-cta{ padding:10px 22px; font-size:14px; }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{
  display:block; width:24px; height:2px; background: var(--azul); margin:5px 0; transition:.2s;
}

.hero{
  padding: 64px 0 80px; overflow:hidden;
  background: linear-gradient(180deg, var(--azul-claro) 0%, rgba(239,243,248,0) 92%);
  display:grid; align-content:center;
  
  min-height: calc(100vh  - var(--alto-header) - var(--alto-feria) + 2px);
  min-height: calc(100svh - var(--alto-header) - var(--alto-feria) + 2px);
}
.hero-inner{
  display:flex; align-items:center; justify-content:space-between; gap:48px;
}
.hero-copy{ max-width:520px; }
.eyebrow{
  color: var(--naranja); font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  font-size:13px; margin-bottom:14px;
}
.hero h1{ font-size: clamp(32px, 4.2vw, 46px); }
.hero-lead{ font-size:18px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-top:22px; align-items:center; }

.hero-stats{ display:flex; gap:36px; margin-top:10px; }
.hero-stats strong{ display:block; font-size:26px; color: var(--azul); }
.hero-stats span{ font-size:13px; color: var(--texto-suave); }

.hero-art{ width:min(600px, 48vw); flex-shrink:0; }
.hero-art svg{ width:100%; height:auto; display:block; }

.hero-art img{
  width:100%; height:auto; display:block;
  border-radius:15px; box-shadow: var(--sombra);
}

@media (prefers-reduced-motion: reduce){
  
  .clients-marquee{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .clients-track{ animation: none !important; }
  .clients-track .clients-group[aria-hidden]{ display: none; }
}

.feria-banner{
  background: linear-gradient(90deg, var(--azul) 0%, var(--azul-oscuro) 75%);
  border-bottom: 3px solid var(--naranja);
  padding: 13px 0;
}
.feria-inner{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.feria-badge{
  
  background: var(--naranja); color:#12212C; font-weight:800; font-size:12px;
  letter-spacing:.08em; text-transform:uppercase;
  padding:6px 14px; border-radius:999px; flex-shrink:0;
}
.feria-inner p{ margin:0; color:#dbe8f4; font-size:15px; }
.feria-inner strong{ color:#fff; }

.grid{ display:grid; gap:32px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }

.card{
  background:#faf9f9; border:1px solid var(--borde); border-radius: var(--radio);
  padding:20px; position:relative;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover{ transform: translateY(-4px); box-shadow: var(--sombra); }
.card-media{ margin-bottom:18px; }

.card.tilt-card{
  transition: transform .25s cubic-bezier(.2,.8,.3,1), opacity .6s ease,
              box-shadow .2s ease, border-color .2s ease;
}

.card.tilt-card:hover{
  transform: translateY(-14px);
  box-shadow: var(--sombra-fuerte);
  border-color: var(--naranja);
  z-index:3;
}

.tilt-card .card-media{ transition:none; }

.product-media{
  aspect-ratio: 4/3; border-radius:8px; overflow:hidden;
  background:#fff; border:1px solid var(--borde);
  display:flex; align-items:center; justify-content:center;
}

.product-media img{
  width:100%; height:100%; object-fit:contain; padding:10px;
  transition: padding .3s ease;
}
.catalog-block .card:hover .product-media img{ padding:3px; }

.about-illustration{
  width:100%; height:auto; display:block; max-width:480px; margin:0 auto;
  filter: drop-shadow(0 12px 24px rgba(20,40,60,0.12));
}

.industry-grid > .reveal:nth-child(2),
.compromiso-grid > .reveal:nth-child(2){ transition-delay:.1s; }
.industry-grid > .reveal:nth-child(3),
.compromiso-grid > .reveal:nth-child(3){ transition-delay:.2s; }
@media (prefers-reduced-motion: reduce){
  .industry-grid > .reveal,
  .compromiso-grid > .reveal{ transition-delay:0s !important; }
}

.industry-photo{ padding:0; overflow:hidden; display:flex; flex-direction:column; }
.industry-media{
  aspect-ratio: 5/4; overflow:hidden; position:relative;
  background: linear-gradient(165deg, #F4F8FD 0%, var(--azul-claro) 100%);
  border-bottom:3px solid var(--naranja);
}
.industry-media img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition: transform .5s cubic-bezier(.2,.8,.3,1);
}
.industry-photo:hover .industry-media img{ transform: scale(1.06); }
.industry-body{ padding:22px 24px 24px; }
.industry-body h3{ margin-bottom:10px; }
.industry-body h3::after{
  content:""; display:block; width:36px; height:3px; border-radius:2px;
  background: var(--azul); margin-top:9px;
  transition: width .35s cubic-bezier(.2,.8,.3,1), background-color .35s ease;
}
.industry-photo:hover .industry-body h3::after{ width:62px; background: var(--naranja); }
.industry-body p{ margin-bottom:0; }

.industry-tags{ display:flex; flex-wrap:wrap; gap:6px; margin:0; }
.industry-tags li{
  font-size:12.5px; font-weight:600; line-height:1;
  padding:6px 10px; border-radius:999px;
  background: var(--azul-claro); color: var(--azul);
  border:1px solid #D3E1F0;
}
@media (prefers-reduced-motion: reduce){
  .industry-media img, .industry-body h3::after{ transition:none !important; }
}

.servicio-hero{
  display:grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap:44px; margin-top:6px;
  
  align-items:center;
}
.servicio-hero-texto h1{
  font-size: clamp(28px, 3vw, 38px); color: var(--azul); margin-bottom:16px;
}
.servicio-hero-texto p{ margin-bottom:14px; }

.servicio-hero-foto{ margin:0; }

.servicio-hero-marco{
  height:360px; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(165deg, #FFFFFF 0%, var(--azul-claro) 100%);
  border:1px solid var(--borde); border-bottom:3px solid var(--naranja);
  border-radius: var(--radio); overflow:hidden;
  box-shadow: var(--sombra);
}

.servicio-hero-marco img{
  width:100%; height:100%; object-fit:contain; display:block; padding:18px;
}

.servicio-hero-marco.marco-foto{ background:none; }
.servicio-hero-marco.marco-foto img{ object-fit:cover; padding:0; }
.servicio-hero-foto figcaption{
  margin-top:12px; font-size:13.5px; line-height:1.55; color: var(--texto-suave);
  padding-left:12px; border-left:3px solid var(--naranja);
}

.service-sub{
  margin:0 0 14px !important;
  display:flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:.4px;
  color: var(--azul); text-transform:uppercase;
}
.service-sub::before{
  content:""; width:14px; height:3px; border-radius:2px;
  background: var(--naranja); flex-shrink:0;
}

.servicio-cifras{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap:30px 44px; margin:52px 0 0; padding-top:30px;
  border-top:3px solid var(--azul);
}
.servicio-cifras > div{ min-width:0; }
.servicio-cifras dt{
  font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color: var(--texto-suave); margin-bottom:9px;
}
.servicio-cifras dd{
  margin:0; font-size: clamp(23px, 2.3vw, 29px); font-weight:800;
  color: var(--azul); line-height:1.15;
}
.servicio-cifras dd span{
  display:block; margin-top:7px;
  font-size:14px; font-weight:500; color: var(--texto-suave); line-height:1.5;
}

.servicio-aplican{ margin-top:52px; }
.servicio-lista{
  
  columns:2; column-gap:44px;
  list-style:none; margin:0; padding:0;
}
.servicio-lista li{
  break-inside:avoid; position:relative;
  padding-left:30px; margin-bottom:15px; line-height:1.6;
}

.servicio-lista li::before{
  content:""; position:absolute; left:4px; top:5px;
  width:7px; height:12px;
  border:solid var(--naranja); border-width:0 2.5px 2.5px 0;
  transform: rotate(45deg);
}

@media (max-width:900px){
  .servicio-hero{ grid-template-columns: 1fr; gap:28px; }
  
  .servicio-hero-foto{ order:-1; }
  .servicio-hero-marco{ height:250px; }
  .servicio-cifras{ margin-top:40px; gap:26px 30px; }
  .servicio-aplican{ margin-top:40px; }
}
@media (max-width:620px){
  .servicio-lista{ columns:1; }
}

.compromiso-icon{
  width:96px; height:96px; border-radius:22px;
  background: linear-gradient(160deg, #FFFFFF 0%, #EEF3FA 100%);
  border:1px solid var(--borde);
  box-shadow: 0 10px 24px rgba(20,40,60,0.10);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:22px;
  transition: transform .45s cubic-bezier(.2,.8,.3,1), box-shadow .45s ease;
  
  will-change: transform;
}

.compromiso-card:hover .compromiso-icon{
  transform: translateY(-5px) scale(1.06);
  box-shadow: 0 18px 34px rgba(20,40,60,0.18);
}

.compromiso-icon svg{ width:76px; height:76px; overflow:visible; will-change: transform; }

.compromiso-icon svg *{ transform-box: view-box; }

.cmp-icon-clientes{ position: relative; }

.cmp-apreton{
  width:152px; height:152px;
  transform: scale(.5);
  margin:-38px;
  object-fit:contain; display:block;
}

.compromiso-icon .cmp-chispas-capa{
  position:absolute; inset:0; width:100%; height:100%;
  overflow:visible; pointer-events:none;
}
.cmp-chispas{

  opacity:0; transform: scale(.72); transform-origin: 24px 7px;
  transition: opacity .3s ease, transform .4s cubic-bezier(.2,.8,.3,1);
  will-change: transform, opacity;
}
.compromiso-card:hover .cmp-chispas{ opacity:1; transform: scale(1); }

.cmp-persona{ transition: transform .4s cubic-bezier(.2,.8,.3,1); will-change: transform; }
.compromiso-card:hover .cmp-persona-2{ transform: translateY(-4px); }
.compromiso-card:hover .cmp-persona-1{ transform: translateY(-3px); transition-delay:.08s; }
.compromiso-card:hover .cmp-persona-3{ transform: translateY(-3px); transition-delay:.16s; }

.cmp-mas{
  opacity:0; transform: scale(.68); transform-origin: 40.5px 10.5px;
  transition: opacity .3s ease, transform .45s cubic-bezier(.34,1.56,.64,1);
  will-change: transform, opacity;
}
.compromiso-card:hover .cmp-mas{ opacity:1; transform: scale(1); transition-delay:.22s; }

.cmp-franja{
  animation: none 3.2s linear infinite;
  animation-play-state: paused;
}
.cmp-franja-amarilla{ animation-name: cmp-onda-amarilla; }
.cmp-franja-azul{     animation-name: cmp-onda-azul; }
.cmp-franja-roja{     animation-name: cmp-onda-roja; }

.compromiso-card:hover .cmp-franja,
.compromiso-card:focus-within .cmp-franja{
  animation-play-state: running;
}

.cmp-bandera{
  transform-origin: 9px 18px;   
  animation: cmp-flamear 5.2s ease-in-out infinite;
  animation-play-state: paused;
  
}
.compromiso-card:hover .cmp-bandera,
.compromiso-card:focus-within .cmp-bandera{
  animation-play-state: running;
}

@keyframes cmp-onda-amarilla{
  0%,100%{ d: path("M9,6C12.04,6.25 15.08,6.12 18.12,5.58C21.17,5.03 24.21,4.43 27.25,5.02C30.29,5.6 33.33,7.37 36.38,8.15C39.42,8.94 42.46,8.16 45.5,6.25L45.5,18.65C42.46,20.56 39.42,21.34 36.38,20.55C33.33,19.77 30.29,18 27.25,17.42C24.21,16.83 21.17,17.43 18.12,17.98C15.08,18.52 12.04,18.65 9,18.4Z"); }
  25%{ d: path("M9,6C12.04,6.07 15.08,6.7 18.12,6.65C21.17,6.6 24.21,5.62 27.25,4.8C30.29,3.99 33.33,3.88 36.38,5.13C39.42,6.38 42.46,8.67 45.5,9.09L45.5,21.49C42.46,21.07 39.42,18.78 36.38,17.53C33.33,16.28 30.29,16.39 27.25,17.2C24.21,18.02 21.17,19 18.12,19.05C15.08,19.1 12.04,18.47 9,18.4Z"); }
  50%{ d: path("M9,6C12.04,5.75 15.08,5.88 18.12,6.42C21.17,6.97 24.21,7.57 27.25,6.98C30.29,6.4 33.33,4.63 36.38,3.85C39.42,3.06 42.46,3.84 45.5,5.75L45.5,18.15C42.46,16.24 39.42,15.46 36.38,16.25C33.33,17.03 30.29,18.8 27.25,19.38C24.21,19.97 21.17,19.37 18.12,18.82C15.08,18.28 12.04,18.15 9,18.4Z"); }
  75%{ d: path("M9,6C12.04,5.93 15.08,5.3 18.12,5.35C21.17,5.4 24.21,6.38 27.25,7.2C30.29,8.01 33.33,8.12 36.38,6.87C39.42,5.62 42.46,3.33 45.5,2.91L45.5,15.31C42.46,15.73 39.42,18.02 36.38,19.27C33.33,20.52 30.29,20.41 27.25,19.6C24.21,18.78 21.17,17.8 18.12,17.75C15.08,17.7 12.04,18.33 9,18.4Z"); }
}
@keyframes cmp-onda-azul{
  0%,100%{ d: path("M9,18.15C12.04,18.4 15.08,18.27 18.12,17.73C21.17,17.18 24.21,16.58 27.25,17.17C30.29,17.75 33.33,19.52 36.38,20.3C39.42,21.09 42.46,20.31 45.5,18.4L45.5,24.73C42.46,26.64 39.42,27.41 36.38,26.63C33.33,25.85 30.29,24.07 27.25,23.49C24.21,22.91 21.17,23.5 18.12,24.05C15.08,24.6 12.04,24.72 9,24.48Z"); }
  25%{ d: path("M9,18.15C12.04,18.22 15.08,18.85 18.12,18.8C21.17,18.75 24.21,17.77 27.25,16.95C30.29,16.14 33.33,16.03 36.38,17.28C39.42,18.53 42.46,20.82 45.5,21.24L45.5,27.56C42.46,27.15 39.42,24.85 36.38,23.6C33.33,22.35 30.29,22.46 27.25,23.28C24.21,24.09 21.17,25.07 18.12,25.12C15.08,25.17 12.04,24.55 9,24.48Z"); }
  50%{ d: path("M9,18.15C12.04,17.9 15.08,18.03 18.12,18.57C21.17,19.12 24.21,19.72 27.25,19.13C30.29,18.55 33.33,16.78 36.38,16C39.42,15.21 42.46,15.99 45.5,17.9L45.5,24.22C42.46,22.31 39.42,21.54 36.38,22.32C33.33,23.1 30.29,24.88 27.25,25.46C24.21,26.04 21.17,25.45 18.12,24.9C15.08,24.35 12.04,24.23 9,24.48Z"); }
  75%{ d: path("M9,18.15C12.04,18.08 15.08,17.45 18.12,17.5C21.17,17.55 24.21,18.53 27.25,19.35C30.29,20.16 33.33,20.27 36.38,19.02C39.42,17.77 42.46,15.48 45.5,15.06L45.5,21.39C42.46,21.8 39.42,24.1 36.38,25.35C33.33,26.6 30.29,26.49 27.25,25.67C24.21,24.86 21.17,23.88 18.12,23.83C15.08,23.78 12.04,24.4 9,24.48Z"); }
}
@keyframes cmp-onda-roja{
  0%,100%{ d: path("M9,24.22C12.04,24.47 15.08,24.35 18.12,23.8C21.17,23.25 24.21,22.66 27.25,23.24C30.29,23.82 33.33,25.6 36.38,26.38C39.42,27.16 42.46,26.39 45.5,24.48L45.5,30.55C42.46,32.46 39.42,33.24 36.38,32.45C33.33,31.67 30.29,29.9 27.25,29.32C24.21,28.73 21.17,29.33 18.12,29.88C15.08,30.42 12.04,30.55 9,30.3Z"); }
  25%{ d: path("M9,24.22C12.04,24.3 15.08,24.92 18.12,24.87C21.17,24.82 24.21,23.84 27.25,23.03C30.29,22.21 33.33,22.1 36.38,23.35C39.42,24.6 42.46,26.9 45.5,27.31L45.5,33.39C42.46,32.97 39.42,30.68 36.38,29.43C33.33,28.18 30.29,28.29 27.25,29.1C24.21,29.92 21.17,30.9 18.12,30.95C15.08,31 12.04,30.37 9,30.3Z"); }
  50%{ d: path("M9,24.22C12.04,23.98 15.08,24.1 18.12,24.65C21.17,25.2 24.21,25.79 27.25,25.21C30.29,24.63 33.33,22.85 36.38,22.07C39.42,21.29 42.46,22.06 45.5,23.97L45.5,30.05C42.46,28.14 39.42,27.36 36.38,28.15C33.33,28.93 30.29,30.7 27.25,31.28C24.21,31.87 21.17,31.27 18.12,30.72C15.08,30.18 12.04,30.05 9,30.3Z"); }
  75%{ d: path("M9,24.22C12.04,24.15 15.08,23.53 18.12,23.58C21.17,23.63 24.21,24.61 27.25,25.42C30.29,26.24 33.33,26.35 36.38,25.1C39.42,23.85 42.46,21.55 45.5,21.14L45.5,27.21C42.46,27.63 39.42,29.92 36.38,31.17C33.33,32.42 30.29,32.31 27.25,31.5C24.21,30.68 21.17,29.7 18.12,29.65C15.08,29.6 12.04,30.23 9,30.3Z"); }
}

@keyframes cmp-flamear{
  0%,100%{ transform: rotate(0deg); }
  30%{ transform: rotate(-1.4deg); }
  60%{ transform: rotate(1.1deg); }
}

.compromiso-card.is-visible .compromiso-icon{
  animation: cmp-entrada .6s cubic-bezier(.2,.8,.3,1) backwards;
}

@keyframes cmp-entrada{
  from{ transform: scale(.78) rotate(-8deg); opacity:0; }
  to{ transform:none; opacity:1; }
}

@media (prefers-reduced-motion: reduce){
  .compromiso-icon, .compromiso-icon svg, .compromiso-icon svg *{
    animation:none !important; transition:none !important;
  }
  
  .cmp-chispas, .cmp-mas{ opacity:1 !important; transform:none !important; }
}

.clients-strip{
  padding:56px 0; overflow:hidden;
  background: linear-gradient(160deg, var(--azul) 0%, var(--azul-oscuro) 100%);
  border-bottom: 4px solid var(--naranja);
}
.clients-label{ font-weight:700; color:#fff; margin-bottom:28px; text-align:center; font-size:17px; }
.clients-marquee{
  overflow:hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.clients-track{
  display:flex; width:max-content;
  animation: clients-scroll 130s linear infinite;
}
.clients-group{ display:flex; gap:20px; padding-right:20px; flex-shrink:0; }
.client-tile{
  background:#fff; border-radius:12px; padding:14px 22px;
  display:flex; align-items:center; justify-content:center;
  height:100px; width:196px; flex-shrink:0;
  box-shadow: 0 6px 18px rgba(10,30,50,0.22);
}

.client-tile img{
  width:100%; height:100%; object-fit:contain; display:block;
}
@keyframes clients-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

.nosotros-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap:56px; align-items:center;
  margin-bottom:64px;
}
.stats{ display:flex; gap:32px; margin-top:24px; flex-wrap:wrap; }
.stats strong{ display:block; font-size:32px; color: var(--azul); }
.stats span{ font-size:14px; color: var(--texto-suave); max-width:160px; display:block; }

.compromiso-title{ text-align:center; margin-bottom:32px; font-size:22px; }

.mv-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap:32px; margin-top:56px;
}

.mv-card{
  
  background: linear-gradient(135deg, #10305C 0%, var(--azul) 55%, #17457C 100%);
  border:none; border-radius: var(--radio);
  padding:40px;
}

.mv-icon{
  position:relative;
  width:78px; height:78px; border-radius:50%;
  background: linear-gradient(145deg, #F08B3C 0%, var(--naranja) 55%, var(--naranja-oscuro) 100%);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:26px;
  box-shadow: 0 8px 22px rgba(232,119,34,0.38);
  transition: transform .45s cubic-bezier(.2,.8,.3,1), box-shadow .45s ease;
}
.mv-card:hover .mv-icon{
  transform: translateY(-4px) scale(1.06);
  box-shadow: 0 16px 34px rgba(232,119,34,0.48);
}

.mv-orbita{
  position:absolute; inset:-9px;
  border-radius:50%;
  border:2px dashed rgba(255,255,255,0.45);
  opacity:0;
  transition: opacity .4s ease;
}
.mv-card:hover .mv-orbita{
  opacity:1;
  animation: mv-girar 9s linear infinite;
}
@keyframes mv-girar{ to{ transform: rotate(360deg); } }

.mv-icon svg{ width:44px; height:44px; overflow:visible; }
.mv-icon svg *{ transform-box: view-box; }

.mv-montana{ transform-origin: 24px 40px; transition: transform .5s cubic-bezier(.2,.8,.3,1); }
.mv-nieve{ transform-origin: 19px 19px; transition: transform .45s cubic-bezier(.2,.8,.3,1); }
.mv-bandera{ transform-origin: 19px 14px; transition: transform .5s cubic-bezier(.2,.8,.3,1); }
.mv-card:hover .mv-montana{ transform: scaleY(1.05); }
.mv-card:hover .mv-nieve{ transform: scale(1.12); }
.mv-card:hover .mv-bandera{ transform: translateY(-2.5px); }

.mv-iris{ transform-origin: 24px 24px; transition: transform .45s cubic-bezier(.2,.8,.3,1); }
.mv-pupila{ transform-origin: 24px 24px; transition: transform .45s cubic-bezier(.2,.8,.3,1); }
.mv-parpado{ transform-origin: 24px 24px; transition: transform .45s ease; }
.mv-destellos{
  opacity:0; transform-origin: 24px 24px;
  transition: opacity .4s ease, transform .5s cubic-bezier(.2,.8,.3,1);
  transform: scale(.8);
}
.mv-card:hover .mv-iris{ transform: scale(1.18); }
.mv-card:hover .mv-pupila{ transform: scale(.7); }
.mv-card:hover .mv-parpado{ transform: scaleY(1.06); }
.mv-card:hover .mv-destellos{ opacity:.95; transform: scale(1); }

.mv-card.is-visible .mv-icon{ animation: mv-entrada .7s cubic-bezier(.2,.8,.3,1) backwards; }
.mv-card.is-visible .mv-icon-mision .mv-bandera{ animation: mv-plantar .8s cubic-bezier(.2,.8,.3,1) .25s backwards; }
.mv-card.is-visible .mv-icon-vision .mv-iris{ animation: mv-latido 1s ease .3s backwards; }
@keyframes mv-entrada{
  from{ transform: scale(.7) rotate(-12deg); opacity:0; }
  to{ transform:none; opacity:1; }
}

@keyframes mv-plantar{
  from{ transform: translateY(-13px); opacity:0; }
  to{ transform:none; opacity:1; }
}
@keyframes mv-latido{
  0%,100%{ transform: scale(1); }
  45%{ transform: scale(1.22); }
}

@media (prefers-reduced-motion: reduce){
  .mv-icon, .mv-orbita, .mv-icon svg *{ animation:none !important; transition:none !important; }
}
.mv-card h3{ color:#fff; }
.mv-card h3::after{
  content:""; display:block; width:48px; height:4px;
  background: var(--naranja); border-radius:2px; margin-top:10px;
}
.mv-card p{ color:#dbe8f4; margin-bottom:0; }

.cat-filtro{
  position: sticky; top: var(--alto-header); z-index:40;
  display:flex; flex-wrap:wrap; gap:10px;
  
  margin:6px 0 0;
  padding:14px max(24px, calc(50% - 576px));
  background: var(--fondo-base);
  border-bottom:1px solid var(--borde);
  
  box-shadow: 0 8px 16px -14px rgba(18,40,66,0.55);
}
.cat-chip{
  font: inherit; font-size:14px; font-weight:600; line-height:1;
  padding:10px 16px; border-radius:999px; cursor:pointer;
  color: var(--azul); background:#fff;
  border:1px solid var(--borde);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.cat-chip:hover{ border-color: var(--naranja); color: var(--naranja); }

.cat-chip.is-active{
  background: var(--azul); color:#fff; border-color: var(--azul);
}
.cat-chip:focus-visible{ outline:2px solid var(--naranja); outline-offset:2px; }

.catalog-block.cat-oculta{ display:none !important; }

@media (max-width:760px){
  
  .cat-filtro{
    flex-wrap: nowrap; overflow-x:auto; scrollbar-width:none;
    -webkit-overflow-scrolling: touch;
    -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent 100%);
    mask-image: linear-gradient(90deg, #000 88%, transparent 100%);
  }
  .cat-filtro::-webkit-scrollbar{ display:none; }
  .cat-chip{ flex-shrink:0; }
  
  .cat-chip:last-child{ margin-right:18px; }
}
@media (prefers-reduced-motion: reduce){
  .cat-chip{ transition:none !important; }
}

.catalog-block{ margin-top:64px; scroll-margin-top:96px; }

.catalog-block.cat-primera{ margin-top:28px; }
.catalog-title{
  font-size:22px; color: var(--azul); margin-bottom:28px;
  padding-left:14px; border-left:4px solid var(--naranja);
  text-transform:uppercase; letter-spacing:.04em;
}

.card-video{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:700; color: var(--naranja);
  text-decoration:none; margin-top:2px;
}
.card-video:hover{ color: var(--naranja-oscuro); text-decoration:underline; }

.catalog-block .card{ cursor:pointer; }
.catalog-block .card p{ margin-bottom:10px; }
.catalog-block .card::after{
  content:"Ver ficha →";
  display:inline-block;
  font-size:13px; font-weight:700; color: var(--naranja);
  transition: transform .2s ease;
}
.catalog-block .card:hover::after{ transform: translateX(5px); }

.news-date{ font-size:14px; font-weight:600; color: var(--texto-suave); margin-bottom:14px; }

.news-tag{
  display:inline-block; margin-bottom:14px; position:relative;
  background: var(--naranja); color:#12212C;   
  font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px;
}
.news-tag-catalogo{ background: var(--azul); color:#fff; }
.news-card{ display:flex; flex-direction:column; align-items:flex-start; }

.feria-banner-link{
  display:block; border-radius: var(--radio); overflow:hidden;
  margin-bottom:26px; text-decoration:none;
  box-shadow: var(--sombra);
  transition: transform .35s cubic-bezier(.2,.8,.3,1), box-shadow .35s ease;
}
.feria-banner-link:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(20,40,60,0.20);
}
.feria-banner-link img{ width:100%; height:auto; display:block; }

.feria-desc{
  max-width:900px; margin:0 auto 26px; text-align:center;
  font-size:16px; line-height:1.75;
}
.feria-desc strong{ color: var(--texto); }
.feria-actions{ text-align:center; margin-bottom:44px; }

@media (prefers-reduced-motion: reduce){
  .feria-banner-link{ transition:none !important; }
}

.pm-thumb{
  width:58px; height:58px; object-fit:contain; background:#fff;
  border:2px solid var(--borde); border-radius:8px; padding:3px;
  cursor:pointer; transition: border-color .15s ease;
}
.pm-thumb:hover{ border-color: var(--azul); }
.pm-thumb.active{ border-color: var(--naranja); }
.pm-specs-title{
  font-size:15px; color: var(--azul); margin:18px 0 10px;
  text-transform:uppercase; letter-spacing:.04em;
}
.pm-specs li{
  font-size:14px; color: var(--texto); padding:6px 0 6px 22px;
  border-bottom:1px solid var(--borde); position:relative;
}
.pm-specs li::before{
  content:""; position:absolute; left:4px; top:13px;
  width:8px; height:8px; background: var(--naranja); border-radius:50%;
}

.catalog-block .card h3 a{ color: inherit; text-decoration: none; }
.catalog-block .card h3 a:hover{ color: inherit; text-decoration: none; }

.sistemas-bloque{
  margin-top:64px;
  background:#fff; border:1px solid var(--borde);
  border-radius: var(--radio); overflow:hidden;
  box-shadow: var(--sombra);
}

.sistemas-cabecera{
  background: linear-gradient(135deg, #10305C 0%, var(--azul) 55%, #17457C 100%);
  color:#fff; padding:34px 32px 32px;
}
.sistemas-eyebrow{
  margin:0 0 10px; font-size:12px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  
  color: rgba(255,255,255,.78);
}
.sistemas-cabecera h2{
  font-size: clamp(24px, 2.7vw, 34px); line-height:1.18;
  color:#fff; margin:0;
}

.sistemas-cabecera h2::after{
  content:""; display:block; width:66px; height:4px; border-radius:2px;
  background: var(--naranja); margin-top:16px;
}
.sistemas-cabecera p{
  margin:16px 0 0; font-size:16px; line-height:1.6;
  color: rgba(255,255,255,.88); max-width:68ch;
}

@media (max-width:620px){
  .sistemas-cabecera br{ display:none; }
}

.sistemas-info{ padding:24px 32px 28px; }

@media (max-width:900px){
  .sistemas-info{ padding:22px 20px 24px; }
}

.diagrama-planta{
  margin:0;
  
  min-width:0;
}
.diagrama-marco{
  min-width:0;
  
  overflow-x:auto;
  
  background:#fff;
}
.diagrama-lienzo{
  position:relative;
  
  min-width:900px;
  
  container-type: inline-size;
}
.diagrama-lienzo img{ width:100%; height:auto; display:block; }

.diagrama-rotulo{
  position:absolute; transform: translateY(-50%);
  display:flex; align-items:center; justify-content:center;
  box-sizing:border-box; text-align:center;
  background:#fff; border:1px solid #1B2A3A; color:#101E2E;
  font-size:1.0cqw; line-height:1.25; font-weight:700;
  text-transform:uppercase; letter-spacing:.01em;
  
  padding:0.25cqw 0.5cqw;
}

.diagrama-planta{ min-width:0; }

.dg-1{ left:56.83%; top:6.78%; min-width:13.50%; min-height:1.79cqw; }
.dg-2{ left:58.62%; top:18.26%; min-width:9.43%; min-height:1.71cqw; }
.dg-3{ left:58.21%; top:30.39%; min-width:6.67%; min-height:1.71cqw; }
.dg-4{ left:66.67%; top:67.90%; min-width:8.78%; min-height:2.85cqw; }
.dg-5{ left:42.60%; top:83.81%; min-width:9.19%; min-height:2.76cqw; }
.dg-6{ left:41.46%; top:89.66%; min-width:10.73%; min-height:1.79cqw; }
.dg-7{ left:40.33%; top:93.37%; min-width:8.62%; min-height:1.79cqw; }

.process-grid{ margin-top:16px; }
.process-step{ text-align:left; }
.process-num{
  display:block; font-size:36px; font-weight:800; color: var(--azul-claro);
  -webkit-text-stroke: 1.5px var(--azul); text-stroke: 1.5px var(--azul);
  margin-bottom:12px;
}

.section-contact{ background: var(--azul-oscuro); color:#fff; }
.section-contact h1, .section-contact h2{ color:#fff; }
.section-contact p{ color:#cfe0ee; }
.contacto-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:56px; }
.contact-info{ margin: 24px 0; }
.contact-info li{ margin-bottom:10px; }
.contact-info a{ color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.35); }
.contact-info a:hover{ border-bottom-color:#fff; }
.contact-form{
  background:#fff; padding:32px; border-radius: var(--radio);
  display:flex; flex-direction:column; gap:16px;
}
.contact-form label{
  display:flex; flex-direction:column; gap:6px; font-size:14px; font-weight:600; color: var(--texto);
}
.contact-form input, .contact-form textarea, .contact-form select{
  font: inherit; padding:12px 14px; border:1px solid var(--borde); border-radius:6px;
  resize: vertical; background:#fff;
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus{
  outline:none; border-color: var(--naranja);
}
.contact-form button[disabled]{ opacity:.65; cursor:progress; }

.campo-error{
  font-size:13px; font-weight:600; line-height:1.45;
  color:#8E2C2C;
  display:flex; align-items:flex-start; gap:6px;
}
.campo-error:empty{ display:none; }

.campo-error::before{
  content:"!"; flex-shrink:0;
  width:15px; height:15px; margin-top:1px; border-radius:50%;
  background:#B23B3B; color:#fff;
  font-size:11px; font-weight:700; line-height:15px; text-align:center;
}

.contact-form [aria-invalid="true"]{
  border-color:#B23B3B; background:#FDF7F7;
}
.contact-form [aria-invalid="true"]:focus{ border-color:#B23B3B; }

.campo-trampa{
  position:absolute; left:-9999px; width:1px; height:1px;
  overflow:hidden; opacity:0;
}

.form-estado{
  margin:0; font-size:14px; line-height:1.55; min-height:1px;
}
.form-estado:empty{ display:none; }
.form-estado.es-cargando{ color: var(--texto-suave); }
.form-estado.es-ok{
  color:#1B6B3A; background:#E7F5EC; border-left:4px solid #1B6B3A;
  padding:12px 14px; border-radius:4px;
}
.form-estado.es-error{
  color:#8E2C2C; background:#FBEAEA; border-left:4px solid #B23B3B;
  padding:12px 14px; border-radius:4px;
}

.map-embed{
  margin-top:32px; border-radius: var(--radio); overflow:hidden; border:1px solid rgba(255,255,255,0.15);
  aspect-ratio: 16/9;
}
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }

.site-footer{
  background: linear-gradient(180deg, var(--naranja) 0%, #D96A15 100%);
  color:#FFF3E8; padding:64px 0 0;
}

.footer-cols{ display:grid; grid-template-columns: 1.3fr 1fr 1fr; gap:40px; padding-bottom:48px; }
.footer-col .footer-h{ color:#fff; font-size:16px; margin-bottom:18px; line-height:1.3; }
.footer-col ul{ display:flex; flex-direction:column; gap:10px; }
.footer-col a{ color:#FFF3E8; text-decoration:none; font-size:14px; }
.footer-col a:hover{ color: var(--azul-oscuro); }
.footer-col li{ font-size:14px; }
.footer-col p{ color:#FFEBD9; font-size:14px; }
.site-footer .logo{ color:#fff; display:inline-block; margin-bottom:16px; }
.footer-logo-img{ height:92px; width:auto; max-width:100%; display:block; margin-bottom:22px; }
.social-icons{ display:flex; gap:14px; margin-top:16px; }
.social-icons a{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,0.2); color:#fff;
  transition: background .2s ease, color .2s ease;
}
.social-icons a:hover{ background: var(--azul-oscuro); color:#fff; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.3); padding:20px 24px; text-align:center;
}
.footer-bottom p{ margin:0; color:#FFEBD9; font-size:13px; }

.whatsapp-float{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:56px; height:56px; border-radius:50%; background:#1DA851;
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  transition: transform .2s ease;
}
.whatsapp-float svg{ display:block; }
.whatsapp-float:hover{ transform: scale(1.06); }

.pagina-tab > .wrap:first-child{ padding-top:28px; }
.pagina-tab > .wrap:first-child .miga{ margin-bottom:0; }
.pagina-tab > .section{ padding-top:44px; }

.reveal{ opacity:0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

.pagina-interna-main{ padding:36px 0 72px; }

.miga{ font-size:14px; color: var(--texto-suave); margin-bottom:26px; }
.miga a{ color: var(--azul); }
.miga a:hover{ color: var(--naranja-texto); }
.miga span[aria-hidden]{ margin:0 6px; opacity:.5; }
.miga [aria-current]{ color: var(--texto); }

.news-card h2{ font-size:19px; color: var(--azul); margin-bottom:6px; }

.prod-navcat{
  display:flex; align-items:stretch; gap:12px;
  margin:6px 0 26px;
}
.prod-navcat-lado{
  display:flex; align-items:center; gap:12px;
  flex:1 1 0; min-width:0; padding:12px 16px;
  background:#fff; border:1px solid var(--borde); border-radius: var(--radio);
  color: var(--azul); text-decoration:none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.prod-navcat-sig{ justify-content:flex-end; text-align:right; }
.prod-navcat-lado:hover{ border-color: var(--naranja); box-shadow: var(--sombra); }
.prod-navcat-lado:focus-visible{ outline:3px solid var(--naranja); outline-offset:2px; }
.prod-navcat-flecha{
  flex-shrink:0; width:34px; height:34px; border-radius:50%;
  background: var(--azul-claro); color: var(--azul);
  display:flex; align-items:center; justify-content:center;
  transition: background-color .2s ease, transform .2s ease;
}
.prod-navcat-lado:hover .prod-navcat-flecha{ background: var(--naranja); color:#fff; }
.prod-navcat-lado:hover .prod-navcat-flecha:first-child{ transform: translateX(-3px); }
.prod-navcat-lado:hover .prod-navcat-flecha:last-child{ transform: translateX(3px); }
.prod-navcat-txt{
  display:flex; flex-direction:column; min-width:0;
  font-size:15px; font-weight:600; line-height:1.3;
  
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.prod-navcat-txt small{
  font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color: var(--texto-suave); margin-bottom:2px;
}
.prod-navcat-centro{
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  flex-shrink:0; padding:0 18px; text-align:center;
  font-size:13px; color: var(--texto-suave);
}
.prod-navcat-centro strong{
  display:block; font-size:13px; color: var(--azul);
  text-transform:uppercase; letter-spacing:.06em;
}
@media (max-width:760px){
  
  .prod-navcat-txt{ display:none; }
  .prod-navcat-lado{ flex:0 0 auto; padding:10px 14px; }
  .prod-navcat-centro{ flex:1 1 auto; }
}
@media (prefers-reduced-motion: reduce){
  .prod-navcat-lado, .prod-navcat-flecha{ transition:none !important; }
  .prod-navcat-lado:hover .prod-navcat-flecha{ transform:none !important; }
}

.prod-cabecera{
  display:grid; grid-template-columns: 1fr 1.05fr; gap:40px; align-items:stretch;
}
.prod-galeria{ display:flex; flex-direction:column; }

.prod-foto-marco{
  position:relative;
  background:#fff; border:1px solid var(--borde); border-radius:12px;
  box-shadow: var(--sombra);
  flex:1; min-height:340px; max-height:560px;
}

.prod-foto-marco img{
  position:absolute; inset:14px;
  
  width: calc(100% - 28px); height: calc(100% - 28px);
  object-fit:contain; display:block;
}
.prod-miniaturas{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.prod-miniaturas .pm-thumb{ width:64px; height:64px; }

.prod-info h1{ font-size:34px; line-height:1.15; color: var(--azul); margin-bottom:18px; }
.prod-desc p{ margin-bottom:14px; }
.prod-acciones{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.prod-nota{
  margin-top:18px; font-size:14px; color: var(--texto-suave);
  border-left:3px solid var(--naranja); padding-left:12px;
}

.prod-video{ margin-top:56px; }
.prod-video h2, .prod-relacionados h2{
  font-size:24px; color: var(--azul); margin-bottom:18px;
}

.prod-video-marco{
  aspect-ratio:16/9; max-width:820px; border-radius:12px; overflow:hidden;
  border:1px solid var(--borde); background:#000;
}
.prod-video-marco iframe{ width:100%; height:100%; border:0; display:block; }

.prod-relacionados{ margin-top:60px; }
.prod-relacionados-lead{ margin-top:-8px; margin-bottom:22px; }
.prod-relacionados-todos{ margin-top:20px; font-weight:600; }

a.prod-relacionado{ color: inherit; display:block; text-decoration:none; }
a.prod-relacionado h3{ font-size:17px; }
a.prod-relacionado:hover{ border-color: var(--naranja); box-shadow: var(--sombra-fuerte); }
a.prod-relacionado:hover h3{ color: var(--naranja-texto); }
a.prod-relacionado:hover .product-media img{ padding:3px; }

.servicio-paneles{ display:flex; flex-direction:column; gap:26px; margin-top:14px; }

a.servicio-panel{
  display:grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
  align-items:stretch; min-height:380px;
  border-radius: var(--radio); overflow:hidden;
  color: inherit; text-decoration:none;
  box-shadow: var(--sombra);
  transition: box-shadow .25s ease, transform .25s ease;
}
a.servicio-panel:hover{ box-shadow: var(--sombra-fuerte); transform: translateY(-4px); }
a.servicio-panel:focus-visible{ outline:3px solid var(--naranja); outline-offset:3px; }

.servicio-panel-texto{
  position:relative; overflow:hidden;
  background: linear-gradient(135deg, #10305C 0%, var(--azul) 55%, #17457C 100%);
  color:#fff;
  padding:46px 48px;
  display:flex; flex-direction:column; justify-content:center;
}

.servicio-panel-kicker{
  margin:0 0 10px; font-size:12px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase;
  
  color: rgba(255,255,255,.78);
}
.servicio-panel-texto h2,
.servicio-panel-texto h3{
  font-size: clamp(26px, 2.7vw, 35px); line-height:1.15;
  color:#fff; margin:0; position:relative;
}

.servicio-panel-texto h2::after,
.servicio-panel-texto h3::after{
  content:""; display:block; width:66px; height:4px; border-radius:2px;
  background: var(--naranja); margin-top:16px;
}
.servicio-panel-lead{
  margin:16px 0 0; font-size:16px; line-height:1.6;
  color: rgba(255,255,255,.88); max-width:44ch;
}

.servicio-panel-cta{
  display:inline-flex; align-items:center; gap:9px;
  margin-top:26px; font-size:15px; font-weight:700; color:#fff;
}
.servicio-panel-cta svg{ transition: transform .25s ease; }
a.servicio-panel:hover .servicio-panel-cta svg{ transform: translateX(6px); }
.servicio-panel-cta span{
  display:inline-block; border-bottom:2px solid rgba(255,255,255,.45);
  padding-bottom:2px; transition: border-color .2s ease;
}
a.servicio-panel:hover .servicio-panel-cta span{ border-bottom-color:#fff; }

.servicio-panel-foto{
  position:relative; overflow:hidden;
  background: linear-gradient(165deg, #FFFFFF 0%, var(--azul-claro) 100%);
}
.servicio-panel-foto img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:contain; display:block; padding:26px;
  transition: transform .5s cubic-bezier(.2,.8,.3,1);
}
a.servicio-panel:hover .servicio-panel-foto img{ transform: scale(1.05); }

.servicio-panel-alt .servicio-panel-texto{ order:2; }
.servicio-panel-alt .servicio-panel-foto{ order:1; }

.otros-servicios{
  margin-top:64px; padding-top:40px; border-top:1px solid var(--borde);
}

.otros-servicios > h2{ font-size:24px; color: var(--azul); margin-bottom:18px; }

a.servicio-compacto{
  display:flex; align-items:center; gap:20px;
  max-width:620px; padding:14px 20px 14px 14px;
  background:#fff; border:1px solid var(--borde);
  border-left:4px solid var(--azul); border-radius: var(--radio);
  color: inherit; text-decoration:none;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
a.servicio-compacto:hover{
  border-color: var(--naranja); box-shadow: var(--sombra); transform: translateY(-2px);
}
a.servicio-compacto:focus-visible{ outline:3px solid var(--naranja); outline-offset:3px; }
.servicio-compacto-foto{
  flex-shrink:0; width:92px; height:92px; border-radius:10px; overflow:hidden;
  background: linear-gradient(165deg, #FFFFFF 0%, var(--azul-claro) 100%);
  border:1px solid var(--borde); position:relative;
}

.servicio-compacto-foto img{
  position:absolute; inset:7px;
  
  width: calc(100% - 14px); height: calc(100% - 14px);
  object-fit:contain; display:block;
}
.servicio-compacto-body{ min-width:0; }

.servicio-compacto-body h2{ font-size:18px; color: var(--azul); margin:0 0 4px; }
.servicio-compacto-body p{ margin:0; font-size:14px; color: var(--texto-suave); }
.servicio-compacto-mas{
  margin-left:auto; flex-shrink:0; color: var(--azul);
  display:flex; align-items:center;
  transition: transform .2s ease;
}
a.servicio-compacto:hover .servicio-compacto-mas{ transform: translateX(4px); }

@media (max-width:520px){
  a.servicio-compacto{ gap:14px; padding:12px 14px; }
  .servicio-compacto-foto{ width:72px; height:72px; }
  .servicio-compacto-mas{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  a.servicio-compacto, .servicio-compacto-mas{ transition:none !important; }
  a.servicio-compacto:hover{ transform:none !important; }
}

@media (max-width: 900px){
  a.servicio-panel{ grid-template-columns: 1fr; min-height:0; }
  
  .servicio-panel-foto{ order:-1 !important; height:230px; }
  .servicio-panel-texto{ order:0 !important; padding:30px 26px 34px; }
  .otros-servicios a.servicio-panel{ min-height:0; }
}
@media (prefers-reduced-motion: reduce){
  a.servicio-panel, .servicio-panel-foto img, .servicio-panel-cta svg,
  .servicio-panel-cta span{ transition:none !important; }
  a.servicio-panel:hover{ transform:none !important; }
  a.servicio-panel:hover .servicio-panel-foto img{ transform:none !important; }
}

@media (max-width: 960px){
  .prod-cabecera{ grid-template-columns: 1fr; gap:26px; }
  
  .prod-foto-marco{ min-height:300px; max-height:300px; }
  .prod-info h1{ font-size:28px; }
}
@media (max-width: 760px){
  .prod-foto-marco{ min-height:240px; max-height:240px; }
  .prod-acciones .btn{ width:100%; justify-content:center; }
}

a.industry-photo{ color: inherit; text-decoration:none; }
a.industry-photo:hover{ border-color: var(--naranja); box-shadow: var(--sombra-fuerte); }

.industry-grid-indice .industry-body h2{
  font-size:20px; margin-bottom:10px; color: var(--texto);
}
.industry-grid-indice .industry-body h2::after{
  content:""; display:block; width:36px; height:3px; border-radius:2px;
  background: var(--azul); margin-top:9px;
  transition: width .35s cubic-bezier(.2,.8,.3,1), background-color .35s ease;
}
a.industry-photo:hover .industry-body h2::after{ width:62px; background: var(--naranja); }
.industry-mas{
  margin:14px 0 0; font-weight:600; font-size:14.5px; color: var(--azul);
}
a.industry-photo:hover .industry-mas{ color: var(--naranja-texto); }

.campo-consentimiento{ margin-top:6px; }
.consentimiento{
  display:flex; align-items:flex-start; gap:11px;
  font-size:14.5px; line-height:1.55; cursor:pointer;
  color: var(--texto-suave); font-weight:400;
}
.consentimiento input[type="checkbox"]{
  
  flex:none; width:18px; height:18px; margin:2px 0 0;
  accent-color: var(--azul); cursor:pointer;
}
.consentimiento a{ color: var(--azul); font-weight:600; }
.consentimiento input[aria-invalid="true"]{ outline:2px solid #B23B3B; outline-offset:2px; }

.legal{ max-width:68ch; }
.legal h2{
  font-size:20px; color: var(--azul); margin:38px 0 12px;
  padding-left:12px; border-left:3px solid var(--naranja);
}
.legal p, .legal li{ line-height:1.7; }
.legal ul{ margin:0 0 18px; padding-left:22px; }
.legal li{ margin-bottom:6px; }
.legal-fecha{
  margin-top:40px; padding-top:18px; border-top:1px solid var(--borde);
  font-size:13.5px; color: var(--texto-suave);
}

@media (max-width: 960px){
  .grid-4{ grid-template-columns: repeat(2, 1fr); }
  .grid-3{ grid-template-columns: repeat(2, 1fr); }
  .nosotros-grid, .contacto-grid, .mv-grid{ grid-template-columns: 1fr; }
  .footer-cols{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px){
  .main-nav, .nav-cta{ display:none; }
  .nav-toggle{ display:block; }
  .main-nav.is-open{
    display:flex; flex-direction:column; position:absolute; top:84px; left:0; right:0;
    background:#fff; padding:16px 24px; gap:16px; border-bottom:1px solid var(--borde);
  }
  .hero-inner{ flex-direction:column; text-align:center; }
  .hero-actions{ justify-content:center; }
  .hero-stats{ justify-content:center; }
  .hero-art{ width:min(360px, 70vw); }
  .grid-3, .grid-4{ grid-template-columns: 1fr; }
  .section{ padding:64px 0; }
  .footer-cols{ grid-template-columns: 1fr; text-align:left; }
  .whatsapp-float{ right:16px; bottom:16px; width:50px; height:50px; }
}
