/* ==========================================================================
   TIVOX Solutions S.L. — hoja de estilos de la web corporativa (2026)
   Direccion: "acero y luz". Fondo gris acero claro, bandas grafito para el
   software, fotografia real a sangre y un unico acento: el cian de la vision.
   ========================================================================== */

:root{
  /* Neutros: acero con un punto de azul, nunca gris puro */
  --ground:     #eef1f2;
  --paper:      #ffffff;
  --ink:        #111518;
  --ink-2:      #454f56;
  --ink-3:      #5f6a71;
  --line:       #d3d9dc;
  --line-soft:  #e2e7e9;
  --line-strong:#86929a;   /* bordes de campos y botones: 3:1 sobre blanco */

  /* Bandas oscuras (sala de control) */
  --graphite:   #0d1215;
  --graphite-2: #151c20;
  --graphite-3: #1e272c;
  --on-dark:    #e9eef0;
  --on-dark-2:  #a3b0b7;
  --on-dark-3:  #85939b;
  --line-dark:  #26323a;

  /* Acento: cian de la vision artificial */
  --accent:      #06718e;   /* sobre claro, AA */
  --accent-ink:  #065f78;
  --accent-lit:  #3cc6e6;   /* sobre oscuro */
  --accent-soft: rgba(8,122,153,.09);

  /* Senal (solo datos de inspeccion) */
  --ok:   #1f9d55;
  --nok:  #d63a3a;
  --warn: #d99a00;


  /* Tipografia */
  --display: "Archivo", "Arial Narrow", Arial, sans-serif;
  --body:    "Hanken Grotesk", "Segoe UI", system-ui, sans-serif;
  --mono:    "JetBrains Mono", "Cascadia Mono", Consolas, monospace;

  /* Movimiento: salida exponencial, desde un estado ya visible */
  --ease-out: cubic-bezier(.23, 1, .32, 1);

  --step--1: clamp(.8rem, .78rem + .1vw, .86rem);
  --step-0:  clamp(1rem, .97rem + .15vw, 1.08rem);
  --step-1:  clamp(1.18rem, 1.1rem + .4vw, 1.4rem);
  --step-2:  clamp(1.45rem, 1.25rem + .9vw, 2rem);
  --step-3:  clamp(1.9rem, 1.5rem + 1.9vw, 3rem);
  --step-4:  clamp(2.3rem, 1.6rem + 3.4vw, 4.6rem);

  --gutter: clamp(1rem, .4rem + 2.6vw, 3rem);
  --wrap: 1280px;
  --radius: 3px;
  --header-h: 72px;

  color-scheme: light;
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
:target{ scroll-margin-top:calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:var(--body);
  font-size:var(--step-0);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
::selection{ background:var(--accent); color:#fff; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

h1,h2,h3,h4{
  font-family:var(--display);
  font-stretch:112%;
  font-weight:700;
  line-height:1.06;
  letter-spacing:-.012em;
  margin:0;
  text-wrap:balance;
}
h1{ font-size:var(--step-4); font-stretch:118%; letter-spacing:-.02em; }
h2{ font-size:var(--step-3); }
h3{ font-size:var(--step-1); font-stretch:106%; line-height:1.2; }
p{ margin:0; }
p + p{ margin-top:1em; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.skip{ position:absolute; left:-9999px; top:0; z-index:100; background:var(--ink); color:#fff; padding:.6rem 1rem; }
.skip:focus{ left:1rem; top:1rem; }

.eyebrow{
  font-family:var(--mono);
  font-size:.74rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  display:flex; align-items:center; gap:.6rem;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:currentColor; }
.lead{ font-size:var(--step-1); line-height:1.5; color:var(--ink-2); max-width:60ch; }
.muted{ color:var(--ink-3); }
.mono{ font-family:var(--mono); font-feature-settings:"zero"; }
.num{ font-variant-numeric:tabular-nums; }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  min-height:48px; padding:.8rem 1.35rem;
  font-family:var(--body); font-weight:600; font-size:.96rem; letter-spacing:.01em;
  text-decoration:none; border-radius:var(--radius);
  background:var(--accent); color:#fff; border:1px solid var(--accent);
  cursor:pointer; transition:background .18s, border-color .18s, color .18s, transform .18s;
}
.btn:active{ transform:translateY(1px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.on-dark .btn--ghost, .btn--light{ color:var(--on-dark); border-color:rgba(233,238,240,.35); background:transparent; }
.btn svg{ width:18px; height:18px; flex:none; }
.link{ color:var(--accent); font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:1px; }

/* ---------- Cabecera ---------- */
.site-header{
  position:sticky; top:env(safe-area-inset-top,0px); z-index:50;
  background:rgba(238,241,242,.9);
  backdrop-filter:saturate(1.4) blur(12px); -webkit-backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{ height:var(--header-h); display:flex; align-items:center; gap:1.5rem; }
.brand{ display:flex; align-items:center; gap:.8rem; text-decoration:none; flex:none; }
.brand img{ height:26px; width:auto; }
.brand__tag{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3); border-left:1px solid var(--line); padding-left:.8rem; line-height:1.25;
}
.nav{ display:flex; align-items:center; gap:.2rem; margin-left:auto; }
.nav a, .nav summary{ white-space:nowrap;
  text-decoration:none; font-size:.93rem; font-weight:500; color:var(--ink-2);
  padding:.55rem .75rem; border-radius:var(--radius);
}
.nav a[aria-current="page"]{ color:var(--ink); box-shadow:inset 0 -2px 0 var(--accent); border-radius:0; }
.nav .nav__cta{ background:var(--ink); color:#fff; margin-left:.5rem; padding-inline:1rem; }
.nav .nav__social{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; margin-left:.4rem; padding:.45rem;
  border:1px solid var(--line); color:var(--ink-2); font-size:.85rem; transition:border-color .15s; }
.nav .nav__social svg{ flex-shrink:0; }
@media (min-width:1025px){ .nav .nav__social span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); } }

/* Desplegables de la cabecera (Soluciones e idioma): <details>, funcionan sin JavaScript */
.nav details{ position:relative; }
.nav summary{ list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:.4rem; user-select:none; -webkit-user-select:none; }
.nav summary::-webkit-details-marker{ display:none; }
.nav summary::after{ content:""; width:.42rem; height:.42rem; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:translateY(-2px) rotate(45deg); transition:transform .2s var(--ease-out); opacity:.7; }
.nav details[open] > summary::after{ transform:translateY(1px) rotate(-135deg); }
.nav summary.is-actual{ color:var(--ink); box-shadow:inset 0 -2px 0 var(--accent); border-radius:0; }
.nav details[open] > summary{ color:var(--ink); }
.nav__panel{ position:absolute; top:calc(100% + 12px); left:-.5rem; z-index:60; display:grid; grid-template-columns:auto; gap:0 2.4rem;
  padding:1.3rem 1.5rem 1.4rem; background:var(--paper); border:1px solid var(--line); border-top:2px solid var(--accent);
  box-shadow:0 28px 48px -28px rgba(13,18,21,.4); }
.nav__col{ display:flex; flex-direction:column; min-width:12rem; }
.nav__k{ font-family:var(--mono); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3);
  padding:0 .6rem .55rem; margin-bottom:.35rem; border-bottom:1px solid var(--line-soft); }
.nav__panel a{ display:flex; align-items:baseline; gap:.7rem; padding:.5rem .6rem; font-size:.95rem; color:var(--ink); }
.nav__panel a b{ font-family:var(--mono); font-size:.75rem; font-weight:500; color:var(--accent); font-feature-settings:"zero"; }
.nav__panel a[aria-current="page"]{ box-shadow:inset 2px 0 0 var(--accent); }
.langs{ margin-left:.4rem; }
.langs > summary{ font-family:var(--mono); font-size:.8rem; letter-spacing:.08em; padding:.5rem .6rem; border:1px solid var(--line); }
.langs__lista{ position:absolute; top:calc(100% + 12px); right:0; z-index:60; display:flex; flex-direction:column; min-width:11rem; padding:.4rem;
  background:var(--paper); border:1px solid var(--line); box-shadow:0 28px 48px -28px rgba(13,18,21,.4); }
.langs__lista a{ display:flex; align-items:center; gap:.7rem; padding:.55rem .6rem; font-size:.93rem; color:var(--ink-2); }
.langs__lista a[aria-current="true"]{ color:var(--ink); font-weight:600; box-shadow:inset 2px 0 0 var(--accent); border-radius:0; }
.flag{ flex-shrink:0; display:block; width:22px; height:auto; border-radius:2px; box-shadow:0 0 0 1px rgba(13,18,21,.18); }
.nav-toggle{
  display:none; margin-left:auto; min-height:44px; min-width:44px; padding:0 .9rem;
  background:transparent; border:1px solid var(--line); border-radius:var(--radius);
  font-family:var(--mono); font-size:.75rem; letter-spacing:.12em; color:var(--ink); cursor:pointer;
}
@media (max-width:1320px){ .brand__tag{ display:none; } }
@media (max-width:1024px){
  .nav-toggle{ display:inline-flex; align-items:center; }
  .nav{
    position:fixed; inset:calc(var(--header-h) + env(safe-area-inset-top,0px)) 0 auto 0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    padding:.5rem var(--gutter) 1.25rem; margin:0;
    max-height:calc(100dvh - var(--header-h)); overflow:auto;
    box-shadow:0 24px 40px -24px rgba(13,18,21,.35);
  }
  .nav:not(.is-open){ display:none; }
  .nav a, .nav summary{ padding:.95rem .25rem; border-bottom:1px solid var(--line-soft); font-size:1.02rem; border-radius:0; }
  .nav summary{ display:flex; justify-content:space-between; }
  .nav a[aria-current="page"], .nav summary.is-actual{ box-shadow:inset 3px 0 0 var(--accent); padding-left:.8rem; }
  .nav__panel, .langs__lista{ position:static; box-shadow:none; border:0; padding:.4rem 0 .8rem; min-width:0; }
  .nav__panel{ grid-template-columns:1fr; gap:.8rem; }
  .nav__panel a, .langs__lista a{ padding:.75rem .6rem; font-size:1rem; border-bottom:0; }
  .nav .nav__cta{ margin:1rem 0 0; text-align:center; border-bottom:0; padding:.95rem; }
  .nav .nav__social{ margin:.6rem 0 0; padding:.8rem; border:1px solid var(--line); }
  .langs{ margin:.6rem 0 0; }
  .langs > summary{ border:1px solid var(--line); padding:.8rem; font-size:.9rem; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--graphite); color:var(--on-dark);
  min-height:min(88vh, 860px);
  min-height:min(88svh, 860px);
  display:flex; align-items:flex-end;
}
.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:62% 50%; filter:saturate(.72) contrast(1.05); }
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(90deg, rgba(13,18,21,.94) 0%, rgba(13,18,21,.8) 34%, rgba(13,18,21,.25) 70%, rgba(13,18,21,.1) 100%),
    linear-gradient(0deg, rgba(13,18,21,.9) 0%, rgba(13,18,21,0) 45%);
}
.hero__inner{ width:100%; padding-block:clamp(6rem, 12vh, 9rem) 0; }
.hero__copy{ max-width:760px; }
.hero .eyebrow{ color:var(--accent-lit); }
.hero h1{ color:#fff; margin-top:1.1rem; }
.hero h1 em{ font-style:normal; color:var(--accent-lit); }
.hero .lead{ color:var(--on-dark-2); margin-top:1.4rem; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }

/* Marco de inspeccion sobre la foto */
.roi{
  position:absolute; z-index:-1; pointer-events:none;
  right:clamp(6%, 12vw, 16%); top:22%; width:clamp(150px, 20vw, 300px); aspect-ratio:1/1.05;
  border:1px solid rgba(60,198,230,.85);
  box-shadow:0 0 0 1px rgba(13,18,21,.25), inset 0 0 40px rgba(60,198,230,.12);
}
.roi::before, .roi::after{
  content:""; position:absolute; width:14px; height:14px; border:2px solid var(--accent-lit);
}
.roi::before{ top:-2px; left:-2px; border-right:0; border-bottom:0; }
.roi::after{ bottom:-2px; right:-2px; border-left:0; border-top:0; }
.roi__tag{
  position:absolute; left:-1px; bottom:100%; transform:translateY(-4px);
  display:flex; gap:.5rem; align-items:center; white-space:nowrap;
  font-family:var(--mono); font-size:.74rem; letter-spacing:.06em;
  background:rgba(13,18,21,.82); color:var(--on-dark); padding:.3rem .5rem;
  border-left:2px solid var(--accent-lit);
}
.roi__tag b{ color:#4fdc8c; font-weight:500; }
.roi__scan{
  position:absolute; left:0; right:0; height:1px; top:0;
  background:linear-gradient(90deg, transparent, var(--accent-lit), transparent);
  animation:scan 3.6s cubic-bezier(.45,0,.55,1) infinite;
}
@keyframes scan{ 0%{ top:4%; opacity:0 } 12%{ opacity:1 } 88%{ opacity:1 } 100%{ top:96%; opacity:0 } }
@media (max-width:760px){
  .roi{ display:none; }
  .hero::before{ background:linear-gradient(0deg, rgba(13,18,21,.96) 0%, rgba(13,18,21,.86) 55%, rgba(13,18,21,.6) 100%); }
}

/* Barra de medidas bajo el hero */
.gauge{
  margin-top:clamp(3rem, 7vh, 5rem);
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  border-top:1px solid rgba(233,238,240,.18);
}
.gauge > div{ padding:1.25rem 1.25rem 1.6rem 0; }
.gauge > div + div{ padding-left:1.25rem; border-left:1px solid rgba(233,238,240,.12); }
.gauge dt{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-3); }
.gauge dd{ margin:.35rem 0 0; font-family:var(--display); font-stretch:115%; font-weight:600; font-size:var(--step-2); color:#fff; font-variant-numeric:tabular-nums; line-height:1.1; }
.gauge dd small{ font-family:var(--body); font-stretch:100%; font-weight:500; font-size:.82rem; color:var(--on-dark-2); display:block; margin-top:.25rem; }
@media (max-width:760px){
  .gauge{ grid-template-columns:minmax(0,1fr); }
  .gauge > div + div{ padding-left:0; border-left:0; border-top:1px solid rgba(233,238,240,.12); }
  .gauge > div{ padding:1rem 0 1.1rem; }
}

/* ---------- Secciones ---------- */
.section{ padding-block:clamp(4rem, 3rem + 5vw, 7.5rem); }
.section--paper{ background:var(--paper); }
.section--tight{ padding-block:clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.on-dark{ background:var(--graphite); color:var(--on-dark); }
.on-dark h2, .on-dark h3{ color:#fff; }
.on-dark .eyebrow{ color:var(--accent-lit); }
.on-dark .lead, .on-dark p{ color:var(--on-dark-2); }
.section__head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.5rem 4rem; align-items:end; margin-bottom:clamp(2.25rem, 1.5rem + 3vw, 4rem); }
.section__head h2{ margin-top:.9rem; }
.section__head .lead{ font-size:var(--step-0); }
@media (max-width:860px){ .section__head{ grid-template-columns:minmax(0,1fr); } }

/* Tres pilares */
.pillars{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.pillar{ background:var(--paper); display:flex; flex-direction:column; text-decoration:none; color:inherit; }
.pillar__img{ aspect-ratio:4/3; overflow:hidden; background:var(--graphite); }
.pillar__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out), filter .5s var(--ease-out); filter:saturate(.8); }
.pillar__body{ padding:1.6rem 1.6rem 1.8rem; display:flex; flex-direction:column; gap:.8rem; flex:1; }
.pillar__kicker{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); }
.pillar p{ color:var(--ink-2); font-size:.97rem; }
.pillar ul{ margin:.2rem 0 0; padding:0; list-style:none; display:grid; gap:.35rem; font-size:.92rem; color:var(--ink-2); }
.pillar li{ padding-left:1.1rem; position:relative; }
.pillar li::before{ content:""; position:absolute; left:0; top:.68em; width:6px; height:1px; background:var(--accent); }
.pillar__more{ margin-top:auto; padding-top:.6rem; font-weight:600; color:var(--accent); font-size:.93rem; }
@media (max-width:960px){ .pillars{ grid-template-columns:minmax(0,1fr); } .pillar{ display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); } .pillar__img{ aspect-ratio:auto; min-height:100%; } }
@media (max-width:620px){ .pillar{ display:flex; } .pillar__img{ aspect-ratio:16/10; min-height:0; } .pillar__img img{ aspect-ratio:16/10; height:auto; } }

/* ---------- Plataforma de software ---------- */
.suite{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(1.5rem, 1rem + 3vw, 4rem); align-items:start; }
.suite__tabs{ display:flex; flex-direction:column; border-top:1px solid var(--line-dark); }
.suite__tab{
  text-align:left; background:none; border:0; color:var(--on-dark-2); cursor:pointer;
  padding:1.15rem 0 1.15rem 1.1rem; border-bottom:1px solid var(--line-dark);
  display:grid; gap:.3rem; position:relative; font:inherit;
}
.suite__tab::before{ content:""; position:absolute; left:0; top:1.2rem; bottom:1.2rem; width:2px; background:transparent; transition:background .2s; }
.suite__tab strong{ font-family:var(--display); font-stretch:112%; font-weight:600; font-size:1.12rem; color:var(--on-dark); letter-spacing:-.005em; display:flex; gap:.6rem; align-items:baseline; }
.suite__tab strong span{ font-family:var(--mono); font-stretch:100%; font-size:.74rem; letter-spacing:.12em; color:var(--on-dark-3); font-weight:400; text-transform:uppercase; }
.suite__tab em{ font-style:normal; font-size:.92rem; line-height:1.5; }
.suite__tab[aria-selected="true"]::before{ background:var(--accent-lit); }
.suite__tab[aria-selected="true"] strong{ color:#fff; }
.suite__tab[aria-selected="true"] em{ color:var(--on-dark); }
.suite__panel{ display:grid; gap:1rem; min-width:0; }
.screen{
  margin:0; background:var(--graphite-2); border:1px solid var(--line-dark); border-radius:6px; overflow:hidden;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.7);
}
.screen__bar{ display:flex; align-items:center; gap:.45rem; padding:.55rem .8rem; border-bottom:1px solid var(--line-dark); font-family:var(--mono); font-size:.74rem; letter-spacing:.06em; color:var(--on-dark-3); }
.screen__bar i{ width:8px; height:8px; border-radius:50%; background:var(--graphite-3); }
.screen__bar span{ margin-left:.4rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.screen img{ width:100%; }
.screen--light{ background:var(--paper); border-color:var(--line); box-shadow:0 30px 60px -40px rgba(13,18,21,.45); }
.screen--light .screen__bar{ border-color:var(--line); color:var(--ink-3); }
.screen--light .screen__bar i{ background:var(--line); }
.suite__facts{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); }
.suite__facts div{ background:var(--graphite); padding:1rem 1.1rem; }
.suite__facts dt{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-3); }
.suite__facts dd{ margin:.3rem 0 0; color:var(--on-dark); font-size:.95rem; line-height:1.4; }
.suite__caption{ font-size:.8rem; color:var(--on-dark-3); }
@media (max-width:960px){
  .suite{ grid-template-columns:minmax(0,1fr); }
  .suite__tabs{ flex-direction:row; overflow-x:auto; border-top:0; border-bottom:1px solid var(--line-dark); scrollbar-width:none; }
  .suite__tab{ flex:none; padding:.8rem 1rem; border-bottom:0; }
  .suite__tab em{ display:none; }
  .suite__tab::before{ top:auto; bottom:0; left:1rem; right:1rem; width:auto; height:2px; }
  .suite__facts{ grid-template-columns:minmax(0,1fr); }
}

/* Mosaico de informes */
.reports{ display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); gap:1rem; }
.reports figure{ margin:0; }
.reports .r-a{ grid-column:span 7; }
.reports .r-b{ grid-column:span 5; }
.reports .r-c{ grid-column:span 5; }
.reports .r-d{ grid-column:span 7; }
.reports figcaption{ font-size:.84rem; color:var(--ink-3); margin-top:.6rem; }
.reports figcaption b{ color:var(--ink); font-weight:600; }
@media (max-width:860px){ .reports .r-a, .reports .r-b, .reports .r-c, .reports .r-d{ grid-column:1 / -1; } }

