/* Ragolance Group | ragolancegroup.com */

/* Ragolance Group | ragolancegroup.com */

/* ═══════════════════════════════════════════════
   RAGOLANCE GROUP "PRECISION MACHINE"
   Concepto: Sala de control / centro de operaciones
   Todo está en marcha. Todo es medible. Todo convierte.
   
   Paleta: Negro profundo + Azul eléctrico #0A49FE
   + Blanco roto #F0EDF8 + Acento verde dato #00FF88
   
   Tipografía: Archivo Black (display) + Archivo (body)
   fuerte, técnica, sin serifa, completamente distinta
   a Bebas Neue que usan todos los demás
   
   Layout: Asimétrico, columnas de datos, líneas de tensión
   No hay una sola sección que se vea como las demás
═══════════════════════════════════════════════ */

:root {
  --blue:    #0A49FE;
  --blue2:   #1A56FF;
  --glow:    rgba(10,73,254,0.3);
  --dim:     rgba(10,73,254,0.08);
  --green:   #00FF88;
  --ink:     #04060C;
  --ink2:    #090D18;
  --ink3:    #0F1525;
  --ink4:    #151C30;
  --chalk:   #F0EDF8;
  --chalk2:  rgba(240,237,248,0.55);
  --chalk3:  rgba(240,237,248,0.28);
  --wire:    rgba(10,73,254,0.16);
  --wire2:   rgba(240,237,248,0.06);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: 'Archivo', sans-serif;
  background: var(--ink);
  color: var(--chalk);
  overflow-x: hidden;
  cursor: none;
}

/* ── CURSOR ── */
#cur { position:fixed;width:8px;height:8px;background:var(--blue);border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:screen;transform:translate(-50%,-50%);transition:transform .08s; }
#cur2 { position:fixed;width:32px;height:32px;border:1px solid rgba(10,73,254,.45);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .2s,height .2s,border-color .2s; }
body:has(a:hover) #cur, body:has(button:hover) #cur { transform:translate(-50%,-50%) scale(3); }
body:has(a:hover) #cur2, body:has(button:hover) #cur2 { width:56px;height:56px;border-color:rgba(10,73,254,.7); }

/* ── NOISE OVERLAY ── */
body::before {
  content:'';position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:.028;pointer-events:none;z-index:0;
}

/* ── NAV ── */
nav {
  position: fixed;top:0;left:0;right:0;z-index:200;
  display: flex;align-items:center;justify-content:space-between;
  padding: 0 48px;height: 60px;
  background: rgba(4,6,12,0.9);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--wire);
}

.n-logo { display:flex;align-items:center;gap:10px;text-decoration:none; }
.n-mark {
  width:32px;height:32px;background:var(--blue);
  display:flex;align-items:center;justify-content:center;
  font-family:'Archivo Black',sans-serif;font-size:17px;color:#fff;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
.n-name { font-family:'Archivo Black',sans-serif;font-size:15px;letter-spacing:.04em;color:var(--chalk); }
.n-name span { color:var(--blue); }

.n-center {
  display:flex;align-items:center;gap:6px;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--chalk3);
}
.n-dot { width:5px;height:5px;border-radius:50%;background:var(--green);animation:pulse 2s ease infinite; }
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.3} }

.n-links { display:flex;gap:28px;list-style:none; }
.n-links a { font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--chalk3);text-decoration:none;transition:color .2s; }
.n-links a:hover { color:var(--chalk); }

.n-cta {
  background:var(--blue);color:#fff;
  padding:9px 20px;font-family:'Archivo Black',sans-serif;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;border:none;cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));
  transition:box-shadow .2s;
}
.n-cta:hover { box-shadow:0 0 28px var(--glow); }

/* ══════════════════════════════════
   HERO layout split asimétrico
   Izq: copy grande + keyword H1
   Der: panel de datos vivo
══════════════════════════════════ */
#hero {
  min-height:100vh;
  display:grid;grid-template-columns:1fr 420px;
  padding-top:60px;position:relative;overflow:hidden;
}

