:root{
  --white: #ffffff;
  --grey-light: #f2f5f7;
  --grey-line: #dde3e8;
  --black: #05080c;
  --black-2: #0a1017;
  --navy: #0a2f57;
  --navy-deep: #07223f;
  --steel: #6fa3c9;
  --steel-dim: #4a7fa8;
  --paper: #f3efe9;
  --ink: #16273c;
  --slate: #4a5b6c;
  --ink-soft: #cdd8e2;
  --grey: #6b7785;
  --line: rgba(255,255,255,0.12);
  --maxw: 1220px;
  --serif: "Fraunces", serif;
  --sans: "Inter", sans-serif;
  --label: "Raleway", sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
section[id]{scroll-margin-top:100px;}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1), transform 1.1s cubic-bezier(.2,.7,.2,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-delay-1.is-visible{transition-delay:.12s;}
.reveal-delay-2.is-visible{transition-delay:.24s;}
.reveal-delay-3.is-visible{transition-delay:.36s;}

/* ---------- nav ---------- */
header.site-header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  padding:22px 0;
  background:rgba(255,255,255,0.94);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--grey-line);
  transition:padding .3s ease, box-shadow .3s ease;
}
header.site-header.scrolled, header.site-header.solid{
  padding:14px 0;
  box-shadow:0 8px 26px rgba(10,30,50,.07);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;}
.logo img{height:22px;width:auto;}
nav.main-nav{display:flex;align-items:center;gap:40px;}
nav.main-nav a{
  font-family:var(--label); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--slate); padding:6px 0; position:relative;
}
nav.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
nav.main-nav a:hover::after, nav.main-nav a.active::after{transform:scaleX(1);}
nav.main-nav a.active{color:var(--navy);}
nav.main-nav a.nav-cta{
  border:1px solid var(--navy); padding:10px 20px; color:var(--navy);
}
nav.main-nav a.nav-cta:hover{border-color:var(--navy); background:var(--navy); color:var(--white);}
nav.main-nav a.nav-cta::after{display:none;}
nav.main-nav a.lang-switch{
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--grey-line); border-radius:20px; padding:6px 14px;
  font-size:10.5px; color:var(--slate); margin-left:4px;
}
nav.main-nav a.lang-switch .flag{font-size:13px; line-height:1;}
nav.main-nav a.lang-switch:hover{border-color:var(--navy); color:var(--navy); background:var(--grey-light);}
nav.main-nav a.lang-switch::after{display:none;}

