/* ═══════════════════════════════════════════════════════════
   AMPARIS · THEME — sistema de diseño compartido
   Estilo: oscuro premium / editorial
   Tipografía: Space Grotesk (display) + Inter (texto)
   Cada página define su acento con --accent en su propio CSS.
═══════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');

/* ───────── Variables base ───────── */
:root{
  /* Acento por defecto = rojo grupo (cada unidad lo pisa) */
  --accent:#e0454b;
  --accent-2:#ff7a7f;
  --accent-glow:rgba(224,69,75,.45);
  --aurora-1:rgba(224,69,75,.30);
  --aurora-2:rgba(86,72,220,.22);

  /* Neutros oscuros */
  --bg:#0a0a0c;
  --bg-2:#0d0d11;
  --surface:#141419;
  --surface-2:#1a1a21;
  --txt:#f4f4f6;
  --txt-dim:#a4a4b0;
  --txt-mute:#6f6f7c;
  --line:rgba(255,255,255,.09);
  --line-soft:rgba(255,255,255,.055);

  --radius:18px;
  --radius-sm:12px;
  --radius-lg:26px;
  --ease:cubic-bezier(.22,1,.36,1);
  --maxw:1180px;

  --font-display:'Space Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

/* ───────── Reset ───────── */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  background:var(--bg);color:var(--txt);
  line-height:1.6;font-size:16px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;position:relative;min-height:100vh;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit}
