﻿/* ════════════════════════════════════════════════════════
   AIRDEV · SWISS EDITORIAL MINIMALISM
   Fondo blanco · Tipografía contrastante · Grilla precisa
   Referencia estética: McKinsey Digital, BCG X, Palantir
   ════════════════════════════════════════════════════════ */
:root {
  --white:   #ffffff;
  --snow:    #f9f8f6;
  --light:   #f2f0ec;
  --border:  #e8e5df;
  --border2: #d4d0c8;
  --text:    #0c0b09;
  --text2:   #2e2c28;
  --muted:   #7a7670;
  --gold:    #7E848D;
  --gold-l:  #A6ACB4;
  --gold-d:  #565B64;
  --gold-pale:#ECEEF1;
  --black:   #0c0b09;
  --nav-h:   104px;
  --r:       2px;
}
@font-face { font-family:'DM Sans'; font-style:normal; font-weight:400 700; font-display:swap; src:local('DM Sans'); }
@font-face { font-family:'DM Mono'; font-style:normal; font-weight:400 500; font-display:swap; src:local('DM Mono'); }
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:600 700; font-display:swap; src:local('Cormorant Garamond'); }
@font-face { font-family:'Cormorant Garamond'; font-style:italic; font-weight:600 700; font-display:swap; src:local('Cormorant Garamond Italic'); }
.skip-link {
  position:absolute; top:-999px; left:50%; transform:translateX(-50%);
  padding:.5rem 1.25rem; background:var(--black); color:var(--white);
  border-radius:var(--r); z-index:9999; text-decoration:none;
  font-size:.875rem; font-family:'DM Sans',sans-serif; white-space:nowrap;
}
.skip-link:focus { top:.75rem; }
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:18px; text-rendering:optimizeLegibility; -webkit-text-size-adjust:100%; overflow-x:hidden; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}
body {
  font-family:'DM Sans', system-ui, -apple-system, sans-serif;
  background:var(--white);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  line-height:1.65;
  overflow-x:hidden;
}
h1,h2,h3,h4 { font-family:'Cormorant Garamond', serif; font-weight:700; }
img { max-width:100%; display:block; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--nav-h);
  background:linear-gradient(to bottom, rgba(18,17,15,.99) 0%, rgba(10,9,8,.97) 100%);
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 5%;
}
.nav-logo { display:flex; align-items:center; gap:.85rem; text-decoration:none; }
.nav-icon { height:62px; width:62px; display:block; flex-shrink:0; }
.nav-brand-group { display:flex; flex-direction:column; gap:.18rem; }
.nav-brand {
  font-family:'Cormorant Garamond', Georgia, serif;
  font-size:2rem; font-weight:700; letter-spacing:.14em;
  color:#ffffff; line-height:1;
}
.nav-tagline {
  font-family:'DM Sans', sans-serif;
  font-size:.62rem; font-weight:400; letter-spacing:.13em; text-transform:uppercase;
  color:rgba(255,255,255,.48); line-height:1;
}
.nav-matrix {
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:0 2rem; overflow:hidden; pointer-events:none; user-select:none;
}
.nav-matrix-prompt {
  font-family:'Courier New', Courier, monospace;
  font-size:.84rem; color:#00b84c; opacity:.55; margin-right:.35rem;
  text-shadow:0 0 6px rgba(0,255,65,.3);
}
.nav-matrix-text {
  font-family:'Courier New', Courier, monospace;
  font-size:.84rem; color:#00ff41; letter-spacing:.06em;
  white-space:nowrap; text-shadow:0 0 8px rgba(0,255,65,.55);
}
.nav-matrix-cursor {
  font-family:'Courier New', Courier, monospace;
  font-size:.84rem; color:#00ff41;
  text-shadow:0 0 8px rgba(0,255,65,.55);
  animation:matrix-blink .65s step-end infinite;
}
@keyframes matrix-blink { 0%,100%{opacity:1} 50%{opacity:0} }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a {
  font-family:'DM Sans', sans-serif;
  font-size:.9rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase;
  color:rgba(255,255,255,.72); text-decoration:none;
  border-bottom:1px solid transparent; padding-bottom:.2rem;
  transition:color .2s, border-color .2s;
}
.nav-links a:hover { color:#ffffff; border-bottom-color:#ffffff; }
.nav-menu-btn {
  display:none; background:none; border:1px solid rgba(255,255,255,.3);
  color:rgba(255,255,255,.92); padding:.55rem 1rem; border-radius:var(--r);
  cursor:pointer; font-size:1.5rem; min-width:46px; min-height:46px;
  line-height:1; flex-shrink:0; -webkit-tap-highlight-color:transparent;
  align-items:center; justify-content:center; touch-action:manipulation;
}

/* ── BUTTONS ── */
.btn-primary {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--black); color:var(--white); text-decoration:none;
  padding:.85rem 2rem; border-radius:var(--r);
  font-family:'DM Sans', sans-serif; font-weight:600; font-size:.875rem;
  letter-spacing:.05em; transition:background .2s, transform .2s;
  touch-action:manipulation;
}
.btn-primary:hover { background:var(--gold-d); transform:translateY(-1px); }
.btn-outline {
  display:inline-flex; align-items:center;
  background:transparent; color:var(--text); text-decoration:none;
  border:1px solid var(--border2); padding:.85rem 1.75rem; border-radius:var(--r);
  font-family:'DM Sans', sans-serif; font-weight:500; font-size:.875rem;
  letter-spacing:.03em; transition:border-color .2s, color .2s;
  touch-action:manipulation;
}
.btn-outline:hover { border-color:var(--gold); color:var(--gold-d); }