.hero-mesh {
  position:absolute;inset:0;z-index:0;
  background-image:
    linear-gradient(var(--wire2) 1px,transparent 1px),
    linear-gradient(90deg,var(--wire2) 1px,transparent 1px);
  background-size:56px 56px;
  animation:mesh 30s linear infinite;
}
@keyframes mesh { to{background-position:56px 56px;} }

.hero-blob {
  position:absolute;width:800px;height:800px;border-radius:50%;
  background:radial-gradient(circle,rgba(10,73,254,.14) 0%,transparent 65%);
  top:50%;left:35%;transform:translate(-50%,-50%);
  pointer-events:none;z-index:0;
  animation:blob 6s ease-in-out infinite;
}
@keyframes blob { 0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.1);opacity:.8} }

/* LEFT */
.hero-l {
  position:relative;z-index:1;
  padding:80px 48px 60px;
  display:flex;flex-direction:column;justify-content:center;
}

.hero-tag {
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--wire);padding:5px 14px;
  background:var(--dim);margin-bottom:40px;
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
  animation:up .8s ease both;
}
.hero-tag-dot { width:5px;height:5px;border-radius:50%;background:var(--blue);animation:pulse 1.5s ease infinite; }

/* H1 con keyword exacta máxima prominencia */
h1.hero-h1 {
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(44px,6.5vw,86px);
  line-height:.95;letter-spacing:-.02em;
  color:var(--chalk);margin-bottom:10px;
  animation:up .8s ease .08s both;
}
h1.hero-h1 .accent { color:var(--blue); }
h1.hero-h1 .outline {
  -webkit-text-stroke:2px var(--blue);
  color:transparent;
}

/* H2 diferenciador visual */
h2.hero-h2 {
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(18px,2.2vw,28px);
  letter-spacing:.02em;
  color:var(--chalk2);
  margin-bottom:28px;line-height:1.2;
  animation:up .8s ease .14s both;
}

.hero-p {
  font-size:16px;font-weight:300;line-height:1.8;
  color:var(--chalk3);max-width:480px;margin-bottom:44px;
  animation:up .8s ease .2s both;
}
.hero-p strong { color:var(--chalk);font-weight:500; }

.hero-btns { display:flex;gap:12px;flex-wrap:wrap;animation:up .8s ease .26s both; }

.btn-main {
  background:var(--blue);color:#fff;
  padding:15px 32px;font-family:'Archivo Black',sans-serif;
  font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  border:none;cursor:pointer;text-decoration:none;
  display:inline-flex;align-items:center;gap:10px;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
  transition:box-shadow .25s,transform .15s;position:relative;overflow:hidden;
}
.btn-main::after { content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 60%); }
.btn-main:hover { box-shadow:0 0 40px var(--glow);transform:translateY(-2px); }

.btn-ghost {
  border:1px solid var(--wire);color:var(--chalk);background:transparent;
  padding:14px 28px;font-family:'Archivo',sans-serif;font-size:13px;letter-spacing:.06em;
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:10px;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
  transition:border-color .2s,color .2s;
}
.btn-ghost:hover { border-color:var(--blue);color:var(--blue); }

/* KPIs bajo los botones */
.hero-kpis {
  display:flex;gap:0;margin-top:60px;
  border-top:1px solid var(--wire);
  animation:up .8s ease .32s both;
}
.kpi { flex:1;padding:22px 0;border-right:1px solid var(--wire); }
.kpi:last-child { border-right:none; }
.kpi-n {
  font-family:'Archivo Black',sans-serif;
  font-size:38px;color:var(--blue);line-height:1;display:block;margin-bottom:4px;
}
.kpi-l { font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--chalk3); }

/* RIGHT panel de datos */
.hero-r {
  position:relative;z-index:1;
  border-left:1px solid var(--wire);
  background:rgba(10,73,254,.03);
  display:flex;flex-direction:column;
  padding:80px 36px 60px;gap:0;
}

