/* ===== Variables ===== */
:root{
  --bg:#f7f8fb;
  --paper:#ffffff;
  --ink:#1f2532;
  --muted:#687083;
  --primary:#d9262e;     /* rojo principal */
  --primary-700:#b81f26;
  --primary-900:#86161b;
  --accent:#ff5a5f;
  --soft:#eef2f7;
  --shadow: 0 10px 25px rgba(16,24,40,.08);
  --radius:16px;
  --radius-sm:12px;
  --radius-lg:28px;
  --container:1120px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.5;
}

img{max-width:100%; display:block}

/* ===== Helpers ===== */
.container{
  width:min(100% - 2rem, var(--container));
  margin-inline:auto;
}
.section-header{
  text-align:center;
  margin-bottom:2rem;
}
.section-header h2{
  font-size:clamp(1.6rem, 1.2rem + 1vw, 2.2rem);
  margin:0 0 .5rem;
}
.section-header p{
  color:var(--muted);
  margin:0;
}

/* ===== Buttons ===== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.9rem 1.2rem;
  border-radius:999px;
  border:2px solid transparent;
  font-weight:800;
  text-decoration:none;
  transition:.2s ease;
  cursor:pointer;
}
.btn-primary{
  background:linear-gradient(180deg, var(--primary), var(--primary-700));
  color:#fff;
  box-shadow:0 10px 20px rgba(217,38,46,.25);
}
.btn-primary:hover{filter:brightness(.95)}
.btn-outline{
  border-color:var(--primary);
  color:var(--primary);
  background:#fff;
}
.btn-outline:hover{background:#fff5f5}
.btn-soft{
  background:#fff;
  border-color:#e8ebf2;
  color:var(--ink);
  font-weight:700;
}
.btn-soft:hover{box-shadow:var(--shadow)}
.btn-cta{
  background:linear-gradient(180deg, #ff6b6f, var(--primary));
  color:#fff;
  border:none;
}
.btn-cta:hover{filter:brightness(.95)}
.btn-sm{padding:.55rem .9rem; font-size:.92rem}

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.85);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid #eceff5;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding:.6rem 0;
}
.brand{display:flex; align-items:center; gap:.6rem; color:inherit; text-decoration:none}
.logo{width:40px; height:auto}
.brand-text{font-weight:900; letter-spacing:.5px}
.brand-text small{font-weight:700; color:var(--primary)}

.nav{position:relative}
.nav-toggle{
  display:inline-grid; gap:4px; border:none; background:transparent; cursor:pointer;
  padding:.4rem; border-radius:8px; width:40px;
}
.nav-toggle .bar{height:2px; width:100%; background:var(--ink); display:block}
.nav-list{
  position:fixed; inset:64px 0 auto 0; /* mobile offcanvas */
  background:#fff; padding:1rem 1.25rem; margin:0; list-style:none;
  display:grid; gap:.5rem; transform:translateY(-120%);
  transition:.25s ease; box-shadow:0 18px 36px rgba(15,23,42,.08);
}
.nav-list a{color:var(--ink); text-decoration:none; font-weight:700; padding:.6rem .8rem; border-radius:10px}
.nav-list a:hover{background:#f3f5fa}
.nav.open .nav-list{transform:translateY(0)}

@media (min-width: 960px){
  .nav-toggle{display:none}
  .nav-list{
    position:static; display:flex; gap:.6rem; transform:none; padding:0; box-shadow:none; background:transparent;
  }
  .nav-list a{padding:.5rem .75rem}
}

/* ===== Hero ===== */
.hero{
  position:relative; overflow:hidden; background:#0f172a; color:#fff;
  padding:3.5rem 0 2rem;
}
.hero-bg img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.18;
}
.hero-inner{
  position:relative; z-index:1; text-align:center;
}
.hero h1{
  font-size:clamp(1.8rem, 1.2rem + 2.4vw, 3rem);
  line-height:1.15; margin:0 0 .6rem; font-weight:900;
}
.lead{color:#e6e8ef; font-size:1.05rem; margin:.2rem 0 1.2rem}
.hero-actions{display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap}

.hero-devices{
  display:flex; gap:1rem; justify-content:center; align-items:end;
  margin-top:1.6rem; filter:drop-shadow(0 30px 40px rgba(0,0,0,.35));
}
.hero-devices img{width:min(33%, 240px)}

.wave{
  position:absolute; left:0; right:0; height:38px; background:radial-gradient(100% 100% at 50% 0%, rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 70%);
}
.wave-bottom{bottom:-1px}

/* ===== Servicios ===== */
.servicios{padding:3rem 0 2rem}
.cards{
  display:grid; grid-template-columns:1fr; gap:1rem;
}
.card{
  background:var(--paper); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);
  display:grid; grid-template-rows:auto 1fr; min-height:100%;
}
.card-media img{width:100%; height:180px; object-fit:cover}
.card-body{padding:1rem 1rem 1.25rem}
.card h3{margin:.2rem 0 .6rem; font-size:1.2rem}
.pill-list{display:flex; flex-wrap:wrap; gap:.5rem; padding:0; margin:0 0 1rem; list-style:none}
.pill-list li{
  background:#fff5f5; color:var(--primary-900); border:1px solid #ffd7d9;
  padding:.35rem .7rem; border-radius:999px; font-weight:800; font-size:.85rem;
}