/* ── LAYOUT ── */
section { padding:96px 5%; position:relative; }
.inner { max-width:100%; margin:0 auto; }
.centered { text-align:center; }
.centered .eyebrow::before { display:none; }
.centered .eyebrow { justify-content:center; }
.centered .sec-sub { margin:0 auto; }

/* ── TYPOGRAPHY ── */
.eyebrow {
  display:inline-flex; align-items:center; gap:.75rem;
  font-family:'DM Sans', sans-serif; font-size:.72rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold-d);
  margin-bottom:1rem;
}
.eyebrow::before { content:''; width:28px; height:1px; background:var(--gold); }
.sec-title {
  font-size:clamp(2.6rem,4.5vw,4.8rem); line-height:1.05;
  letter-spacing:-.02em; color:var(--text); margin-bottom:1.25rem;
}
.sec-title em { font-style:italic; color:var(--gold-d); }
.sec-sub {
  font-size:clamp(1rem,1.3vw,1.2rem); font-weight:300; line-height:1.75;
  color:var(--muted); max-width:100%;
}
.gold-line {
  width:40px; height:1px; background:var(--gold);
  margin:1.25rem 0; border:none;
}
.centered .gold-line { margin-left:auto; margin-right:auto; }

/* ── HERO ── */
#hero {
  background:var(--white);
  position:relative; overflow:hidden; padding:0;
}
/* Subtle grid texture */
#hero::before {
  content:'';
  position:absolute; inset:0; z-index:0;
  background-image:
    linear-gradient(var(--border) 1px, transparent 1px),
    linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size:60px 60px;
  opacity:.35;
}
/* Gold accent line — left edge */
#hero::after {
  content:''; position:absolute; left:0; top:10%; bottom:10%; z-index:2;
  width:2px; background:linear-gradient(to bottom,transparent,var(--gold),transparent);
}
#hero .inner {
  display:grid; grid-template-columns:1fr 1fr;
  gap:0; align-items:start;
  max-width:100%; padding:0;
  position:relative; z-index:1;
}
.hero-left {
  padding:calc(var(--nav-h) + 36px) 4% 40px 5%;
  display:flex; flex-direction:column; justify-content:flex-start;
}
.hero-tag {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-d); margin-bottom:2rem;
  border-left:2px solid var(--gold); padding-left:.85rem;
}
.hero-tag-dot {
  width:6px; height:6px; border-radius:50%; background:var(--gold);
  animation:pulse 2.5s ease 3;
}
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.5)} }
.hero-title {
  font-size:clamp(2.8rem,4.2vw,5.5rem); line-height:1.0;
  letter-spacing:-.03em; color:var(--text); margin-bottom:1.75rem;
  font-weight:700;
}
.hero-title span { color:var(--gold-d); font-style:italic; }
.hero-desc {
  font-size:clamp(1rem,1.35vw,1.35rem); font-weight:300; line-height:1.75;
  color:var(--muted); max-width:100%; margin-bottom:2.5rem;
}
.hero-actions { display:flex; gap:.875rem; flex-wrap:wrap; margin-bottom:3.5rem; }
.hero-stats {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:0; border-top:1px solid var(--border); padding-top:2rem;
}
.hero-stats > div { padding-right:1.5rem; border-right:1px solid var(--border); }
.hero-stats > div:last-child { border-right:none; padding-right:0; padding-left:1.5rem; }
.hero-stats > div:not(:first-child) { padding-left:1.5rem; }
.stat-val {
  font-family:'Cormorant Garamond', serif; font-size:2.8rem; font-weight:700;
  color:var(--text); line-height:1;
}
.stat-val span { font-size:1.6rem; color:var(--gold-d); }
.stat-lbl { font-size:.75rem; color:var(--muted); margin-top:.3rem; letter-spacing:.03em; }
/* Hero image — estilo BI (full-bleed, gradiente lateral) */
.hero-right {
  position:relative; overflow:hidden;
  background:var(--white);
}
img.h-hero-img {
  width:100%; height:auto;
  display:block; filter:none;
}
.hero-right::before {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to left, transparent 60%, var(--white));
}
.hero-visual-tag {
  position:absolute; bottom:2rem; right:2rem; z-index:2;
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--white); background:var(--black);
  border:1px solid rgba(126,132,141,.4);
  padding:.4rem .9rem; border-radius:2px;
  font-family:'DM Mono', monospace;
}
/* ── SERVICES ── */
#services { background:var(--white); }
.services-header {
  display:block; margin-bottom:4rem;
}
.services-intro {
  font-size:clamp(1rem,1.3vw,1.2rem); font-weight:300; line-height:1.85;
  color:var(--muted); max-width:none;
}
.services-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  border:1px solid var(--border); border-radius:var(--r); overflow:hidden;
}
.service-card {
  padding:2.25rem; border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  transition:background .25s; position:relative; background:var(--white);
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:1.25rem;
  align-items:start;
}
.service-card:hover { background:var(--snow); }
.service-card:nth-child(3n) { border-right:none; }
.service-card:nth-child(4),.service-card:nth-child(5),
.service-card:nth-child(6) { border-bottom:none; }
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0;
  height:2px; background:var(--gold); transform:scaleX(0);
  transform-origin:left; transition:transform .3s ease;
}
.service-card:hover::before { transform:scaleX(1); }
.service-num {
  grid-column:1; grid-row:1 / 4;
  font-family:'DM Sans', system-ui, sans-serif;
  font-size:clamp(2.5rem,3vw,3.5rem);
  font-weight:200;
  color:#b8bcc4;
  letter-spacing:-.04em;
  line-height:.85;
  align-self:start;
}
.service-name {
  grid-column:2;
  font-size:clamp(.9rem,1.1vw,1rem);
  font-weight:700; color:var(--text);
  margin-bottom:.45rem; line-height:1.25;
}
.service-desc {
  grid-column:2;
  font-size:.83rem; color:var(--muted); line-height:1.65; margin-bottom:.75rem;
}
.service-tags { grid-column:2; display:flex; flex-wrap:wrap; gap:.35rem; }
.s-tag {
  font-size:.64rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); background:transparent;
  border:1px solid var(--border);
  padding:.25rem .75rem; border-radius:2px;
}