.panel-label {
  font-size:8px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--blue);display:flex;align-items:center;gap:8px;margin-bottom:16px;
}
.panel-label::after { content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--wire),transparent); }

/* Sectores en el panel */
.sectors-list { display:flex;flex-direction:column;gap:1px;margin-bottom:32px; }
.sec-row {
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;background:var(--ink2);border:1px solid transparent;
  transition:border-color .2s,background .2s;cursor:default;
}
.sec-row:hover { border-color:var(--wire);background:var(--ink3); }
.sec-left { display:flex;align-items:center;gap:10px; }
.sec-icon { font-size:18px; }
.sec-name { font-family:'Archivo Black',sans-serif;font-size:14px;letter-spacing:.02em; }
.sec-tag { font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);border:1px solid var(--wire);padding:2px 8px;background:var(--dim); }

/* Servicios en el panel */
.panel-svcs { display:flex;flex-direction:column;gap:1px; }
.psvc {
  display:flex;align-items:center;gap:10px;
  padding:11px 16px;background:var(--ink2);
  font-size:12px;color:var(--chalk2);letter-spacing:.04em;
  border-left:2px solid transparent;transition:border-color .2s,color .2s;
}
.psvc:hover { border-left-color:var(--blue);color:var(--chalk); }
.psvc::before { content:'→';color:var(--blue);font-size:11px;opacity:.7; }

/* ══════════════════════ SECTIONS ══════════════════════ */
section { padding:96px 48px;position:relative;z-index:1; }

.eyebrow { display:flex;align-items:center;gap:10px;margin-bottom:16px; }
.ey-n {
  font-family:'Archivo Black',sans-serif;font-size:10px;color:var(--blue);
  letter-spacing:.1em;border:1px solid var(--wire);padding:3px 8px;background:var(--dim);
}
.ey-t { font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--chalk3); }

.sec-title {
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(32px,4.5vw,58px);
  line-height:.95;letter-spacing:-.02em;margin-bottom:14px;
}
.sec-title .blue { color:var(--blue); }
.sec-title .outline { -webkit-text-stroke:1.5px var(--blue);color:transparent; }

.sec-sub {
  font-size:15px;color:var(--chalk3);max-width:520px;
  line-height:1.78;margin-bottom:52px;font-weight:300;
}

/* ══════ SERVICIOS grid asimétrico ══════ */
#servicios { background:var(--ink2); }

.svcs {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:auto auto;
  gap:1px;background:var(--wire);border:1px solid var(--wire);
}

.svc {
  background:var(--ink2);padding:36px 30px;
  position:relative;overflow:hidden;cursor:default;
  transition:background .3s;
}
.svc::before {
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(10,73,254,.06) 0%,transparent 60%);
  opacity:0;transition:opacity .3s;
}
.svc:hover { background:var(--ink3); }
.svc:hover::before { opacity:1; }
.svc-n { font-family:'Archivo Black',sans-serif;font-size:9px;letter-spacing:.2em;color:var(--blue);margin-bottom:18px;opacity:.5; }
.svc-ico { font-size:28px;margin-bottom:16px;display:block; }
h3.svc-name { font-family:'Archivo Black',sans-serif;font-size:20px;letter-spacing:-.01em;color:var(--chalk);margin-bottom:10px; }
.svc-d { font-size:13px;color:var(--chalk3);line-height:1.75; }
.svc-tags { margin-top:18px;display:flex;flex-wrap:wrap;gap:5px; }
.stag {
  font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--wire);color:var(--blue);padding:3px 8px;background:var(--dim);
  clip-path:polygon(0 0,calc(100% - 4px) 0,100% 4px,100% 100%,4px 100%,0 calc(100% - 4px));
}