/* desplegable de subapartados (solo al pasar el ratón, escritorio) */
.nav-item{position:relative;}
.nav-caret-btn{
  display:inline-flex; align-items:center; justify-content:center;
  background:none; border:none; padding:0; margin:0 0 0 5px;
  font:inherit; color:inherit; cursor:default; pointer-events:none; vertical-align:middle;
}
.nav-caret{display:inline-block;font-size:9px;color:#9aa8b4;transition:transform .2s ease;}
.nav-item.is-open .nav-caret{transform:translateY(1px) rotate(180deg);color:var(--navy);}
.nav-dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(4px);
  margin-top:14px; width:320px; padding:0;
  display:flex; align-items:stretch;
  background:var(--white); border:1px solid var(--grey-line);
  box-shadow:0 28px 56px rgba(10,30,50,.16);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
  z-index:50;
}
/* el estado abierto lo controla JS (con margen de gracia) para que el hover no se pierda al bajar el ratón hacia el panel */
.nav-item.is-open .nav-dropdown, .nav-item:focus-within .nav-dropdown{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.dropdown-links{flex:1; padding:16px 0; min-width:0;}
.nav-dropdown .dropdown-link{
  display:flex; align-items:baseline; gap:14px;
  padding:12px 26px; border-left:2px solid transparent;
  font-family:var(--sans); font-size:13.5px;
  letter-spacing:normal; text-transform:none; font-weight:400;
  color:var(--slate); white-space:nowrap;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.nav-dropdown .dropdown-link .dropdown-num{
  font-family:var(--label); font-size:10px; letter-spacing:.04em;
  color:var(--steel-dim); flex-shrink:0;
}
.nav-dropdown .dropdown-link:hover{color:var(--navy); background:var(--grey-light); border-left-color:var(--navy);}
.nav-dropdown .dropdown-link:hover .dropdown-num{color:var(--navy);}
.nav-dropdown .dropdown-link::after{display:none;}

/* botón hamburguesa (solo móvil) */
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:34px; height:34px; padding:0; margin-left:18px;
  background:none; border:none; cursor:pointer; flex-shrink:0;
}
.nav-toggle span{display:block; width:20px; height:2px; background:var(--navy); transition:transform .25s ease, opacity .2s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- cinematic full-bleed sections (fotografía, permanecen oscuras) ---------- */
.reel{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.reel .reel-bg{
  position:absolute; inset:-4%;
  background-size:cover; background-position:center;
  animation:kenburns 26s ease-in-out infinite alternate;
}
@keyframes kenburns{from{transform:scale(1);}to{transform:scale(1.08);}}
.reel .reel-fade{
  position:absolute; inset:0;
}
.reel .reel-content{position:relative;z-index:2;width:100%;}

/* HERO específico */
.hero{align-items:flex-end;}
.hero .reel-fade{background:
  linear-gradient(180deg, rgba(5,8,12,.08) 0%, rgba(5,8,12,.08) 48%, rgba(5,8,12,.4) 78%, rgba(5,8,12,.64) 100%);}
.hero h1, .hero p.lede, .hero .eyebrow{text-shadow:0 2px 30px rgba(0,0,0,.5);}

/* eyebrow: azul marino sobre fondos claros; azul acero sobre fotografías/franjas oscuras */
.eyebrow{
  font-family:var(--sans); font-weight:700; font-size:clamp(20px,2.2vw,26px); letter-spacing:.01em; text-transform:uppercase;
  color:var(--grey); display:inline-flex; align-items:center; gap:14px; margin-bottom:22px;
}
.eyebrow::before{content:none;}
.reel .eyebrow, .close-cta .eyebrow{color:var(--steel);}
.reel .eyebrow::before, .close-cta .eyebrow::before{background:var(--steel-dim);}

.hero .reel-bg{background-position:center 12%;}

/* ---------- HERO SLIDESHOW (carrusel tipo vídeo) ---------- */
.hero-slideshow{position:absolute; inset:-9%; overflow:hidden; will-change:transform; transition:transform .1s linear;}
.hero-slideshow .slide{
  position:absolute; inset:0;
  background-size:cover; background-position:center 18%;
  opacity:0;
  animation: kenburnsSlide 52s ease-in-out infinite, heroFade 20s cubic-bezier(.65,0,.35,1) infinite;
}
.hero-slideshow .slide:nth-child(1){animation-delay:0s, 0s;}
.hero-slideshow .slide:nth-child(2){animation-delay:0s, 4s;}
.hero-slideshow .slide:nth-child(3){animation-delay:0s, 8s;}
.hero-slideshow .slide:nth-child(4){animation-delay:0s, 12s;}
.hero-slideshow .slide:nth-child(5){animation-delay:0s, 16s;}
@keyframes heroFade{
  0%{opacity:0;}
  5%{opacity:1;}
  20%{opacity:1;}
  25%{opacity:0;}
  100%{opacity:0;}
}
@keyframes kenburnsSlide{from{transform:scale(1);}to{transform:scale(1.1);}}
@media (prefers-reduced-motion: reduce){
  .hero-slideshow .slide{animation:none; opacity:0;}
  .hero-slideshow .slide:first-child{opacity:1;}
}
.hero-content{max-width:100%;padding:120px 0 40px;}

/* h1 / .display: tinta oscura sobre fondos claros; papel claro sobre fotografía y franja navy */
h1, .display{
  font-family:var(--serif); font-weight:500; letter-spacing:-.01em;
  color:var(--ink); margin:0;
}
.reel h1, .reel .display, .close-cta h2{color:var(--paper);}

.hero h1{font-size:clamp(38px, 5.2vw, 68px); line-height:1.04; margin-bottom:26px;}
.hero p.lede{font-size:17px; color:var(--ink-soft); max-width:460px; margin-bottom:36px; font-weight:400;}
.hero-actions{display:flex;gap:18px;flex-wrap:wrap;}
.btn{
  display:inline-flex; align-items:center; gap:10px; padding:15px 28px;
  font-family:var(--label); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase;
  border:1px solid transparent; cursor:pointer; transition:all .25s cubic-bezier(.2,.7,.2,1);
}
.btn:hover{transform:translateY(-3px);}
.btn-primary{background:var(--paper); color:var(--black);}
.btn-primary:hover{background:var(--steel); color:var(--black); box-shadow:0 14px 28px rgba(10,30,50,.28);}
.btn-outline{border-color:rgba(255,255,255,.4); color:var(--paper);}
.btn-outline:hover{border-color:var(--paper); background:rgba(255,255,255,.08); box-shadow:0 14px 28px rgba(5,8,12,.35);}

/* CHAPTER — quote sobre imagen */
.chapter{align-items:flex-end;}
.chapter .reel-fade{background:linear-gradient(90deg, rgba(5,8,12,.92) 0%, rgba(5,8,12,.55) 46%, rgba(5,8,12,.35) 100%);}
.chapter-content{max-width:620px;padding:120px 0;}
.chapter-content-wide{max-width:900px;}
.chapter-content.closing-content{max-width:720px;margin:0 auto;text-align:center;}
.closing .reel-fade{background:linear-gradient(180deg, rgba(5,8,12,.35) 0%, rgba(5,8,12,.55) 55%, rgba(5,8,12,.88) 100%);}
.closing .chapter-content .btn{margin-top:10px;}
.chapter blockquote{
  font-family:var(--serif); font-style:normal; font-weight:500; letter-spacing:-.01em;
  font-size:clamp(32px, 4.6vw, 54px); line-height:1.08; color:var(--paper); margin:0 0 24px;
}
.purpose-chapter{min-height:58vh;}
.purpose-chapter .wrap{max-width:1680px;padding:0 5vw;}
.purpose-chapter .chapter-content{max-width:none;padding:70px 0;}
.purpose-chapter blockquote{margin-bottom:0;}
.chapter p.support{font-size:16px; color:var(--ink-soft); max-width:480px;}

/* ---------- MAPA DE SEDES ---------- */
section.locations{background:var(--white);padding:100px 0;}
.locations-head{max-width:640px;margin-bottom:56px;}
.locations-head h2{font-size:clamp(19px,2vw,24px);line-height:1.3;}
.locations-head p.support{color:var(--slate);font-size:16px;max-width:540px;margin:18px 0 0;}
.map-graphic{position:relative;border:1px solid var(--grey-line);border-radius:6px;overflow:hidden;aspect-ratio:440/152;}
.map-graphic .world-map-img{position:absolute;inset:0;width:100%;height:100%;display:block;}
.map-graphic .map-pins{position:absolute;inset:0;width:100%;height:100%;}
.map-link{fill:none;stroke:var(--navy);stroke-width:2;stroke-dasharray:2 7;stroke-linecap:round;opacity:.6;}
.map-pin{cursor:pointer;outline:none;}
.map-pin-ring{fill:none;stroke:var(--navy);stroke-width:1.2;opacity:.35;transition:opacity .2s ease,stroke-width .2s ease;}
.map-pin-dot{fill:var(--navy);transition:transform .25s cubic-bezier(.2,.7,.2,1);transform-origin:center;transform-box:fill-box;}
.map-pin-dot.alt{fill:var(--steel-dim);}

/* radar: pulso ambiental continuo, como en masagrupo.com */
.map-pin-radar{fill:none;stroke:var(--navy);stroke-width:1.2;transform-origin:center;transform-box:fill-box;animation:mapRadar 2.8s ease-out infinite;}
.map-pin-radar.alt{stroke:var(--steel-dim);}
.map-pin:nth-of-type(2) .map-pin-radar{animation-delay:.6s;}
.map-pin:nth-of-type(3) .map-pin-radar{animation-delay:1.2s;}
@keyframes mapRadar{
  0%{transform:scale(.5);opacity:.5;}
  100%{transform:scale(1.6);opacity:0;}
}

/* tooltip cuadrado al pasar el ratón */
.map-tooltip{opacity:0;transition:opacity .2s ease;pointer-events:none;}
.map-pin:hover .map-tooltip, .map-pin:focus .map-tooltip{opacity:1;}
.map-tooltip-bg{fill:var(--white);stroke:var(--grey-line);stroke-width:1;}
.map-label{font-family:var(--label);font-size:10.5px;font-weight:600;fill:var(--ink);}
.map-label-sub{font-family:var(--sans);font-size:9px;fill:var(--slate);}
.map-pin:hover .map-pin-dot, .map-pin:focus .map-pin-dot{transform:scale(1.5);}
.map-pin:hover .map-pin-ring, .map-pin:focus .map-pin-ring{opacity:.9;stroke-width:1.6;}
.map-legend{display:flex;flex-wrap:wrap;gap:28px;margin-top:28px;}
.map-legend-item{display:flex;align-items:center;gap:10px;}
.map-legend-item .swatch{width:9px;height:9px;border-radius:50%;background:var(--navy);flex-shrink:0;}
.map-legend-item .swatch.alt{background:var(--steel-dim);}
.map-legend-item span.name{font-family:var(--label);font-size:12px;letter-spacing:.03em;color:var(--ink);font-weight:600;display:block;}
.map-legend-item span.addr{font-size:12.5px;color:var(--slate);}

/* STATS — franja clara */
section.stats{background:var(--grey-light); padding:110px 0; border-top:1px solid var(--grey-line); border-bottom:1px solid var(--grey-line);}
.stats-head{max-width:640px;margin-bottom:64px;}
.stats-head h2{font-size:clamp(19px,2vw,24px);line-height:1.3;}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);}
.stat-item{padding:0 28px 0 0;border-right:1px solid var(--grey-line);}
.stat-item:not(:first-child){padding-left:28px;}
.stat-item:last-child{border-right:none;}
.stat-item .num{font-family:var(--serif);font-size:clamp(34px,4vw,52px);font-weight:500;color:var(--navy);line-height:1;font-variant-numeric:tabular-nums;}
.stat-item .label{font-family:var(--label);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin-top:12px;}

/* PRESENCIA — imagen sede */
.presence .reel-fade{background:linear-gradient(180deg, rgba(5,8,12,.25) 0%, rgba(5,8,12,.55) 55%, rgba(5,8,12,.96) 100%);}
.presence-content{max-width:680px;padding:120px 0;}
.presence h2{font-size:clamp(28px,3.6vw,44px);line-height:1.12;margin-bottom:22px;}
.presence p.support{color:var(--ink-soft);font-size:16.5px;max-width:520px;margin-bottom:0;}

/* BRANDS — franja clara minimal */
section.brands{background:var(--white);padding:90px 0;text-align:center;}
.brands .eyebrow{justify-content:center;}
.brands .eyebrow::before{display:none;}
.brands .chip-row{justify-content:center;margin-top:28px;}

/* SECTORES — icono + etiqueta, estilo rejilla (Home) */
section.sectors-home{background:var(--white);padding:70px 0;text-align:center;}
section.sectors-home .eyebrow{justify-content:center;}
section.sectors-home .eyebrow::before{display:none;}
.sector-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:48px 40px;margin-top:44px;}
.sector-grid-left{justify-content:flex-start;margin-top:48px;}
.sector-item{display:flex;flex-direction:column;align-items:center;gap:16px;width:180px;}
.sector-icon{
  display:flex;align-items:center;justify-content:center;width:92px;height:92px;border-radius:50%;
  background:var(--navy);color:var(--white);flex-shrink:0;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), background .3s ease, box-shadow .3s ease;
}
.sector-icon svg{width:40px;height:40px;}
.sector-item:hover .sector-icon{transform:translateY(-5px);background:var(--navy-deep);box-shadow:0 14px 26px rgba(10,47,87,.28);}
.sector-label{font-family:var(--label);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);}
@media (max-width:860px){
  .sector-grid{gap:34px 24px;}
  .sector-item{width:120px;gap:12px;}
  .sector-icon{width:68px;height:68px;}
  .sector-icon svg{width:30px;height:30px;}
  .sector-label{font-size:11px;}
}
@media (max-width:640px){
  .sector-grid{gap:28px 18px;}
  .sector-item{width:84px;gap:10px;}
  .sector-icon{width:56px;height:56px;}
  .sector-icon svg{width:24px;height:24px;}
  .sector-label{font-size:10px;}
}
.brand-row{display:flex;justify-content:center;align-items:baseline;gap:56px;flex-wrap:wrap;margin-top:40px;}
.brand-row a{
  position:relative;
  font-family:var(--serif);font-size:24px;color:var(--ink);letter-spacing:.01em;
  padding-bottom:4px;border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.brand-row a:hover{color:var(--navy);border-color:var(--navy);}
.brand-row a:not(:first-child)::before{content:"";position:absolute;left:-30px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--grey-line);transform:translateY(-50%);}
.brands a.flink-more{display:block;margin-top:32px;font-family:var(--label);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);border-bottom:none;}
.brands a.flink-more:hover{color:var(--navy-deep);}

/* CLIENTES — franja de logos en desplazamiento continuo */
section.clients{background:var(--white);padding:0 0 100px;}
.clients .eyebrow{justify-content:center;margin-bottom:44px;}
.clients .eyebrow::before{display:none;}
.clients-marquee{
  width:100%; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.clients-track{display:flex; align-items:center; width:max-content; will-change:transform; animation:clientsScroll 24s linear infinite;}
.clients-group{display:flex; align-items:center; gap:80px; padding-right:80px; flex-shrink:0;}
.clients-track img{height:52px; width:auto; max-width:none; object-fit:contain; flex-shrink:0; filter:grayscale(1); opacity:.5;}
.clients-track img.logo-detailed{height:72px;}
@keyframes clientsScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.clients-track{animation:none;}}