/* ── IA ── */
#ia { background:var(--snow); padding:0; }
.ia-grid {
  display:grid; grid-template-columns:1fr 1fr;
}
.ia-visual {
  position:relative; overflow:hidden;
  min-height:600px;
}
.ia-visual img {
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(10%) contrast(1.05);
  transition:transform .6s ease;
}
.ia-visual:hover img { transform:scale(1.03); }
.ia-visual-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to right,transparent 60%, var(--snow));
}
.ia-label {
  position:absolute; bottom:2rem; left:2rem;
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--white); background:var(--black);
  padding:.4rem .9rem; border-radius:2px;
}
.ia-content {
  display:flex; flex-direction:column; justify-content:center;
  padding:80px 7% 80px 8%;
}
.ia-list { display:flex; flex-direction:column; gap:2rem; margin-top:2.5rem; }
.ia-item { display:flex; gap:1.5rem; align-items:flex-start; }
.ia-item-num {
  font-family:'DM Mono', monospace;
  font-size:.75rem; color:var(--gold); letter-spacing:.1em; flex-shrink:0;
  width:2rem; margin-top:.25rem;
}
.ia-item h4 { font-family:'DM Sans',system-ui,sans-serif; font-size:.95rem; font-weight:700; margin-bottom:.35rem; color:var(--text); }
.ia-item p { font-size:.875rem; color:var(--muted); line-height:1.65; }

/* ── BI ── */
#bi { background:var(--white); padding:0; }
#bi .inner.bi-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:0; max-width:100%; padding:0;
}
#bi .inner.bi-grid > div:first-child {
  padding:80px 6% 80px 5%;
  display:flex; flex-direction:column; justify-content:center;
}
.bi-visual {
  position:relative; overflow:hidden;
  min-height:580px; background:var(--snow);
}
.bi-visual img {
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(8%) contrast(1.05);
  transition:transform .6s ease;
}
.bi-visual:hover img { transform:scale(1.03); }
.bi-visual::before {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to left,transparent 60%, var(--white));
}
.bi-visual-tag {
  position:absolute; bottom:2rem; right:2rem; z-index:2;
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--white); background:var(--black);
  padding:.4rem .9rem; border-radius:2px;
}
.bi-benefits {
  list-style:none; padding:0; margin:1.75rem 0;
  display:grid; grid-template-columns:1fr 1fr; gap:1.4rem 1.6rem;
}
.bi-benefit-item {
  display:flex; gap:.7rem; align-items:flex-start;
}
.bi-benefit-icon {
  flex-shrink:0; width:34px; height:34px;
  border:1px solid var(--border); border-radius:var(--r);
  display:flex; align-items:center; justify-content:center;
  background:var(--snow); color:var(--gold-d);
  transition:border-color .2s, color .2s;
}
.bi-benefit-item:hover .bi-benefit-icon { border-color:var(--gold); color:var(--gold); }
.bi-benefit-item strong {
  display:block; font-size:.72rem; font-weight:600;
  color:var(--text); line-height:1.3;
}
.bi-benefit-item p {
  font-size:.76rem; color:var(--muted); margin:.2rem 0 0; line-height:1.55;
}
.tech-pills { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.5rem; }
.tech-pill {
  font-size:.72rem; font-weight:500; letter-spacing:.04em;
  color:var(--muted); border:1px solid var(--border);
  padding:.28rem .75rem; border-radius:2px;
  transition:border-color .2s, color .2s;
}
.tech-pill:hover { border-color:var(--gold); color:var(--gold-d); }

