:root{
  --bordo:#A6093D;
  --bordo-dark:#85072F;
  --teal:#138A9C;
  --teal-dark:#0E6E7D;
  --navy:#0B1A40;
  --cream:#F4ECEA;
  --cream-2:#EFE4E1;
  --gris:#CFC8C4;
  --ink:#2A1620;
  --white:#ffffff;
  --radius:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Poppins',system-ui,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{line-height:1.15;letter-spacing:-0.01em;color:var(--navy)}
a{text-decoration:none;color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--bordo);margin-bottom:14px;
}
.btn{
  display:inline-block;font-weight:600;font-size:.95rem;padding:14px 28px;border-radius:999px;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;cursor:pointer;border:none;
}
.btn-primary{background:var(--bordo);color:#fff}
.btn-primary:hover{background:var(--bordo-dark);transform:translateY(-2px);box-shadow:0 10px 24px rgba(166,9,61,.28)}
.btn-ghost{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.btn-light{background:#fff;color:var(--bordo)}
.btn-light:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.18)}

/* NAV */
header.nav{position:sticky;top:0;z-index:50;background:rgba(244,236,234,.85);backdrop-filter:blur(10px);border-bottom:1px solid rgba(11,26,64,.07)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo img{height:34px;display:block}
.nav-links{display:flex;gap:30px;align-items:center}
.nav-links a{font-size:.92rem;font-weight:500;color:var(--navy);opacity:.85;transition:opacity .15s,color .15s}
.nav-links a:hover{opacity:1;color:var(--bordo)}
.nav-cta{background:var(--navy);color:#fff!important;padding:10px 22px;border-radius:999px;opacity:1!important}
.nav-cta:hover{background:var(--bordo)}
.menu-btn{display:none;background:none;border:none;font-size:1.6rem;color:var(--navy);cursor:pointer}

/* HERO */
.hero{position:relative;overflow:hidden;padding:90px 0 70px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(2.5rem,5vw,4rem);font-weight:700}
.hero h1 .accent{color:var(--bordo)}
.hero p.lead{font-size:1.2rem;color:var(--ink);margin:24px 0 14px;max-width:540px}
.hero p.sub{font-size:1.02rem;color:#6a5660;max-width:520px;margin-bottom:32px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:8px 16px;font-size:.85rem;font-weight:500;color:var(--navy);box-shadow:0 4px 16px rgba(11,26,64,.06);margin-top:30px}
.hero-badge .dot{width:9px;height:9px;border-radius:50%;background:var(--teal)}
/* decorative pill cluster */
.pill-art{position:relative;height:340px}
.pill{position:absolute;border-radius:999px;height:46px}
.blob{position:absolute;border-radius:50%}
.p1{width:200px;background:var(--navy);top:20px;left:0}
.p2{width:120px;background:var(--bordo);top:20px;left:212px}
.p3{width:90px;height:90px;border-radius:50%;background:var(--teal);top:0;left:300px}
.p4{width:240px;background:var(--gris);top:90px;left:40px}
.p5{width:110px;background:#fff;top:90px;left:290px}
.p6{width:150px;background:var(--teal);top:160px;left:0}
.p7{width:170px;background:var(--bordo);top:160px;left:160px}
.p8{width:80px;height:80px;border-radius:50%;background:var(--navy);top:150px;left:340px}
.p9{width:260px;background:var(--gris);top:230px;left:60px}
.p10{width:60px;background:var(--teal);top:230px;left:0}

section{padding:80px 0}
.sec-head{max-width:720px;margin-bottom:50px}
.sec-head h2{font-size:clamp(1.9rem,3.5vw,2.7rem);font-weight:700}
.sec-head p{font-size:1.1rem;color:#6a5660;margin-top:14px}

/* SERVICES */
#servicios{background:var(--cream-2)}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.card{display:block;background:#fff;border-radius:var(--radius);padding:34px 30px;position:relative;border:1px solid rgba(11,26,64,.06);transition:transform .18s,box-shadow .18s}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,26,64,.10)}
.card .tag{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.card h3{font-size:1.4rem;font-weight:600;margin:6px 0 12px}
.card p{color:#6a5660;font-size:.98rem}
.card .ico{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;font-weight:700;color:#fff;font-size:1.1rem}
.card .more{display:inline-block;margin-top:18px;color:var(--bordo);font-weight:600;font-size:.9rem}
.card:hover .more{letter-spacing:.02em}
.card.feature{background:var(--navy);border:none}
.card.feature .tag{color:#7fd3df}
.card.feature h3,.card.feature p{color:#fff}
.card.feature p{color:#c9d2e6}
.card.feature .more{color:#7fd3df}
.card.feature .pin{position:absolute;top:24px;right:26px;background:var(--bordo);color:#fff;font-size:.72rem;font-weight:600;padding:5px 12px;border-radius:999px}

/* PROBLEMS */
.prob-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.prob{background:var(--cream-2);border-radius:var(--radius);padding:30px 26px;border-left:4px solid var(--bordo)}
.prob h4{font-size:1.12rem;margin-bottom:10px}
.prob p{color:#6a5660;font-size:.95rem}
.prob .fix{display:block;margin-top:12px;color:var(--teal-dark);font-weight:600;font-size:.92rem}

/* CASES / CLIENTES */
#casos{background:var(--navy);color:#fff}
#casos h2{color:#fff}
#casos .sec-head p{color:#b9c2da}
/* marquee (logos en fila moviéndose) */
.marquee{overflow:hidden;position:relative;width:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;gap:18px;width:max-content;animation:scroll-x 34s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes scroll-x{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.client-card{flex:0 0 190px;background:#fff;border-radius:18px;height:118px;display:flex;align-items:center;justify-content:center;padding:18px;transition:transform .18s,box-shadow .18s}
.client-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(0,0,0,.25)}
.client-card img{max-height:46px;max-width:82%;object-fit:contain}

/* RESEÑAS / TESTIMONIOS */
#resenas{background:var(--cream)}
.tcarousel{max-width:880px;margin:30px auto 0;position:relative}
.tcard{background:#fff;border-radius:30px;padding:60px 56px 48px;text-align:center;position:relative;box-shadow:0 18px 50px rgba(11,26,64,.07)}
.tquote-ico{position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:60px;height:60px;border-radius:16px;background:var(--teal);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(19,138,156,.32)}
.tquote-ico svg{width:28px;height:28px;fill:#fff}
.tslide{display:none}
.tslide.active{display:block;animation:fade .4s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tresult{font-size:1.55rem;font-weight:700;color:var(--navy);margin-bottom:18px;line-height:1.25}
.tquote{font-size:1.1rem;font-style:italic;color:#5d4a53;max-width:660px;margin:0 auto 28px}
.tavatar{width:76px;height:76px;border-radius:50%;object-fit:cover;margin:0 auto 12px;border:3px solid #fff;box-shadow:0 5px 16px rgba(0,0,0,.13);display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font-weight:700;font-size:1.4rem}
.tname{font-weight:600;color:var(--navy)}
.trole{font-size:.9rem;color:#8a7780;margin-bottom:18px}
.tlogo{height:28px;opacity:.9;margin-top:14px;display:inline-block}
.tarrow{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:#fff;border:1px solid rgba(11,26,64,.1);box-shadow:0 6px 18px rgba(11,26,64,.1);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--navy);font-size:1.3rem;transition:background .15s,color .15s;z-index:3}
.tarrow:hover{background:var(--bordo);color:#fff;border-color:var(--bordo)}
.tarrow.prev{left:-18px}
.tarrow.next{right:-18px}
.tdots{display:flex;gap:9px;justify-content:center;margin-top:24px}
.tdot{width:9px;height:9px;border-radius:50%;background:rgba(11,26,64,.18);cursor:pointer;transition:background .15s,width .15s}
.tdot.active{background:var(--bordo);width:24px;border-radius:999px}
@media(max-width:560px){.tarrow.prev{left:4px}.tarrow.next{right:4px}.tcard{padding:54px 26px 40px}}

/* METHOD */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:step}
.step{background:#fff;border-radius:var(--radius);padding:30px 24px;position:relative;border:1px solid rgba(11,26,64,.06)}
.step .num{width:42px;height:42px;border-radius:50%;background:var(--bordo);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:16px}
.step:nth-child(2) .num{background:var(--teal)}
.step:nth-child(3) .num{background:var(--navy)}
.step:nth-child(4) .num{background:var(--bordo)}
.step h4{font-size:1.1rem;margin-bottom:8px}
.step p{color:#6a5660;font-size:.92rem}

/* TEAM */
#nosotros{background:var(--cream-2)}
.team-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:center}
.team-photos{display:flex}
.team-photos img{width:172px;height:172px;border-radius:50%;border:5px solid #fff;object-fit:cover;margin-right:-26px;box-shadow:0 8px 22px rgba(0,0,0,.14)}
.team-text h2{margin-bottom:18px}
.team-text p{color:#6a5660;margin-bottom:14px}
.team-text strong{color:var(--navy)}

/* CTA */
.cta{background:var(--bordo);color:#fff;text-align:center;border-radius:36px;padding:64px 30px;margin:0 28px;position:relative;overflow:hidden}
.cta-wrap{max-width:1180px;margin:80px auto 0}
.cta h2{color:#fff;font-size:clamp(1.9rem,3.5vw,2.7rem)}
.cta p{color:#ffd9e3;margin:14px 0 30px;font-size:1.1rem}
.cta .blob{opacity:.16}
.cta .cb1{width:220px;height:220px;background:#fff;top:-80px;left:-60px}
.cta .cb2{width:160px;height:160px;background:var(--navy);bottom:-70px;right:-40px;opacity:.25}

/* FOOTER */
footer{padding:60px 0 40px;background:var(--navy);color:#cdd5ea;margin-top:80px}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px}
footer .logo img{height:30px;filter:brightness(0) invert(1)}
.foot-links{display:flex;gap:34px;flex-wrap:wrap}
.foot-links a{color:#cdd5ea;font-size:.92rem}
.foot-links a:hover{color:#fff}
.socials{display:flex;gap:12px;align-items:center}
.socials a{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s}
.socials a:hover{background:var(--bordo);border-color:var(--bordo);transform:translateY(-3px)}
.socials svg{width:19px;height:19px;fill:#fff}
.foot-bottom{margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:.85rem;color:#8c97bd;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* ===== SERVICE DETAIL PAGES ===== */
.svc-hero{padding:70px 0 50px;position:relative;overflow:hidden}
.svc-hero .back{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;font-weight:500;color:var(--bordo);margin-bottom:24px}
.svc-hero .back:hover{gap:11px}
.svc-hero h1{font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:700;max-width:760px}
.svc-hero .role{display:inline-block;background:var(--navy);color:#fff;font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:7px 16px;border-radius:999px;margin-bottom:20px}
.svc-hero p.intro{font-size:1.2rem;color:#5d4a53;max-width:680px;margin:22px 0 30px}
.svc-section{padding:54px 0}
.svc-section.alt{background:var(--cream-2)}
.svc-section h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;margin-bottom:10px}
.svc-section .lead-p{font-size:1.08rem;color:#5d4a53;max-width:720px;margin-bottom:30px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tick{background:#fff;border-radius:16px;padding:20px 22px;border:1px solid rgba(11,26,64,.06);display:flex;gap:12px;align-items:flex-start}
.tick::before{content:"";flex:0 0 22px;height:22px;border-radius:50%;background:var(--teal);margin-top:2px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E");background-size:16px;background-repeat:no-repeat;background-position:center}
.tick h4{font-size:1.02rem;margin-bottom:3px}
.tick p{font-size:.92rem;color:#6a5660}
.tick span{font-weight:500;color:var(--ink)}
.incl{background:#fff;border-radius:14px;padding:16px 20px;border:1px solid rgba(11,26,64,.06);font-weight:500;display:flex;gap:10px;align-items:center}
.incl::before{content:"";flex:0 0 9px;height:9px;border-radius:50%;background:var(--bordo)}
.proc{position:relative;margin-top:10px}
.proc .pstep{display:flex;gap:22px;padding:20px 0;border-bottom:1px solid rgba(11,26,64,.08)}
.proc .pstep:last-child{border-bottom:none}
.proc .pnum{flex:0 0 46px;height:46px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.05rem}
.proc .pstep:nth-child(odd) .pnum{background:var(--bordo)}
.proc .pstep:nth-child(even) .pnum{background:var(--teal)}
.proc h4{font-size:1.12rem;margin-bottom:4px}
.proc p{color:#6a5660;font-size:.96rem;max-width:720px}
.result-band{background:var(--navy);color:#fff;border-radius:28px;padding:48px 40px;margin-top:14px}
.result-band .eyebrow{color:#7fd3df}
.result-band h3{color:#fff;font-size:1.5rem;max-width:740px}
.result-band p{color:#c9d2e6;margin-top:12px;max-width:740px}
.svc-other{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.svc-other a{background:#fff;border:1px solid rgba(11,26,64,.1);border-radius:999px;padding:10px 20px;font-weight:500;font-size:.92rem;transition:transform .15s,border-color .15s}
.svc-other a:hover{transform:translateY(-2px);border-color:var(--bordo);color:var(--bordo)}
.mini{display:block;margin-top:8px;font-size:.86rem;color:#8a7780}
.kpi{display:inline-block;background:var(--teal);color:#fff;font-weight:700;font-size:.8rem;padding:4px 13px;border-radius:999px;margin-top:12px}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr}.pill-art{display:none}
  .cards,.prob-grid,.steps,.team-grid,.grid-2,.grid-3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .nav-links{display:none}.menu-btn{display:block}
}
@media(max-width:560px){.steps{grid-template-columns:1fr}}