/* CTA CIERRE — franja navy con la frase, seguida de una foto a toda anchura (marcas → frase → foto → logos) */
section.close-cta{background:var(--navy-deep);padding:120px 0;text-align:center;}
.close-cta h2{font-size:clamp(22px,3.6vw,44px);line-height:1.15;max-width:1120px;margin:0 auto 36px;white-space:normal;}

.close-photo{
  height:60vh; min-height:360px; max-height:560px;
  background-size:cover; background-position:center;
}

/* subrayado en forma de "s" que se dibuja al entrar en pantalla (scroll) */
.underline-svg{display:block; width:100%; height:28px; margin:10px auto 0; overflow:visible;}
.underline-svg path{
  fill:none; stroke:#fff; stroke-width:7; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:600; stroke-dashoffset:600;
  transition:stroke-dashoffset 2.1s cubic-bezier(.2,.7,.2,1) .25s;
}
.reveal.is-visible .underline-svg path{stroke-dashoffset:0;}

/* FOOTER — franja navy */
footer.site-footer{background:var(--navy-deep);padding:80px 0 0;border-top:1px solid var(--line);}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:48px;padding-bottom:56px;border-bottom:1px solid var(--line);}
.footer-col h5{font-family:var(--label);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:20px;font-weight:600;}
.footer-logo img{height:20px;width:auto;margin-bottom:18px;}
.footer-col p{font-size:13.5px;line-height:1.75;color:#8ea3b6;margin:0 0 12px;}
.footer-col a.flink{display:block;font-size:13.5px;color:#cdd8e2;margin-bottom:12px;}
.footer-col a.flink:hover{color:var(--paper);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:26px 0;font-size:12px;color:#8195a8;}
.footer-bottom .flegal{display:flex;gap:24px;}

/* ---------- hero precision-network canvas + spotlight ---------- */
.hero-canvas{position:absolute; inset:0; z-index:1; pointer-events:none; mix-blend-mode:screen; opacity:.55;}

/* ---------- split reveal on chapter image ---------- */
.chapter .reel-bg{clip-path:circle(6% at 30% 50%); transition:clip-path 1.7s cubic-bezier(.16,.8,.2,1);}
.chapter.is-revealed .reel-bg{clip-path:circle(85% at 30% 50%);}

/* ---------- PAGE HERO (páginas interiores) — clara ---------- */
.page-hero{
  background:
    radial-gradient(900px 480px at 85% -10%, rgba(10,47,87,.07), transparent 60%),
    linear-gradient(180deg, var(--grey-light) 0%, var(--white) 100%);
  padding:172px 0 86px;
  border-bottom:1px solid var(--grey-line);
}
.page-hero .eyebrow{margin-bottom:20px;}
.page-hero h1{font-size:clamp(32px,4.6vw,54px);line-height:1.08;margin-bottom:18px;max-width:760px;}
.page-hero p.lede{font-family:var(--sans);color:var(--slate);font-size:16.5px;max-width:560px;margin:0;font-weight:400;}

/* ---------- CONTENT SECTIONS (páginas interiores) — claras, alternando blanco/gris ---------- */
section.content-block{background:var(--white);padding:100px 0;}
section.content-block.alt{background:var(--grey-light);border-top:1px solid var(--grey-line);border-bottom:1px solid var(--grey-line);}
.block-head{max-width:680px;margin-bottom:56px;}
.block-head h2{font-size:clamp(19px,2vw,24px);line-height:1.3;margin:18px 0 16px;}
.block-head p.support{color:var(--slate);font-size:16px;max-width:560px;margin:0;}

/* ---------- CARD GRID (servicios / marcas) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--grey-line);border:1px solid var(--grey-line);}
.card-grid > *{background:var(--white);padding:34px 34px;overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;position:relative;}
section.content-block.alt .card-grid > *{background:var(--grey-light);}
.card-grid > *:hover{transform:translateY(-6px);box-shadow:0 26px 48px rgba(10,30,50,.14);z-index:1;}
.card-num{
  position:absolute; top:16px; left:16px; z-index:2;
  background:rgba(7,34,63,.88); color:var(--paper);
  font-family:var(--label); font-size:11px; font-weight:600; letter-spacing:.06em;
  padding:6px 12px; margin:0;
}
.card-grid h3{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink);margin:0 0 14px;letter-spacing:-.005em;}
.card-grid p{font-size:14.5px;line-height:1.75;color:var(--slate);margin:0;}
.card-grid a.card-link{display:inline-block;margin-top:18px;font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border-bottom:1px solid rgba(10,47,87,.35);padding-bottom:2px;}
.card-grid a.card-link:hover{color:var(--navy-deep);border-color:var(--navy-deep);}

/* tarjetas de servicio: kicker en cursiva + botón CTA opcional */
.card-grid .card-tag{display:block;font-family:var(--sans);font-style:italic;font-size:13.5px;color:var(--slate);margin:0 0 12px;line-height:1.5;}
.card-grid .card-cta{margin-top:20px;padding:11px 22px;font-size:11px;}

/* tarjetas de servicio: foto de cabecera a sangre */
.card-grid .card-media{width:auto;height:210px;margin:-34px -34px 24px;overflow:hidden;background:var(--navy-deep);position:relative;}
.card-grid .card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.card-grid .card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(5,8,12,0) 60%, rgba(5,8,12,.3) 100%);}
.card-grid > *:hover .card-media img{transform:scale(1.07);}

/* ---------- BLOQUE (banda navy de sección, estilo del brief de marca) ---------- */
.service-block{background:var(--white);padding-bottom:100px;}
.service-block.alt{background:var(--grey-light);}
.block-band{background:var(--navy-deep);padding:26px 0;}
.block-band h2{color:var(--paper);font-family:var(--label);font-size:19px;letter-spacing:.02em;text-transform:uppercase;font-weight:700;margin:0;}
.block-intro{font-size:17px;line-height:1.6;color:var(--ink);font-weight:500;max-width:760px;margin:40px 0 36px;}

/* ---------- listas de contenido (metodología, valor diferencial) ---------- */
.check-list{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:14px;max-width:640px;}
.check-list li{position:relative;padding-left:26px;font-size:15px;line-height:1.6;color:var(--slate);}
.check-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--navy);}
.block-head p.support + p.support{margin-top:16px;}
.block-head .block-statement{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--ink);margin:28px 0 0;max-width:680px;}
.sub-panel{margin-top:44px;padding-top:36px;border-top:1px solid var(--grey-line);}
.sub-title{font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);font-weight:500;color:var(--ink);margin:0 0 14px;}
.sub-lede{font-size:15.5px;line-height:1.75;color:var(--slate);max-width:760px;margin:0;}
.sub-kicker{font-family:var(--label);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);margin:0 0 4px;}
.detail-cols{display:grid;grid-template-columns:1fr 1.5fr;gap:56px;margin-top:32px;}
.detail-cols .check-list{margin-top:16px;}
.detail-cols .sub-lede{margin-top:16px;}
.check-list li strong{color:var(--ink);font-weight:600;}

/* ciclo continuo (detectamos / analizamos / corregimos) */
.cycle{position:relative;display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:0;margin-top:52px;padding-bottom:84px;}
.cycle-step{
  padding:32px 26px; background:var(--white); border:1px solid var(--grey-line);
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
}
.cycle-step:hover{transform:translateY(-6px);box-shadow:0 26px 48px rgba(10,30,50,.14);z-index:1;}
.cycle-num{
  display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;
  background:var(--navy);color:var(--white);font-family:var(--serif);font-size:19px;font-weight:600;
  margin-bottom:20px;box-shadow:0 10px 20px rgba(10,47,87,.28);
}
.cycle-step h3{font-family:var(--serif);font-size:23px;font-weight:500;color:var(--ink);margin:0 0 10px;letter-spacing:-.005em;}
.cycle-step p{font-size:14.5px;line-height:1.7;color:var(--slate);margin:0;}
.cycle-arrow{display:flex;align-items:center;justify-content:center;width:44px;color:var(--navy);font-size:26px;line-height:1;}
.cycle-loop{position:absolute;left:0;bottom:30px;width:100%;height:54px;overflow:visible;}
.cycle-loop path{fill:none;stroke:var(--steel);stroke-width:2.5;stroke-dasharray:1 10;stroke-linecap:round;}
.cycle-loop .cycle-loop-head{fill:var(--steel);}
.cycle-loop-badge{
  position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:40px;height:40px;border-radius:50%;background:var(--steel);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:19px;
  box-shadow:0 10px 22px rgba(74,127,168,.35);
}
.cycle-loop-label{
  position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);
  font-family:var(--label);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--navy);white-space:nowrap;
}
@media (max-width:860px){
  .cycle{grid-template-columns:1fr;gap:16px;padding-bottom:64px;}
  .cycle-arrow{display:none;}
  .cycle-loop{bottom:20px;}
}
.process-steps{list-style:none;counter-reset:step;margin:16px 0 0;padding:0;display:grid;gap:18px;}
.process-steps li{counter-increment:step;position:relative;padding-left:46px;display:flex;flex-direction:column;gap:4px;}
.process-steps li::before{
  content:counter(step); position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;
  background:var(--navy);color:var(--white);font-family:var(--label);font-size:12px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
}
.process-steps li strong{font-family:var(--serif);font-size:17px;font-weight:500;color:var(--ink);line-height:1.35;padding-top:3px;}
.process-steps li span{font-size:14.5px;line-height:1.7;color:var(--slate);}
@media (max-width:860px){.detail-cols{grid-template-columns:1fr;gap:36px;}}
.faq-list{margin-top:28px;border-top:1px solid var(--grey-line);}
.faq-item{border-bottom:1px solid var(--grey-line);padding:0;}
.faq-item summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;font-family:var(--serif);font-size:17px;font-weight:500;color:var(--ink);line-height:1.4;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";position:absolute;right:6px;top:18px;font-size:22px;color:var(--navy);transition:transform .2s ease;}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin:0 0 22px;font-size:14.5px;line-height:1.75;color:var(--slate);max-width:820px;}