/* ── WHY ── */
#why { background:var(--snow); }
.why-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:0; border:1px solid var(--border); border-radius:var(--r);
  overflow:hidden; margin-top:4rem;
}
.why-card {
  padding:2.5rem 2rem; border-right:1px solid var(--border);
  background:var(--white); transition:background .25s; position:relative;
}
.why-card:last-child { border-right:none; }
.why-card:hover { background:var(--snow); }
.why-card::after {
  content:''; position:absolute; bottom:0; left:2rem; right:2rem;
  height:1px; background:var(--gold); transform:scaleX(0);
  transition:transform .3s; transform-origin:left;
}
.why-card:hover::after { transform:scaleX(1); }
.why-num {
  font-family:'DM Mono', monospace; font-size:.72rem;
  color:var(--gold); letter-spacing:.12em; display:block; margin-bottom:1.25rem;
}
.why-card h4 {
  font-family:'Cormorant Garamond', serif;
  font-size:1.2rem; font-weight:700; margin-bottom:.6rem; color:var(--text);
}
.why-card p { font-size:.875rem; color:var(--muted); line-height:1.65; }
.why-industries {
  display:flex; flex-wrap:wrap; gap:.45rem;
  margin-top:2.5rem; padding-top:2rem;
  border-top:1px solid var(--border);
}
.why-ind-tag {
  font-size:.64rem; font-family:'DM Mono',monospace; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase;
  background:var(--white); border:1px solid var(--border2); color:var(--text2);
  padding:.28rem .7rem; border-radius:2px;
  transition:border-color .2s, color .2s;
}
.why-ind-tag:hover { border-color:var(--gold); color:var(--gold-d); }

/* ── METHODOLOGY ── */
#method { background:var(--snow); }
.wf-wrap { margin-top:3.5rem; overflow-x:auto; }
.wf-wrap svg { min-width:820px; width:100%; height:auto; display:block; }

.c-label { font-size:.67rem; color:var(--muted); text-transform:uppercase; letter-spacing:.1em; }
.btn-wa-contact {
  display:inline-flex; align-items:center; gap:.6rem;
  background:#25d366; color:#fff;
  padding:13px 24px; border-radius:999px;
  font-weight:600; font-size:.92rem; text-decoration:none;
  align-self:flex-start;
  box-shadow:0 8px 20px -6px rgba(37,211,102,.5);
  transition:background .2s, transform .2s, box-shadow .2s;
}
.btn-wa-contact:hover { background:#128c7e; transform:translateY(-1px); box-shadow:0 14px 28px -8px rgba(37,211,102,.6); }
.btn-ig-contact {
  display:inline-flex; align-items:center; gap:.6rem;
  background:linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888);
  color:#fff;
  padding:13px 24px; border-radius:999px;
  font-weight:600; font-size:.92rem; text-decoration:none;
  align-self:flex-start;
  box-shadow:0 8px 20px -6px rgba(220,39,67,.45);
  transition:opacity .2s, transform .2s, box-shadow .2s;
}
.btn-ig-contact:hover { opacity:.88; transform:translateY(-1px); box-shadow:0 14px 28px -8px rgba(220,39,67,.55); }
/* ── CLIENTS (full section before footer) ── */
#clients {
  background:var(--snow);
  padding:5rem 5%;
}
.clients-inner { max-width:100%; margin:0 auto; text-align:center; }
.clients-inner .eyebrow { justify-content:center; }
.clients-inner .sec-title { text-align:center; }
.clients-inner .gold-line { margin-left:auto; margin-right:auto; }
.clients-inner .sec-sub { text-align:center; }
.clients-logos-grid {
  display:flex; align-items:center; justify-content:center;
  flex-wrap:wrap; gap:2rem;
}
.cl-logo {
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--border); border-radius:var(--r);
  padding:1.5rem 2.5rem; min-width:180px; min-height:96px;
  background:var(--white);
  filter:grayscale(100%); opacity:.55;
  transition:opacity .25s, filter .25s, border-color .25s;
}
.cl-logo:hover { opacity:.9; filter:grayscale(10%); border-color:var(--gold); }
.cl-logo img { height:56px; width:auto; max-width:200px; object-fit:contain; }