@media (min-width: 720px){
  .cards{grid-template-columns:repeat(3, 1fr)}
  .card-media img{height:160px}
}

/* ===== Mosaic Banner ===== */
.banner.mosaic{
  position:relative; color:#fff; text-align:center; padding:2.8rem 0 2.4rem; overflow:hidden;
  background:linear-gradient(180deg, #2b0d11, #1a0b0d);
}
.mosaic-bg img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.35;
}
.banner h3{font-size:1.6rem; margin:0 0 .3rem}
.banner p{margin:0 0 1rem; color:#f6f7fb}
.icon-pills{display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap}
.pill{
  display:inline-flex; align-items:center; gap:.5rem; padding:.55rem .9rem; border-radius:999px;
  color:#fff; text-decoration:none; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
}
.pill:hover{background:rgba(255,255,255,.2)}

/* ===== E‑Commerce ===== */
.ecommerce{padding:3rem 0 2.8rem; background:#fff}
.feature-tiles{
  display:grid; grid-template-columns:1fr; gap:1rem; margin-top:1rem;
}
.tile{
  background:linear-gradient(180deg, #fafbff, #eef2f7);
  border:1px solid #e5e9f2; border-radius:var(--radius-lg);
  padding:1.2rem; text-align:center; font-weight:900; text-decoration:none; color:var(--ink);
  box-shadow:var(--shadow);
}
.tile:hover{transform:translateY(-2px); box-shadow:0 18px 36px rgba(16,24,40,.12)}

@media (min-width: 720px){
  .feature-tiles{grid-template-columns:repeat(3, 1fr)}
}

/* ===== GIS ===== */
.gis{
  position:relative; overflow:hidden; padding:3rem 0;
  background:linear-gradient(180deg, #ffffff 0%, #f4f5fb 100%);
}
.gis-bg img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.12;
}
.mockups{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; align-items:end;
}
.mockups img{
  background:#fff; border-radius:14px; padding:.6rem; box-shadow:var(--shadow)
}
@media (max-width: 719px){
  .mockups{grid-template-columns:1fr; max-width:680px; margin-inline:auto}
}

/* ===== Testimonios ===== */
.testimonios{padding:3rem 0}
.testi-track{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem;
}
.testi{
  background:#fff; border-radius:var(--radius); padding:1.1rem; box-shadow:var(--shadow);
}
.quote{margin:0 0 .9rem; color:#3a4256}
.author{display:flex; align-items:center; gap:.7rem}
.author img{width:44px; height:44px; border-radius:50%; object-fit:cover}
.author strong{display:block}
.author small{color:var(--muted)}

.testi-controls{display:flex; gap:.5rem; justify-content:center; margin-top:.8rem}
.control{
  width:42px; height:42px; border-radius:50%; border:1px solid #e5e9f2; background:#fff; cursor:pointer;
}
.control:hover{background:#f7f8fb}

@media (max-width: 959px){
  .testi-track{grid-template-columns:1fr}
}

/* ===== CTA Final ===== */
.cta-final{
  background:linear-gradient(180deg, var(--primary), var(--primary-900));
  color:#fff; padding:2.4rem 0; text-align:center;
}
.cta-inner h2{margin:0 0 .8rem; font-size:1.8rem}

/* ===== Footer ===== */
.site-footer{
  background:#0f172a; color:#c8cedb; padding:1.2rem 0;
}
.footer-inner{
  display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;
}
.footer-nav{display:flex; gap:.9rem; flex-wrap:wrap}
.footer-nav a{color:#c8cedb; text-decoration:none}
.footer-nav a:hover{color:#fff}

/* ===== Utilities ===== */
.d-lg{display:none}
@media (min-width: 960px){ .d-lg{display:inline} }

/* ===== A11y ===== */
.sr-only{
  position:absolute!important; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px);
  white-space:nowrap; border:0; padding:0; margin:-1px;
}