/* ---------- Banda HIKROBOT ---------- */
.feature{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:520px; background:var(--graphite); color:var(--on-dark); }
.feature__media{ position:relative; overflow:hidden; }
.feature__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feature__body{ padding:clamp(2.5rem, 2rem + 4vw, 6rem) clamp(1.25rem, 1rem + 4vw, 5rem); display:flex; flex-direction:column; justify-content:center; gap:1.1rem; max-width:680px; }
.feature__body h2{ color:#fff; font-size:var(--step-3); }
.feature__body p{ color:var(--on-dark-2); }
.spec{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0; margin-top:.6rem; border-top:1px solid var(--line-dark); }
.spec div{ padding:.85rem 0; border-bottom:1px solid var(--line-dark); }
.spec div:nth-child(odd){ padding-right:1rem; }
.spec dt{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-3); }
.spec dd{ margin:.2rem 0 0; color:#fff; font-weight:500; }
@media (max-width:860px){ .feature{ grid-template-columns:minmax(0,1fr); } .feature__media{ aspect-ratio:3/2; } }

/* ---------- Proyectos ---------- */
.cases{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.25rem; }
.case{ background:var(--paper); border:1px solid var(--line); display:flex; flex-direction:column; }
.case__img{ aspect-ratio:16/10; overflow:hidden; background:var(--graphite); position:relative; }
.case__img img{ width:100%; height:100%; object-fit:cover; }
.case__sector{ position:absolute; left:.8rem; top:.8rem; font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; background:rgba(13,18,21,.78); color:#fff; padding:.3rem .55rem; }
.case__body{ padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; gap:.7rem; flex:1; }
.case__body p{ color:var(--ink-2); font-size:.95rem; }
.case__kpis{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.8rem; margin-top:auto; padding-top:1rem; border-top:1px solid var(--line-soft); }
.case__kpis dt{ font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); }
.case__kpis dd{ margin:.15rem 0 0; font-family:var(--display); font-stretch:112%; font-weight:600; font-size:1.3rem; font-variant-numeric:tabular-nums; }
.case__kpis dd.ok{ color:var(--ok); }
@media (max-width:960px){ .cases{ grid-template-columns:minmax(0,1fr); } .case{ display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); } .case__img{ aspect-ratio:auto; } }
@media (max-width:620px){ .case{ display:flex; } .case__img{ aspect-ratio:16/10; } .case__img img{ aspect-ratio:16/10; height:auto; } }