/* ── DEV SECTION ── */
#dev {
  background:var(--white);
  overflow:hidden;
  padding:0;
}
.dev-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:480px;
}
.dev-visual {
  position:relative;
  background:var(--snow);
  overflow:hidden;
  align-self:stretch;
  min-height:400px;
}
img.dev-img {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center center;
  display:block;
}
.dev-visual::after {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to right, transparent 60%, var(--white));
  pointer-events:none;
}
.dev-content {
  padding:4rem 4.5rem 4rem 4rem;
  display:flex; flex-direction:column; justify-content:center;
  background:var(--white);
}
.dev-list { display:flex; flex-direction:column; gap:1.2rem; margin:1.5rem 0 1.8rem; }
.dev-item { display:flex; gap:1rem; align-items:flex-start; }
.dev-item-icon {
  width:34px; height:34px; flex-shrink:0;
  background:var(--light); border:1px solid var(--border);
  border-radius:var(--r); display:flex; align-items:center; justify-content:center;
  margin-top:.1rem;
}
.dev-item-icon svg { width:16px; height:16px; stroke:var(--gold-d); }
.dev-item h4 {
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.9rem; font-weight:700; color:var(--text); margin-bottom:.2rem;
}
.dev-item p { font-size:.8rem; color:var(--muted); line-height:1.55; }
.dev-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.8rem; }
.dev-tag {
  font-size:.64rem; font-family:'DM Mono',monospace; font-weight:500;
  letter-spacing:.06em; text-transform:uppercase;
  background:#fff; border:1px solid var(--text);
  color:var(--text); padding:.25rem .6rem; border-radius:2px;
}
@media(max-width:960px){
  .dev-grid { grid-template-columns:1fr; }
  .dev-visual { min-height:220px; }
  .dev-visual::after { background:none; }
  .dev-content { padding:2.5rem 2rem; }
}



/* ── FOOTER ── */
footer {
  background:var(--black); padding:60px 5% 28px;
}
.footer-grid {
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1.3fr; gap:3rem;
  max-width:100%; margin:0 auto; padding-bottom:2.5rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-logo { display:flex; align-items:center; gap:.55rem; margin-bottom:1.25rem; }
.footer-logo img { height:36px; width:auto; }
.footer-logo-brand {
  font-family:'Cormorant Garamond', Georgia, serif;
  font-size:1.45rem; font-weight:700; letter-spacing:.12em;
  color:rgba(255,255,255,.92); line-height:1;
}
.footer-brand-desc { font-size:.92rem; color:rgba(255,255,255,.4); line-height:1.65; max-width:260px; }
.footer-col h5 {
  font-family:'DM Sans', sans-serif; font-size:.92rem; font-weight:600;
  color:rgba(255,255,255,.35); text-transform:uppercase; letter-spacing:.14em; margin-bottom:1.1rem;
}
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:.65rem; }
.footer-col ul li a { font-size:.92rem; color:rgba(255,255,255,.45); text-decoration:none; transition:color .2s; }
.footer-col ul li a:hover { color:var(--gold); }
.footer-bottom {
  max-width:100%; margin:0 auto; padding-top:1.5rem;
  display:flex; justify-content:space-between; align-items:center;
  font-size:.92rem; color:rgba(255,255,255,.25);
}

/* ── MODAL ÉXITO ── */
#modal-exito {
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center; padding:1.5rem;
  opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s;
}
#modal-exito.visible { opacity:1; visibility:visible; }
.modal-backdrop {
  position:absolute; inset:0; background:rgba(12,11,9,.75);
  backdrop-filter:blur(4px); cursor:pointer;
}
.modal-card {
  position:relative; z-index:1; background:var(--white);
  border:1px solid var(--border); border-radius:4px;
  padding:3rem 2.5rem; max-width:440px; width:100%; text-align:center;
  box-shadow:0 32px 64px rgba(0,0,0,.12);
  transform:translateY(20px) scale(.98);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
#modal-exito.visible .modal-card { transform:translateY(0) scale(1); }
.modal-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-d));
}
.modal-logo { display:block; height:44px; width:44px; margin:0 auto 1.75rem; }
.modal-check-wrap {
  width:64px; height:64px; border-radius:50%;
  background:var(--snow); border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.5rem;
  animation:check-pop .5s cubic-bezier(.34,1.56,.64,1) .1s both;
}
@keyframes check-pop { 0%{transform:scale(0);opacity:0} 100%{transform:scale(1);opacity:1} }
.modal-check { font-size:1.75rem; }
.modal-divider { width:36px; height:1px; background:var(--gold); margin:.1rem auto 1.25rem; }
.modal-title {
  font-size:1.6rem; font-weight:700; color:var(--text);
  margin-bottom:.5rem; line-height:1.15;
}
.modal-title em { color:var(--gold-d); }
.modal-sub { font-size:.9rem; color:var(--muted); line-height:1.65; margin-bottom:.4rem; }
.modal-email-tag {
  display:inline-block; font-size:.78rem; color:var(--gold-d);
  background:var(--gold-pale); border:1px solid rgba(126,132,141,.2);
  padding:.25rem .85rem; border-radius:2px; margin-bottom:1.75rem;
}
.modal-promise {
  display:flex; align-items:flex-start; gap:.85rem;
  background:var(--snow); border:1px solid var(--border);
  border-radius:var(--r); padding:.875rem 1.25rem; margin-bottom:1.75rem; text-align:left;
}
.modal-promise-icon { font-size:1rem; flex-shrink:0; margin-top:1px; }
.modal-promise-text { font-size:.72rem; color:var(--muted); line-height:1.5; }
.modal-promise-text strong { color:var(--text); display:block; font-size:.875rem; margin-bottom:.1rem; }
.modal-close-btn {
  width:100%; background:var(--black); color:var(--white); border:none;
  cursor:pointer; padding:.875rem; border-radius:var(--r);
  font-family:'DM Sans', sans-serif; font-weight:600; font-size:.875rem;
  letter-spacing:.07em; text-transform:uppercase;
  transition:background .2s, transform .15s;
}
.modal-close-btn:hover { background:var(--gold-d); transform:translateY(-1px); }
.modal-x {
  position:absolute; top:.875rem; right:1rem;
  background:none; border:1px solid var(--border); color:var(--muted);
  width:28px; height:28px; border-radius:50%; font-size:.8rem;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:border-color .2s, color .2s;
}
.modal-x:hover { border-color:var(--text); color:var(--text); }

