:root{--lime:#b4ff00;--black:#0a0a0a;--white:#fff;--violet:#a855f7;--line:#d8d8d8;--max:1440px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Poppins,Arial,sans-serif;color:var(--black);background:#fff}a{color:inherit;text-decoration:none}.site-header{height:86px;display:flex;align-items:center;gap:40px;padding:0 max(28px,5vw);border-bottom:1px solid #eee;position:relative;z-index:20;background:#fff}.brand{display:flex;align-items:center;gap:10px;margin-right:auto;font-weight:700}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--lime);font-weight:800}.brand-name span,.lime{color:#7fbd00}.nav-list{display:flex;gap:30px;list-style:none;margin:0;padding:0;font-size:13px;font-weight:500}.nav a:hover{border-bottom:2px solid var(--lime)}.header-cta{background:var(--lime);padding:13px 20px;font-size:13px;font-weight:600}.menu-toggle{display:none;border:0;background:none;font-size:24px}.hero{max-width:var(--max);min-height:670px;margin:auto;padding:90px max(28px,6vw) 34px;display:grid;grid-template-columns:1.2fr .8fr;gap:6vw;align-items:center}.eyebrow,.kicker{font-size:10px;letter-spacing:.16em;font-weight:700}.claim{font-size:clamp(48px,7.2vw,116px);line-height:.88;letter-spacing:-.065em;font-style:italic;font-weight:800;margin:28px 0;white-space:nowrap}.claim span{color:var(--lime)}.hero-copy>p{max-width:620px;font-size:17px;line-height:1.7;color:#555}.btn-dark{display:inline-block;margin-top:18px;background:#111;color:#fff;padding:16px 22px;font-size:12px;font-weight:600}.btn-dark b{color:var(--lime);margin-left:12px}.hero-foot{margin-top:90px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em}.hero-n{height:470px;display:grid;place-items:center}.n-shape{width:min(100%,390px);height:440px;background:var(--black);clip-path:polygon(0 0,34% 0,66% 55%,66% 0,100% 0,100% 100%,66% 100%,34% 45%,34% 100%,0 100%)}.n-media{height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#333,#111);color:#fff;font-size:11px;letter-spacing:.15em;text-align:center}.ticker{background:var(--lime);padding:15px 0;overflow:hidden;border-block:1px solid #111}.ticker-row{display:flex;width:max-content;font-size:18px;font-weight:800;letter-spacing:.03em;line-height:1.4}.ticker-row span{white-space:nowrap}.ticker-row.left{animation:marquee 28s linear infinite}.ticker-row.right{animation:marqueeR 34s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes marqueeR{from{transform:translateX(-50%)}to{transform:translateX(0)}}.section{max-width:var(--max);margin:auto;padding:110px max(28px,6vw)}.section-head{display:grid;grid-template-columns:1fr .8fr;gap:8vw;align-items:end;margin-bottom:70px}.section h2,.dark-head h2,.contact h2{font-size:clamp(38px,5vw,76px);line-height:1.02;letter-spacing:-.045em;margin:18px 0}.section-head>p{max-width:470px;color:#666;line-height:1.8}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{min-height:260px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);opacity:0;transform:translateY(15px);transition:.5s}.service-card.visible{opacity:1;transform:none}.service-card>span{font-size:10px;color:#888}.service-card h3{font-size:20px;margin:55px 0 12px}.service-card p{font-size:12px;line-height:1.7;color:#666}.service-card b{float:right;font-size:20px}.section-dark{background:var(--black);color:#fff;padding:100px max(28px,6vw)}.dark-head{max-width:var(--max);margin:auto;display:flex;align-items:end;justify-content:space-between}.dark-head>a{font-size:11px;border-bottom:1px solid var(--lime);padding-bottom:4px}.project-grid{max-width:var(--max);margin:50px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-card{opacity:0;transform:translateY(15px);transition:.5s}.project-card.visible{opacity:1;transform:none}.project-card img,.project-placeholder{width:100%;aspect-ratio:4/5;object-fit:cover}.project-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#333,#151515);color:#aaa;font-size:20px}.project-card small{color:#aaa;font-size:9px}.project-card h3{font-size:18px;margin:6px 0}.method{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.method-title em{font-style:normal;color:#777}.steps{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.steps article{padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:210px;opacity:0;transition:.5s}.steps article.visible{opacity:1}.steps span{color:#8abb00;font-size:11px}.steps h3{margin-top:40px}.steps p{font-size:12px;color:#666;line-height:1.7}.brands{overflow:hidden;border-block:1px solid #eee;padding:32px 0}.brand-track{display:flex;gap:80px;width:max-content;align-items:center;animation:marquee 32s linear infinite}.brand-track span{font-size:18px;font-weight:700;color:#777;white-space:nowrap}.news-head{display:flex;justify-content:space-between;align-items:end}.news-head>a{font-size:11px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:50px}.news-card{opacity:0;transition:.5s}.news-card.visible{opacity:1}.news-card img,.news-placeholder{width:100%;aspect-ratio:16/10;object-fit:cover;background:linear-gradient(135deg,#222,#666)}.news-card small{display:block;margin-top:18px;font-size:9px;color:#777}.news-card h3{font-size:17px;line-height:1.4}.news-card>span{font-size:11px}.contact{background:var(--lime);padding:95px max(28px,7vw);position:relative}.contact h2{max-width:800px}.contact p{font-size:14px}.contact>a{position:absolute;right:8vw;bottom:100px;border:1px solid #111;padding:17px 22px;font-size:12px}.footer{background:#0a0a0a;color:#fff;padding:70px max(28px,6vw) 25px}.footer-top{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:50px}.footer-logo{display:grid;place-items:center;width:48px;height:48px;background:var(--lime);color:#000;font-weight:800}.footer h3{font-size:10px;color:#aaa;text-transform:uppercase;letter-spacing:.15em}.footer a,.footer span,.footer p{display:block;font-size:11px;color:#aaa;line-height:2}.footer-bottom{max-width:var(--max);margin:60px auto 0;padding-top:18px;border-top:1px solid #333;display:flex;justify-content:space-between}.case{max-width:1100px;margin:auto;padding:90px 28px}.case h1{font-size:clamp(45px,7vw,90px)}.case>img{width:100%;height:auto}.case-content{max-width:800px;font-size:16px;line-height:1.8;margin-top:50px}.back{font-size:12px}.visible{}@media(max-width:900px){.nav{display:none;position:absolute;top:86px;left:0;right:0;background:#fff;padding:30px}.nav.open{display:block}.nav-list{flex-direction:column}.header-cta{display:none}.menu-toggle{display:block}.hero{grid-template-columns:1fr;padding-top:55px}.claim{white-space:normal}.hero-n{height:330px}.n-shape{height:320px}.hero-foot{margin-top:50px}.section-head,.method{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr 1fr}.project-grid,.news-grid{grid-template-columns:1fr 1fr}.footer-top{grid-template-columns:1fr 1fr}.contact>a{position:static;display:inline-block;margin-top:25px}}@media(max-width:600px){.site-header{height:72px}.brand-name{font-size:13px}.hero{min-height:auto}.hero-n{height:270px}.n-shape{height:260px}.ticker-row{font-size:14px}.section,.section-dark{padding-top:75px;padding-bottom:75px}.service-grid,.project-grid,.news-grid,.steps{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr}.footer-bottom{display:block}.contact h2{font-size:42px}}

/* v0.1.1: primer viewport según diseño aprobado */
.site-header{height:82px;padding:0 max(32px,6.2vw);gap:34px;border-bottom:0}.brand{width:170px;display:block;margin-right:auto}.brand img{display:block;width:100%;height:auto}.nav-list{gap:31px;font-size:10px;text-transform:uppercase}.nav-list a{position:relative;padding:31px 0 26px}.nav-list a.active:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--lime);left:50%;bottom:13px;transform:translateX(-50%)}.nav a:hover{border:0}.header-cta{background:#0a0a0a;color:var(--lime);text-transform:uppercase;font-size:10px;padding:14px 20px}.menu-toggle{display:block;width:36px;height:36px;padding:8px;background:transparent}.menu-toggle span{display:block;width:17px;height:2px;background:#111;margin:4px auto}
.hero{max-width:none;min-height:655px;padding:52px max(32px,6.2vw) 30px;grid-template-columns:1.02fr .98fr;gap:25px;overflow:hidden}.hero-copy{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:10px;letter-spacing:.13em;margin-bottom:25px}.claim{font-size:clamp(56px,5.9vw,103px);line-height:.91;letter-spacing:-.075em;margin:0 0 25px;white-space:nowrap}.claim i,.claim span{color:var(--lime)}.hero-copy>p{max-width:610px;font-size:16px;line-height:1.65;margin:0}.btn-dark{align-self:flex-start;margin-top:26px;padding:15px 20px;font-size:10px}.hero-foot{margin-top:auto;padding-top:55px;font-size:8px}.hero-foot b{color:var(--lime)}
.hero-visual{position:relative;height:555px;display:grid;place-items:center}.hero-isotipo{position:relative;z-index:3;width:min(76%,470px);height:auto}.construction-lines{position:absolute;inset:6% 4%;z-index:1;opacity:.55;background:linear-gradient(90deg,transparent 49.85%,#e4e4e4 50%,transparent 50.15%),linear-gradient(0deg,transparent 49.85%,#e4e4e4 50%,transparent 50.15%)}.construction-lines:before{content:"";position:absolute;width:72%;aspect-ratio:1;right:4%;top:11%;border:1px solid rgba(180,255,0,.7);border-radius:50%}.orb{position:absolute;border-radius:50%;z-index:4;background:var(--lime)}.orb-large{width:118px;height:118px;right:13%;top:13%}.orb-small{width:54px;height:54px;right:9%;top:48%;background:#1a1a1a;border:5px solid #fff}
.discipline-strip{min-height:91px;background:var(--lime);display:grid;grid-template-columns:42px repeat(5,1fr) 42px;align-items:center;padding:0 max(20px,2vw);gap:8px}.discipline{height:58px;display:grid;grid-template-columns:42px 1fr 24px;align-items:center;gap:8px;padding:0 12px;border-right:1px solid rgba(0,0,0,.18)}.discipline b{font-size:27px}.discipline strong{font-size:10px;line-height:1.35}.discipline small{font-size:9px;align-self:end;padding-bottom:8px}.strip-arrow{font-size:20px;text-align:center}
@media(max-width:1000px){.nav{display:none}.nav.open{display:block}.hero{grid-template-columns:1fr}.claim{white-space:normal}.hero-visual{height:420px}.discipline-strip{grid-template-columns:1fr 1fr}.strip-arrow{display:none}}
@media(max-width:600px){.site-header{height:72px;padding-inline:22px}.brand{width:145px}.hero{padding:45px 22px 24px;min-height:auto}.claim{font-size:52px}.hero-visual{height:330px}.discipline-strip{grid-template-columns:1fr}}

/* ===== v0.1.2 — faithful approved hero ===== */
.site-header{height:82px;padding:0 6.2vw;border:0;display:flex;align-items:center;gap:30px;background:#fff}
.brand{width:176px;margin-right:auto;display:block}.brand img{display:block;width:100%;height:auto}
.nav{display:block}.nav-list{display:flex;align-items:center;gap:31px;list-style:none;margin:0;padding:0;font-size:9px;text-transform:uppercase}
.nav-list a{position:relative;padding:31px 0 27px}.nav-list a.active:after{content:"";position:absolute;left:50%;bottom:13px;width:7px;height:7px;border-radius:50%;background:var(--lime);transform:translateX(-50%)}
.header-cta{background:#090909;color:var(--lime);padding:14px 20px;font-size:9px;text-transform:uppercase;box-shadow:0 4px 10px #0002}
.menu-toggle{display:block;width:34px;height:34px;border:0;background:transparent;padding:7px}.menu-toggle span{display:block;width:17px;height:2px;background:#111;margin:4px auto}

.hero{max-width:none;min-height:625px;margin:0;padding:45px 6.2vw 28px;display:grid;grid-template-columns:1.02fr .98fr;gap:2vw;align-items:stretch;overflow:hidden}
.hero-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}.eyebrow{font-size:9px;letter-spacing:.13em;font-weight:600;margin:0 0 25px}
.claim{font-family:"Arial Narrow","Roboto Condensed",Poppins,sans-serif;font-stretch:condensed;font-size:clamp(56px,5.45vw,95px);line-height:.9;letter-spacing:-.078em;font-style:italic;font-weight:900;margin:0 0 25px;white-space:nowrap}.claim i{color:var(--lime);font-style:italic}.claim span{color:var(--lime)}
.hero-copy>p{max-width:610px;font-size:15px;line-height:1.65;color:#333;margin:0}.btn-dark{align-self:flex-start;margin-top:25px;background:#0a0a0a;color:#fff;padding:14px 18px;font-size:9px;text-transform:uppercase}.btn-dark b{color:var(--lime);margin-left:12px}
.hero-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:45px;font-size:7.5px;letter-spacing:.08em}.hero-foot b{color:var(--lime)}

.hero-art{position:relative;height:540px;align-self:center}
.blueprint{position:absolute;inset:1% 0 0 0;opacity:.65;background:
linear-gradient(90deg,transparent 19.8%,#e9e9e9 20%,transparent 20.2%,transparent 49.8%,#e9e9e9 50%,transparent 50.2%,transparent 79.8%,#e9e9e9 80%,transparent 80.2%),
linear-gradient(0deg,transparent 24.8%,#e9e9e9 25%,transparent 25.2%,transparent 49.8%,#e9e9e9 50%,transparent 50.2%,transparent 74.8%,#e9e9e9 75%,transparent 75.2%)}
.blueprint:before{content:"";position:absolute;width:73%;aspect-ratio:1;right:4%;top:7%;border:1px solid rgba(180,255,0,.72);border-radius:50%}
.blueprint:after{content:"";position:absolute;width:58%;height:1px;background:#dcdcdc;left:8%;top:16%;transform:rotate(-43deg);transform-origin:left}
.n-photo{position:absolute;z-index:2;left:10%;top:8%;width:72%;height:82%;background-image:url("../img/hero-media.jpg");background-size:cover;background-position:center;clip-path:polygon(0 0,34% 0,67% 54%,67% 0,100% 0,100% 100%,67% 100%,34% 46%,34% 100%,0 100%);filter:saturate(.8) contrast(.95)}
.circle{position:absolute;z-index:4;border-radius:50%}.circle-lime{width:118px;height:118px;background:var(--lime);right:13%;top:11%}.circle-photo{width:55px;height:55px;right:9%;top:47%;background-image:url("../img/hero-media.jpg");background-size:cover;background-position:75% center;border:3px solid #fff}

.discipline-strip{height:88px;background:var(--lime);display:grid;grid-template-columns:40px repeat(5,1fr) 40px;align-items:center;padding:0 2.5vw;gap:0}.strip-arrow{border:0;background:transparent;font-size:19px}.discipline{height:56px;display:grid;grid-template-columns:38px 1fr 20px;gap:8px;align-items:center;padding:0 12px;border-right:1px solid #0002}.discipline:last-of-type{border-right:0}.service-icon{font-size:25px;line-height:1}.discipline strong{font-size:9px;line-height:1.35}.discipline small{font-size:8px;align-self:end;padding-bottom:8px}.monitor{width:25px;height:18px;border:3px solid #111;position:relative}.monitor:after{content:"";position:absolute;width:17px;height:3px;background:#111;left:1px;bottom:-8px}.bubble{width:26px;height:21px;border:3px solid #111;position:relative}.bubble:after{content:"";position:absolute;width:7px;height:7px;border-left:3px solid #111;transform:skew(-25deg);bottom:-7px;left:3px}.play{width:27px;height:27px;border:3px solid #111;border-radius:50%;display:grid;place-items:center;font-size:11px;padding-left:2px}

@media(max-width:1000px){.nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fff;padding:25px 6vw}.nav.open{display:block}.nav-list{flex-direction:column;align-items:flex-start}.nav-list a{padding:6px 0}.nav-list a.active:after{display:none}.hero{grid-template-columns:1fr}.claim{white-space:normal}.hero-art{height:420px}.discipline-strip{height:auto;grid-template-columns:1fr 1fr;padding:10px 20px}.strip-arrow{display:none}}
@media(max-width:600px){.site-header{height:72px;padding:0 22px}.brand{width:150px}.header-cta{display:none}.hero{padding:42px 22px 25px;min-height:auto}.claim{font-size:51px}.hero-copy>p{font-size:14px}.hero-foot{margin-top:45px}.hero-art{height:325px}.circle-lime{width:76px;height:76px}.circle-photo{width:42px;height:42px}.discipline-strip{grid-template-columns:1fr}.discipline{border-right:0;border-bottom:1px solid #0002}}

/* ===== v0.1.3 · ajustes aprobados 19/10 ===== */
.brand{width:178px}
.nav-list{font-size:12px;gap:31px}
.header-cta{font-size:11px;padding:15px 22px}

/* Hero: título más contenido para no invadir el área visual de la N */
.claim{font-size:clamp(52px,4.75vw,82px);letter-spacing:-.072em;max-width:100%}

/* CTA editorial: borde negro, fondo blanco, texto negro */
.btn-dark{
  background:transparent;
  color:#0a0a0a;
  border:1.5px solid #0a0a0a;
  padding:14px 19px;
  font-size:11px;
  font-weight:600;
  box-shadow:none;
}
.btn-dark b{color:#0a0a0a}
.btn-dark:hover{background:#0a0a0a;color:#fff}
.btn-dark:hover b{color:var(--lime)}

@media(max-width:600px){
  .brand{width:152px}
  .claim{font-size:46px}
}

/* ===== v0.1.4 · N original del logotipo como máscara ===== */
.n-photo{
  left:10%;
  top:7%;
  width:73%;
  height:84%;
  background-image:url("../img/hero-media.jpg");
  background-size:cover;
  background-position:center;
  clip-path:none;
  -webkit-clip-path:none;
  -webkit-mask-image:url("../img/n-mask.svg");
  mask-image:url("../img/n-mask.svg");
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
}

/* ===== v0.1.5 · refinamiento fino del primer viewport ===== */

/* Header: navegación más centrada, legible y equilibrada */
.site-header{position:relative}
.nav{
  position:absolute;
  left:58%;
  top:50%;
  transform:translate(-50%,-50%);
}
.nav-list{
  gap:34px;
  font-size:12px;
  font-weight:500;
}
.nav-list a{padding:27px 0 25px}
.header-cta{
  border-radius:5px;
  font-size:12px;
  font-weight:700;
  letter-spacing:0;
  color:#b4ff00;
  padding:15px 23px;
}

/* Columna izquierda: misma presencia vertical que el bloque visual */
.hero{padding-top:38px;padding-bottom:25px}
.hero-copy{
  height:540px;
  justify-content:flex-start;
  padding-top:42px;
}
.eyebrow{
  font-size:11px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.105em;
  margin-bottom:34px;
}
.claim{
  font-family:"Arial Narrow","Roboto Condensed",Impact,sans-serif;
  font-size:clamp(50px,4.18vw,74px);
  line-height:.88;
  letter-spacing:-.075em;
  transform:scaleX(.91);
  transform-origin:left center;
  width:109.9%;
  margin:0 0 30px;
  white-space:nowrap;
}
.hero-copy>p{
  max-width:555px;
  font-size:16px;
  line-height:1.55;
  margin:0;
}
.btn-dark{
  margin-top:28px;
  border-radius:5px;
  padding:15px 20px;
  font-size:11px;
}

/* Pie del hero: extremos reales de la columna y mejor legibilidad */
.hero-foot{
  width:100%;
  margin-top:auto;
  padding-top:0;
  font-size:9px;
  line-height:1;
  letter-spacing:.07em;
}
.hero-foot span:first-child{margin-left:0}
.hero-foot span:last-child{
  margin-left:auto;
  font-weight:400;
}
.hero-foot span:last-child::first-line{font-weight:400}

/* La frase final se arma con énfasis visual desde CSS/HTML */
.hero-foot .world-strong{font-weight:700;color:#0a0a0a}

/* Mantener el área visual derecha independiente del titular */
.hero-art{height:540px}

@media(max-width:1250px){
  .nav{left:57%}
  .nav-list{gap:24px;font-size:11px}
  .claim{font-size:clamp(48px,4vw,68px)}
}
@media(max-width:1000px){
  .nav{position:absolute;left:0;right:0;top:82px;transform:none}
  .hero-copy{height:auto;padding-top:10px}
  .claim{transform:none;width:auto;white-space:normal}
}

/* ===== v0.1.6 · distribución vertical según mockup maestro ===== */

/* El hero se comporta como una composición de altura fija en desktop */
.hero{
  min-height:625px;
  padding-top:26px;
  padding-bottom:28px;
  align-items:center;
}
.hero-copy{
  height:540px;
  padding-top:0;
  display:grid;
  grid-template-rows:auto auto auto auto 1fr auto;
  align-content:stretch;
  justify-content:stretch;
}

/* Posiciones verticales independientes, siguiendo la referencia */
.eyebrow{
  margin:38px 0 0;
  align-self:start;
}
.claim{
  margin:43px 0 0;
  align-self:start;
}
.hero-copy>p{
  margin:30px 0 0;
  align-self:start;
}
.btn-dark{
  margin-top:28px;
  align-self:start;
  justify-self:start;
}
.hero-foot{
  grid-row:6;
  align-self:end;
  margin:0;
  padding:0;
}

/* La N queda alineada con la misma caja vertical */
.hero-art{
  height:540px;
  align-self:center;
}

/* Evita que el titular vuelva a invadir el área visual */
.claim{
  font-size:clamp(48px,3.95vw,70px);
  transform:scaleX(.90);
  transform-origin:left center;
  width:111%;
}

@media(max-width:1000px){
  .hero{min-height:auto;padding-top:42px}
  .hero-copy{height:auto;display:flex;padding-top:0}
  .eyebrow,.claim,.hero-copy>p{margin-top:0}
  .eyebrow{margin-bottom:28px}
  .claim{margin-bottom:28px}
  .btn-dark{margin-top:26px}
  .hero-foot{margin-top:48px}
}

/* ===== v0.1.7 · hero geometry rebuilt from approved reference ===== */
@media(min-width:1001px){

  .hero{
    min-height:625px;
    padding:28px 6.2vw 26px;
    grid-template-columns:52% 48%;
    column-gap:0;
    align-items:center;
  }

  /* Both sides share the same vertical frame */
  .hero-copy,
  .hero-art{
    height:540px;
  }

  .hero-copy{
    position:relative;
    display:block;
    padding:0;
  }

  /* Explicit vertical coordinates from the reference composition */
  .eyebrow{
    position:absolute;
    top:35px;
    left:0;
    margin:0;
    font-size:11px;
    line-height:1;
    font-weight:600;
    letter-spacing:.105em;
  }

  .claim{
    position:absolute;
    top:105px;
    left:0;
    margin:0;
    width:auto;
    max-width:96%;
    white-space:nowrap;
    font-size:clamp(50px,3.82vw,69px);
    line-height:.88;
    letter-spacing:-.075em;
    transform:scaleX(.90);
    transform-origin:left top;
  }

  .hero-copy>p{
    position:absolute;
    top:225px;
    left:0;
    margin:0;
    width:520px;
    max-width:88%;
    font-size:16px;
    line-height:1.55;
  }

  .btn-dark{
    position:absolute;
    top:315px;
    left:0;
    margin:0;
    border-radius:5px;
    padding:15px 20px;
  }

  .hero-foot{
    position:absolute;
    left:0;
    right:0;
    bottom:7px;
    width:auto;
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:9px;
    letter-spacing:.07em;
  }

  /* Pull the artwork toward the copy to remove the oversized central void */
  .hero-art{
    position:relative;
    left:-28px;
    width:calc(100% + 28px);
  }

  .n-photo{
    left:4%;
    width:75%;
  }

  .blueprint{
    left:-2%;
    right:0;
  }

  .circle-lime{
    right:12%;
  }

  .circle-photo{
    right:8%;
  }
}

/* ===== v0.1.8 · legibilidad + proporciones del isotipo ===== */
@media(min-width:1001px){

  /* Navegación y CTA: lectura real a distancia de monitor */
  .nav-list{
    font-size:14px;
    font-weight:500;
    gap:33px;
  }
  .header-cta{
    font-size:13px;
    font-weight:700;
    padding:15px 24px;
    border-radius:6px;
  }

  /* Eyebrow */
  .eyebrow{
    top:30px;
    font-size:13px;
    font-weight:600;
    letter-spacing:.09em;
  }

  /* Titular: recupera escala del prototipo sin invadir la N */
  .claim{
    top:96px;
    max-width:100%;
    font-size:clamp(58px,4.45vw,80px);
    line-height:.88;
    letter-spacing:-.078em;
    transform:scaleX(.86);
    width:116%;
  }

  /* Bajada más grande y con dos líneas controladas */
  .hero-copy>p{
    top:232px;
    width:590px;
    max-width:91%;
    font-size:18px;
    line-height:1.55;
  }

  /* CTA más legible */
  .btn-dark{
    top:337px;
    font-size:13px;
    padding:16px 22px;
    border-radius:6px;
  }

  /* Pie: extremos de TODO el hero, no del bloque de texto */
  .hero-foot{
    position:fixed; /* overridden immediately below to keep it in hero geometry */
  }
  .hero-foot{
    position:absolute;
    left:0;
    bottom:3px;
    width:calc(192.3% + 0px);
    right:auto;
    font-size:11px;
    line-height:1;
    letter-spacing:.055em;
    pointer-events:none;
  }
  .hero-foot span:first-child{
    margin-left:0;
  }
  .hero-foot span:last-child{
    margin-left:auto;
    margin-right:0;
  }

  /* N y sus círculos funcionan como una sola marca visual */
  .hero-art{
    left:-20px;
    width:calc(100% + 20px);
  }
  .n-photo{
    left:5%;
    top:7%;
    width:75%;
    height:84%;
  }

  /* El círculo principal vuelve hacia la N, como en el isotipo */
  .circle-lime{
    width:112px;
    height:112px;
    right:22%;
    top:10%;
  }
  .circle-photo{
    width:51px;
    height:51px;
    right:18%;
    top:46%;
  }
}

@media(max-width:1250px) and (min-width:1001px){
  .nav-list{font-size:12px;gap:23px}
  .header-cta{font-size:12px}
  .claim{font-size:clamp(54px,4.25vw,70px)}
  .hero-copy>p{font-size:17px}
}

/* ===== v0.1.9 · valores validados manualmente + lockup del isotipo ===== */
@media(min-width:1001px){
  .brand{width:250px}

  .nav-list{
    font-size:15px;
    font-weight:700;
    gap:33px;
  }
  .header-cta{
    font-size:15px;
    font-weight:700;
    padding:15px 24px;
    border-radius:6px;
  }

  .eyebrow{
    top:20px;
    font-size:14px;
    font-weight:600;
  }
  .claim{
    top:90px;
    font-size:clamp(62px,4.55vw,82px);
    transform:scaleX(.86);
    transform-origin:left top;
  }
  .hero-copy>p{
    top:250px;
    width:590px;
    max-width:91%;
    font-size:20px;
    font-weight:500;
    line-height:1.55;
  }
  .btn-dark{
    top:365px;
    font-size:14px;
    font-weight:600;
    padding:16px 22px;
    border-radius:6px;
  }
  .hero-foot{
    bottom:3px;
    font-size:13px;
    font-weight:500;
  }

  /* Isotipo: N + puntos vuelven a comportarse como un único lockup.
     La N usa el path original; los puntos quedan anclados a su caja,
     no al borde derecho del hero. */
  .hero-art{
    left:-20px;
  }
  .n-photo{
    left:5%;
    top:7%;
    width:75%;
    height:84%;
  }
  .circle-lime{
    width:112px;
    height:112px;
    left:62%;
    right:auto;
    top:10%;
  }
  .circle-photo{
    width:51px;
    height:51px;
    left:74%;
    right:auto;
    top:43%;
  }
}

/* ===== v0.2.0 · HERO MASTER: texto dentro del alto de la N + isotipo indivisible ===== */
@media(min-width:1001px){

  /* Valores de legibilidad ya validados manualmente */
  .brand{width:250px}
  .nav-list{font-size:15px;font-weight:700;gap:33px}
  .header-cta{font-size:15px;font-weight:700;padding:15px 24px;border-radius:6px}

  .hero{
    min-height:625px;
    padding:28px 6.2vw 26px;
    grid-template-columns:52% 48%;
    column-gap:0;
    align-items:center;
  }

  .hero-copy,
  .hero-art{
    position:relative;
    height:540px;
    padding:0;
  }
  .hero-copy{display:block}

  /* Caja maestra vertical:
     top 50px / bottom 474px = mismo alto visual que el isotipo. */
  .eyebrow{
    position:absolute;
    left:0;
    top:50px;
    margin:0;
    font-size:14px;
    line-height:1;
    font-weight:600;
    letter-spacing:.09em;
  }

  .claim{
    position:absolute;
    left:0;
    top:145px;
    margin:0;
    width:100%;
    max-width:none;
    white-space:nowrap;
    font-size:clamp(66px,4.55vw,82px);
    line-height:.86;
    letter-spacing:-.078em;
    transform:scaleX(.86);
    transform-origin:left top;
  }

  .hero-copy>p{
    position:absolute;
    left:0;
    top:240px;
    width:610px;
    max-width:92%;
    margin:0;
    font-size:20px;
    line-height:1.55;
    font-weight:500;
  }

  .btn-dark{
    position:absolute;
    left:0;
    top:385px;
    margin:0;
    padding:16px 22px;
    font-size:14px;
    font-weight:600;
    border-radius:6px;
  }

  /* Pie fuera de la caja de la N */
  .hero-foot{
    position:absolute;
    left:0;
    bottom:0;
    width:calc(100vw - 12.4vw);
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:13px;
    line-height:1;
    font-weight:500;
    letter-spacing:.055em;
    pointer-events:none;
  }
  .hero-foot span:first-child{margin:0}
  .hero-foot span:last-child{margin:0}

  /* Área derecha */
  .hero-art{
    left:-8px;
    width:calc(100% + 8px);
  }

  /* El isotipo completo es UNA sola unidad.
     Proporciones tomadas de la referencia de marca suministrada:
     frame aprox. 467 x 421. */
  .isotipo-lockup{
    position:absolute;
    z-index:3;
    left:8%;
    top:50px;
    width:min(78%,470px);
    aspect-ratio:467 / 421;
  }

  /* N: conserva la forma original como máscara del futuro video */
  .isotipo-lockup .n-photo{
    position:absolute;
    z-index:2;
    left:0;
    top:0;
    width:89%;
    height:97%;
    background-image:url("../img/hero-media.jpg");
    background-size:cover;
    background-position:center;
    -webkit-mask-image:url("../img/n-mask.svg");
    mask-image:url("../img/n-mask.svg");
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
    clip-path:none;
    filter:saturate(.8) contrast(.95);
  }

  /* Puntos anclados al frame del isotipo, no al hero */
  .isotipo-lockup .circle-lime{
    position:absolute;
    z-index:4;
    left:59.5%;
    top:0;
    width:38.2%;
    height:auto;
    aspect-ratio:1;
    right:auto;
    background:var(--lime);
    border:0;
  }

  .isotipo-lockup .circle-photo{
    position:absolute;
    z-index:4;
    left:84.2%;
    top:48.5%;
    width:12.2%;
    height:auto;
    aspect-ratio:1;
    right:auto;
    background-image:url("../img/hero-media.jpg");
    background-size:cover;
    background-position:75% center;
    border:3px solid #fff;
  }

  /* Las líneas de construcción acompañan, pero no alteran el lockup */
  .blueprint{left:-2%;right:0}
}

@media(max-width:1250px) and (min-width:1001px){
  .nav-list{font-size:15px;gap:25px}
  .header-cta{font-size:15px}
  .claim{font-size:clamp(62px,4.35vw,74px)}
  .hero-copy>p{font-size:20px}
}

/* ===== v0.2.1 · franja verde de servicios según referencia aprobada ===== */
@media(min-width:1001px){
  .ticker{
    min-height:92px;
    height:92px;
    overflow:hidden;
    display:flex;
    align-items:center;
    padding:0 24px;
  }

  .ticker-track{
    width:100%;
    min-width:0;
    height:100%;
    display:grid;
    grid-template-columns:44px repeat(5, minmax(0,1fr)) 44px;
    align-items:center;
    gap:0;
    animation:none;
    transform:none;
  }

  /* Oculta repeticiones del ticker anterior y deja una sola fila */
  .ticker-track > *:nth-child(n+8){display:none}

  .ticker-arrow{
    font-size:27px;
    line-height:1;
    font-weight:500;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .ticker-item{
    height:62%;
    min-width:0;
    display:grid;
    grid-template-columns:48px 1fr 25px;
    align-items:center;
    column-gap:13px;
    padding:0 20px;
    border-right:1px solid rgba(10,10,10,.16);
  }
  .ticker-item:nth-of-type(6){border-right:0}

  .ticker-icon{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:31px;
    line-height:1;
    flex:0 0 auto;
  }
  .ticker-icon svg{
    width:34px;
    height:34px;
    stroke-width:1.8;
  }

  .ticker-label{
    font-size:14px;
    line-height:1.12;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:-.015em;
  }

  .ticker-num{
    justify-self:end;
    align-self:end;
    padding-bottom:7px;
    font-size:11px;
    line-height:1;
    font-weight:500;
  }
}

/* ===== v0.2.2 · banner verde: escala real, no microtipografía ===== */
@media(min-width:1001px){
  .ticker{
    height:118px;
    min-height:118px;
    padding:0 30px;
  }
  .ticker-track{
    grid-template-columns:58px repeat(5,minmax(0,1fr)) 58px;
  }
  .ticker-arrow{
    font-size:34px;
    font-weight:600;
  }
  .ticker-item{
    height:76%;
    grid-template-columns:62px minmax(0,1fr) 34px;
    column-gap:16px;
    padding:0 24px;
  }
  .ticker-icon{
    width:50px;
    height:50px;
    font-size:43px;
  }
  .ticker-icon svg{
    width:48px;
    height:48px;
    stroke-width:2;
  }
  .ticker-label{
    font-size:18px;
    line-height:1.08;
    font-weight:700;
  }
  .ticker-num{
    font-size:14px;
    font-weight:600;
    padding-bottom:9px;
  }
}
@media(min-width:1500px){
  .ticker{height:126px;min-height:126px}
  .ticker-label{font-size:19px}
  .ticker-icon{width:54px;height:54px;font-size:46px}
  .ticker-icon svg{width:52px;height:52px}
  .ticker-num{font-size:14px}
}

/* ===== v0.2.3 · CORRECCIÓN REAL DEL BANNER VERDE =====
   Las versiones 0.2.1/0.2.2 estaban escalando clases antiguas (.ticker).
   Este bloque actúa sobre el markup real del theme. */
@media(min-width:1001px){
  .discipline-strip{
    height:124px;
    min-height:124px;
    grid-template-columns:58px repeat(5,minmax(0,1fr)) 58px;
    padding:0 2.6vw;
    gap:0;
  }

  .strip-arrow{
    font-size:32px;
    font-weight:600;
    line-height:1;
    padding:0;
  }

  .discipline{
    height:82px;
    grid-template-columns:64px minmax(0,1fr) 34px;
    gap:15px;
    padding:0 22px;
    border-right:1px solid rgba(0,0,0,.18);
  }

  .service-icon{
    font-size:43px;
    line-height:1;
    width:52px;
    min-width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .discipline strong{
    font-size:18px;
    line-height:1.12;
    font-weight:700;
    letter-spacing:-.015em;
  }

  .discipline small{
    font-size:14px;
    line-height:1;
    font-weight:600;
    align-self:end;
    padding-bottom:10px;
  }

  .monitor{
    width:45px;
    height:32px;
    border-width:4px;
  }
  .monitor:after{
    width:31px;
    height:4px;
    left:3px;
    bottom:-10px;
  }

  .bubble{
    width:46px;
    height:37px;
    border-width:4px;
  }
  .bubble:after{
    width:11px;
    height:11px;
    border-left-width:4px;
    bottom:-10px;
    left:5px;
  }

  .play{
    width:48px;
    height:48px;
    border-width:4px;
    font-size:18px;
    padding-left:3px;
  }

  .bars{
    font-size:45px;
  }
}

@media(min-width:1500px){
  .discipline-strip{
    height:132px;
    min-height:132px;
  }
  .discipline{
    height:88px;
    grid-template-columns:70px minmax(0,1fr) 36px;
    padding-inline:24px;
  }
  .discipline strong{font-size:20px}
  .discipline small{font-size:15px}
  .service-icon{width:56px;min-width:56px;height:56px;font-size:47px}
  .strip-arrow{font-size:35px}
}

/* ===== v0.2.4 · sección Servicios según mockup aprobado ===== */
@media(min-width:1001px){
  .services.section{
    padding-top:78px;
    padding-bottom:92px;
  }
  .services-intro{
    display:grid;
    grid-template-columns:minmax(390px,1.05fr) minmax(360px,.72fr) 190px;
    gap:58px;
    align-items:start;
    margin-bottom:62px;
  }
  .services-title .kicker{
    display:block;
    margin:0 0 14px;
    font-size:13px;
    line-height:1;
    letter-spacing:.08em;
    font-weight:700;
  }
  .services-title .kicker i{
    display:inline-block;
    width:9px;
    height:2px;
    margin-right:7px;
    background:var(--lime);
    transform:rotate(-60deg) translateY(-2px);
    transform-origin:center;
  }
  .services .services-title h2{
    margin:0;
    max-width:560px;
    font-size:clamp(46px,3.65vw,66px);
    line-height:.98;
    letter-spacing:-.055em;
    font-weight:700;
  }
  .services-intro>p{
    margin:35px 0 0;
    max-width:470px;
    font-size:16px;
    line-height:1.55;
    font-weight:400;
    color:#222;
  }
  .services-all{
    margin-top:25px;
    min-height:76px;
    border:1px solid #777;
    border-radius:5px;
    padding:16px 17px;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    font-size:12px;
    line-height:1.25;
    font-weight:700;
  }
  .services-all b{font-size:21px;font-weight:400;padding-left:12px}

  .services .service-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    border-top:0;
    border-left:0;
  }
  .services .service-card{
    min-height:220px;
    padding:31px 34px 28px 0;
    display:grid;
    grid-template-columns:78px minmax(0,1fr);
    gap:19px;
    align-items:start;
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .services .service-card:nth-child(3n+2),
  .services .service-card:nth-child(3n+3){padding-left:34px}
  .services .service-card:nth-child(3n){border-right:0}
  .services .service-card:nth-child(n+4){border-bottom:0;padding-top:36px}
  .services .service-card.visible{opacity:1;transform:none}
  .service-card-copy{min-width:0}
  .services .service-number{
    display:block;
    margin:0 0 18px;
    font-size:12px;
    line-height:1;
    color:#111;
    font-weight:500;
  }
  .services .service-card h3{
    margin:0 0 10px;
    font-size:21px;
    line-height:1.12;
    letter-spacing:-.025em;
    font-weight:600;
  }
  .services .service-card p{
    margin:0;
    max-width:310px;
    font-size:15px;
    line-height:1.48;
    color:#555;
  }
  .services .service-card>b{display:none}

  .service-card-icon{
    position:relative;
    display:block;
    width:52px;
    height:52px;
    margin-top:4px;
    color:#0a0a0a;
  }
  .icon-design:before{content:'✎';font-size:49px;line-height:1;font-weight:700;position:absolute;left:1px;top:-5px;transform:rotate(-4deg)}
  .icon-web:before{content:'';position:absolute;left:2px;top:5px;width:42px;height:29px;border:4px solid currentColor}
  .icon-web:after{content:'';position:absolute;left:8px;top:40px;width:36px;height:4px;background:currentColor;box-shadow:11px -6px 0 -4px currentColor}
  .icon-marketing:before{content:'';position:absolute;left:4px;bottom:6px;width:8px;height:18px;background:currentColor;box-shadow:15px -11px 0 currentColor,30px -24px 0 currentColor}
  .icon-social:before{content:'';position:absolute;left:3px;top:5px;width:43px;height:31px;border:4px solid currentColor}
  .icon-social:after{content:'';position:absolute;left:7px;top:34px;width:15px;height:15px;border-left:4px solid currentColor;transform:skewY(-35deg)}
  .icon-streaming:before{content:'▶';position:absolute;left:1px;top:1px;width:47px;height:47px;border:4px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:17px;padding-left:3px}
  .icon-consulting:before{content:'';position:absolute;left:2px;top:2px;width:47px;height:47px;border:4px solid currentColor;border-radius:50%}
  .icon-consulting:after{content:'';position:absolute;left:25px;top:1px;width:4px;height:25px;background:currentColor;box-shadow:11px 24px 0 0 currentColor;transform-origin:bottom}
}

@media(max-width:1000px){
  .services-intro{display:grid;gap:25px;margin-bottom:42px}
  .services .services-title h2{font-size:clamp(40px,9vw,58px);line-height:1}
  .services-all{width:max-content;border:1px solid #777;padding:14px 18px}
  .services .service-card{display:grid;grid-template-columns:64px 1fr;gap:16px;min-height:210px}
  .service-card-icon{display:block;width:48px;height:48px}
}

/* ===== v0.2.5 · ajuste fino cabecera SERVICIOS ===== */
@media(min-width:1001px){

  /* Más ancho para que el título quede exactamente en dos líneas:
     "Soluciones digitales" / "para crecer." */
  .services-head{
    grid-template-columns:minmax(500px,1.28fr) minmax(390px,.92fr) auto;
    column-gap:52px;
    align-items:start;
  }

  .services-head h2{
    width:100%;
    max-width:590px;
    font-size:clamp(54px,3.65vw,70px);
    line-height:.94;
    letter-spacing:-.055em;
  }

  /* Texto introductorio: caja más ancha para resolverlo en 3 líneas */
  .services-head .lead,
  .services-intro,
  .services-head > p{
    width:100%;
    max-width:500px;
    font-size:17px;
    line-height:1.48;
  }

  /* CTA más compacto verticalmente */
  .services-head .btn-outline,
  .services-head .services-cta{
    padding:11px 18px;
    min-height:54px;
    align-self:start;
  }
}

@media(min-width:1500px){
  .services-head{
    grid-template-columns:560px 500px auto;
    column-gap:64px;
  }
  .services-head h2{
    max-width:600px;
    font-size:68px;
  }
  .services-head .lead,
  .services-intro,
  .services-head > p{
    max-width:510px;
    font-size:17px;
  }
}

/* ===== v0.2.6 · SERVICIOS: corrección de selectores + iconografía de referencia ===== */
@media(min-width:1001px){

  /* v0.2.5 apuntaba a .services-head, clase que no existe en el HTML.
     La estructura real es .services-intro. Se corrige aquí. */
  .services .services-intro{
    width:100%;
    max-width:none;
    display:grid;
    grid-template-columns:minmax(520px,1.22fr) minmax(455px,.95fr) 190px;
    column-gap:56px;
    align-items:start;
    margin-bottom:54px;
  }

  .services .services-title{
    width:100%;
    min-width:0;
  }

  .services .services-title h2{
    width:100%;
    max-width:620px;
    margin:0;
    font-size:clamp(48px,3.35vw,62px);
    line-height:.94;
    letter-spacing:-.055em;
    font-weight:700;
  }

  .services .services-intro > p{
    width:100%;
    max-width:500px;
    margin:34px 0 0;
    font-size:15px;
    line-height:1.48;
    font-weight:400;
  }

  .services .services-all{
    width:190px;
    min-height:0;
    margin-top:24px;
    padding:11px 16px;
    border-radius:4px;
    font-size:11px;
    line-height:1.18;
  }
  .services .services-all b{
    font-size:19px;
  }

  /* Tarjetas 3x2: escala y alineación de la referencia */
  .services .service-card{
    min-height:188px;
    grid-template-columns:58px minmax(0,1fr);
    gap:16px;
    padding:26px 28px 24px 0;
  }
  .services .service-card:nth-child(3n+2),
  .services .service-card:nth-child(3n+3){
    padding-left:28px;
  }
  .services .service-card:nth-child(n+4){
    padding-top:29px;
  }

  .services .service-number{
    margin-bottom:10px;
    font-size:11px;
    font-weight:600;
  }
  .services .service-card h3{
    margin-bottom:8px;
    font-size:18px;
    line-height:1.08;
    font-weight:600;
  }
  .services .service-card p{
    max-width:285px;
    font-size:13px;
    line-height:1.42;
  }

  /* Íconos: SVG de línea, negros, proporción consistente */
  .services .service-card-icon{
    width:46px;
    height:46px;
    margin-top:2px;
  }
  .services .service-card-icon::before,
  .services .service-card-icon::after{
    content:none !important;
    display:none !important;
  }
  .services .service-card-icon svg{
    display:block;
    width:46px;
    height:46px;
    overflow:visible;
    fill:none;
    stroke:currentColor;
    stroke-width:4;
    stroke-linecap:square;
    stroke-linejoin:miter;
  }
}

@media(min-width:1500px){
  .services .services-intro{
    grid-template-columns:560px 500px 190px;
    column-gap:64px;
  }
  .services .services-title h2{
    max-width:620px;
    font-size:60px;
  }
  .services .services-intro > p{
    max-width:500px;
    font-size:15px;
  }
}

/* ===== v0.2.7 · ICONOGRAFÍA DEFINITIVA =====
   Única familia SVG para franja verde y grilla de Servicios.
   No se modifican tamaños/distribución aprobados de la franja. */

/* Franja verde */
.discipline-strip .service-icon{
  color:#0a0a0a;
}
.discipline-strip .service-icon::before,
.discipline-strip .service-icon::after{
  content:none !important;
  display:none !important;
}
.discipline-strip .service-icon svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:4;
  stroke-linecap:square;
  stroke-linejoin:miter;
}

/* Neutraliza las construcciones CSS antiguas para que no se superpongan. */
.discipline-strip .monitor,
.discipline-strip .bubble,
.discipline-strip .play{
  border:0 !important;
  padding:0 !important;
  border-radius:0;
}
.discipline-strip .bars{
  font-size:inherit;
}

/* Servicios: negro pleno y trazo con el peso de la referencia. */
.services .service-card-icon{
  color:#000 !important;
}
.services .service-card-icon svg{
  display:block;
  width:46px;
  height:46px;
  fill:none;
  stroke:#000;
  stroke-width:4.25;
  stroke-linecap:square;
  stroke-linejoin:miter;
}
.services .service-card-icon::before,
.services .service-card-icon::after{
  content:none !important;
  display:none !important;
}

/* ===== v0.2.8 · ICONOS EXACTOS DESDE PNG MAESTRO ===== */
.discipline-strip .service-icon img{display:block;width:100%;height:100%;object-fit:contain;}
.services .service-card-icon img{display:block;width:46px;height:46px;object-fit:contain;}
.discipline-strip .service-icon svg,.services .service-card-icon svg{display:none!important;}
@media(max-width:1000px){.services .service-card-icon img{width:42px;height:42px;}}

/* ===== v0.3.0 · PROYECTOS / PORTFOLIO ===== */
.projects{background:#090909;color:#fff;padding:54px 0 34px;overflow:hidden}
.projects-shell{width:min(1760px,calc(100% - 96px));margin:auto}
.projects-head{display:grid;grid-template-columns:1.35fr .9fr 190px;gap:52px;align-items:start;margin-bottom:28px}
.projects .kicker{display:block;font-size:12px;font-weight:700;letter-spacing:.09em;margin-bottom:9px}
.projects-title h2{font-size:clamp(38px,3vw,58px);line-height:.94;letter-spacing:-.045em;margin:0;font-weight:600}
.projects-copy{font-size:14px;line-height:1.48;max-width:390px;margin:23px 0 0;color:#ddd}
.projects-all{margin-top:20px;min-height:62px;border:1px solid #777;border-radius:4px;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:10px;font-weight:700;line-height:1.15}
.projects-all b{color:#b4ff00;font-size:20px;font-weight:400}
.projects-carousel-wrap{position:relative}
.projects-carousel{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:0 0 4px}
.projects-carousel::-webkit-scrollbar{display:none}
.project-slide{flex:0 0 calc((100% - 66px)/4);scroll-snap-align:start;min-width:0}
.project-media{display:block;position:relative;aspect-ratio:1.02/1;overflow:hidden;border-radius:3px;background:linear-gradient(145deg,#303030,#171717);color:#fff;text-decoration:none}
.project-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.project-media:hover img{transform:scale(1.025)}
.project-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#777;font-size:12px;letter-spacing:.08em}
.project-overlay{position:absolute;left:0;right:0;bottom:0;padding:42px 15px 14px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;background:linear-gradient(transparent,rgba(0,0,0,.9))}
.project-overlay h3{font-size:19px;line-height:1.05;margin:0 0 3px;font-weight:500}
.project-overlay p{font-size:12px;line-height:1.2;margin:0;color:#eee}
.project-arrow{width:31px;height:31px;flex:0 0 31px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-size:17px}
.projects-nav{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:42px;height:42px;border:1px solid #fff;border-radius:50%;background:#0a0a0a;color:#fff;font-size:20px;cursor:pointer}
.projects-prev{left:-56px}.projects-next{right:-56px}
.projects-dots{display:flex;justify-content:center;gap:10px;margin-top:16px}
.projects-dots button{width:22px;height:5px;border:0;border-radius:5px;background:#666;padding:0;cursor:pointer}
.projects-dots button.is-active{background:#b4ff00;width:28px}
@media(max-width:1100px){
 .projects-shell{width:min(100% - 48px,1760px)}
 .projects-head{grid-template-columns:1fr 1fr}.projects-all{display:none}
 .project-slide{flex-basis:calc((100% - 22px)/2)}
 .projects-nav{display:none}
}
@media(max-width:650px){
 .projects{padding:44px 0 30px}.projects-shell{width:calc(100% - 32px)}
 .projects-head{display:block}.projects-copy{margin-top:18px}.projects-title h2{font-size:42px}
 .project-slide{flex-basis:86%}.projects-carousel{gap:14px}
}

/* ===== v0.3.6 · Hero video + Método limpio ===== */
/* Video dentro de la máscara original de la N */
.n-photo{overflow:hidden;background-image:url("../img/hero-media.jpg")}
.n-photo .n-video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
}

/* Método — única fuente de estilos para este bloque */
.method{
  display:block;
  width:100%;
  background:#fff;
  color:#0a0a0a;
  padding:34px 0 30px;
}
.method-shell{
  width:calc(100% - 100px);
  max-width:1800px;
  margin:0 auto;
}
.method-top{
  display:grid;
  grid-template-columns:minmax(0,46%) minmax(0,32%) minmax(190px,22%);
  align-items:center;
  column-gap:0;
  margin:0 0 22px;
}
.method-heading{min-width:0}
.method-heading .kicker{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 9px;
  font-size:13px;
  line-height:1;
  font-weight:700;
  letter-spacing:.07em;
}
.method-heading .kicker i{
  display:block;
  width:2px;
  height:12px;
  background:#b4ff00;
  transform:skew(-15deg);
}
.method-heading h2{
  margin:0;
  font-size:clamp(36px,2.45vw,48px);
  line-height:1.01;
  letter-spacing:-.04em;
  font-weight:650;
  white-space:nowrap;
}
.method-heading .lime-dot{color:#b4ff00}
.method-copy{
  width:min(100%,500px);
  margin:8px 0 0;
  padding-right:34px;
  font-size:15px;
  line-height:1.48;
  font-weight:400;
}
.method-cta{
  justify-self:end;
  align-self:center;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  width:210px;
  min-height:48px;
  padding:12px 16px;
  border:1px solid #0a0a0a;
  border-radius:5px;
  color:#0a0a0a;
  text-decoration:none;
  font-size:11px;
  line-height:1.1;
  font-weight:700;
  white-space:nowrap;
}
.method-cta b{font-size:18px;font-weight:400}
.method-steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:100%;
  margin:0;
}
.method-step{
  min-width:0;
  min-height:92px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:4px 30px 6px 0;
}
.method-step + .method-step{
  border-left:1px solid #dedede;
  padding-left:30px;
}
.method-number{
  color:#8ee600;
  font-size:38px;
  line-height:.92;
  font-weight:500;
  letter-spacing:-.04em;
}
.method-step h3{
  margin:1px 0 7px;
  font-size:16px;
  line-height:1.15;
  font-weight:650;
}
.method-step p{
  margin:0;
  font-size:15px;
  line-height:1.4;
  font-weight:400;
}

@media (min-width:1500px){
  .method-shell{width:calc(100% - 120px)}
  .method-heading h2{font-size:48px}
  .method-copy{font-size:15px}
  .method-step{padding-right:34px}
  .method-step + .method-step{padding-left:34px}
}

@media (max-width:1100px){
  .method-shell{width:calc(100% - 48px)}
  .method-top{
    grid-template-columns:1fr 1fr;
    gap:22px 36px;
    align-items:end;
  }
  .method-cta{justify-self:start}
  .method-steps{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:28px}
  .method-step:nth-child(3){border-left:0;border-top:1px solid #dedede;padding-left:0;padding-top:24px}
  .method-step:nth-child(4){border-top:1px solid #dedede;padding-top:24px}
}

@media (max-width:700px){
  .method{padding:52px 0 40px}
  .method-shell{width:calc(100% - 32px)}
  .method-top{grid-template-columns:1fr;gap:18px}
  .method-heading h2{font-size:42px;white-space:normal}
  .method-copy{padding-right:0;font-size:15px}
  .method-cta{justify-self:start}
  .method-steps{grid-template-columns:1fr;margin-top:26px}
  .method-step,
  .method-step + .method-step,
  .method-step:nth-child(3),
  .method-step:nth-child(4){
    border-left:0;
    border-top:1px solid #dedede;
    padding:22px 0;
  }
  .method-step:first-child{border-top:0}
}

}



/* Método: conservar el ajuste fino aprobado sin tocar Servicios. */
@media (min-width:1001px){
  .method-top{
    grid-template-columns:minmax(0,47%) minmax(0,31%) minmax(190px,22%);
  }
  .method-copy{
    width:min(100%,440px);
    justify-self:end;
    padding-right:18px;
  }
  .method-number{
    font-weight:800;
  }
}


/* v0.4.0 — SERVICIOS: un único bloque alineado y centrado */
@media (min-width:1001px){
  .services.section{
    width:1440px !important;
    max-width:calc(100% - 96px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  /* Título + bajada + botón pertenecen al MISMO ancho que la grilla inferior. */
  .services .services-intro{
    width:100% !important;
    max-width:none !important;
    grid-template-columns:minmax(0, 1.15fr) minmax(0, .92fr) 190px !important;
    column-gap:56px !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .services .services-all{
    justify-self:stretch !important;
    width:190px !important;
    max-width:190px !important;
  }

  /* La grilla ya no termina antes que el botón: ocupa exactamente el mismo bloque. */
  .services .service-grid{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  .services .service-card{
    min-width:0 !important;
  }
}

@media (min-width:1500px){
  .services.section{
    width:1440px !important;
    max-width:calc(100% - 96px) !important;
  }
  .services .services-intro{
    grid-template-columns:560px minmax(0,1fr) 190px !important;
    column-gap:64px !important;
  }
}


/* v0.4.1 — HERO: círculo pequeño como segunda máscara del mismo video */
.circle-photo{
  overflow:hidden !important;
  background:none !important;
  border:3px solid #fff !important;
}
.circle-photo .circle-video{
  position:absolute;
  width:240%;
  height:240%;
  max-width:none;
  left:-92%;
  top:-70%;
  object-fit:cover;
  object-position:72% 50%;
  pointer-events:none;
}

/* v0.4.1 — CLIENTES: franja negra + logos reales + loop continuo */
.brands{
  width:100%;
  max-width:none;
  overflow:hidden;
  background:#0a0a0a;
  border:0;
  padding:15px 0 17px;
  color:#fff;
}
.brands-inner{
  width:min(1440px,calc(100% - 96px));
  margin:0 auto;
}
.brands-kicker{
  display:block;
  margin:0 0 11px;
  font-size:10px;
  line-height:1;
  letter-spacing:.11em;
  font-weight:700;
  color:#fff;
}
.brands-kicker i{
  display:inline-block;
  width:10px;
  height:2px;
  margin-right:7px;
  background:var(--lime);
  transform:rotate(-63deg);
  transform-origin:center;
  vertical-align:3px;
}
.brands-marquee{
  width:100%;
  overflow:hidden;
}
.brand-track{
  display:flex;
  width:max-content;
  gap:0;
  align-items:center;
  animation:clients-marquee 30s linear infinite;
  will-change:transform;
}
.brand-group{
  display:grid;
  grid-template-columns:repeat(8,190px);
  align-items:center;
  flex:none;
}
.client-logo{
  width:190px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 22px;
  box-sizing:border-box;
}
.client-logo img{
  display:block;
  width:auto;
  height:auto;
  max-width:146px;
  max-height:34px;
  object-fit:contain;
  filter:none;
}
@keyframes clients-marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media(max-width:1000px){
  .brands-inner{width:calc(100% - 44px)}
  .brand-group{grid-template-columns:repeat(8,160px)}
  .client-logo{width:160px;padding:0 18px}
  .client-logo img{max-width:124px;max-height:31px}
}
@media(prefers-reduced-motion:reduce){
  .brand-track{animation-duration:90s}
}
\n\n/* v0.4.2 — CLIENTES: mayor escala óptica sin alterar el bloque */\n@media (min-width:1001px){\n  .brands{padding:15px 0 19px;}\n  .brands-inner{width:min(1440px,calc(100% - 96px));}\n  .brand-group{grid-template-columns:repeat(8,180px);}\n  .client-logo{width:180px;height:54px;padding:0 10px;}\n  .client-logo img{max-width:170px;max-height:50px;}\n}\n@media (max-width:1000px){\n  .client-logo{height:48px;padding:0 10px;}\n  .client-logo img{max-width:142px;max-height:42px;}\n}\n

/* v0.4.3 — CLIENTES: mayor legibilidad y presencia visual */
.brands{
  padding-top:20px;
  padding-bottom:24px;
}
.brands-kicker{
  font-size:14px;
  line-height:1.15;
  margin-bottom:17px;
}
.brands-kicker i{
  width:12px;
  height:2px;
  margin-right:8px;
}
.brand-group{
  grid-template-columns:repeat(8,220px);
}
.client-logo{
  width:220px;
  height:62px;
  padding:0 22px;
}
.client-logo img{
  max-width:176px;
  max-height:50px;
}
@media(max-width:1000px){
  .brands-kicker{font-size:13px}
  .brand-group{grid-template-columns:repeat(8,185px)}
  .client-logo{width:185px;height:56px;padding:0 18px}
  .client-logo img{max-width:150px;max-height:44px}
}


/* v0.4.4 — NOVEDADES / IDEAS */
.news.section{
  background:#fff;
  padding:54px 0 58px;
  overflow:hidden;
}
.news-shell{
  width:min(1440px,calc(100% - 120px));
  margin:0 auto;
}
.news-head{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.72fr) 190px;
  column-gap:46px;
  align-items:end;
  margin-bottom:24px;
}
.news-title-wrap .section-kicker{
  margin:0 0 10px;
  font-size:12px;
  line-height:1;
  letter-spacing:.08em;
  font-weight:700;
  text-transform:uppercase;
}
.news-title-wrap .section-kicker span{color:var(--lime);margin-right:7px}
.news-title-wrap h2{
  margin:0;
  font-size:clamp(42px,3.15vw,58px);
  line-height:.91;
  letter-spacing:-.045em;
  font-weight:700;
}
.news-title-wrap .lime-dot{color:var(--lime)}
.news-intro{
  margin:0 0 3px;
  font-size:15px;
  line-height:1.45;
  font-weight:400;
}
.news-all{
  min-height:54px;
  border:1px solid #111;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 17px;
  color:#111;
  text-decoration:none;
  font-size:11px;
  line-height:1.05;
  font-weight:700;
}
.news-all b{font-size:18px;font-weight:400}
.news-viewport{
  overflow:hidden;
  width:calc(100vw - max(60px, (100vw - 1440px)/2));
}
.news-track{
  display:flex;
  gap:24px;
  width:max-content;
  align-items:flex-start;
}
.news-card{
  position:relative;
  flex:0 0 400px;
  width:400px;
  padding-bottom:8px;
}
.news-image{
  width:100%;
  height:178px;
  display:block;
  overflow:hidden;
  background:linear-gradient(135deg,#252525,#555);
}
.news-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .35s ease;
}
.news-card:hover .news-image img{transform:scale(1.025)}
.news-image-placeholder{display:block;width:100%;height:100%}
.news-meta{
  margin-top:8px;
  color:#8fd900;
  font-size:9px;
  line-height:1;
  font-weight:700;
  text-transform:uppercase;
}
.news-card-title{
  display:block;
  max-width:350px;
  margin-top:5px;
  padding-right:28px;
  color:#111;
  text-decoration:none;
  font-size:17px;
  line-height:1.15;
  font-weight:500;
}
.news-arrow{
  position:absolute;
  right:3px;
  bottom:12px;
  color:#111;
  text-decoration:none;
  font-size:20px;
  line-height:1;
}
@media(max-width:1000px){
  .news.section{padding:48px 0}
  .news-shell{width:calc(100% - 44px)}
  .news-head{grid-template-columns:1fr;gap:18px;align-items:start}
  .news-intro br{display:none}
  .news-all{width:190px}
  .news-viewport{width:calc(100vw - 22px)}
  .news-card{flex-basis:78vw;width:78vw;max-width:390px}
  .news-image{height:180px}
}


/* v0.4.5 — NOVEDADES: tres tarjetas exactas + kicker IDEAS legible */
.news-title-wrap .section-kicker{
  font-size:14px;
  line-height:1.15;
}
.news-viewport{
  width:100%;
  overflow:visible;
}
.news-track{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  width:100%;
  align-items:start;
}
.news-card{
  width:auto;
  min-width:0;
  max-width:none;
  flex:none;
}
.news-image{
  width:100%;
}
@media(max-width:1000px){
  .news-title-wrap .section-kicker{font-size:13px}
  .news-viewport{width:100%;overflow:hidden}
  .news-track{
    display:flex;
    width:max-content;
    gap:18px;
  }
  .news-card{
    flex:0 0 78vw;
    width:78vw;
    max-width:390px;
  }
}

/* v0.4.6 — CONTACTO + FOOTER, reconstruidos como continuidad visual */
.contact.contact-dark{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:286px;
  padding:0;
  background:#070707;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.contact-bg-video{
  position:absolute;
  z-index:-3;
  inset:0 0 0 42%;
  width:58%;
  height:100%;
  object-fit:cover;
  object-position:center 58%;
  filter:grayscale(1) brightness(.48) contrast(1.12);
}
.contact-overlay{
  position:absolute;
  z-index:-2;
  inset:0;
  background:linear-gradient(90deg,#070707 0%,#070707 34%,rgba(7,7,7,.88) 49%,rgba(7,7,7,.22) 100%);
}
.contact-lines{
  position:absolute;
  z-index:-1;
  right:0;
  top:0;
  width:58%;
  height:100%;
  opacity:.55;
  background:
    linear-gradient(27deg,transparent 49.75%,rgba(180,255,0,.7) 50%,transparent 50.25%),
    linear-gradient(-25deg,transparent 49.75%,rgba(180,255,0,.48) 50%,transparent 50.25%);
}
.contact-inner{
  width:min(1440px,calc(100% - 96px));
  min-height:286px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(390px,.95fr) minmax(330px,.7fr) 1fr;
  gap:54px;
  align-items:center;
}
.contact-title{grid-column:1}
.contact-kicker{
  display:block;
  margin:0 0 11px;
  font-size:14px;
  line-height:1;
  letter-spacing:.07em;
  font-weight:700;
}
.contact-kicker i{
  display:inline-block;
  width:12px;
  height:2px;
  margin-right:8px;
  background:var(--lime);
  transform:rotate(-63deg);
  vertical-align:4px;
}
.contact.contact-dark h2{
  max-width:none;
  margin:0;
  font-size:clamp(46px,4vw,66px);
  line-height:.92;
  letter-spacing:-.045em;
  font-weight:700;
  color:#fff;
}
.contact-action{
  grid-column:2;
  align-self:center;
  padding-top:22px;
}
.contact.contact-dark .contact-action p{
  margin:0 0 20px;
  color:#fff;
  font-size:15px;
  line-height:1.38;
}
.contact.contact-dark .contact-button{
  position:static;
  display:inline-flex;
  min-width:188px;
  min-height:54px;
  margin:0;
  padding:0 18px;
  border:0;
  background:var(--lime);
  color:#080808;
  align-items:center;
  justify-content:space-between;
  font-size:12px;
  font-weight:700;
}
.contact-button b{font-size:20px;font-weight:400}

.footer.footer-v046{
  background:#070707;
  color:#fff;
  padding:42px 0 44px;
}
.footer-main{
  width:min(1440px,calc(100% - 96px));
  margin:0 auto;
  display:grid;
  grid-template-columns:1.08fr .55fr 1.15fr 1.3fr;
  gap:46px;
  align-items:start;
}
.footer-brand-col,
.footer-nav,
.footer-identity{
  min-height:190px;
  border-right:1px solid rgba(255,255,255,.18);
  padding-right:42px;
}
.footer-brand-logo{
  display:block;
  width:min(100%,280px);
  height:auto;
  object-fit:contain;
  object-position:left top;
}
.footer-nav{display:flex;flex-direction:column;gap:5px}
.footer.footer-v046 .footer-nav a{
  display:block;
  color:#fff;
  font-size:12px;
  line-height:1.28;
  font-weight:500;
}
.footer-claim{
  margin:0 0 24px;
  color:#fff;
  font-size:29px;
  line-height:1;
  font-style:italic;
  font-weight:400;
  letter-spacing:-.04em;
}
.footer.footer-v046 .footer-identity p,
.footer.footer-v046 .footer-email{
  display:block;
  margin:0;
  color:#fff;
  font-size:12px;
  line-height:1.6;
}
.footer-socials{display:flex;align-items:center;gap:28px;margin-top:22px}
.footer.footer-v046 .footer-socials a{
  display:flex;
  width:22px;
  height:22px;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:18px;
  line-height:1;
  font-weight:700;
}
.footer-newsletter>p{
  margin:0 0 13px;
  color:#fff;
  font-size:12px;
  line-height:1.3;
}
.footer-newsletter-form{
  display:grid;
  grid-template-columns:1fr 48px;
  gap:10px;
  max-width:340px;
}
.footer-newsletter-form input{
  width:100%;
  height:46px;
  border:1px solid rgba(255,255,255,.34);
  background:transparent;
  color:#fff;
  padding:0 14px;
  font:inherit;
  font-size:12px;
  outline:none;
}
.footer-newsletter-form input::placeholder{color:rgba(255,255,255,.78)}
.footer-newsletter-form button{
  width:46px;
  height:46px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#111;
  font-size:22px;
  cursor:pointer;
}
.footer-legal-copy{
  margin-top:42px;
  color:#fff;
  font-size:10px;
  line-height:1.4;
}
.footer-legal-links{display:flex;gap:26px;margin-top:14px;flex-wrap:wrap}
.footer.footer-v046 .footer-legal-links a{
  display:inline-block;
  color:#fff;
  font-size:10px;
  line-height:1.3;
}
@media(max-width:1000px){
  .contact-bg-video{inset:0;width:100%;opacity:.55}
  .contact-overlay{background:rgba(7,7,7,.72)}
  .contact-inner{width:calc(100% - 44px);grid-template-columns:1fr 1fr;gap:34px;padding:52px 0}
  .contact-action{grid-column:2;padding-top:0}
  .footer-main{width:calc(100% - 44px);grid-template-columns:1fr 1fr;gap:36px}
  .footer-brand-col,.footer-nav,.footer-identity{border-right:0;min-height:0;padding-right:0}
}
@media(max-width:650px){
  .contact-inner{grid-template-columns:1fr;gap:28px}
  .contact-action{grid-column:1}
  .contact.contact-dark h2{font-size:44px}
  .footer-main{grid-template-columns:1fr}
  .footer-brand-logo{width:245px}
  .footer-newsletter-form{max-width:100%}
}


/* v0.4.7 — ajuste final CONTACTO + enlaces sociales */
.contact-lines{display:none!important}

@media(min-width:1001px){
  .contact-inner{
    grid-template-columns:minmax(520px,1.15fr) minmax(330px,.72fr) .85fr;
    gap:54px;
  }
  .contact.contact-dark h2{
    font-size:clamp(46px,3.35vw,62px);
    line-height:.93;
    letter-spacing:-.045em;
    white-space:nowrap;
  }
}

.contact.contact-dark .contact-button{
  min-width:188px;
  min-height:54px;
  padding:0 19px;
  border-radius:5px;
  font-size:14px;
  font-weight:800;
}
.contact.contact-dark .contact-button b{
  font-size:20px;
  font-weight:500;
}


/* v0.4.8 — más aire entre titular y texto de CONTACTO */
@media(min-width:1001px){
  .contact-inner{
    grid-template-columns:minmax(520px,1.15fr) minmax(330px,.72fr) .85fr;
    column-gap:82px;
  }
}


/* v0.4.9-safe — navegación + aire adicional en CONTACTO. Sin formularios/AJAX. */
@media(min-width:1001px){
  .contact-inner{
    column-gap:112px;
  }
}

/* v0.5.0 — Popup CHARLEMOS */
body.sn-modal-open{overflow:hidden}.sn-contact-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:28px}.sn-contact-modal.is-open{display:flex}.sn-contact-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(7px)}.sn-contact-dialog{position:relative;z-index:1;width:min(680px,100%);max-height:calc(100vh - 56px);overflow:auto;background:#0a0a0a;color:#fff;padding:42px 46px 44px;box-shadow:0 28px 90px rgba(0,0,0,.36)}.sn-contact-close{position:absolute;top:17px;right:19px;width:38px;height:38px;border:0;background:transparent;color:#fff;font-size:30px;line-height:1;font-weight:300;cursor:pointer}.sn-contact-kicker{display:block;margin-bottom:10px;font-size:12px;line-height:1;letter-spacing:.08em;font-weight:700}.sn-contact-dialog h2{margin:0;color:#fff;font-size:clamp(40px,5vw,58px);line-height:.95;letter-spacing:-.045em;font-weight:700}.sn-contact-dialog h2 span{color:var(--lime)}.sn-contact-lead,.sn-contact-success p{max-width:520px;margin:16px 0 28px;color:rgba(255,255,255,.82);font-size:14px;line-height:1.5}.sn-contact-form{display:grid;gap:15px}.sn-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.sn-contact-form label{display:grid;gap:7px}.sn-contact-form label>span{font-size:11px;line-height:1.2;font-weight:600}.sn-contact-form input,.sn-contact-form select,.sn-contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.28);border-radius:0;background:#111;color:#fff;padding:12px 13px;font:inherit;font-size:13px;outline:none}.sn-contact-form input,.sn-contact-form select{height:48px}.sn-contact-form textarea{min-height:116px;resize:vertical}.sn-contact-form input:focus,.sn-contact-form select:focus,.sn-contact-form textarea:focus{border-color:var(--lime)}.sn-contact-form select option{background:#111;color:#fff}.sn-contact-form textarea::placeholder{color:rgba(255,255,255,.42)}.sn-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.sn-contact-error{min-height:18px;color:#fff;font-size:11px;line-height:1.35}.sn-contact-submit{width:210px;min-height:52px;border:0;border-radius:5px;background:var(--lime);color:#080808;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 18px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.sn-contact-submit b{font-size:20px;font-weight:500}.sn-contact-submit:disabled{opacity:.65;cursor:wait}.sn-contact-submit.is-loading span::after{content:"…"}.sn-contact-success{min-height:260px;align-content:center}.sn-contact-success:not([hidden]){display:grid}.sn-contact-success p{margin-bottom:0;font-size:16px}@media(max-width:650px){.sn-contact-modal{padding:14px}.sn-contact-dialog{max-height:calc(100vh - 28px);padding:36px 22px 28px}.sn-form-grid{grid-template-columns:1fr}.sn-contact-dialog h2{font-size:42px}.sn-contact-submit{width:100%}}


/* v0.5.1 — Clientes + newsletter + cierre de footer */
.brands{
  padding-bottom:59px;
}
.footer.footer-v046 .social-instagram svg{
  display:block;
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.footer.footer-v046 .social-instagram .ig-dot{
  fill:currentColor;
  stroke:none;
}
.footer-newsletter-status{
  min-height:18px;
  margin-top:8px;
  font-size:11px;
  line-height:1.35;
}
.footer-newsletter-status.is-success{
  color:var(--lime);
  font-weight:700;
}
.footer-newsletter-status.is-error{
  color:#fff;
}
.footer-magic{
  margin-top:8px;
  color:rgba(255,255,255,.68);
  font-size:10px;
  line-height:1.4;
}