/* Tarjeta destacada más grande */
.svc-featured {
  grid-row:span 2;
  background:linear-gradient(135deg,var(--ink3) 0%,rgba(10,73,254,.06) 100%);
  border-left:2px solid var(--blue);
  padding:48px 36px;
}
.svc-featured h3.svc-name { font-size:26px; }
.svc-featured-badge {
  display:inline-flex;align-items:center;gap:6px;
  background:var(--blue);color:#fff;padding:4px 10px;
  font-size:8px;letter-spacing:.15em;text-transform:uppercase;
  font-family:'Archivo Black',sans-serif;margin-bottom:20px;
}

/* ══════ SECTORES 4 cards con identidad visual por sector ══════ */
#sectores { background:var(--ink); }

.sector-grid {
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--wire);border:1px solid var(--wire);
}

.sec-card {
  background:var(--ink2);padding:40px 28px;
  position:relative;overflow:hidden;cursor:default;
  transition:background .3s;
}
.sec-card::after {
  content:'';position:absolute;top:0;left:0;right:0;
  height:3px;background:var(--blue);
  transform:scaleX(0);transform-origin:left;
  transition:transform .4s ease;
}
.sec-card.med::after { background:linear-gradient(90deg,var(--blue),#00D4FF); }
.sec-card:hover { background:var(--ink3); }
.sec-card:hover::after { transform:scaleX(1); }

.sec-num { font-family:'Archivo Black',sans-serif;font-size:9px;letter-spacing:.2em;color:var(--blue);margin-bottom:20px;opacity:.5; }
.sec-ico { font-size:36px;margin-bottom:16px;display:block; }
h3.sec-name { font-family:'Archivo Black',sans-serif;font-size:24px;letter-spacing:-.01em;color:var(--chalk);margin-bottom:12px; }
.sec-desc { font-size:13px;color:var(--chalk3);line-height:1.75;margin-bottom:20px; }
.sec-list { list-style:none;display:flex;flex-direction:column;gap:7px; }
.sec-list li {
  font-size:12px;color:var(--chalk3);
  display:flex;align-items:flex-start;gap:8px;line-height:1.5;
}
.sec-list li::before { content:'›';color:var(--blue);flex-shrink:0;font-size:14px;margin-top:-1px; }

/* ══════ NOSOTROS layout editorial asimétrico ══════ */
#nosotros {
  background:var(--ink2);
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;padding:0;
}

.nos-l {
  padding:96px 48px;
  border-right:1px solid var(--wire);
  display:flex;flex-direction:column;justify-content:center;
}

.nos-r {
  padding:0;position:relative;overflow:hidden;
  background:var(--ink3);min-height:560px;
  display:flex;align-items:center;justify-content:center;
}

/* Visual animado lado derecho */
.nos-visual { position:relative;width:340px;height:340px; }
.nos-ring {
  position:absolute;border-radius:50%;
  border:1px solid var(--wire);
}
.nos-r1 { inset:0;animation:spin 24s linear infinite; }
.nos-r1::before {
  content:'';position:absolute;top:-4px;left:50%;
  width:8px;height:8px;border-radius:50%;
  background:var(--blue);box-shadow:0 0 14px var(--blue);
}
.nos-r2 { inset:40px;animation:spin 16s linear infinite reverse; }
.nos-r2::after {
  content:'';position:absolute;bottom:-4px;right:10%;
  width:6px;height:6px;border-radius:50%;
  background:#00D4FF;box-shadow:0 0 8px #00D4FF;
}
.nos-r3 { inset:90px;animation:spin 10s linear infinite; }
@keyframes spin { from{transform:rotate(0deg)}to{transform:rotate(360deg)} }

.nos-center { position:relative;z-index:1;text-align:center; }
.nos-big {
  font-family:'Archivo Black',sans-serif;font-size:160px;line-height:1;
  color:var(--blue);text-shadow:0 0 80px rgba(10,73,254,.5);
  display:block;
}
.nos-sub-label { font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--chalk3);margin-top:8px; }

.nos-badge {
  position:absolute;bottom:32px;right:32px;
  background:var(--blue);padding:16px 20px;
  font-family:'Archivo Black',sans-serif;color:#fff;
  clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px));
  box-shadow:0 0 32px var(--glow);
}
.nos-badge-n { font-size:32px;line-height:1; }
.nos-badge-l { font-size:8px;letter-spacing:.1em;text-transform:uppercase; }