/* ---------- LISTADO DE PRODUCTOS (marcas) ---------- */
.brand-link{display:inline-block;margin:16px 0 32px;font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border-bottom:1px solid rgba(10,47,87,.35);padding-bottom:2px;}
.brand-link:hover{color:var(--navy-deep);border-color:var(--navy-deep);}
.product-list{list-style:none;margin:0;padding:0;columns:2;column-gap:48px;}
.product-list li{padding:11px 0;border-bottom:1px solid var(--grey-line);font-size:14.5px;color:var(--slate);break-inside:avoid;}
.product-list li.product-subcat{
  font-family:var(--label); font-weight:700; letter-spacing:.04em; text-transform:uppercase; font-size:11.5px;
  color:var(--navy); border-bottom:none; padding:22px 0 6px;
}
.product-list li.product-subcat:first-child{padding-top:0;}
.product-list li.product-child{padding-left:18px; font-style:italic; color:var(--grey);}

/* ---------- BLOG: próximamente ---------- */
section.coming-soon{background:var(--white);padding:110px 0;text-align:center;}
.coming-soon .pulse-icon{position:relative;width:64px;height:64px;margin:0 auto 32px;display:flex;align-items:center;justify-content:center;}
.coming-soon .pulse-icon::before,.coming-soon .pulse-icon::after{
  content:""; position:absolute; inset:0; border-radius:50%; border:1px solid var(--navy);
  animation:pulseRing 2.6s ease-out infinite;
}
.coming-soon .pulse-icon::after{animation-delay:1.3s;}
.coming-soon .pulse-icon svg{width:22px;height:22px;color:var(--navy);position:relative;z-index:1;}
@keyframes pulseRing{0%{transform:scale(.6);opacity:.7;}100%{transform:scale(2.4);opacity:0;}}
.coming-soon h2{font-size:clamp(26px,3.2vw,38px);margin:0 auto 16px;max-width:620px;}
.coming-soon p.support{color:var(--slate);font-size:16px;max-width:520px;margin:0 auto;}

/* ---------- BLOG: banda social futurista ---------- */
section.social-band{position:relative;background:var(--navy-deep);padding:130px 0;text-align:center;overflow:hidden;}
section.social-band .network-canvas{position:absolute;inset:0;z-index:0;opacity:.6;mix-blend-mode:screen;}
section.social-band::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(600px 340px at 50% 0%, rgba(111,163,201,.16), transparent 65%);
}
section.social-band .wrap{position:relative;z-index:1;}
section.social-band h2{color:var(--paper);max-width:640px;margin:0 auto 18px;font-size:clamp(26px,3.2vw,38px);}
section.social-band p.support{color:var(--ink-soft);max-width:520px;margin:0 auto;font-size:16px;}
.social-icons{display:flex;justify-content:center;gap:24px;margin-top:48px;flex-wrap:wrap;}
.social-icon{
  display:flex; align-items:center; justify-content:center;
  width:76px; height:76px; border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  color:var(--paper); position:relative;
  transition:transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.social-icon svg{width:28px;height:28px;position:relative;z-index:1;}
.social-icon:hover{
  transform:translateY(-6px);
  border-color:var(--steel);
  background:rgba(111,163,201,.12);
  box-shadow:0 0 0 1px var(--steel), 0 16px 34px rgba(111,163,201,.35);
}
.social-icon .icon-label{
  position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:12px;
  font-family:var(--label); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:#8ea3b6;
  white-space:nowrap; opacity:0; transition:opacity .25s ease;
}
.social-icon:hover .icon-label{opacity:1;}
.sub-panel h3{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--ink);margin:0 0 12px;}
.sub-panel p{font-size:15px;line-height:1.75;color:var(--slate);max-width:680px;margin:0;}

/* ---------- CERTIFICACIONES ---------- */
.cert-list{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:1px;background:var(--grey-line);border:1px solid var(--grey-line);max-width:760px;}
.cert-item{background:var(--white);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px;}
section.content-block.alt .cert-item{background:var(--grey-light);}
.cert-item .cert-name{font-family:var(--serif);font-size:17px;color:var(--ink);}
.cert-item .cert-meta{display:block;font-family:var(--label);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);margin-top:4px;}
.cert-download{
  display:inline-flex; align-items:center; gap:8px; white-space:nowrap;
  font-family:var(--label); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--navy); border:1px solid var(--navy); padding:10px 18px;
}
.cert-download:hover{background:var(--navy); color:var(--white);}
.cert-pending{
  display:inline-flex; align-items:center; white-space:nowrap;
  font-family:var(--label); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--grey); border:1px solid var(--grey-line); padding:10px 18px;
}

/* ---------- CONTACTO ---------- */
section.contact-intro{background:var(--grey-light);padding:0 0 90px;border-top:1px solid var(--grey-line);}
.office-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.office-card{background:var(--white);display:flex;flex-direction:column;border:1px solid var(--grey-line);box-shadow:0 10px 30px rgba(10,30,50,.05);}
.office-map{position:relative;aspect-ratio:4/3.1;border-bottom:1px solid var(--grey-line);background:var(--grey-light);}
.office-map iframe{width:100%;height:100%;border:0;display:block;pointer-events:none;}
.office-map .map-overlay{
  position:absolute; inset:0; z-index:2; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:rgba(5,8,12,.72);
  font-family:var(--label); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--paper);
  opacity:0; transition:opacity .25s ease;
}
.office-map .map-overlay:hover, .office-map .map-overlay:focus-visible{opacity:1;}
.office-body{padding:30px 30px 34px;display:flex;flex-direction:column;flex:1;}
.office-body h5{font-family:var(--label);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin:0 0 6px;}
.office-body h3{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--ink);margin:0 0 14px;}
.office-address{font-size:13.5px;line-height:1.7;color:var(--slate);margin:0 0 18px;}
.office-links{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;}
.office-links a{font-size:13.5px;color:var(--ink);}
.office-links a:hover{color:var(--navy);}
.route-btn{
  margin-top:auto;
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--label); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--navy); border-bottom:1px solid rgba(10,47,87,.35); padding-bottom:3px; align-self:flex-start;
}
.route-btn:hover{color:var(--navy-deep); border-color:var(--navy-deep);}

section.contact{background:var(--white);padding:100px 0 130px;}
.contact-head{max-width:640px;margin-bottom:64px;}
.contact-head h2{font-size:clamp(19px,2vw,24px);line-height:1.3;margin:18px 0;}
.contact-head p.support{color:var(--slate);font-size:16px;max-width:540px;margin:0;}

.contact-grid{display:grid;grid-template-columns:0.85fr 1.3fr;gap:80px;align-items:start;}
.contact-info{display:grid;gap:40px;}
.info-block h5{font-family:var(--label);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin:0 0 14px;font-weight:600;}
.info-block p{font-size:14.5px;line-height:1.75;color:var(--slate);margin:0 0 10px;}
.info-block p:last-child{margin-bottom:0;}
.info-block p b{color:var(--ink);font-weight:500;}
.info-link{display:inline-block;font-size:15px;color:var(--ink);border-bottom:1px solid var(--grey-line);padding-bottom:2px;transition:color .2s ease, border-color .2s ease;}
.info-link:hover{color:var(--navy);border-color:var(--navy);}