/* ---------- Bloque de socio (sin uso ahora) ---------- */
.partner{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2rem, 1rem + 4vw, 5rem); align-items:center; }
.partner__logo{ width:min(320px, 70%); }
.partner__machines{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 2rem; margin-top:1.5rem; }
.partner__machines div{ padding:.8rem 0; border-top:1px solid var(--line); }
.partner__machines dt{ font-weight:600; font-size:.95rem; }
.partner__machines dd{ margin:.15rem 0 0; font-family:var(--mono); font-size:.76rem; color:var(--ink-3); letter-spacing:.02em; }
.partner__img{ border:1px solid var(--line); overflow:hidden; background:#1c5aa6; }
.partner__img img{ width:100%; }
@media (max-width:860px){ .partner{ grid-template-columns:minmax(0,1fr); } .partner__machines{ grid-template-columns:minmax(0,1fr); } }

/* ---------- Metodo ---------- */
.steps{ counter-reset:step; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); border-top:2px solid var(--ink); }
.step{ counter-increment:step; padding:1.2rem 1.25rem 0 0; }
.step + .step{ padding-left:1.25rem; border-left:1px solid var(--line); }
.step::before{ content:counter(step, decimal-leading-zero); font-family:var(--mono); font-size:.74rem; color:var(--accent); letter-spacing:.1em; display:block; margin-bottom:.8rem; }
.step h3{ font-size:1.05rem; margin-bottom:.5rem; }
.step p{ color:var(--ink-2); font-size:.93rem; }
@media (max-width:960px){ .steps{ grid-template-columns:minmax(0,1fr); border-top:0; } .step, .step + .step{ padding:1.1rem 0; border-left:0; border-top:1px solid var(--line); display:grid; grid-template-columns:3rem minmax(0,1fr); } .step::before{ grid-row:span 2; } }

/* ---------- Contacto (CTA) ---------- */
.contact-band{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(2rem, 1rem + 4vw, 5rem); align-items:center; }
.contact-lines{ display:grid; gap:0; border-top:1px solid var(--line-dark); }
.contact-lines a, .contact-lines div{ display:grid; grid-template-columns:7.5rem 1fr; gap:1rem; align-items:baseline; padding:1rem 0; border-bottom:1px solid var(--line-dark); text-decoration:none; color:var(--on-dark); }
.contact-lines span{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-3); }
.contact-lines b{ font-family:var(--display); font-stretch:110%; font-weight:600; font-size:var(--step-1); font-variant-numeric:tabular-nums; word-break:break-word; }
@media (max-width:860px){ .contact-band{ grid-template-columns:minmax(0,1fr); } .contact-lines a, .contact-lines div{ grid-template-columns:minmax(0,1fr); gap:.2rem; } }

/* ---------- Paginas interiores ---------- */
.page-hero{ position:relative; isolation:isolate; background:var(--graphite); color:var(--on-dark); overflow:hidden; }
.page-hero__media{ position:absolute; inset:0; z-index:-2; }
.page-hero__media img{ width:100%; height:100%; object-fit:cover; filter:saturate(.7); }
.page-hero::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg, rgba(13,18,21,.95) 0%, rgba(13,18,21,.78) 45%, rgba(13,18,21,.35) 100%); }
.page-hero .wrap{ padding-block:clamp(4.5rem, 3rem + 7vw, 8.5rem) clamp(3rem, 2rem + 4vw, 5rem); }
.page-hero h1{ color:#fff; font-size:var(--step-4); max-width:18ch; margin-top:1rem; }
.page-hero .lead{ color:var(--on-dark-2); margin-top:1.25rem; }
.page-hero .eyebrow{ color:var(--accent-lit); }
.page-hero--plain{ background:var(--graphite); }
.page-hero--plain::before{ display:none; }
.crumbs{ font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--on-dark-3); margin-bottom:1.25rem; }
.crumbs a{ color:var(--on-dark-2); text-decoration:none; }

.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem, 1rem + 4vw, 5rem); align-items:center; }
.split--top{ align-items:start; }
.split + .split{ margin-top:clamp(3rem, 2rem + 4vw, 6rem); }
.split__media{ margin:0; }
.split__media img{ width:100%; border:1px solid var(--line); }
.split__body{ display:flex; flex-direction:column; gap:1rem; }
.split__body h2{ font-size:var(--step-2); }
.split__body p{ color:var(--ink-2); }
.on-dark .split__body p{ color:var(--on-dark-2); }
@media (min-width:861px){ .split--flip .split__media{ order:2; } }
@media (max-width:860px){ .split{ grid-template-columns:minmax(0,1fr); } }
/* Contacto: qué pasa después de enviar (pasos numerados) */
.pasos-contacto{ margin-top:1rem; padding:1.4rem 1.5rem; background:var(--paper); border:1px solid var(--line); }
.pasos-contacto h3{ font-size:var(--step-0); font-stretch:106%; margin-bottom:.9rem; }
.pasos-contacto ol{ list-style:none; margin:0; padding:0; counter-reset:paso; display:grid; gap:.85rem; }
.pasos-contacto li{ counter-increment:paso; display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.2rem; font-size:.95rem; line-height:1.5; color:var(--ink-2); }
.pasos-contacto li::before{ content:counter(paso, decimal-leading-zero); font-family:var(--mono); font-size:.75rem; color:var(--accent); padding-top:.2rem; }
@media (max-width:860px){
  .split--contacto > .split__body:last-child{ order:-1; }
  .split--contacto .split__media{ display:none; }
}