::selection{background:var(--accent);color:#fff}

/* Grano sutil sobre todo el sitio */
body::after{
  content:'';position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:.04;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* ───────── NAV ───────── */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(10,10,12,.55);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border-bottom:1px solid transparent;
  transition:background .3s var(--ease),border-color .3s var(--ease);
}
.nav.scrolled{
  background:rgba(10,10,12,.82);
  border-bottom-color:var(--line);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:14px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.brand{display:flex;align-items:center;gap:11px}
.brand-logo{width:38px;height:38px;object-fit:contain}
.brand-name{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:3px;color:#fff;line-height:1}
.brand-sub{font-size:9.5px;letter-spacing:3px;color:var(--accent);text-transform:uppercase;font-weight:600;margin-top:3px}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{font-size:13.5px;font-weight:500;color:var(--txt-dim);transition:color .2s}
.nav-links a:hover{color:#fff}
.btn-wa{
  background:linear-gradient(135deg,#25D366,#1aa851);color:#fff!important;
  padding:9px 16px;border-radius:999px;font-weight:600;font-size:13px;
  box-shadow:0 4px 16px rgba(37,211,102,.25);transition:transform .2s var(--ease),box-shadow .2s;
}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,211,102,.35);color:#fff!important}

/* ───────── HERO ───────── */
.hero{
  position:relative;overflow:hidden;
  padding:120px 22px 96px;text-align:center;
  background:radial-gradient(120% 90% at 50% -10%,var(--bg-2),var(--bg) 60%);
}
/* aurora animada */
.hero::before{
  content:'';position:absolute;inset:-30% -10% auto -10%;height:140%;z-index:0;
  background:
    radial-gradient(40% 50% at 25% 30%,var(--aurora-1),transparent 70%),
    radial-gradient(38% 46% at 78% 22%,var(--aurora-2),transparent 70%),
    radial-gradient(30% 40% at 60% 70%,var(--accent-glow),transparent 72%);
  filter:blur(20px);opacity:.9;
  animation:drift 18s ease-in-out infinite alternate;
}
/* grilla de puntos */
.hero::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(75% 60% at 50% 35%,#000,transparent 80%);
  mask-image:radial-gradient(75% 60% at 50% 35%,#000,transparent 80%);
  opacity:.5;
}
@keyframes drift{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(3%,2%,0) scale(1.08)}
  100%{transform:translate3d(-3%,-1%,0) scale(1.04)}
}
.hero-inner{position:relative;z-index:2;max-width:880px;margin:0 auto}
.hero-tag{
  display:inline-flex;align-items:center;gap:7px;
  font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;font-weight:600;
  color:var(--txt-dim);margin-bottom:22px;
  padding:7px 15px;border:1px solid var(--line);border-radius:999px;
  background:rgba(255,255,255,.03);backdrop-filter:blur(8px);
}
.hero h1{
  font-family:var(--font-display);
  font-size:clamp(36px,6vw,68px);font-weight:700;letter-spacing:-1.5px;
  line-height:1.04;margin-bottom:20px;color:#fff;
}
.hero h1 .accent{
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero-sub{
  font-size:clamp(15px,2vw,19px);color:var(--txt-dim);
  max-width:620px;margin:0 auto 34px;line-height:1.6;
}
.hero-cta{display:inline-flex;gap:13px;flex-wrap:wrap;justify-content:center}

/* ───────── Botones ───────── */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 26px;border-radius:999px;font-weight:600;font-size:14.5px;
  letter-spacing:.2px;cursor:pointer;border:1px solid transparent;
  transition:transform .2s var(--ease),box-shadow .25s var(--ease),background .2s,border-color .2s;
}
.btn-primary{
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  color:#fff!important;box-shadow:0 8px 26px -6px var(--accent-glow);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px -6px var(--accent-glow)}
.btn-ghost{
  background:rgba(255,255,255,.04);color:#fff!important;
  border-color:var(--line);backdrop-filter:blur(8px);
}
.btn-ghost:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.25);transform:translateY(-2px)}

/* ───────── Cabecera de sección ───────── */
.section-head{text-align:center;max-width:600px;margin:0 auto 48px}
.section-head .eyebrow,.eyebrow{
  display:inline-block;font-size:11px;letter-spacing:3px;font-weight:700;
  text-transform:uppercase;color:var(--accent);margin-bottom:12px;
}
.section-head h2{
  font-family:var(--font-display);
  font-size:clamp(26px,4vw,42px);font-weight:700;letter-spacing:-.8px;
  color:#fff;line-height:1.1;margin-bottom:14px;
}
.section-head p{color:var(--txt-dim);font-size:15.5px}

/* ───────── SERVICIOS (páginas de unidad) ───────── */
.servicios-wrap{padding:96px 0 60px;position:relative}
.servicios{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:20px;
}
.servicio{
  position:relative;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 26px;display:flex;flex-direction:column;
  transition:transform .35s var(--ease),border-color .35s,box-shadow .35s,background .35s;
  overflow:hidden;
}
.servicio::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 0%,var(--accent-glow),transparent 55%);
  opacity:0;transition:opacity .35s;
}
.servicio:hover{
  transform:translateY(-6px);border-color:color-mix(in srgb,var(--accent) 55%,transparent);
  box-shadow:0 24px 50px -20px var(--accent-glow);background:var(--surface-2);
}
.servicio:hover::before{opacity:.12}
.servicio-ico{
  font-size:30px;line-height:1;margin-bottom:16px;
  width:58px;height:58px;display:grid;place-items:center;border-radius:14px;
  background:rgba(255,255,255,.04);border:1px solid var(--line);position:relative;
}
.servicio h3{
  font-family:var(--font-display);font-size:20px;font-weight:600;letter-spacing:-.3px;
  color:#fff;margin-bottom:9px;position:relative;
}
.servicio>p{color:var(--txt-dim);font-size:14px;line-height:1.6;margin-bottom:18px;position:relative}
.servicio-list{
  list-style:none;margin-bottom:22px;flex:1;
  display:flex;flex-direction:column;gap:8px;position:relative;
}
.servicio-list li{
  font-size:13px;color:var(--txt-dim);padding-left:24px;position:relative;
}
.servicio-list li::before{
  content:'';position:absolute;left:0;top:7px;width:13px;height:13px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,var(--accent-2),var(--accent));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);
}
.btn-cta{
  display:inline-flex;align-items:center;gap:7px;align-self:flex-start;position:relative;
  background:rgba(255,255,255,.04);color:#fff!important;
  border:1px solid var(--line);padding:11px 19px;border-radius:999px;
  font-weight:600;font-size:13px;transition:gap .25s var(--ease),background .25s,border-color .25s,transform .25s;
}
.btn-cta:hover{
  gap:11px;background:linear-gradient(120deg,var(--accent),var(--accent-2));
  border-color:transparent;color:#fff!important;transform:translateY(-2px);
  box-shadow:0 10px 26px -8px var(--accent-glow);
}