.contact-form{display:flex;flex-direction:column;gap:22px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-family:var(--label);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);}
.field input,.field textarea{
  background:var(--white);
  border:1px solid var(--grey-line);
  color:var(--ink);
  font-family:var(--sans);
  font-size:14.5px;
  padding:13px 16px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field input::placeholder,.field textarea::placeholder{color:#8a97a3;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(10,47,87,.08);}
.field textarea{resize:vertical;min-height:120px;font-family:var(--sans);}
.contact-form .btn.btn-primary{align-self:flex-start;margin-top:6px;background:var(--navy);color:var(--white);}
.contact-form .btn.btn-primary:hover{background:var(--navy-deep);color:var(--white);}
.form-note{font-family:var(--label);font-size:11px;color:#7c8996;margin:0;}
.form-success{display:none;font-family:var(--label);font-size:12.5px;letter-spacing:.04em;color:var(--navy);border:1px solid var(--grey-line);background:var(--grey-light);padding:14px 18px;}
.form-success.is-shown{display:block;}

@media (max-width:980px){
  .nav-toggle{display:flex;}
  nav.main-nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--white); border-bottom:1px solid var(--grey-line);
    max-height:0; overflow:hidden; opacity:0; pointer-events:none;
    transition:max-height .3s ease, opacity .2s ease;
  }
  nav.main-nav.is-open{
    max-height:calc(100vh - 64px); overflow-y:auto; -webkit-overflow-scrolling:touch;
    opacity:1; pointer-events:auto; box-shadow:0 16px 28px rgba(10,30,50,.1);
  }
  nav.main-nav a{padding:16px 24px; border-bottom:1px solid var(--grey-line); font-size:13px;}
  nav.main-nav a::after{display:none;}
  nav.main-nav a.nav-cta{border:1px solid var(--navy); margin:14px 24px; padding:13px; text-align:center;}
  nav.main-nav a.lang-switch{border:none; border-radius:0; margin:0; padding:16px 24px; font-size:13px;}

  /* nav-item con subapartados: acordeón en vez de mega-menú flotante */
  .nav-item{display:flex; flex-wrap:wrap; position:relative;}
  .nav-item > a{flex:1; border-bottom:none;}
  .nav-caret-btn{
    pointer-events:auto; cursor:pointer;
    width:54px; height:54px; margin:0; flex-shrink:0;
    border-bottom:1px solid var(--grey-line);
  }
  .nav-caret{font-size:11px;}
  .nav-item.mobile-open > .nav-caret-btn .nav-caret{transform:translateY(1px) rotate(180deg);color:var(--navy);}
  .nav-dropdown{
    order:3; width:100%; flex-basis:100%;
    position:static; display:block; margin:0; padding:0;
    background:var(--grey-light); border:none; box-shadow:none;
    opacity:1; visibility:visible; pointer-events:auto; transform:none;
    max-height:0; overflow:hidden;
    transition:max-height .3s ease;
  }
  .nav-item.mobile-open .nav-dropdown{max-height:600px; border-bottom:1px solid var(--grey-line);}
  .dropdown-links{flex:none; padding:4px 0;}
  .nav-dropdown .dropdown-link{padding:13px 24px 13px 46px; border-left:none; white-space:normal;}
  .nav-dropdown .dropdown-link:hover{border-left-color:transparent;}

  .stat-strip{grid-template-columns:repeat(2,1fr);row-gap:36px;}
  .stat-item{border-right:none;padding-left:0 !important;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .card-grid{grid-template-columns:1fr;}
  .office-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:56px;}
}
@media (max-width:640px){
  .wrap{padding:0 22px;}
  .footer-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .clients-track{animation-duration:16s;}
  .clients-group{gap:48px; padding-right:48px;}
  .clients-track img{height:38px;}
  .clients-track img.logo-detailed{height:54px;}
  .brand-row{gap:14px 40px;}
  .brand-row a:not(:first-child)::before{display:none;}
}

/* ---------- BOTÓN FLOTANTE WHATSAPP ---------- */
.whatsapp-float{
  position:fixed; left:24px; bottom:24px; z-index:300;
  display:flex; align-items:center; gap:10px;
  background:#25d366; color:#fff;
  padding:14px; border-radius:50px;
  box-shadow:0 8px 22px rgba(10,30,50,.22);
  transition:box-shadow .2s ease, transform .2s ease;
}
.whatsapp-float:hover{box-shadow:0 12px 28px rgba(10,30,50,.3); transform:translateY(-2px);}
.whatsapp-float svg{width:24px; height:24px; flex-shrink:0; display:block;}
.whatsapp-float .whatsapp-label{
  max-width:0; overflow:hidden; white-space:nowrap;
  font-family:var(--label); font-size:12.5px; font-weight:600; letter-spacing:.03em;
  transition:max-width .3s ease;
}
.whatsapp-float:hover .whatsapp-label, .whatsapp-float:focus .whatsapp-label{max-width:220px;}
/* ocultar mientras haya una zona sensible a la vista (.wa-avoid), en cualquier tamaño de pantalla */
body:has(.wa-avoid) .whatsapp-float{opacity:0; pointer-events:none; transition:opacity .3s ease;}
body:has(.wa-avoid) .whatsapp-float.wa-visible{opacity:1; pointer-events:auto;}
@media (max-width:640px){
  .whatsapp-float{left:16px; bottom:16px; padding:13px;}
  .whatsapp-float .whatsapp-label{display:none;}
}

/* ---------- ASISTENTE VIRTUAL (chatbot FAQ) ---------- */
.chatbot{position:fixed; right:24px; bottom:calc(24px + var(--kb-offset, 0px)); z-index:300; font-family:var(--sans); transition:bottom .15s ease;}

.chatbot-toggle{
  position:relative; width:56px; height:56px; border-radius:50%;
  background:var(--navy); color:var(--paper); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  box-shadow:0 8px 22px rgba(10,30,50,.28);
  transition:box-shadow .2s ease, transform .2s ease, background .2s ease;
}
.chatbot-toggle:hover{box-shadow:0 12px 28px rgba(10,30,50,.36); transform:translateY(-2px); background:var(--navy-deep);}
.chatbot-toggle svg{width:23px; height:23px; position:absolute; transition:opacity .2s ease, transform .2s ease;}
.chatbot-toggle .icon-close{opacity:0; transform:scale(.6) rotate(-45deg);}
.chatbot.is-open .chatbot-toggle .icon-chat{opacity:0; transform:scale(.6) rotate(45deg);}
.chatbot.is-open .chatbot-toggle .icon-close{opacity:1; transform:scale(1) rotate(0);}

.chatbot-panel{
  position:absolute; right:0; bottom:76px; width:370px; max-width:calc(100vw - 48px);
  height:min(540px, 70vh); height:min(540px, 70dvh);
  background:var(--white); border-radius:18px; overflow:hidden;
  box-shadow:0 30px 70px rgba(10,30,50,.32); border:1px solid var(--grey-line);
  display:flex; flex-direction:column;
  opacity:0; visibility:hidden; transform:translateY(28px) scale(.85) rotate(2deg); transform-origin:bottom right;
  pointer-events:none;
  transition:opacity .3s ease, transform .5s cubic-bezier(.34,1.56,.64,1), visibility .5s;
}
.chatbot.is-open .chatbot-panel{opacity:1; visibility:visible; transform:none; pointer-events:auto; transition:opacity .3s ease, transform .5s cubic-bezier(.34,1.56,.64,1), visibility 0s;}

.chatbot-header{
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%);
  color:var(--paper); padding:18px 18px; flex-shrink:0;
}
.chatbot-header .network-canvas{position:absolute; inset:0; z-index:0; opacity:.4; mix-blend-mode:screen; pointer-events:none;}
.chatbot-header-info{position:relative; z-index:1; display:flex; align-items:center; gap:12px;}
.chatbot-avatar{
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.1);
  box-shadow:0 0 0 3px rgba(255,255,255,.14);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  padding:8px;
}
.chatbot-avatar img{width:100%; height:100%; object-fit:contain; display:block;}
.chatbot-header-info strong{display:block; font-family:var(--serif); font-size:15px; font-weight:500; letter-spacing:.01em;}
.chatbot-status{display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--steel); margin-top:4px;}
.chatbot-status::before{content:""; width:6px; height:6px; border-radius:50%; background:#4ade80; flex-shrink:0; box-shadow:0 0 0 3px rgba(74,222,128,.25);}
.chatbot-close{
  position:relative; z-index:1;
  background:none; border:none; color:var(--paper); opacity:.7; cursor:pointer;
  width:28px; height:28px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:opacity .2s ease;
}
.chatbot-close:hover{opacity:1;}
.chatbot-close svg{width:16px; height:16px;}

.chatbot-body{
  flex:1; overflow-y:auto; padding:22px 18px; display:flex; flex-direction:column; gap:11px;
  background:
    radial-gradient(560px 220px at 100% 0%, rgba(111,163,201,.1), transparent 60%),
    var(--grey-light);
}
.chat-msg{max-width:85%; padding:11px 15px; font-size:13.5px; line-height:1.55; border-radius:14px; animation:chatMsgIn .25s cubic-bezier(.2,.7,.2,1);}
@keyframes chatMsgIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}
.chat-msg-bot{
  align-self:flex-start; background:var(--white); color:var(--ink);
  box-shadow:0 3px 10px rgba(10,30,50,.06); border-left:2.5px solid var(--steel);
  border-bottom-left-radius:3px;
}
.chat-msg-user{
  align-self:flex-end; background:linear-gradient(135deg, var(--navy), var(--navy-deep)); color:var(--white);
  box-shadow:0 3px 10px rgba(10,30,50,.16);
  border-bottom-right-radius:3px;
}
.chat-typing{display:flex; align-items:center; gap:4px; padding:14px 16px;}
.chat-typing span{
  width:6px; height:6px; border-radius:50%; background:var(--steel-dim);
  animation:chatTyping 1.1s ease-in-out infinite;
}
.chat-typing span:nth-child(2){animation-delay:.15s;}
.chat-typing span:nth-child(3){animation-delay:.3s;}
@keyframes chatTyping{0%,60%,100%{opacity:.3; transform:translateY(0);} 30%{opacity:1; transform:translateY(-3px);}}