/* ── RESPONSIVE ── */
@media(max-width:1024px) {
  .services-grid { grid-template-columns:1fr 1fr; }
  .service-card:nth-child(3n) { border-right:1px solid var(--border); }
  .service-card:nth-child(2n) { border-right:none; }
  .service-card:nth-child(4) { border-bottom:1px solid var(--border); }
  .service-card:nth-child(5),.service-card:nth-child(6) { border-bottom:none; }
  .why-grid { grid-template-columns:1fr 1fr; }
  .why-card:nth-child(2) { border-right:none; }
  .why-card:nth-child(3) { border-top:1px solid var(--border); }
  .why-card:last-child { border-right:none; border-top:1px solid var(--border); }
  .footer-grid { grid-template-columns:1fr 1fr 1fr; }
  .footer-grid > *:last-child { grid-column:span 2; }
  .ia-grid, #bi .inner.bi-grid { grid-template-columns:1fr; }
  .ia-visual-overlay { background:linear-gradient(to top, transparent 65%, var(--snow)); }
  .bi-visual::before { background:linear-gradient(to top, transparent 65%, var(--white)) !important; }
  /* Hero stacks at tablet — stats 4-col too narrow en columna 50% */
  #hero .inner { grid-template-columns:1fr; }
  .hero-right { min-height:280px; }
  .hero-right::before { background:linear-gradient(to bottom, transparent 60%, var(--white)); }
  .hero-stats { grid-template-columns:1fr 1fr; gap:1.5rem 0; }
  .hero-stats > div { padding:0 1rem; border-right:none; border-bottom:1px solid var(--border); padding-bottom:1.25rem; }
  .hero-stats > div:nth-child(odd) { padding-left:0; border-right:1px solid var(--border); }
  .hero-stats > div:nth-last-child(-n+2) { border-bottom:none; }
}
@media(max-width:1100px) {
  .nav-links { display:none; }
  .nav-menu-btn { display:flex; }
  .nav-tagline { display:none; }
  .nav-matrix { display:none; }
}
@media(max-width:768px) {
  :root { --nav-h: 72px; }
  .nav-icon { height:48px; width:48px; }
  .nav-brand { font-size:1.6rem; }
  #hero .inner { grid-template-columns:1fr; gap:0; }
  .hero-left { padding:calc(var(--nav-h) + 60px) 5% 60px; max-width:100%; margin-left:0; }
  .hero-right { min-height:300px; }
  .ia-grid { grid-template-columns:1fr; }
  .ia-visual { min-height:300px; }
  .ia-visual-overlay { background:none; }
  #bi .inner.bi-grid { grid-template-columns:1fr !important; }
  .bi-visual { min-height:300px; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { border-right:none !important; }
  .service-card:not(:last-child) { border-bottom:1px solid var(--border) !important; }
  .service-card:last-child { border-bottom:none !important; }
  .why-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-bottom { flex-direction:column; gap:.5rem; text-align:center; }
  /* hero actions wrap más cómodo */
  .hero-actions { gap:.55rem; }
  /* certiva modules a 1 col */
  .certiva-modules { grid-template-columns:1fr; }
  /* clients logos más pequeños en mobile */
  .cl-logo { min-width:140px; padding:1rem 1.5rem; min-height:72px; }
}

/* ── CYBERSECURITY SECTION ── */
#cyber {
  background:var(--snow);
  padding:0;
  position:relative; overflow:hidden;
}
#cyber::before {
  content:'';
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--border) 1px, transparent 1px),
    linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size:60px 60px;
  opacity:.35;
  pointer-events:none;
}
.cyber-grid { display:grid; grid-template-columns:1fr 1fr; }
.cyber-content {
  padding:80px 6% 80px 7%;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; z-index:1;
  background:var(--snow);
}
.cyber-cards-inline { display:flex; flex-direction:column; margin-top:.75rem; }
.cyber-card {
  padding:1.4rem 1.75rem;
  border:1px solid var(--border); border-radius:2px;
  background:var(--white);
  transition:background .25s, border-color .25s, box-shadow .25s;
  cursor:default; margin-bottom:.75rem;
  position:relative; overflow:hidden;
}
.cyber-card::before {
  content:''; position:absolute; top:0; left:0; bottom:0; width:2px;
  background:var(--gold); transform:scaleY(0); transform-origin:bottom;
  transition:transform .3s ease;
}
.cyber-card:hover { background:var(--snow); border-color:rgba(126,132,141,.3); box-shadow:0 4px 16px rgba(0,0,0,.06); }
.cyber-card:hover::before { transform:scaleY(1); }
.cyber-card-header { display:flex; align-items:center; gap:.875rem; margin-bottom:.6rem; }
.cyber-card-icon { display:flex; align-items:center; flex-shrink:0; }
.cyber-card-name { font-size:.95rem; font-weight:600; color:var(--text); }
.cyber-card-tag {
  margin-left:auto; flex-shrink:0;
  font-size:.62rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold-d); background:var(--gold-pale);
  border:1px solid rgba(126,132,141,.2); padding:.18rem .55rem; border-radius:2px;
}
.cyber-card-desc { font-size:.72rem; color:var(--muted); line-height:1.6; }