/* ───────── NOSOTROS ───────── */
.nosotros{
  padding:90px 0;border-top:1px solid var(--line-soft);
  background:linear-gradient(180deg,var(--bg),var(--bg-2));
}
.nosotros-grid{
  display:grid;grid-template-columns:1.15fr 1fr;gap:54px;align-items:center;
}
@media(max-width:780px){.nosotros-grid{grid-template-columns:1fr;gap:36px}}
.nosotros h2{
  font-family:var(--font-display);font-size:clamp(24px,3.6vw,36px);font-weight:700;
  letter-spacing:-.6px;color:#fff;margin-bottom:16px;line-height:1.12;
}
.nosotros p{color:var(--txt-dim);margin-bottom:15px;font-size:15.5px}
.nosotros p a{color:var(--accent)!important;font-weight:600}
.valores{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:460px){.valores{grid-template-columns:1fr}}
.valor{
  background:var(--surface);padding:18px;border-radius:var(--radius-sm);
  border:1px solid var(--line);border-left:3px solid var(--accent);
  transition:transform .3s var(--ease),border-color .3s,background .3s;
}
.valor:hover{transform:translateY(-3px);background:var(--surface-2)}
.valor b{display:block;margin-bottom:5px;font-size:14.5px;color:#fff;font-weight:600}
.valor span{font-size:13px;color:var(--txt-dim)}

/* ───────── CONTACTO ───────── */
.contacto{
  padding:96px 0;text-align:center;position:relative;overflow:hidden;
  background:radial-gradient(80% 120% at 50% 0%,var(--bg-2),var(--bg));
  border-top:1px solid var(--line-soft);
}
.contacto::before{
  content:'';position:absolute;inset:auto 0 -40% 0;height:80%;
  background:radial-gradient(50% 60% at 50% 100%,var(--accent-glow),transparent 70%);
  opacity:.5;pointer-events:none;
}
.contacto h2{
  font-family:var(--font-display);font-size:clamp(26px,4vw,40px);font-weight:700;
  letter-spacing:-.6px;color:#fff;margin-bottom:12px;position:relative;
}
.contacto p{color:var(--txt-dim);margin-bottom:28px;font-size:15.5px;position:relative}
.contacto-grid{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}

/* ───────── FOOTER ───────── */
footer{
  background:var(--bg-2);color:var(--txt-mute);
  padding:46px 22px 36px;text-align:center;font-size:13.5px;
  border-top:1px solid var(--line-soft);
}
footer .brand-name{
  font-family:var(--font-display);color:#fff;display:block;
  margin-bottom:8px;font-size:16px;letter-spacing:2px;
}
footer a{color:var(--accent)}
footer a:hover{color:var(--accent-2)}
.footer-meta{
  margin-top:14px;font-size:11.5px;color:var(--txt-mute);letter-spacing:.3px;
  line-height:1.7;max-width:760px;margin-left:auto;margin-right:auto;
}
.footer-meta small{color:var(--txt-dim)}

/* ───────── Reveal al hacer scroll ───────── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero::before{animation:none}
}

/* ───────── Mobile ───────── */
@media(max-width:640px){
  .nav-links{gap:14px}
  .nav-links a:not(.btn-wa){display:none}
  .hero{padding:86px 22px 64px}
  .servicios-wrap{padding:64px 0 32px}
  .nosotros,.contacto{padding:64px 0}
}