.chat-options{display:flex; flex-direction:column; gap:8px; align-self:stretch; align-items:stretch; animation:chatMsgIn .25s cubic-bezier(.2,.7,.2,1);}
.chat-option{
  display:flex; align-items:center; gap:11px; max-width:100%;
  background:var(--white); border:1px solid var(--grey-line); color:var(--ink);
  font-family:var(--sans); font-size:13px; font-weight:500; text-align:left;
  padding:10px 14px; border-radius:11px; cursor:pointer;
  box-shadow:0 2px 6px rgba(10,30,50,.04);
  transition:background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.chat-option-icon{
  width:28px; height:28px; border-radius:8px; flex-shrink:0;
  background:var(--grey-light); color:var(--navy);
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease, color .15s ease;
}
.chat-option-icon svg{width:15px; height:15px;}
.chat-option:hover{border-color:var(--navy); color:var(--navy); transform:translateX(2px); box-shadow:0 6px 16px rgba(10,30,50,.1);}
.chat-option:hover .chat-option-icon{background:var(--navy); color:var(--white);}
.chat-option-accent .chat-option-icon{background:rgba(37,211,102,.12); color:#25d366;}
.chat-option-accent:hover{border-color:#25d366; color:#128c4a;}
.chat-option-accent:hover .chat-option-icon{background:#25d366; color:#fff;}

.chat-link-btn{
  display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
  background:linear-gradient(135deg, var(--navy), var(--navy-deep)); color:var(--white); font-family:var(--label);
  font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  padding:11px 18px; border-radius:9px;
  box-shadow:0 6px 16px rgba(10,30,50,.18);
  transition:box-shadow .15s ease, transform .15s ease;
}
.chat-link-btn:hover{box-shadow:0 8px 20px rgba(10,30,50,.26); transform:translateY(-1px);}

.chatbot-input-row{
  flex-shrink:0; display:flex; align-items:center; gap:8px;
  padding:12px; background:var(--white); border-top:1px solid var(--grey-line);
}
.chatbot-input{
  flex:1; min-width:0; border:1px solid var(--grey-line); background:var(--grey-light);
  border-radius:20px; padding:10px 16px; font-family:var(--sans); font-size:13px; color:var(--ink);
  transition:border-color .15s ease, background .15s ease;
}
.chatbot-input::placeholder{color:#8a97a3;}
.chatbot-input:focus{outline:none; border-color:var(--navy); background:var(--white);}
.chatbot-send{
  flex-shrink:0; width:36px; height:36px; border-radius:50%; border:none; cursor:pointer;
  background:var(--navy); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease, transform .15s ease;
}
.chatbot-send svg{width:15px; height:15px;}
.chatbot-send:hover{background:var(--navy-deep); transform:scale(1.06);}

@media (max-width:640px){
  .chatbot{right:16px; bottom:calc(16px + var(--kb-offset, 0px));}
  .chatbot-panel{right:-8px; bottom:74px; width:calc(100vw - 24px); height:min(70vh, 560px); height:min(70dvh, 560px);}
}

/* ---------- NEGOCIO: áreas, navegación fija y bloques visuales ---------- */
.area-nav{position:sticky;top:64px;z-index:150;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--grey-line);}
.area-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;}
.area-nav ul::-webkit-scrollbar{display:none;}
.area-nav a{display:flex;align-items:center;gap:12px;padding:16px 20px;white-space:nowrap;border-bottom:3px solid transparent;color:var(--slate);transition:color .2s ease,border-color .2s ease,background .2s ease;}
.area-nav a:hover{color:var(--navy);background:var(--grey-light);}
.area-nav .area-num{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--steel-dim);}
.area-nav .area-name{font-family:var(--label);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;}
.area-nav a.is-active{color:var(--navy);border-bottom-color:var(--navy);}
.area-nav a.is-active .area-num{color:var(--navy);}

section.area{background:var(--white);padding-bottom:110px;}
section.area.alt{background:var(--grey-light);}
section.area[id], .subsec[id]{scroll-margin-top:130px;}
.area-head{background:var(--navy-deep);color:var(--paper);position:relative;overflow:hidden;padding:88px 0;}
.area-head-inner{position:relative;z-index:1;display:flex;align-items:flex-end;gap:36px;width:100%;}
.area-bignum{font-family:var(--serif);font-size:clamp(96px,15vw,200px);font-weight:500;line-height:.78;color:rgba(255,255,255,.09);letter-spacing:-.03em;flex-shrink:0;}
.area-head-text{max-width:680px;}
.area-label{display:block;font-family:var(--label);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);margin-bottom:14px;}
.area-head h2{font-family:var(--sans);font-weight:700;letter-spacing:-.015em;font-size:clamp(30px,4.2vw,50px);line-height:1.08;color:var(--paper);margin:0 0 14px;}
.area-head p{color:rgba(255,255,255,.82);font-size:16.5px;line-height:1.6;margin:0;}

.subsec{margin-top:88px;}
.area-head + .wrap > .subsec:first-child{margin-top:56px;}
.subsec-head{display:flex;align-items:flex-start;gap:20px;margin-bottom:36px;padding-bottom:22px;border-bottom:1px solid var(--grey-line);}
.subsec-title{font-family:var(--serif);font-size:clamp(24px,3vw,34px);font-weight:500;color:var(--ink);margin:0;line-height:1.2;}
.subsec-lede{font-size:15.5px;line-height:1.75;color:var(--slate);max-width:780px;margin:12px 0 0;}
.subsec > .card-grid{margin-top:0;}






@media (max-width:980px){
  .area-nav{top:62px;}
  .area-head-inner{flex-direction:column;align-items:flex-start;gap:6px;}
  .area-bignum{font-size:84px;}
}
@media (max-width:640px){
  .area-nav a{padding:14px 14px;gap:8px;}
  .area-nav .area-name{font-size:11px;}
  .subsec{margin-top:64px;}
  .subsec-head{flex-direction:column;gap:12px;}
}

/* ---------- ÁREA PRIVADA ---------- */
nav.main-nav a.nav-private{display:inline-flex;align-items:center;gap:7px;}
.nav-lock{width:14px;height:14px;flex-shrink:0;}
section.private-area{padding:130px 0 120px;}
.private-grid{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:72px;align-items:start;}
.private-help{border-left:3px solid var(--navy);padding:6px 0 6px 28px;max-width:420px;}
.private-help h3{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink);margin:0 0 12px;}
.private-help p{font-size:14.5px;line-height:1.75;color:var(--slate);margin:0;}
.private-help .card-link{display:inline-block;margin-top:18px;font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border-bottom:1px solid rgba(10,47,87,.35);padding-bottom:2px;}
@media (max-width:860px){.private-grid{grid-template-columns:1fr;gap:44px;}.private-help{padding-left:20px;}}

nav.main-nav a, nav.main-nav .nav-item{white-space:nowrap;}
@media (min-width:981px) and (max-width:1200px){
  nav.main-nav{gap:20px;}
  nav.main-nav a{letter-spacing:.05em;}
}

/* tarjeta ancha (imagen a un lado) */
.card-grid > .card-wide{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:0;align-items:stretch;}
.card-grid > .card-wide .card-media{width:auto;height:auto;min-height:210px;margin:0;position:relative;}
.card-grid > .card-wide .card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.card-grid > .card-wide .card-wide-body{padding:34px;display:flex;flex-direction:column;justify-content:center;}
.card-grid > .card-wide .card-num{position:absolute;top:16px;left:16px;}
@media (max-width:860px){
  .card-grid > .card-wide{grid-template-columns:1fr;}
  .card-grid > .card-wide .card-media{height:210px;min-height:0;}
}

/* ---------- NEGOCIO: introducción ---------- */
.reel.intro-hero{min-height:62vh;}
.intro-hero .reel-fade{background:linear-gradient(180deg, rgba(5,8,12,.28) 0%, rgba(5,8,12,.06) 45%, rgba(5,8,12,.22) 100%);}
section.intro-text{background:var(--white);padding:84px 0 76px;}
.intro-lead{font-family:var(--sans);font-size:16.5px;font-weight:400;line-height:1.85;color:var(--slate);max-width:820px;margin:0 0 20px;}
.intro-body{max-width:820px;}
.intro-body p{font-size:16.5px;line-height:1.85;color:var(--slate);margin:0 0 20px;}
@media (max-width:640px){.reel.intro-hero{min-height:44vh;}section.intro-text{padding:56px 0 48px;}}

.intro-hero .reel-bg{animation:none;inset:0;background-position:center top;}