/* ── CYBER VISUAL (same layout as .ia-visual) ── */
.cyber-visual {
  position:relative; overflow:hidden;
  min-height:580px; background:var(--black);
  grid-row: span 2;
}
.cyber-visual img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .6s ease;
}
.cyber-visual:hover img { transform:scale(1.02); }
.cyber-visual-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to right, transparent 60%, var(--snow));
}
.cyber-visual-label {
  position:absolute; bottom:2rem; left:2rem;
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--white); background:var(--black);
  border:1px solid rgba(126,132,141,.4);
  padding:.4rem .9rem; border-radius:2px;
  font-family:'DM Mono', monospace;
}
@media(max-width:1024px) {
  .cyber-grid { grid-template-columns:1fr; }
  .cyber-visual { min-height:360px; grid-row:auto; }
  .cyber-visual-overlay { background:linear-gradient(to bottom, transparent 60%, var(--snow)); }
}
@media(max-width:768px) {
  .cyber-visual { min-height:280px; }
  .cyber-content { padding:60px 5%; }
}

/* ── MOBILE NAV DRAWER ── */
.nav-links.nav-open {
  display:flex !important;
  flex-direction:column;
  position:fixed;
  top:var(--nav-h); left:0; right:0; bottom:0;
  background:rgba(12,11,9,.98);
  padding:1.5rem 5% 3rem;
  gap:.25rem;
  z-index:98;
  overflow-y:auto;
  border-top:1px solid var(--border);
}
.nav-links.nav-open li a {
  font-size:1.1rem !important;
  font-weight:500 !important;
  letter-spacing:.04em !important;
  text-transform:none !important;
  color:#ffffff !important;
  padding:1rem 0 !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  display:block !important;
  white-space:normal !important;
}
.nav-links.nav-open li:last-child a { border-bottom:none; }

/* ── RESPONSIVE ENHANCEMENTS 768px ── */
@media(max-width:768px) {
  html { font-size:16px; }
  section { padding:64px 5%; }
  #ia, #bi, #cyber { padding:0; }
  .hero-title { font-size:clamp(1.75rem,8vw,2.6rem) !important; }
  .sec-title  { font-size:clamp(1.9rem,6vw,2.8rem) !important; }
  .stat-val { font-size:1.75rem !important; }
  .stat-val span { font-size:1.1rem !important; }
  .hero-left { padding:calc(var(--nav-h) + 48px) 5% 56px !important; }
  /* BI content padding on mobile */
  #bi .inner.bi-grid > div:first-child { padding:60px 5% !important; }
  .bi-benefits { grid-template-columns:1fr !important; }
  /* IA content padding on mobile */
  .ia-content { padding:60px 5%; }
  /* bi-visual gradient direction when stacked: fade top into white content area above */
  .bi-visual::before { background:linear-gradient(to top,transparent 65%,var(--white)) !important; }
  /* Footer full width on mobile */
  .footer-grid { grid-template-columns:1fr !important; gap:2rem; }
}

/* ── RESPONSIVE 480px — celulares pequeños ── */
@media(max-width:480px) {
  :root { --nav-h: 64px; }
  .nav-icon { height:50px; width:50px; }
  html { font-size:15px; }
  section { padding:48px 4%; }
  #ia, #bi, #cyber { padding:0; }
  nav { padding:0 4%; }
  .hero-left { padding:calc(var(--nav-h) + 40px) 4% 48px !important; }
  .hero-title { font-size:clamp(1.5rem,9.5vw,1.9rem) !important; }
  .sec-title  { font-size:clamp(1.65rem,7vw,2.2rem) !important; }
  .stat-val { font-size:1.45rem !important; }
  .hero-stats { grid-template-columns:1fr 1fr !important; }
  /* Grids a una columna */
  .why-grid { grid-template-columns:1fr !important; }
  .why-card { border-right:none !important; }
  .why-card:not(:last-child) { border-bottom:1px solid var(--border); }
  /* Footer */
  footer { padding:40px 4% 24px; }
  .footer-grid { grid-template-columns:1fr !important; gap:1.5rem; }
  .footer-bottom { gap:.35rem; }
  /* Clients */
  .cl-logo { min-width:120px; padding:.875rem 1.25rem; }

  .service-card { padding:1.5rem; }
  .certiva-copy { padding:36px 4% 36px; }
  .dev-content { padding:2rem 1.5rem; }
}