.checks{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.checks li{ padding-left:1.6rem; position:relative; color:var(--ink-2); }
.on-dark .checks li{ color:var(--on-dark-2); }
.checks li::before{ content:""; position:absolute; left:0; top:.5em; width:.8rem; height:.45rem; border-left:2px solid var(--accent); border-bottom:2px solid var(--accent); transform:rotate(-45deg); }
.on-dark .checks li::before{ border-color:var(--accent-lit); }

.grid{ display:grid; gap:1.25rem; }
.grid--2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.grid--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.grid--4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
@media (max-width:960px){ .grid--3, .grid--4{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:620px){ .grid--2, .grid--3, .grid--4{ grid-template-columns:minmax(0,1fr); } }
.tile{ background:var(--paper); border:1px solid var(--line); padding:1.5rem; display:flex; flex-direction:column; gap:.6rem; }
.tile__k{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.tile p{ color:var(--ink-2); font-size:.95rem; }
.on-dark .tile{ background:var(--graphite-2); border-color:var(--line-dark); }
.on-dark .tile p{ color:var(--on-dark-2); }
.on-dark .tile__k{ color:var(--accent-lit); }

.compliance{ display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); border:1px solid var(--line); background:var(--paper); }
.compliance div{ padding:1rem 1.1rem; }
.compliance div + div{ border-left:1px solid var(--line); }
.compliance dt{ font-family:var(--mono); font-size:.74rem; font-weight:500; color:var(--ink); }
.compliance dd{ margin:.25rem 0 0; font-size:.8rem; color:var(--ink-3); line-height:1.4; }
@media (max-width:960px){ .compliance{ grid-template-columns:repeat(2, minmax(0,1fr)); } .compliance div + div{ border-left:0; } .compliance div{ border-bottom:1px solid var(--line); } .compliance div:nth-child(even){ border-left:1px solid var(--line); } }

/* ---------- Formulario ---------- */
.form{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1.1rem 1.25rem; }
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field--full{ grid-column:1 / -1; }
.field label, .field legend{ font-size:.86rem; font-weight:600; color:var(--ink); }
.field label small{ font-weight:400; color:var(--ink-3); }
.field input, .field select, .field textarea{
  width:100%; font:inherit; font-size:1rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line-strong); border-radius:var(--radius);
  padding:.8rem .9rem; min-height:48px; transition:border-color .15s, box-shadow .15s;
}
.field textarea{ min-height:150px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(6,113,142,.28); }
.field input:user-invalid, .field textarea:user-invalid{ border-color:var(--nok); }
.consent{ grid-column:1 / -1; display:grid; grid-template-columns:auto 1fr; gap:.75rem; align-items:start; font-size:.88rem; color:var(--ink-2); }
.consent input{ width:20px; height:20px; margin-top:.15rem; accent-color:var(--accent); }
.legal-note{ grid-column:1 / -1; font-size:.78rem; line-height:1.55; color:var(--ink-3); border-top:1px solid var(--line); padding-top:1rem; }
.legal-note--plegable summary{ cursor:pointer; font-weight:600; color:var(--ink-2); text-decoration:underline; text-underline-offset:2px; }
.legal-note--plegable p{ margin-top:.5rem; }
.legal-note b{ color:var(--ink-2); font-weight:600; }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.formnote{ grid-column:1 / -1; padding:.9rem 1rem; border:1px solid #e9b8b8; border-radius:var(--radius); background:#fbeeee; color:#7a1f1f; font-size:.92rem; }
@media (max-width:620px){ .form{ grid-template-columns:minmax(0,1fr); } }

/* ---------- Texto legal ---------- */
.prose{ max-width:74ch; }
.prose h2{ font-size:var(--step-1); margin:2.4rem 0 .8rem; font-stretch:106%; }
.prose h2:first-child{ margin-top:0; }
.prose p, .prose li{ color:var(--ink-2); }
.prose ul{ padding-left:1.2rem; }
.prose li + li{ margin-top:.35rem; }
.prose table{ width:100%; border-collapse:collapse; font-size:.9rem; margin:1rem 0; }
.prose th, .prose td{ text-align:left; padding:.6rem .7rem; border-bottom:1px solid var(--line); vertical-align:top; }
.prose th{ font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); font-weight:500; }
.prose .table-wrap{ overflow-x:auto; }
.prose .pending{ background:#fff4d6; padding:0 .25rem; }
.prose a{ color:var(--accent); }

/* ---------- Pie ---------- */
.site-footer{ background:var(--graphite); color:var(--on-dark-2); padding-block:clamp(3rem, 2rem + 3vw, 4.5rem) 1.5rem; font-size:.9rem; }
.site-footer__grid{ display:grid; grid-template-columns:minmax(0,1.4fr) repeat(3, minmax(0,1fr)); gap:2rem; }
.site-footer img.logo{ height:26px; width:auto; margin-bottom:1.1rem; }
.site-footer .pie-t{ font-family:var(--mono); font-stretch:100%; font-size:.74rem; line-height:1.3; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-3); font-weight:500; margin-bottom:.9rem; }
.site-footer a{ color:var(--on-dark-2); text-decoration:none; display:block; padding:.25rem 0; }
.site-footer address{ font-style:normal; line-height:1.7; }
.site-footer__partner{ display:flex; align-items:center; gap:1rem; margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--line-dark); }
.site-footer__partner img{ height:34px; width:auto; opacity:.9; }
.site-footer__partner span{ font-size:.78rem; color:var(--on-dark-3); line-height:1.4; }
.site-footer__bottom{ margin-top:2.5rem; padding-top:1.25rem; border-top:1px solid var(--line-dark); display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; justify-content:space-between; font-size:.78rem; color:var(--on-dark-3); }
.site-footer__bottom nav{ display:flex; flex-wrap:wrap; gap:.25rem 1.25rem; }
.site-footer__bottom a{ display:inline; padding:0; color:var(--on-dark-3); }
.site-footer__bottom button{ background:none; border:0; padding:0; font:inherit; color:var(--on-dark-3); cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
@media (max-width:860px){ .site-footer__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } .site-footer__grid > div:first-child{ grid-column:1 / -1; } }
@media (max-width:520px){ .site-footer__grid{ grid-template-columns:minmax(0,1fr); } }

/* ---------- Aviso de cookies ---------- */
.cookie{
  position:fixed; z-index:80; left:1rem; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom,0px));
  max-width:560px; margin-inline:auto 1rem;
  background:var(--paper); color:var(--ink); border:1px solid var(--line);
  box-shadow:0 30px 60px -20px rgba(13,18,21,.45);
  padding:1.25rem 1.25rem 1.1rem; display:grid; gap:.9rem;
}
@media (min-width:700px){ .cookie{ left:auto; } }
.cookie h2{ font-size:1rem; font-stretch:106%; }
.cookie p{ font-size:.86rem; color:var(--ink-2); line-height:1.5; }
.cookie__actions{ display:flex; flex-wrap:wrap; gap:.5rem; }
.cookie__actions .btn{ min-height:44px; padding:.6rem 1rem; font-size:.88rem; flex:1 1 auto; }
.cookie__prefs{ display:grid; gap:.6rem; border-top:1px solid var(--line-soft); padding-top:.8rem; font-size:.86rem; }
.cookie__prefs label{ display:grid; grid-template-columns:auto 1fr; gap:.6rem; align-items:start; }
.cookie__prefs input{ width:18px; height:18px; margin-top:.15rem; accent-color:var(--accent); }
.cookie__prefs small{ display:block; color:var(--ink-3); }