section.close-cta.slogan-close{background:var(--white);padding:92px 0 84px;position:relative;overflow:hidden;}
section.close-cta.slogan-close::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 90% at 50% 45%, rgba(111,163,201,.14) 0%, rgba(111,163,201,0) 70%);
  pointer-events:none;
}
section.close-cta.slogan-close .wrap{max-width:1760px; padding:0 3.5vw;}
section.close-cta.slogan-close h2{position:relative;margin:0 auto;max-width:1320px;font-size:clamp(26px,4.4vw,74px);font-weight:500;line-height:1.12;letter-spacing:-.02em;text-wrap:balance;color:var(--ink);}
section.close-cta.slogan-close h2 em{font-style:italic;font-weight:500;color:var(--steel-dim);}
section.close-cta.slogan-close .underline-svg{width:100%;height:clamp(16px,2vw,28px);margin-top:clamp(10px,1.4vw,18px);}
section.close-cta.slogan-close .underline-svg path{stroke:var(--navy);}
@media (max-width:640px){
  section.close-cta.slogan-close{padding:64px 0 58px;}
  section.close-cta.slogan-close .wrap{padding:0 24px;}
}

.card-grid .card-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;}
.card-grid .card-list li{position:relative;padding-left:20px;font-size:14px;line-height:1.5;color:var(--slate);}
.card-grid .card-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--navy);}

.card-grid .card-list.card-list-cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;}
@media (max-width:860px){.card-grid .card-list.card-list-cols{grid-template-columns:1fr;}}

/* ---------- NEGOCIO: Automatización y Control ---------- */
#a-automatizacion > .subsec-lede{margin:0 0 36px;}

/* ---------- PRODUCTOS: bloques de marca ---------- */
.brand-feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center;margin:8px 0 48px;}
.brand-feature-text p{font-size:15.5px;line-height:1.8;color:var(--slate);margin:0 0 16px;}
.brand-feature-text .btn{margin-top:10px;}
.brand-feature-img{overflow:hidden;background:var(--grey-light);}
.brand-feature-img img{display:block;width:100%;aspect-ratio:16/11;object-fit:cover;}
.brand-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0;border-top:1px solid var(--grey-line);border-bottom:1px solid var(--grey-line);margin-bottom:8px;}
.brand-fig{padding:26px 24px 26px 0;display:flex;flex-direction:column;gap:8px;}
.brand-fig + .brand-fig{padding-left:24px;border-left:1px solid var(--grey-line);}
.brand-fig-num{font-family:var(--serif);font-size:clamp(28px,3.2vw,40px);font-weight:500;color:var(--navy);line-height:1.05;}
.brand-fig-label{font-family:var(--label);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);line-height:1.4;}
.brand-sub{font-family:var(--label);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin:48px 0 18px;}
.chip-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.chip-row li{font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border:1px solid var(--grey-line);border-radius:999px;padding:8px 16px;background:var(--white);}
section.service-block.alt .chip-row li{background:var(--white);}
.brand-tech{max-width:none;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px 40px;}
.brand-tech li strong{color:var(--ink);font-weight:600;}
.card-grid .card-media img{object-fit:cover;}
@media (max-width:860px){.brand-feature{grid-template-columns:1fr;gap:28px;}.brand-fig{padding:20px 16px 20px 0;}.brand-fig + .brand-fig{padding-left:16px;}}

.brand-feature-text .btn.btn-primary{background:var(--navy);color:var(--white);}
.brand-feature-text .btn.btn-primary:hover{background:var(--navy-deep);color:var(--white);box-shadow:0 14px 28px rgba(10,30,50,.22);}
.brand-fig-num{white-space:nowrap;font-size:clamp(24px,2.7vw,34px);}
.card-grid .card-media.ratio{height:auto;aspect-ratio:500/297;}
.card-grid .card-media.is-placeholder{background:var(--grey-light);color:var(--steel-dim);flex-direction:column;gap:8px;}
.card-grid .card-media.is-placeholder svg{width:38px;height:38px;}
.card-grid .card-media.is-placeholder span{font-family:var(--label);font-size:10px;letter-spacing:.06em;text-transform:uppercase;}

.card-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.card-grid .card-media.contain{background:var(--white);height:220px;}
.card-grid .card-media.contain img{object-fit:contain;padding:12px;}
.card-grid .card-media.contain::after{display:none;}
.tools-box{background:var(--white);border:1px solid var(--grey-line);padding:30px 32px;}
.tools-box > p{font-size:14.5px;line-height:1.7;color:var(--slate);margin:0 0 22px;max-width:820px;}
.tools-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;}
.tool-col h4{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink);margin:0 0 6px;}
.tool-col .card-list{margin-top:10px;}
@media (max-width:980px){.card-grid.cols-3{grid-template-columns:1fr;}.tools-cols{grid-template-columns:1fr;gap:24px;}}
.tools-box .card-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;}
.tools-box .card-list li{position:relative;padding-left:20px;font-size:14px;line-height:1.5;color:var(--slate);}
.tools-box .card-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--navy);}

/* Compañía: foto fija de la sede (nave + furgonetas), sin zoom */
.hq-chapter{min-height:82vh;}
.hq-chapter .reel-bg{inset:70px 0 0; animation:none; background-position:center 40%; filter:brightness(1.12) saturate(1.05);}
.hq-chapter.is-revealed .reel-bg{clip-path:circle(150% at 30% 50%);}
.hq-chapter .reel-fade{background:linear-gradient(0deg, rgba(5,8,12,.5) 0%, rgba(5,8,12,.14) 26%, rgba(5,8,12,0) 50%);}
.hq-chapter blockquote{text-shadow:0 2px 24px rgba(0,0,0,.55);}
@media (max-width:760px){.hq-chapter{min-height:64vh;} .hq-chapter .reel-bg{background-position:42% center;}}

/* Área privada: cabecera con el plano técnico y la espiral de marca */
.page-hero.page-hero-blueprint{
  background:
    linear-gradient(90deg, var(--white) 0%, var(--white) 34%, rgba(255,255,255,.7) 56%, rgba(255,255,255,.1) 100%),
    url('../img/mantenimiento-precision-bg.jpg') right center / cover no-repeat;
}
@media (max-width:760px){.page-hero.page-hero-blueprint{background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.75)), url('../img/mantenimiento-precision-bg.jpg') right center / cover no-repeat;}}

/* ---------- HOME: huecos de foto (sustituir por <img> dentro del <figure>) ---------- */
.ph-photo{margin:0;position:relative;aspect-ratio:4/3;background:var(--grey-light);border:1px dashed var(--grey-line);color:var(--steel-dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;overflow:hidden;}
.ph-photo svg{width:40px;height:40px;}
.ph-photo figcaption{font-family:var(--label);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:0 16px;}
.ph-photo.ph-tall{aspect-ratio:1/1;}
.ph-photo:has(img){border:none;}
.ph-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ph-photo:has(img) svg, .ph-photo:has(img) figcaption{display:none;}

/* botones para fondos claros */
.btn-navy{background:var(--navy);color:var(--white);}
.btn-navy:hover{background:var(--navy-deep);color:var(--white);box-shadow:0 14px 28px rgba(10,30,50,.22);}
.btn-line{border-color:var(--navy);color:var(--navy);}
.btn-line:hover{background:var(--navy);color:var(--white);}
.home-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.home-actions.center{justify-content:center;margin-top:48px;}

/* SERVICIOS */
section.home-services{background:var(--grey-light);padding:110px 0;border-top:1px solid var(--grey-line);}
.home-head{max-width:760px;margin-bottom:56px;}
.home-head h2, .home-split h2, .stats-head-split h2{font-size:clamp(26px,3vw,38px);line-height:1.15;margin-bottom:20px;}
.home-head p, .home-split p, .stats-head-split p{font-size:16px;line-height:1.75;color:var(--slate);margin:0;}
.home-svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;}
.home-svc{background:var(--white);border:1px solid var(--grey-line);display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;}
.home-svc:hover{transform:translateY(-6px);box-shadow:0 26px 48px rgba(10,30,50,.12);}
.home-svc .ph-photo{border-width:0 0 1px;}
.home-svc-body{padding:30px;display:flex;flex-direction:column;flex:1;}
.home-svc h3{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink);margin:0 0 12px;}
.home-svc p{font-size:14.5px;line-height:1.7;color:var(--slate);margin:0;}
.home-svc-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px;}
.home-svc-list li{position:relative;padding-left:20px;font-size:14px;line-height:1.5;color:var(--slate);}
.home-svc-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--navy);}
.home-svc .card-link{margin-top:auto;padding-top:22px;align-self:flex-start;font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);}
.home-svc .card-link:hover{color:var(--navy-deep);}
.home-cta-row{margin-top:56px;padding:30px 34px;background:var(--white);border-left:4px solid var(--navy);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.home-cta-row p{margin:0;font-family:var(--serif);font-size:clamp(18px,1.8vw,22px);color:var(--ink);}

/* SOBRE ANANTA (texto + foto) */
section.home-split{background:var(--white);padding:110px 0;}
.home-split-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;}

/* sectores / calidad / marcas */
.sectors-cta{margin-top:44px;}
.stats-head.stats-head-split{max-width:none;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:64px;align-items:center;}
.stats-head-split .btn{margin-top:28px;}
.brands-lede{max-width:620px;margin:36px auto 0;font-size:15.5px;line-height:1.7;color:var(--slate);}
.brands .brands-cta{margin-top:26px;}