.nos-vals { display:flex;flex-direction:column;gap:1px;margin-top:36px; }
.val {
  display:flex;gap:18px;align-items:flex-start;
  padding:20px 22px;background:var(--ink3);
  border:1px solid transparent;transition:border-color .2s,background .2s;
}
.val:hover { border-color:var(--wire);background:var(--ink4); }
.val-n { font-family:'Archivo Black',sans-serif;font-size:24px;color:var(--blue);opacity:.3;min-width:32px;line-height:1; }
h3.val-title { font-family:'Archivo Black',sans-serif;font-size:15px;letter-spacing:-.01em;margin-bottom:4px; }
.val-p { font-size:13px;color:var(--chalk3);line-height:1.65; }

/* ══════ METODOLOGÍA línea horizontal ══════ */
#metodologia { background:var(--ink); }

.steps {
  display:grid;grid-template-columns:repeat(5,1fr);
  position:relative;
}
.steps::before {
  content:'';position:absolute;top:32px;left:10%;right:10%;
  height:1px;background:linear-gradient(90deg,transparent,var(--blue),transparent);
  z-index:0;
}

.step { padding:0 14px 36px;text-align:center;position:relative;z-index:1; }

.step-hex {
  width:64px;height:64px;margin:0 auto 20px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Archivo Black',sans-serif;font-size:18px;color:var(--blue);
  background:var(--ink);border:1px solid var(--blue);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  transition:background .3s,color .3s;
}
.step:hover .step-hex { background:var(--blue);color:#fff; }
h3.step-t { font-family:'Archivo Black',sans-serif;font-size:13px;letter-spacing:-.01em;margin-bottom:6px; }
.step-d { font-size:11px;color:var(--chalk3);line-height:1.65; }

/* ══════ POR QUÉ ══════ */
#porque { background:var(--ink2); }

.pq-grid {
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:var(--wire);border:1px solid var(--wire);
}
.pq {
  background:var(--ink2);padding:36px;
  display:flex;gap:18px;transition:background .2s;
}
.pq:hover { background:var(--ink3); }
.pq-ico {
  font-size:20px;width:48px;height:48px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--dim);border:1px solid var(--wire);
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
h3.pq-title { font-family:'Archivo Black',sans-serif;font-size:15px;letter-spacing:-.01em;margin-bottom:7px; }
.pq-p { font-size:13px;color:var(--chalk3);line-height:1.7; }

/* ══════ RESEÑAS ══════ */
#resenas { background:var(--ink); }

.rating-bar {
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 28px;border:1px solid var(--wire);
  background:var(--ink2);margin-bottom:32px;flex-wrap:wrap;gap:16px;
}
.rating-l { display:flex;align-items:center;gap:14px; }
.g-box { width:42px;height:42px;background:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center; }
.rating-info h4 { font-family:'Archivo Black',sans-serif;font-size:14px;margin-bottom:2px; }
.rating-info p { font-size:11px;color:var(--chalk3); }
.rating-r { text-align:right; }
.r-score { font-family:'Archivo Black',sans-serif;font-size:44px;color:var(--blue);line-height:1; }
.r-stars { font-size:16px;color:#FBBC04;letter-spacing:2px; }
.r-count { font-size:10px;color:var(--chalk3);margin-top:2px; }

.mq { overflow:hidden;position:relative;border-top:1px solid var(--wire);border-bottom:1px solid var(--wire);padding:18px 0;margin-bottom:40px; }
.mq::before,.mq::after { content:'';position:absolute;top:0;bottom:0;width:80px;z-index:1; }
.mq::before { left:0;background:linear-gradient(90deg,var(--ink),transparent); }
.mq::after { right:0;background:linear-gradient(-90deg,var(--ink),transparent); }
.mq-track { display:flex;gap:44px;width:max-content;animation:scroll 22s linear infinite; }
.mq-item {
  font-family:'Archivo Black',sans-serif;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(240,237,248,.18);white-space:nowrap;
  display:flex;align-items:center;gap:44px;
}
.mq-item::after { content:'//';color:var(--blue);opacity:.4;font-size:9px; }
@keyframes scroll { from{transform:translateX(0)}to{transform:translateX(-50%)} }

.reviews { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--wire);border:1px solid var(--wire); }
.rv {
  background:var(--ink2);padding:28px;
  transition:background .2s;
}
.rv:hover { background:var(--ink3); }
.rv-top { display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px; }
.rv-author { display:flex;align-items:center;gap:10px; }
.rv-ava {
  width:34px;height:34px;background:var(--blue);
  display:flex;align-items:center;justify-content:center;
  font-family:'Archivo Black',sans-serif;font-size:12px;color:#fff;
  clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px));
}
.rv-name { font-family:'Archivo Black',sans-serif;font-size:13px;margin-bottom:1px; }
.rv-date { font-size:9px;color:var(--chalk3); }
.rv-meta { display:flex;flex-direction:column;align-items:flex-end;gap:3px; }
.rv-stars { font-size:11px;color:#FBBC04;letter-spacing:1px; }
.rv-g { display:flex;align-items:center;gap:3px; }
.rv-g svg { width:12px;height:12px; }
.rv-g span { font-size:8px;color:var(--chalk3);letter-spacing:.1em;text-transform:uppercase; }
.rv-text { font-size:13px;color:var(--chalk3);line-height:1.75;font-style:italic;margin-bottom:18px; }
.rv-tag { font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);border:1px solid var(--wire);padding:3px 8px;background:var(--dim); }