/* ---------- Capas del sistema (software) ---------- */
.flow{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); border:1px solid var(--line-dark); }
.flow li{ padding:1.1rem 1.1rem 1.25rem; display:grid; gap:.3rem; position:relative; }
.flow li + li{ border-left:1px solid var(--line-dark); }
.flow li + li::before{ content:""; position:absolute; left:-6px; top:50%; width:10px; height:10px; background:var(--graphite); border-top:1px solid var(--accent-lit); border-right:1px solid var(--accent-lit); transform:translateY(-50%) rotate(45deg); }
.flow span{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-lit); }
.flow b{ font-family:var(--display); font-stretch:110%; font-weight:600; color:#fff; font-size:1.05rem; }
.flow em{ font-style:normal; font-size:.86rem; color:var(--on-dark-2); line-height:1.4; }
@media (max-width:960px){ .flow{ grid-template-columns:minmax(0,1fr); } .flow li + li{ border-left:0; border-top:1px solid var(--line-dark); } .flow li + li::before{ left:1.5rem; top:-6px; transform:rotate(135deg); } }

/* ---------- Recreacion del Hub ---------- */
.hub{ margin-top:1.25rem; background:#1b2330; color:#e6ebf2; border:1px solid #2a3547; border-radius:6px; overflow:hidden; }
.hub__top{ display:flex; flex-wrap:wrap; gap:.5rem 1rem; justify-content:space-between; align-items:center; padding:1rem 1.2rem; border-bottom:1px solid #2a3547; }
.hub__top b{ font-family:var(--display); font-stretch:115%; letter-spacing:.02em; color:#8f86ff; }
.hub__top span{ font-size:.85rem; display:flex; align-items:center; gap:.45rem; }
.hub__scroll{ overflow-x:auto; }
.hub table{ width:100%; min-width:680px; border-collapse:collapse; font-size:.88rem; font-variant-numeric:tabular-nums; }
.hub th{ font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:#8b97aa; font-weight:500; text-align:left; padding:.7rem 1.2rem; background:#222c3b; }
.hub td{ padding:.8rem 1.2rem; border-top:1px solid #2a3547; vertical-align:top; }
.hub td b{ display:block; font-weight:600; }
.hub td small{ display:block; font-size:.72rem; color:#8b97aa; letter-spacing:.03em; }
.hub .r{ text-align:right; }
.hub .ok{ color:#34d27d; } .hub .nok{ color:#ff6b6b; }
.hub__note{ font-size:.75rem; color:#8b97aa; padding:.7rem 1.2rem; border-top:1px solid #2a3547; }
.dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:.35rem; vertical-align:middle; }
.dot--ok{ background:#34d27d; box-shadow:0 0 0 3px rgba(52,210,125,.18); }
.dot--nok{ background:#ff5a5a; box-shadow:0 0 0 3px rgba(255,90,90,.18); }
.split__media.screen{ border-radius:6px; }
.split__media.screen img{ border:0; }

.contact-lines--light{ border-color:var(--line); }
.contact-lines--light a, .contact-lines--light div{ color:var(--ink); border-color:var(--line); }
.contact-lines--light span{ color:var(--ink-3); }
.nav .nav__cta[aria-current="page"]{ color:#fff; background:var(--accent); box-shadow:none; border-radius:var(--radius); }

/* ---------- Fortalezas ---------- */
.founder{
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:.8rem 3rem; align-items:end;
  background:var(--graphite); color:var(--on-dark); padding:clamp(1.5rem, 1rem + 2.5vw, 2.75rem);
  margin-bottom:1.25rem;
}
.founder__k{ grid-column:1 / -1; font-family:var(--mono); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-lit); }
.founder__names{ display:flex; flex-wrap:wrap; gap:.1rem 0; font-family:var(--display); font-stretch:125%; font-weight:800; font-size:clamp(2rem, 1.2rem + 3.6vw, 4.2rem); line-height:1; letter-spacing:-.02em; color:#fff; }
.founder__names span + span::before{ content:"/"; font-weight:300; color:var(--on-dark-3); margin:0 .28em; }
.founder__txt{ color:var(--on-dark-2); font-size:.98rem; max-width:52ch; }
@media (max-width:860px){ .founder{ grid-template-columns:minmax(0,1fr); } }

.strengths{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.strengths article{ background:var(--paper); padding:1.5rem 1.4rem 1.7rem; display:flex; flex-direction:column; gap:.55rem; }
.strengths h3{ font-size:1.12rem; }
.strengths p{ color:var(--ink-2); font-size:.94rem; }
@media (max-width:1060px){ .strengths{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .strengths{ grid-template-columns:minmax(0,1fr); } }

.areas{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); margin-top:1.25rem; border-top:2px solid var(--ink); }
.areas div{ padding:1rem 1.25rem 0 0; display:grid; gap:.25rem; }
.areas div + div{ padding-left:1.25rem; border-left:1px solid var(--line); }
.areas b{ font-family:var(--display); font-stretch:112%; font-weight:700; font-size:1.05rem; }
.areas span{ color:var(--ink-2); font-size:.92rem; }
@media (max-width:860px){ .areas{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:1rem 0; } .areas div:nth-child(3){ padding-left:0; border-left:0; } }
@media (max-width:480px){ .areas{ grid-template-columns:minmax(0,1fr); } .areas div, .areas div + div{ padding-left:0; border-left:0; } }

/* ---------- Canales de aviso ---------- */
.alerts{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1rem; }
.alert{ background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:1rem 1.1rem 1.1rem; display:grid; gap:.6rem; box-shadow:0 18px 40px -30px rgba(13,18,21,.5); }
.alert__head{ display:flex; align-items:center; gap:.6rem; font-size:.82rem; color:var(--ink-3); }
.alert__icon{ width:30px; height:30px; border-radius:8px; display:grid; place-items:center; color:#fff; font-family:var(--mono); font-size:.74rem; font-weight:500; flex:none; }
.alert__icon--mail{ background:#39434a; }
.alert__icon--tg{ background:#2a9fd8; }
.alert__icon--wa{ background:#1fa855; }
.alert__head b{ color:var(--ink); font-weight:600; }
.alert__head time{ margin-left:auto; font-family:var(--mono); font-size:.72rem; }
.alert__msg{ font-size:.9rem; line-height:1.45; }
.alert__msg strong{ color:var(--nok); }
.alert__img{ aspect-ratio:16/9; overflow:hidden; border-radius:6px; background:var(--graphite); }
.alert__img img{ width:100%; height:100%; object-fit:cover; object-position:30% 40%; }
@media (max-width:860px){ .alerts{ grid-template-columns:minmax(0,1fr); } }
.freq{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.4rem; }
.freq span{ font-family:var(--mono); font-size:.74rem; letter-spacing:.06em; padding:.45rem .7rem; border:1px solid var(--line); background:var(--paper); }
.founder{ grid-template-columns:minmax(0,1fr); align-items:start; }
.founder__names{ font-size:clamp(2rem, 1rem + 4.6vw, 5.4rem); }
.founder__txt{ max-width:70ch; }

.founder__names{ font-size:clamp(1.9rem, .9rem + 3.6vw, 4.1rem); font-stretch:118%; }
.site-footer .slogan{ font-family:var(--display); font-stretch:112%; font-weight:600; font-size:1.15rem; line-height:1.25; color:#fff; margin-bottom:.8rem; }
.brand__tag{ letter-spacing:.08em; }

/* ---------- Videos de planta ---------- */
.bgvideo{ width:100%; height:100%; object-fit:cover; display:block; }
.hero__media .bgvideo{ filter:saturate(.75) contrast(1.05); }
.page-hero__media .bgvideo{ filter:saturate(.8); }
.feature__media .bgvideo{ position:absolute; inset:0; }
.pillar__img--white, .split__media--white{ background:#f5f5f5; }
.pillar__img--white img{ object-fit:contain; filter:none; }
.split__media--white img{ border-color:var(--line); }

/* ---------- Logo: pasada de inspeccion ----------
   Al cargar (y al pasar el raton) una linea de escaneo recorre el logo dentro de un
   marco de inspeccion y termina con un "OK", como hace la camara con cada envase. */
.brand__logo{ position:relative; display:inline-block; padding:5px 7px; margin:-5px -7px; }
.brand__logo img{ display:block; }
.brand__logo::before,
.brand__logo::after{ content:""; position:absolute; pointer-events:none; }
/* marco con esquinas */
.brand__logo::after{
  inset:0;
  background:
    linear-gradient(var(--accent-lit),var(--accent-lit)) top left / 9px 1.5px,
    linear-gradient(var(--accent-lit),var(--accent-lit)) top left / 1.5px 9px,
    linear-gradient(var(--accent-lit),var(--accent-lit)) top right / 9px 1.5px,
    linear-gradient(var(--accent-lit),var(--accent-lit)) top right / 1.5px 9px,
    linear-gradient(var(--accent-lit),var(--accent-lit)) bottom left / 9px 1.5px,
    linear-gradient(var(--accent-lit),var(--accent-lit)) bottom left / 1.5px 9px,
    linear-gradient(var(--accent-lit),var(--accent-lit)) bottom right / 9px 1.5px,
    linear-gradient(var(--accent-lit),var(--accent-lit)) bottom right / 1.5px 9px;
  background-repeat:no-repeat;
  opacity:0;
  animation:logo-marco 2.4s ease .3s 1 both;
}
/* linea de escaneo */
.brand__logo::before{
  top:-2px; bottom:-2px; left:0; width:2px;
  background:var(--accent-lit);
  box-shadow:0 0 8px 2px rgba(60,198,230,.65), -14px 0 18px rgba(60,198,230,.18);
  opacity:0;
  animation:logo-escaneo 1.3s cubic-bezier(.45,0,.35,1) .45s 1 both;
}
.brand__ok{
  position:absolute; right:-2px; top:-9px;
  font:500 .56rem/1 var(--mono); font-style:normal; letter-spacing:.08em;
  color:#fff; background:var(--ok); padding:2px 4px; border-radius:2px;
  opacity:0; transform:translateY(3px);
  animation:logo-ok 2.2s ease 1.55s 1 both;
}

@keyframes logo-escaneo   { 0%{ left:0; opacity:0 } 8%{ opacity:1 } 92%{ opacity:1 } 100%{ left:calc(100% - 2px); opacity:0 } }
@keyframes logo-escaneo-b { 0%{ left:0; opacity:0 } 8%{ opacity:1 } 92%{ opacity:1 } 100%{ left:calc(100% - 2px); opacity:0 } }
@keyframes logo-marco     { 0%{ opacity:0; transform:scale(1.12) } 15%{ opacity:1; transform:scale(1) } 75%{ opacity:1 } 100%{ opacity:0 } }
@keyframes logo-marco-b   { 0%{ opacity:0; transform:scale(1.12) } 15%{ opacity:1; transform:scale(1) } 75%{ opacity:1 } 100%{ opacity:0 } }
@keyframes logo-ok        { 0%{ opacity:0; transform:translateY(3px) } 15%{ opacity:1; transform:none } 75%{ opacity:1 } 100%{ opacity:0 } }
@keyframes logo-ok-b      { 0%{ opacity:0; transform:translateY(3px) } 15%{ opacity:1; transform:none } 75%{ opacity:1 } 100%{ opacity:0 } }
@media (prefers-reduced-motion:reduce){
  .brand__logo::before, .brand__logo::after, .brand__ok{ animation:none !important; opacity:0 !important; }
}

/* ---------- Recorrido en video del software ---------- */
.player video{ display:block; width:100%; height:auto; background:#0d1215; }
.clips{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
.clip{ margin:0; }
.clip__video{ display:block; width:100%; aspect-ratio:1280/632; object-fit:cover; border:1px solid var(--line-dark); border-radius:4px; background:var(--graphite-2); }
.clip figcaption{ font-size:.84rem; color:var(--on-dark-2); margin-top:.5rem; line-height:1.4; }
@media (max-width:960px){ .clips{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:520px){ .clips{ grid-template-columns:minmax(0,1fr); } }

/* ---------- Trayectoria: paises y enlace ---------- */
.founder__map{ font-family:var(--mono); font-size:.78rem; letter-spacing:.06em; color:var(--on-dark); line-height:1.8; max-width:none; }
.founder__link{ color:var(--accent-lit); font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:1px; }

/* ---------- Prueba (proyectos) ---------- */
.proof{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); margin:0 0 1.5rem; border-top:2px solid var(--ink); }
.proof div{ padding:1rem 1.25rem 0 0; }
.proof div + div{ padding-left:1.25rem; border-left:1px solid var(--line); }
.proof dt{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); }
.proof dd{ margin:.3rem 0 0; font-family:var(--display); font-stretch:115%; font-weight:700; font-size:var(--step-2); }
.proof div:last-child dd{ color:var(--ok); }
@media (max-width:620px){ .proof{ grid-template-columns:minmax(0,1fr); } .proof div + div{ padding-left:0; border-left:0; border-top:1px solid var(--line); } .proof div{ padding-bottom:.8rem; } }
.case__kpis dd{ font-size:1.02rem; line-height:1.3; }

/* ---------- IA aplicada ---------- */
.ia{ background:linear-gradient(180deg, var(--graphite) 0%, #0b1a20 100%); }
.ia .tile{ border-color:#1f3a44; }
.ia .tile h3{ color:#fff; }

/* ---------- Carrusel de pantallas del software ---------- */
.carousel{ background:var(--graphite-2); border:1px solid var(--line-dark); border-radius:6px; overflow:hidden; }
.carousel__track{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; }
.carousel__track::-webkit-scrollbar{ display:none; }
.carousel__track:focus-visible{ outline:2px solid var(--accent-lit); outline-offset:-2px; }
.carousel__slide{ flex:0 0 100%; margin:0; scroll-snap-align:start; }
.carousel__slide img{ display:block; width:100%; height:auto; aspect-ratio:1600/790; object-fit:cover; background:#0d1215; }
.carousel__slide figcaption{ padding:.8rem 1rem 0; font-size:.95rem; color:var(--on-dark); }
.carousel__slide figcaption span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; color:var(--accent-lit); margin-right:.4rem; }
.carousel__nav{ display:flex; align-items:center; justify-content:flex-end; gap:.8rem; padding:.6rem 1rem .9rem; }
.carousel__count{ font-family:var(--mono); font-size:.75rem; letter-spacing:.1em; color:var(--on-dark-3); font-variant-numeric:tabular-nums; }
.carousel__pausa{ margin-right:auto; font-size:.75rem !important; letter-spacing:-.05em; }
.carousel__btn{ width:44px; height:44px; border-radius:50%; border:1px solid var(--line-dark); background:transparent; color:var(--on-dark); font-size:1.1rem; cursor:pointer; }
.carousel__btn:focus-visible{ border-color:var(--accent-lit); color:var(--accent-lit); }
@media (max-width:620px){
  .clips{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:.8rem; padding-bottom:.4rem; }
  .clip{ flex:0 0 78%; scroll-snap-align:start; }
}

/* ---------- Normativa: iconos neutros propios ---------- */
.compliance__icon{ width:28px; height:28px; color:var(--accent); margin-bottom:.6rem; display:block; }

/* ---------- Clips del software: paneo lento para que se note el movimiento ---------- */
.clip__video{ aspect-ratio:16/10; object-position:0% 50%; animation:clip-paneo 16s ease-in-out infinite alternate; }
.clip:nth-child(2) .clip__video{ animation-delay:-4s; }
.clip:nth-child(3) .clip__video{ animation-delay:-8s; }
.clip:nth-child(4) .clip__video{ animation-delay:-12s; }
@keyframes clip-paneo{ from{ object-position:0% 50%; } to{ object-position:100% 50%; } }
@media (prefers-reduced-motion:reduce){ .clip__video{ animation:none; object-position:50% 50%; } }

/* ---------- Portada: las 7 divisiones ---------- */
.divisions{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.division{ background:var(--paper); display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:background .15s; }
.division__img{ aspect-ratio:16/10; overflow:hidden; background:var(--graphite); }
.division__img img{ width:100%; height:100%; object-fit:cover; transition:transform .32s var(--ease-out); }
.division__img--white{ background:#fff; } .division__img--white img{ object-fit:contain; }
.division__body{ padding:1.1rem 1.2rem 1.4rem; display:flex; flex-direction:column; gap:.45rem; flex:1; }
.division__n{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.division h3{ font-size:1.12rem; line-height:1.2; }
.division p{ font-size:.9rem; color:var(--ink-2); line-height:1.5; }
.division--cta{ background:var(--graphite); color:var(--on-dark); justify-content:flex-end; }
.division--cta h3{ color:#fff; font-size:1.4rem; } .division--cta p{ color:var(--on-dark-2); } .division--cta .division__n{ color:var(--accent-lit); }
.division__more{ margin-top:.6rem; color:var(--accent-lit); font-weight:600; }
@media (max-width:1080px){ .divisions{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .divisions{ grid-template-columns:minmax(0,1fr); } }

/* ---------- Preguntas frecuentes ---------- */
.faq{ border-top:1px solid var(--line); max-width:860px; }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__item summary{ cursor:pointer; list-style:none; padding:1.1rem 2.2rem 1.1rem 0; position:relative; font-weight:600; font-size:1.05rem; }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{ content:"+"; position:absolute; right:.2rem; top:.9rem; font-size:1.4rem; color:var(--accent); transition:transform .25s var(--ease-out); }
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__item summary:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.faq__item div{ padding:0 0 1.2rem; color:var(--ink-2); max-width:70ch; }

/* ---------- Un solo caso en la pagina: a lo ancho, foto y texto lado a lado ---------- */
.cases:has(> .case:only-child){ grid-template-columns:minmax(0,1fr); }
@media (min-width:861px){
  .cases > .case:only-child{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .cases > .case:only-child .case__img, .cases > .case:only-child .case__img img{ height:100%; }
  .cases > .case:only-child .case__img img{ object-fit:cover; }
}

/* ---------- Blog ---------- */
.blog-lista{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1.25rem; }
@media (max-width:960px){ .blog-lista{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:620px){ .blog-lista{ grid-template-columns:minmax(0,1fr); } }
.blog-tarjeta{ background:var(--paper); border:1px solid var(--line); padding:1.4rem; display:flex; flex-direction:column; gap:.6rem; }
.blog-tarjeta[hidden]{ display:none; }
.blog-tarjeta__k{ font-family:var(--mono); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.blog-tarjeta h3 a{ color:inherit; text-decoration:none; }
.blog-tarjeta p{ color:var(--ink-2); font-size:.95rem; }
.blog-tarjeta__mas{ margin-top:auto; font-weight:600; color:var(--accent); text-decoration:none; }
.blog-filtros{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.5rem; }
.blog-filtros button{ font:500 .8rem/1 var(--mono); letter-spacing:.04em; padding:.55rem .85rem; border:1px solid var(--line); background:transparent; color:var(--ink-2); cursor:pointer; }
.blog-filtros button[aria-pressed="true"]{ background:var(--ink); border-color:var(--ink); color:#fff; }
/* Suscribirse: va sobre la cabecera oscura, por eso los colores son explicitos */
.blog-sub{ margin-top:1.4rem; max-width:580px; }
.blog-sub summary{ display:inline-flex; align-items:center; gap:.5rem; cursor:pointer; list-style:none;
  font:500 .78rem/1 var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--accent-lit);
  padding:.6rem .9rem; border:1px solid rgba(60,198,230,.45); border-radius:99px; transition:background .2s, border-color .2s; }
.blog-sub summary::-webkit-details-marker{ display:none; }
.blog-sub[open] summary{ background:rgba(60,198,230,.1); border-color:var(--accent-lit); }
.blog-sub__caja{ margin-top:.9rem; padding:1.3rem 1.4rem; background:rgba(255,255,255,.035); border:1px solid rgba(233,238,240,.16);
  border-radius:8px; color:var(--on-dark); font-size:.95rem; line-height:1.55; }
.blog-sub__caja p{ margin:0; color:var(--on-dark); }
.blog-sub__url{ display:flex; margin-top:1rem; border:1px solid rgba(233,238,240,.25); border-radius:4px; overflow:hidden; }
.blog-sub__url input{ flex:1; min-width:0; font:.8rem/1 var(--mono); padding:0 .9rem; min-height:44px; border:0;
  background:rgba(0,0,0,.35); color:var(--on-dark); }
.blog-sub__url input:focus{ outline:none; background:rgba(0,0,0,.5); }
.blog-sub__url button{ flex:none; min-height:44px; padding:0 1.1rem; border:0; border-left:1px solid rgba(233,238,240,.25);
  background:var(--accent); color:#fff; font:600 .85rem/1 inherit; font-family:inherit; cursor:pointer; transition:background .2s; }
@media (max-width:480px){ .blog-sub__url{ flex-direction:column; } .blog-sub__url button{ border-left:0; border-top:1px solid rgba(233,238,240,.25); } }

/* NEW: articulos de los ultimos 10 dias (lo activa tivox.js) */
.blog-tarjeta{ position:relative; }
.marca-nuevo{ display:inline-block; font:700 .68rem/1 var(--mono); letter-spacing:.14em; color:#fff; background:#d4202c;
  padding:.4rem .55rem; border-radius:3px; box-shadow:0 0 0 0 rgba(212,32,44,.6); animation:nuevo-late 1.6s ease-in-out infinite; }
.blog-tarjeta > .marca-nuevo{ position:absolute; top:-.55rem; right:-.55rem; z-index:1; }
.eyebrow .marca-nuevo{ margin-left:.6rem; vertical-align:middle; }
@keyframes nuevo-late{ 0%,100%{ opacity:1; box-shadow:0 0 0 0 rgba(212,32,44,.55); } 50%{ opacity:.55; box-shadow:0 0 0 7px rgba(212,32,44,0); } }
@media (prefers-reduced-motion:reduce){ .marca-nuevo{ animation:none; } }
.post{ max-width:760px; }
.post__firma{ margin-top:1rem; font-size:.9rem; color:var(--on-dark-2); }
.post .prose{ font-size:1.08rem; }
.post .prose h2{ margin-top:2rem; }
.post__img{ margin:0 0 1.5rem; }
.post__img img{ width:100%; border:1px solid var(--line); }
.post__tags{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.2rem; }
.post__tags span{ font:500 .8rem/1 var(--mono, Consolas, monospace); padding:.45rem .65rem; border:1px solid var(--line); border-radius:99px; color:var(--ink-2); }
.post__fuente{ margin-top:2rem; padding:.9rem 1.1rem; border:1px solid var(--line); border-radius:4px; background:var(--paper); font-size:.92rem; color:var(--ink-2); }
.post__cabecera h1{ font-size:clamp(2rem, 1.3rem + 2.6vw, 3.4rem); max-width:24ch; }

/* ---------- Newsletter ---------- */
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.news-form__fila{ display:flex; gap:.5rem; }
.news-form__fila input{ flex:1; min-width:0; min-height:46px; padding:0 .9rem; border:1px solid var(--line); border-radius:4px; font:inherit; background:#fff; color:var(--ink); }
.news-form__fila .btn{ flex:none; min-height:46px; }
.news-form__ok{ display:flex; gap:.55rem; align-items:flex-start; margin-top:.75rem; font-size:.82rem; line-height:1.45; color:var(--ink-2); cursor:pointer; }
.news-form__ok input{ margin-top:.2rem; flex:none; }
.news-form__ok a{ color:var(--accent); }
.news-form__msg{ margin-top:.75rem; font-size:.88rem; color:#1f6b3a; }
.news-form__msg--mal{ color:#b3261e; }
.news-form.is-hecho .news-form__fila, .news-form.is-hecho .news-form__ok{ display:none; }
.news-pop{ position:fixed; right:1.25rem; bottom:1.25rem; z-index:60; width:min(400px, calc(100vw - 2rem));
  background:var(--paper, #fff); color:var(--ink); border:1px solid var(--line); border-top:3px solid var(--accent);
  border-radius:6px; padding:1.4rem 1.4rem 1.2rem; box-shadow:0 24px 60px -20px rgba(13,18,21,.45);
  animation:news-entra .4s var(--ease-out); }
.news-pop__x{ position:absolute; top:.35rem; right:.45rem; width:40px; height:40px; border:0; background:none; font-size:1.6rem; line-height:1; color:var(--ink-2); cursor:pointer; }
.news-pop__t{ font-family:var(--display, inherit); font-weight:700; font-size:1.25rem; line-height:1.25; margin:.5rem 2rem .5rem 0; }
.news-pop__txt{ font-size:.9rem; color:var(--ink-2); margin:0 0 1rem; }
@keyframes news-entra{ from{ transform:translateY(16px); opacity:0; } to{ transform:none; opacity:1; } }
@media (prefers-reduced-motion:reduce){ .news-pop{ animation:none; } }
@media (max-width:520px){ .news-pop{ right:.75rem; left:.75rem; bottom:.75rem; width:auto; padding:1.1rem 1.1rem 1rem; }
  .news-pop__txt{ display:none; } .news-form__fila{ flex-direction:column; } }
.news-pagina{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); gap:2.5rem; align-items:start; }
@media (max-width:860px){ .news-pagina{ grid-template-columns:minmax(0,1fr); } }
.news-lista{ margin:1rem 0 0; padding-left:1.1rem; line-height:1.7; color:var(--ink-2); }
.news-caja{ border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:6px; padding:1.5rem; background:var(--paper, #fff); }
.news-form__capa{ margin-top:.6rem; font-size:.74rem; line-height:1.45; color:var(--ink-3, #6b767d); }
.news-form__capa summary{ cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.news-form__capa p{ margin:.4rem 0 0; }
.news-form__capa a{ color:var(--accent); }
.news-form.is-hecho .news-form__capa{ display:none; }
.news-banda{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); gap:2rem 3rem; align-items:center; }
.news-banda h2{ margin:.6rem 0 .6rem; }
.news-banda p{ color:var(--ink-2); max-width:52ch; }
@media (max-width:860px){ .news-banda{ grid-template-columns:minmax(0,1fr); } }
.blog-acciones{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:flex-start; margin-top:1.4rem; }
.blog-acciones .blog-sub{ margin-top:0; }
.blog-news-btn{ display:inline-flex; align-items:center; gap:.5rem; font:500 .78rem/1 var(--mono); letter-spacing:.08em; text-transform:uppercase;
  color:#062631; background:var(--accent-lit); padding:.68rem 1rem; border-radius:99px; text-decoration:none; }

/* Blog con fotos y para compartir */
.post__img{ margin:0 0 2rem; }
.post__img img{ display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border:0; border-radius:4px; }
.post__img figcaption{ margin-top:.5rem; font-size:.78rem; color:var(--ink-3, #6b767d); }
.post__img figcaption a{ color:inherit; }
.blog-tarjeta--foto{ padding-top:0; overflow:hidden; }
.blog-tarjeta__foto{ display:block; margin:0 -1.4rem .4rem; }
.blog-tarjeta__foto img{ display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; transition:transform .32s var(--ease-out); }
.blog-tarjeta--foto > .marca-nuevo{ top:.8rem; right:.8rem; }
.post__compartir{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-top:2rem; padding-top:1.4rem; border-top:1px solid var(--line); }
.post__compartir span{ font:500 .72rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3, #6b767d); margin-right:.3rem; }
.post__li, .post__copiar{ display:inline-flex; align-items:center; gap:.45rem; min-height:40px; padding:0 1rem; border-radius:4px; font:600 .88rem/1 inherit; font-family:inherit; cursor:pointer; text-decoration:none; }
.post__li{ background:#0A66C2; color:#fff; border:1px solid #0A66C2; }
.post__copiar{ background:transparent; color:var(--ink); border:1px solid var(--line); }

/* Nota minima en imagenes generadas con IA */
:where(figure, .case__img, .division__img, .split__media):has(> .nota-ia){ position:relative; }
.nota-ia{ position:absolute; right:6px; bottom:6px; z-index:2; padding:1px 5px; border-radius:2px; pointer-events:none;
  font:500 9px/1.4 var(--mono, monospace); letter-spacing:.02em; color:#fff; background:rgba(0,0,0,.62); }

.pie-linkedin{ display:inline-flex !important; align-items:center; gap:.45rem; }
.pie-linkedin svg{ color:#0A66C2; background:#fff; border-radius:2px; }

/* Newsletter en la web (archivo de numeros) */
.nl-cuerpo h2{ margin:2.4rem 0 1rem; font:700 .78rem/1 var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:.7rem; }
.nl-cuerpo h2::before{ content:""; width:28px; border-top:3px solid var(--accent); }
.nl-cuerpo .noticia{ background:var(--paper); border:1px solid var(--line); border-radius:6px; overflow:hidden; margin:0 0 1.25rem; }
.nl-cuerpo .noticia > img{ display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.nl-cuerpo .noticia > :not(img){ margin-left:1.25rem; margin-right:1.25rem; }
.nl-cuerpo .noticia h3{ margin-top:1.1rem; }
.nl-cuerpo .noticia > :last-child{ margin-bottom:1.1rem; }
.nl-cuerpo .fuente{ font-size:.8rem; color:var(--ink-3, #6b767d); }
.nl-cuerpo .feria{ display:grid; grid-template-columns:96px minmax(0,1fr); border:1px solid var(--line); border-radius:6px; overflow:hidden; margin:0 0 .8rem; }
.nl-cuerpo .feria__fecha{ background:var(--ink, #0d1215); color:#fff; display:grid; place-items:center; text-align:center; font:700 .9rem/1.3 var(--mono); padding:.8rem .4rem; }
.nl-cuerpo .feria__cuerpo{ padding:.8rem 1rem; }
.nl-cuerpo .feria__lugar{ margin:0 0 .3rem; font:600 .7rem/1 var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.nl-cuerpo .feria h3{ margin:0 0 .2rem; font-size:1.05rem; }
.nl-cuerpo .feria p{ margin:.2rem 0 0; font-size:.92rem; color:var(--ink-2); }
.nl-cuerpo .articulo{ display:grid; grid-template-columns:170px minmax(0,1fr); gap:1rem; align-items:start; margin:0 0 1rem; }
.nl-cuerpo .articulo > img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:4px; }
.nl-cuerpo .articulo:not(:has(> img)){ grid-template-columns:minmax(0,1fr); }
.nl-cuerpo .articulo h3{ margin:0 0 .3rem; font-size:1rem; }
.nl-cuerpo .cta a{ display:inline-block; background:var(--accent); color:#fff; padding:.85rem 1.4rem; border-radius:4px; font-weight:700; text-decoration:none; }
@media (max-width:560px){ .nl-cuerpo .articulo{ grid-template-columns:minmax(0,1fr); } }
.nl-numeros{ list-style:none; padding:0; margin:1rem 0 0; display:grid; gap:.5rem; }
.nl-numeros a{ display:flex; gap:1rem; align-items:baseline; padding:.9rem 1rem; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--ink); text-decoration:none; font-weight:600; }
.nl-mes{ flex:none; min-width:9.5rem; font:500 .74rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--accent); }


/* ---------- Móvil (pautas mobile-native de Emil Kowalski) ---------- */
/* Efectos de «pasar el ratón»: solo con ratón; en pantallas táctiles se quedaban pegados tras tocar */
@media (hover: hover) and (pointer: fine) {
  .btn:hover{ background:var(--accent-ink); border-color:var(--accent-ink); }
  .btn--ghost:hover{ background:var(--paper); border-color:var(--ink-3); color:var(--ink); }
  .on-dark .btn--ghost:hover, .btn--light:hover{ background:rgba(233,238,240,.08); border-color:var(--on-dark); color:#fff; }
  .link:hover{ color:var(--accent-ink); }
  .nav a:hover{ color:var(--ink); background:rgba(17,21,24,.05); }
  .nav .nav__cta:hover{ background:var(--accent); color:#fff; }
  .nav summary:hover{ color:var(--ink); background:rgba(17,21,24,.05); }
  .nav .nav__social:hover{ border-color:#0A66C2; background:none; color:#0A66C2; }
  .langs__lista a:hover, .nav__panel a:hover{ color:var(--ink); background:var(--ground); }
  .pillar:hover .pillar__img img{ transform:scale(1.035); filter:saturate(1); }
  .suite__tab:hover strong{ color:#fff; }
  .contact-lines a:hover b{ color:var(--accent-lit); }
  .crumbs a:hover{ color:#fff; }
  .site-footer a:hover{ color:#fff; }
  .contact-lines--light a:hover b{ color:var(--accent); }
  .brand:hover .brand__logo::before{ animation:logo-escaneo-b 1.1s cubic-bezier(.45,0,.35,1) 0s 1 both; }
  .brand:hover .brand__logo::after{ animation:logo-marco-b 1.8s ease 0s 1 both; }
  .brand:hover .brand__ok{ animation:logo-ok-b 1.6s ease .9s 1 both; }
  .founder__link:hover{ color:#fff; }
  .carousel__btn:hover{ border-color:var(--accent-lit); color:var(--accent-lit); }
  .division:hover{ background:#fff; }
  .division:hover .division__img img{ transform:scale(1.04); }
  .division--cta:hover{ background:#14222a; }
  .blog-tarjeta h3 a:hover{ color:var(--accent); }
  .blog-sub summary:hover{ background:rgba(60,198,230,.1); border-color:var(--accent-lit); }
  .blog-sub__url button:hover{ background:var(--accent-ink); }
  .news-pop__x:hover{ color:var(--ink); }
  .blog-news-btn:hover{ background:#6fd6ee; }
  .blog-tarjeta--foto:hover .blog-tarjeta__foto img{ transform:scale(1.03); }
  .post__li:hover{ background:#004182; }
  .post__copiar:hover{ border-color:var(--ink-3, #6b767d); }
  .nl-numeros a:hover{ border-color:var(--accent); }
}
/* Sin el destello gris del navegador al tocar; cada control tiene su propia respuesta al pulsar */
html{ -webkit-tap-highlight-color:transparent; }
/* Toque inmediato (sin la espera de ~300 ms) y sin seleccionar el texto de los botones al mantener pulsado */
.btn, .nav a, .nav summary, .nav-toggle, .carousel__btn, .blog-filtros button, .blog-sub summary, .blog-news-btn,
.post__li, .post__copiar, .news-pop__x, .division, .suite__tab, button{
  touch-action:manipulation; -webkit-user-select:none; user-select:none; -webkit-touch-callout:none;
}
/* Respuesta al pulsar, en el momento de tocar y no al soltar */
.btn, .post__li, .post__copiar, .blog-news-btn, .carousel__btn, .news-form .btn{ transition:transform .12s ease-out, background .15s, border-color .15s, color .15s; }
.btn:active, .post__li:active, .post__copiar:active, .blog-news-btn:active, .carousel__btn:active{ transform:scale(.97); }
.division:active, .blog-tarjeta:active, .nl-numeros a:active{ transform:scale(.99); transition:transform .1s ease-out; }
/* El iPhone hace zoom al escribir en campos con letra de menos de 16 px (y no lo deshace) */
@media (pointer: coarse){ input, select, textarea, .blog-sub__url input{ font-size:16px; } }
/* El menú del móvil y los carruseles no arrastran la página al llegar a su final */
.nav, .carousel__track, .clips{ overscroll-behavior:contain; }
/* Zonas de toque de al menos ~44 px en pantallas táctiles (pie, enlaces legales y logo) */
@media (pointer: coarse){
  .site-footer__grid a{ display:flex; align-items:center; min-height:44px; }
  .site-footer__grid a.pie-linkedin{ display:inline-flex !important; }
  .site-footer__bottom nav a, .site-footer__bottom nav button{ display:inline-flex; align-items:center; min-height:44px; padding-inline:.35rem; }
  .brand{ padding-block:.5rem; }
  .blog-filtros button{ min-height:44px; }
  .crumbs a{ display:inline-flex; align-items:center; min-height:44px; }
}
/* Superficies del navegador afinadas: subrayado, cursor de texto y cifras alineadas */
a{ text-underline-offset:.16em; }
input, textarea{ caret-color:var(--accent); }
.gauge, .proof, .cases, table{ font-variant-numeric:tabular-nums; }

/* Proyectos: la pantalla real de Sentinel como fondo, desenfocada para que el titular se lea limpio */
.page-hero__media img.hero-pantalla{ filter:blur(3px) saturate(.75) brightness(.85); transform:scale(1.04); }

/* IA: camara 3D reconstruida con IA (Three.js, se carga solo en esta pagina) */
.modelo3d .split{ align-items:center; }
.modelo3d__lienzo{ position:relative; aspect-ratio:1 / 1; max-height:560px; width:100%; cursor:grab; touch-action:pan-y;
  background:radial-gradient(closest-side at 50% 50%, rgba(255,45,85,.10), transparent); }
.split__media.modelo3d__lienzo{ margin:0; }
.split__media.modelo3d__lienzo img{ border:0; }
.modelo3d__lienzo:active{ cursor:grabbing; }
.modelo3d__lienzo canvas{ position:absolute; inset:0; width:100% !important; height:100% !important; display:block; }
.modelo3d__respaldo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.85; transition:opacity .5s var(--ease-out); }
.modelo3d__lienzo.is-lista .modelo3d__respaldo{ opacity:0; pointer-events:none; }
.modelo3d__lienzo .nota-ia{ z-index:3; }
.modelo3d__pista{ margin-top:1.4rem; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-lit); }

/* Quienes somos: mision, vision y valores */
.proposito{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(2rem, 1rem + 4vw, 5rem); border-top:2px solid var(--ink); padding-top:clamp(1.5rem, 1rem + 1.5vw, 2.5rem); }
.proposito__item h2{ font-size:var(--step-2); margin:.9rem 0 1.1rem; }
.proposito__item p:not(.eyebrow){ color:var(--ink-2); max-width:60ch; }
.proposito__valores{ margin:clamp(2.5rem, 2rem + 2vw, 4rem) 0 1.25rem; }
@media (max-width:860px){ .proposito{ grid-template-columns:minmax(0,1fr); } }

/* Casos: enlace a la pagina de la aplicacion */
.case__link{ margin:.9rem 0 0; font-size:.92rem; }