/* CTA FINAL */
section.home-final-cta{background:var(--navy-deep);padding:90px 0;}
.home-final-inner{display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:40px;align-items:center;}
.home-final-cta h2{color:var(--paper);font-size:clamp(26px,3vw,40px);line-height:1.15;margin:0 0 14px;}
.home-final-cta p{color:var(--ink-soft);font-size:16px;margin:0;max-width:560px;}
.home-final-cta .home-actions{margin-top:0;}

@media (max-width:980px){
  .home-svc-grid{grid-template-columns:1fr;max-width:560px;}
  .home-split-inner, .stats-head.stats-head-split, .home-final-inner{grid-template-columns:1fr;gap:36px;}
  .ph-photo.ph-tall{aspect-ratio:4/3;}
}
@media (max-width:760px){
  section.home-services, section.home-split{padding:80px 0;}
  .home-cta-row{padding:24px;}
  .home-actions .btn, .home-cta-row .btn{width:100%;justify-content:center;}
}

/* Bloques de texto + hueco de foto (Compañía, Negocio, Productos, Sector agua) */
.block-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:64px;align-items:center;margin-bottom:56px;}
.block-split.reverse > :first-child{order:2;}
.block-split .block-head{margin-bottom:0;}
section.intro-text .block-split, .service-block .block-split{margin-bottom:0;}
.card-grid .ph-photo.ph-card{margin:-34px -34px 24px;aspect-ratio:auto;height:210px;border:0;border-bottom:1px dashed var(--grey-line);}
.card-grid .ph-photo.ph-card.ph-ratio{height:auto;aspect-ratio:500/297;}
section.content-block.alt .card-grid .ph-photo.ph-card{background:var(--white);}
@media (max-width:980px){
  .block-split{grid-template-columns:1fr;gap:36px;}
  .block-split.reverse > :first-child{order:0;}
}
section.alt .ph-photo, section.stats .ph-photo{background:var(--white);}

/* Tablas técnicas de producto */
.spec-table-wrap{overflow-x:auto;border:1px solid var(--grey-line);background:var(--white);}
.spec-table{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums;}
.spec-table th{font-family:var(--label);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);text-align:right;padding:14px 16px;border-bottom:1px solid var(--grey-line);background:var(--grey-light);white-space:nowrap;}
.spec-table td{padding:11px 16px;text-align:right;color:var(--slate);border-bottom:1px solid var(--grey-line);}
.spec-table th:first-child, .spec-table td:first-child{text-align:left;color:var(--ink);font-weight:600;}
.spec-table tbody tr:last-child td{border-bottom:none;}
.spec-table tbody tr:hover td{background:var(--grey-light);}
.spec-note{font-size:12.5px;color:var(--grey);margin:10px 0 0;}


/* HOME · Compromiso y calidad: cabecera + dos pilares con foto + cifras */
.stats-head.stats-head-row{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:48px;}
.stats-head-row > div{max-width:680px;}
.stats-head-row h2{font-size:clamp(26px,3vw,38px);line-height:1.15;margin-bottom:20px;}
.stats-head-row p{font-size:16px;line-height:1.75;color:var(--slate);margin:0;}
.stats-head-row .btn{flex-shrink:0;}
.pillar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
.pillar{background:var(--white);border:1px solid var(--grey-line);display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;}
.pillar:hover{transform:translateY(-6px);box-shadow:0 26px 48px rgba(10,30,50,.12);}
.pillar-media{margin:0;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--white);border-bottom:1px solid var(--grey-line);}
.pillar-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.pillar:hover .pillar-media img{transform:scale(1.05);}
.pillar-body{padding:30px 32px 34px;display:flex;flex-direction:column;}
.pillar-tag{font-family:var(--label);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel-dim);margin-bottom:12px;}
.pillar h3{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink);margin:0 0 12px;}
.pillar p{font-size:14.5px;line-height:1.7;color:var(--slate);margin:0;}
@media (max-width:760px){
  .stats-head.stats-head-row{flex-direction:column;align-items:flex-start;gap:24px;}
  .pillar-grid{grid-template-columns:1fr;}
}

/* Fotos pendientes dentro de tarjetas con .card-media */
.card-grid .card-media.is-pending{background:var(--grey-light);}
.card-grid .card-media.is-pending::after{display:none;}
.card-media.is-pending > .ph-photo{position:absolute;inset:0;aspect-ratio:auto;border:0;}
section.alt .card-media.is-pending, section.area.alt .card-media.is-pending{background:var(--white);}

/* ---------- BLOG ---------- */
section.blog-section{background:var(--white);padding:24px 0 110px;}
.blog-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:44px;}
.blog-filter{font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:var(--white);border:1px solid var(--grey-line);border-radius:999px;padding:9px 18px;cursor:pointer;transition:all .2s ease;}
.blog-filter:hover{border-color:var(--navy);}
.blog-filter[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--white);}
.blog-filter .count{opacity:.6;margin-left:4px;}
.blog-empty{font-size:16px;color:var(--slate);padding:48px 0;margin:0;}

.post-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.post-cat{font-family:var(--label);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--white);background:var(--steel-dim);padding:5px 10px;}
.post-meta time{font-size:13px;color:var(--grey);}

.post-featured{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);border:1px solid var(--grey-line);background:var(--white);margin-bottom:28px;transition:box-shadow .3s ease, transform .3s cubic-bezier(.2,.7,.2,1);}
.post-featured:hover{transform:translateY(-4px);box-shadow:0 26px 48px rgba(10,30,50,.12);}
.post-featured-media{margin:0;position:relative;min-height:380px;overflow:hidden;background:var(--grey-light);}
.post-featured-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.post-featured-media.ph-photo{aspect-ratio:auto;border:0;}
.post-featured-body{padding:44px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;}
.post-featured-label{font-family:var(--label);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);margin-bottom:18px;}
.post-featured h2{font-family:var(--serif);font-size:clamp(24px,2.6vw,34px);font-weight:500;line-height:1.15;color:var(--ink);margin:0 0 16px;}
.post-featured p{font-size:15.5px;line-height:1.75;color:var(--slate);margin:0 0 26px;}

.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;}
.post-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--grey-line);transition:box-shadow .3s ease, transform .3s cubic-bezier(.2,.7,.2,1);}
.post-card:hover{transform:translateY(-6px);box-shadow:0 26px 48px rgba(10,30,50,.12);}
.post-card-media{margin:0;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--grey-light);}
.post-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.post-card:hover .post-card-media img, .post-featured:hover .post-featured-media img{transform:scale(1.04);}
.post-card-media.ph-photo{border:0;border-bottom:1px dashed var(--grey-line);}
.post-card-body{padding:26px 28px 30px;display:flex;flex-direction:column;flex:1;}
.post-card h3{font-family:var(--serif);font-size:20px;font-weight:500;line-height:1.25;color:var(--ink);margin:0 0 10px;}
.post-card p{font-size:14.5px;line-height:1.7;color:var(--slate);margin:0 0 18px;}
.post-link{margin-top:auto;font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);}

/* Noticia */
main.blog-post{padding-top:140px;background:var(--white);}
.post-article{max-width:820px;padding-bottom:90px;}
.post-back{display:inline-block;font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin-bottom:28px;}
.post-article h1{font-family:var(--serif);font-size:clamp(30px,4vw,48px);font-weight:500;line-height:1.1;color:var(--ink);margin:0 0 18px;}
.post-lede{font-size:18px;line-height:1.65;color:var(--slate);margin:0 0 36px;}
.post-hero-media{margin:0 0 40px;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--grey-light);}
.post-hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.post-body{font-size:16.5px;line-height:1.85;color:var(--slate);}
.post-body p{margin:0 0 20px;}
.post-body h2{font-family:var(--serif);font-size:26px;font-weight:500;color:var(--ink);margin:40px 0 14px;}
.post-body ul{margin:0 0 20px;padding:0;list-style:none;display:grid;gap:10px;}
.post-body li{position:relative;padding-left:24px;}
.post-body li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;background:var(--navy);}
.post-share{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:28px;border-top:1px solid var(--grey-line);}
.post-share span{font-family:var(--label);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);margin-right:6px;}
.post-share a, .post-share button{font-family:var(--label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);background:var(--white);border:1px solid var(--grey-line);padding:9px 16px;cursor:pointer;transition:all .2s ease;}
.post-share a:hover, .post-share button:hover{background:var(--navy);border-color:var(--navy);color:var(--white);}
.post-more{background:var(--grey-light);padding:80px 0 100px;border-top:1px solid var(--grey-line);}
.post-more .eyebrow{margin-bottom:32px;}

@media (max-width:980px){
  .post-featured{grid-template-columns:1fr;}
  .post-featured-media{min-height:0;aspect-ratio:16/9;}
  .post-featured-body{padding:30px;}
  .post-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .post-grid{grid-template-columns:1fr;}
  main.blog-post{padding-top:110px;}
}

/* Productos · fotos de serie Nakakin (fondo de estudio, sin recortar la bomba) */
.card-grid .card-media.nak-media img{object-fit:cover;}
.card-grid .card-media.nak-media::after{display:none;}
.ph-photo.ph-portrait{aspect-ratio:3/4;max-height:640px;width:100%;}
@media (max-width:980px){.ph-photo.ph-portrait{aspect-ratio:4/5;max-height:none;}}