/* ══════ FAQ ══════ */
#faq { background:var(--ink2); }
.faq-list { display:flex;flex-direction:column;gap:1px; }
.fq { border:1px solid rgba(240,237,248,.05);background:var(--ink3);overflow:hidden;transition:border-color .2s; }
.fq:hover { border-color:var(--wire); }
.fq-q {
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 22px;cursor:pointer;
  font-family:'Archivo Black',sans-serif;font-size:14px;letter-spacing:-.01em;
  color:var(--chalk);transition:color .2s;
}
.fq-q:hover { color:var(--blue); }
.fq-arr {
  width:24px;height:24px;border:1px solid var(--wire);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;color:var(--blue);flex-shrink:0;transition:transform .3s;
}
.fq.open .fq-arr { transform:rotate(45deg); }
.fq-a { max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;padding:0 22px; }
.fq.open .fq-a { max-height:280px;padding:0 22px 22px; }
.fq-a p { font-size:14px;color:var(--chalk3);line-height:1.82;font-weight:300; }

/* ══════ UBICACIÓN ══════ */
#ubicacion { background:var(--ink);padding:0; }
.ubi-head { padding:96px 48px 44px; }
.ubi-grid { display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--wire); }
.map-box { position:relative;min-height:420px;overflow:hidden;border-right:1px solid var(--wire); }
.map-box iframe { display:block;width:100%;height:100%;filter:invert(90%) hue-rotate(180deg) saturate(1.2) brightness(.85); }
.info-box { padding:48px 40px;background:var(--ink2); }
.infos { display:flex;flex-direction:column;gap:1px; }
.inf {
  display:flex;gap:14px;align-items:flex-start;
  padding:16px;background:var(--ink3);border:1px solid transparent;transition:border-color .2s;
}
.inf:hover { border-color:var(--wire); }
.inf-ico { font-size:16px;color:var(--blue);width:28px;flex-shrink:0;text-align:center;padding-top:2px; }
h3.inf-t { font-family:'Archivo Black',sans-serif;font-size:10px;letter-spacing:.15em;margin-bottom:3px;color:var(--blue);text-transform:uppercase; }
.inf p,.inf a { font-size:13px;color:var(--chalk3);line-height:1.6;text-decoration:none;transition:color .2s; }
.inf a:hover { color:var(--blue); }

