:root{
  --accent:#0ab6ff;
  --secondary:#5b5cf6;
  --text:#111;
  --muted:#5f6b7a;
  --surface:#f9fafb;
  --shadow:0 10px 30px rgba(15,23,42,.08);

  /* Alturas coherentes para reservar espacio de barras */
  --nav-h: 88px;
  --nav-h-sm: 112px;
  --footer-h: 96px;
  --footer-h-sm: 120px;
}

html { scroll-behavior:smooth; }
section, header[id]{ scroll-margin-top:88px; }
body{ font-family:Inter,sans-serif; color:var(--text); background:#fff; }

/* Navbar */
.navbar{ transition:.3s ease; }
.navbar.scrolled{ background:#fff; box-shadow:var(--shadow); }
.nav-link{ font-weight:600; color:#334155; }
.nav-link:hover,.nav-link.active{ color:var(--accent); }
.btn-nav{
  background:linear-gradient(90deg,var(--secondary),var(--accent));
  color:#fff; font-weight:700; border:none;
  box-shadow:0 6px 16px rgba(91,92,246,.3);
}

/* Hero */
#hero{ min-height:100vh; display:flex; align-items:center; }
.hero-title{ font-weight:900; }
.hero-title span{ color:var(--accent); }
.btn-ai{ background:var(--accent); color:#fff; font-weight:700; }
.btn-ai:hover{ filter:brightness(1.1); }

/* Section header */
section{ padding:60px 0; }
.section-title{ font-weight:900; }
.underline{
  width:90px; height:4px;
  background:linear-gradient(90deg,var(--secondary),var(--accent));
  border-radius:8px; margin:10px auto;
}

/* subtítulos */
.text-muted { color:#000000 !important; }

.project-caption a {
  color: #000 !important;       /* texto negro */
  text-decoration: none;        /* sin subrayado */
  font-weight: bold !important; /* negritas */
}

.project-caption a:hover {
  color: #000 !important;       /* sigue negro al pasar el mouse */
  text-decoration: none;        /* sin subrayado en hover */
}


/* Cards genéricas */
.contact-card{
  background:#fff; border:1px solid #eef2f7;
  border-radius:18px; box-shadow:var(--shadow);
}

/* ¿Quiénes somos? */
#acerca p{ color:#000; text-align:justify; }
.about-card{
  background:#fff; border:1px solid #eef2f7;
  border-radius:16px; box-shadow:var(--shadow);
  padding:1rem 1.25rem;
}
.values-grid{ display:grid; gap:0.8rem; }
@media (min-width:992px){ .values-grid{ grid-template-columns:1fr; } }
.values-grid > div{
  border:1px solid #eef2f7; border-radius:16px;
  background:#fff; box-shadow:var(--shadow);
  padding:1rem 1.25rem;
}

/* Servicios */
.card-ai{
  background:#fff; border:1px solid #e5eaf1;
  border-radius:16px; box-shadow:var(--shadow);
  overflow:hidden; transition:.3s;
}
.card-ai:hover{ transform:translateY(-5px); box-shadow:0 20px 40px rgba(15,23,42,.12); }
.card-ai img{ height:200px; object-fit:cover; }

/* Proyectos */
.project-card{
  border-radius:16px; overflow:hidden; box-shadow:var(--shadow);
  border:1px solid #eef2f7; display:block; position:relative;
}
.project-card img{
  width:100%; height:260px; object-fit:cover; transition:.5s;
}
.project-card:hover img{ transform:scale(1.05); }
.badge-soft{
  position:absolute; top:12px; left:12px; background:#fff;
  padding:.3rem .7rem; border-radius:999px; font-weight:600;
  border:1px solid #e8eef5;
}
.project-caption{ font-weight:600; text-align:center; margin-top:.6rem; }

/* Contacto */
#contacto{ padding:20px 0; }
footer{ background:#f9fafb; border-top:1px solid #e5eaf1; padding:20px 0; }

/* Toggle icon visible */
.navbar .navbar-toggler{ border-color:#e5e7eb; }
.navbar .navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(55,65,81,1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Animación HERO */
.hero-float{ animation:heroFloat 4s ease-in-out infinite, sway 3s ease-in-out infinite; will-change:transform; }
@keyframes heroFloat{
  0%{ transform:translateY(0); }
  50%{ transform:translateY(-10px); }
  100%{ transform:translateY(0); }
}
@keyframes sway{
  0%{ transform:translateX(0); }
  50%{ transform:translateX(8px); }
  100%{ transform:translateX(0); }
}
@media (prefers-reduced-motion:reduce){
  .hero-float{ animation:none; }
}
.btn-ai{ animation:pulse 2s infinite; }
@keyframes pulse{
  0%{ transform:scale(1); }
  50%{ transform:scale(1.05); }
  100%{ transform:scale(1); }
}

/* === Fixed bottom footer (like top navbar) === */
footer{
  position:fixed;
  bottom:0; left:0; right:0;
  width:100%;
  z-index:1030;
  background:#fff;
  box-shadow:var(--shadow);
  border-top:1px solid #e5eaf1;
}

/* Reserva de espacio para barras fijas (desktop por defecto) */
body{
  padding-top:var(--nav-h);
  padding-bottom:var(--footer-h);
}

/* Mobile */
@media (max-width:576px){
  body{
    padding-top:var(--nav-h-sm);
    padding-bottom:var(--footer-h-sm);
  }
  #mainNav{ min-height:var(--nav-h-sm); }
  #mainNav .navbar-collapse{
    background:#fff;
    box-shadow:var(--shadow);
    border-bottom:1px solid #e5eaf1;
    max-height:calc(100vh - var(--nav-h-sm) - 12px);
    overflow:auto;
  }
  #mainNav .nav-link{ padding:.75rem 1rem; }
}

/* Navbar fija */
#mainNav{
  position:fixed;
  top:0; left:0; right:0;
  width:100%;
  z-index:1031;
  background:#fff;
  box-shadow:var(--shadow);
  border-bottom:1px solid #e5eaf1;
}

/* Hero ajuste */
#hero{
  min-height:calc(100vh - var(--nav-h) - var(--footer-h));
  display:flex;
  align-items:center;
  padding-top:0;
  padding-bottom:0;
}
@media (max-width:576px){
  #hero{ min-height:calc(100vh - var(--nav-h-sm) - var(--footer-h-sm)); }
}

/* ===== SOLO INDEX ===== */
body.is-index::after{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(9,14,25,.58) 0%, rgba(9,14,25,.28) 40%, rgba(9,14,25,.12) 70%, rgba(9,14,25,.06) 100%);
}
@media (max-width:768px){
  body.is-index::after{
    background:linear-gradient(180deg, rgba(9,14,25,.55) 0%, rgba(9,14,25,.10) 60%);
  }
}

body.is-index #hero .col-lg-6:first-child{ position:relative; z-index:1; }
body.is-index #hero .col-lg-6:first-child::before{
  content:""; position:absolute; z-index:-1;
  inset:-20px -24px -20px -24px;
  background:linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.28);
  border-radius:22px;
  backdrop-filter:blur(6px) saturate(120%);
  -webkit-backdrop-filter:blur(6px) saturate(120%);
  box-shadow:0 12px 40px rgba(2,6,23,.25);
}
body.is-index .hero-title{ color:#0b1220; text-shadow:0 2px 0 rgba(255,255,255,.35); }
body.is-index .lead{ color:rgba(255,255,255,.92); }
body.is-index .hero-float{ filter:drop-shadow(0 24px 40px rgba(2,6,23,.30)); }
body.is-index .btn-ai{ border:none; border-radius:14px; box-shadow:0 10px 26px rgba(10,182,255,.32); }
body.is-index .btn-outline-dark{ border-width:2px; border-radius:14px; font-weight:800; }

/* ICONOS NEGROS PARA CALLE, TELÉFONO, CORREO Y HORARIO */
.contact-card i.bi-geo-alt,
.contact-card i.bi-telephone,
.contact-card i.bi-envelope,
.contact-card i.bi-clock {
  color: #000 !important;
}