/* ── ACCORDIUM SUITE ── */
#accordium { background:var(--white); padding:0; }

/* ── ACCORDIUM CARDS (border boxes) ── */
.acc-cards { display:flex; flex-direction:column; gap:.75rem; margin:1.75rem 0 2rem; }
.acc-card {
  border:1px solid var(--border);
  border-radius:4px;
  padding:1rem 1.25rem;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  background:var(--white);
}
.acc-card-head { display:flex; align-items:center; gap:.75rem; }
.acc-card-icon { flex-shrink:0; display:flex; align-items:center; color:var(--muted); }
.acc-card-head h4 { flex:1; font-size:.9rem; font-weight:700; color:var(--text); margin:0; }
.acc-card-badge {
  font-family:'DM Mono',monospace;
  font-size:.65rem; font-weight:600; letter-spacing:.08em;
  padding:.2rem .55rem;
  border:1px solid var(--border);
  border-radius:2px;
  color:var(--muted);
  flex-shrink:0;
}
.acc-card p { font-size:.85rem; color:var(--muted); line-height:1.65; margin:0; }
.acc-visual-overlay { position:absolute; inset:0; background:linear-gradient(to left, transparent 60%, var(--snow)); }

/* ── CERTIVA — LEY 21.719 PROTECCIÓN DE DATOS ── */
#certiva { background:#fff; color:var(--text); padding:0; overflow:hidden; }
.certiva-grid { display:grid; grid-template-columns:1fr 1fr; max-width:100%; }
.certiva-copy {
  padding:64px 5% 64px 6%;
  display:flex; flex-direction:column; justify-content:center;
}
.certiva-deadline {
  display:flex; align-items:center; gap:1rem;
  background:rgba(255,80,80,.08); border:1px solid rgba(255,100,100,.28);
  border-radius:4px; padding:.85rem 1.2rem; margin-bottom:2rem;
}
.certiva-alert-svg {
  width:46px; height:46px; flex-shrink:0;
  animation:dl-shake 4s ease-in-out infinite;
}
.dl-ring { transform-box:fill-box; transform-origin:center; }
.dl-ring-a { animation:dl-ripple 2.4s ease-out infinite; }
.dl-ring-b { animation:dl-ripple 2.4s ease-out infinite 1.2s; }
@keyframes dl-ripple {
  0%   { transform:scale(.4); opacity:1; }
  100% { transform:scale(1.7); opacity:0; }
}
@keyframes dl-shake {
  0%,85%,100% { transform:translateX(0) rotate(0); }
  87%  { transform:translateX(-4px) rotate(-3deg); }
  89%  { transform:translateX(4px)  rotate(3deg); }
  91%  { transform:translateX(-3px) rotate(-2deg); }
  93%  { transform:translateX(3px)  rotate(2deg); }
  95%  { transform:translateX(-1px) rotate(-1deg); }
  97%  { transform:translateX(1px)  rotate(1deg); }
  99%  { transform:translateX(0) rotate(0); }
}
.certiva-deadline-text { font-size:.83rem; color:var(--text); line-height:1.45; }
.certiva-deadline-text strong { color:#FF8080; }
.certiva-modules { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1.8rem; margin-bottom:1.8rem; }
.certiva-module { display:flex; gap:1rem; align-items:flex-start; }
.certiva-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.8rem; }
.certiva-tag {
  font-size:.64rem; font-family:'DM Mono',monospace; font-weight:500;
  letter-spacing:.06em; text-transform:uppercase;
  background:#fff; border:1px solid var(--border2); color:var(--text2);
  padding:.25rem .6rem; border-radius:2px;
}
.certiva-module-ico {
  width:34px; height:34px; flex-shrink:0;
  border:1px solid var(--border); border-radius:var(--r);
  display:flex; align-items:center; justify-content:center;
  background:var(--light);
}
.certiva-module-ico svg { width:16px; height:16px; }
.certiva-module-body h4 { font-family:'DM Sans',system-ui,sans-serif; font-size:.88rem; color:var(--text); margin:0 0 .2rem; font-weight:700; }
.certiva-module-body p { font-size:.79rem; color:var(--muted); margin:0; line-height:1.5; }
.certiva-visual {
  position:relative; overflow:hidden; min-height:480px;
  align-self:stretch;
}
img.certiva-img {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center center;
  display:block;
}
.certiva-visual::after {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to left, transparent 60%, var(--white));
  pointer-events:none;
}
@media(max-width:900px){
  .certiva-grid { grid-template-columns:1fr; }
  .certiva-copy { padding:60px 5% 48px; }
  .certiva-modules { grid-template-columns:1fr; }
  .certiva-visual { min-height:300px; }
  .certiva-visual::after { background:none; }
}

/* ── ACCESIBILIDAD: sin animaciones para usuarios con preferencia ── */
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