/* ══════ CTA ══════ */
#cta {
  background:var(--ink2);text-align:center;
  padding:112px 48px;position:relative;overflow:hidden;
}
.cta-bg {
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:'Archivo Black',sans-serif;font-size:340px;
  color:rgba(10,73,254,.04);pointer-events:none;white-space:nowrap;
  line-height:1;user-select:none;
}
.cta-inner { position:relative;z-index:1;max-width:680px;margin:0 auto; }
.cta-tag {
  display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--wire);padding:5px 14px;background:var(--dim);
  margin-bottom:28px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
h2.cta-h2 {
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(40px,7vw,84px);line-height:.92;letter-spacing:-.02em;margin-bottom:22px;
}
h2.cta-h2 .blue { color:var(--blue); }
h2.cta-h2 .outline { -webkit-text-stroke:2px var(--blue);color:transparent; }
.cta-p { font-size:15px;color:var(--chalk3);line-height:1.78;margin-bottom:44px;font-weight:300; }
.cta-btns { display:flex;gap:12px;justify-content:center;flex-wrap:wrap; }

/* ══════ FOOTER ══════ */
footer {
  background:var(--ink);border-top:1px solid var(--wire);
  padding:36px 48px;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:18px;
}
.ft-logo { font-family:'Archivo Black',sans-serif;font-size:15px;letter-spacing:.04em;color:var(--chalk);text-decoration:none; }
.ft-logo span { color:var(--blue); }
.ft-copy { font-size:10px;color:var(--chalk3);letter-spacing:.04em; }
.ft-links { display:flex;gap:20px; }
.ft-links a { font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--chalk3);text-decoration:none;transition:color .2s; }
.ft-links a:hover { color:var(--blue); }

/* ══════ ANIMATIONS ══════ */
@keyframes up { from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease; }
.reveal.in { opacity:1;transform:translateY(0); }

/* ══════ RESPONSIVE ══════ */
@media(max-width:1100px){
  #hero { grid-template-columns:1fr; }
  .hero-r { display:none; }
  #nosotros { grid-template-columns:1fr; }
  .nos-r { display:none; }
  .sector-grid { grid-template-columns:repeat(2,1fr); }
  .svcs { grid-template-columns:1fr 1fr; }
  .svc-featured { grid-row:auto; }
  .ubi-grid { grid-template-columns:1fr; }
  .map-box { border-right:none;border-bottom:1px solid var(--wire);min-height:300px; }
  .pq-grid { grid-template-columns:1fr; }
  .reviews { grid-template-columns:1fr; }
}
@media(max-width:700px){
  nav { padding:0 20px; }
  .n-links { display:none; }
  .n-center { display:none; }
  section { padding:72px 20px; }
  .hero-l { padding:72px 20px 48px; }
  .sector-grid { grid-template-columns:1fr; }
  .svcs { grid-template-columns:1fr; }
  .steps { grid-template-columns:repeat(2,1fr); }
  footer { padding:28px 20px; }
  h1.hero-h1 { font-size:42px; }
}

/* ── WHATSAPP FLOTANTE ── */
.wa-float {
  position: fixed !important;
  bottom: 28px !important;
  right: 28px !important;
  z-index: 9999 !important;
  width: 56px;
  height: 56px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,0.4);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-decoration: none;
  transform: none;
  will-change: auto;
}
.wa-float:hover {
  transform: scale(1.1) translateY(-2px);
  box-shadow: 0 6px 28px rgba(37,211,102,0.55);
}
.wa-float svg { flex-shrink: 0; }

/* Tooltip al hacer hover */
.wa-float::before {
  content: 'Escríbenos';
  position: absolute;
  right: 68px;
  background: #111;
  color: #fff;
  font-family: 'Archivo', sans-serif;
  font-size: 12px;
  letter-spacing: .04em;
  padding: 6px 12px;
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(6px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}
.wa-float:hover::before {
  opacity: 1;
  transform: translateX(0);
}