/* ==========================================
   ROBERTO M. CONSULTING — STYLES v2.0
   Modern · Responsive · Animated
   ========================================== */

/* ─── VARIABLES ─── */
:root {
  --azul: #1E3A8A;
  --azul-light: #3B82F6;
  --azul-claro: #60A5FA;
  --naranja: #F97316;
  --naranja-light: #FB923C;
  --gris-50: #F9FAFB;
  --gris-100: #F3F4F6;
  --gris-200: #E5E7EB;
  --gris-300: #D1D5DB;
  --gris-400: #9CA3AF;
  --gris-500: #6B7280;
  --gris-600: #4B5563;
  --gris-700: #374151;
  --gris-800: #1F2937;
  --gris-900: #111827;
  --success: #10B981;
  --error: #EF4444;
  --font-heading: 'Playfair Display', serif;
  --font-body: 'Inter', -apple-system, sans-serif;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.05);
  --shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
  --shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);
  --shadow-lg: 0 10px 15px rgba(0,0,0,.07), 0 4px 6px rgba(0,0,0,.05);
  --shadow-xl: 0 20px 25px rgba(0,0,0,.07), 0 10px 10px rgba(0,0,0,.04);
  --shadow-2xl: 0 25px 50px rgba(0,0,0,.12);
  --radius-sm: .375rem;
  --radius-md: .5rem;
  --radius-lg: .75rem;
  --radius-xl: 1rem;
  --radius-2xl: 1.5rem;
  --radius-full: 9999px;
  --transition: 250ms cubic-bezier(.4,0,.2,1);
  --transition-slow: 450ms cubic-bezier(.4,0,.2,1);
  --z-fixed: 1030;
  --z-modal: 1040;
}

/* ─── RESET ─── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body { font-family:var(--font-body); color:var(--gris-800); background:#fff; overflow-x:hidden; line-height:1.6; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; transition:color var(--transition); }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
ul,ol { list-style:none; }
input,textarea,select { font-family:inherit; font-size:inherit; }

/* ─── SCROLL PROGRESS ─── */
.scroll-progress {
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg,var(--azul),var(--azul-claro),var(--naranja));
  z-index:9999; transition:width .1s linear;
}

/* ─── CONTAINER ─── */
.container { width:100%; max-width:1200px; margin:0 auto; padding:0 1.25rem; }
@media(min-width:768px){ .container{ padding:0 2rem; } }

/* ─── UTILITIES ─── */
.gradient-text {
  background:linear-gradient(135deg,var(--azul) 0%,var(--azul-claro) 100%);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}

/* ─── ANIMATIONS ─── */
@keyframes fadeInUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeInRight { from{opacity:0;transform:translateX(40px)} to{opacity:1;transform:translateX(0)} }
@keyframes fadeInLeft { from{opacity:0;transform:translateX(-40px)} to{opacity:1;transform:translateX(0)} }
@keyframes scaleIn { from{opacity:0;transform:scale(.9)} to{opacity:1;transform:scale(1)} }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.5} }
@keyframes ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes shimmer { 0%{background-position:-200% center} 100%{background-position:200% center} }
@keyframes glowPulse { 0%,100%{box-shadow:0 0 20px rgba(30,58,138,.3)} 50%{box-shadow:0 0 40px rgba(30,58,138,.6)} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes slideDown { from{opacity:0;transform:translateY(-10px)} to{opacity:1;transform:translateY(0)} }

.animate-fadeInUp { animation:fadeInUp .8s ease both; }
.animate-fadeInRight { animation:fadeInRight .8s .2s ease both; }

/* Reveal on scroll */
.reveal-card, .reveal-left, .reveal-right {
  opacity:0; transform:translateY(30px); transition:opacity .7s ease, transform .7s ease;
}
.reveal-left { transform:translateX(-40px); }
.reveal-right { transform:translateX(40px); }
.reveal-card.visible, .reveal-left.visible, .reveal-right.visible {
  opacity:1; transform:none;
}

/* ─── BUTTONS ─── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.75rem 1.5rem; font-size:.9rem; font-weight:600; border-radius:var(--radius-lg);
  transition:all var(--transition); white-space:nowrap; position:relative; overflow:hidden;
}
.btn::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);
  transform:translateX(-100%); transition:transform .5s;
}
.btn:hover::after { transform:translateX(100%); }
.btn-primary { background:var(--azul); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover { background:#1D4ED8; box-shadow:var(--shadow-md); transform:translateY(-2px); }
.btn-primary:active { transform:translateY(0); }
.btn-outline { border:2px solid var(--azul); color:var(--azul); }
.btn-outline:hover { background:var(--azul); color:#fff; transform:translateY(-2px); }
.btn-large { padding:1rem 2rem; font-size:1rem; border-radius:var(--radius-xl); }
.btn-cta {
  background:linear-gradient(135deg,var(--naranja),var(--naranja-light));
  color:#fff; padding:1.25rem 2.5rem; font-size:1.1rem;
  box-shadow:0 10px 30px rgba(249,115,22,.35);
}
.btn-cta:hover { box-shadow:0 15px 40px rgba(249,115,22,.5); transform:translateY(-3px); }
.btn-glow { animation:glowPulse 3s infinite; }

/* ─── SECTION HEADERS ─── */
.section-header { margin-bottom:3rem; }
.section-header.centered { text-align:center; max-width:800px; margin-left:auto; margin-right:auto; }
.section-badge {
  display:inline-block; padding:.35rem 1rem;
  background:rgba(30,58,138,.08); color:var(--azul);
  font-size:.8rem; font-weight:600; border-radius:var(--radius-full);
  margin-bottom:1rem; letter-spacing:.5px; text-transform:uppercase;
}
.section-title { font-family:var(--font-heading); font-size:clamp(1.8rem,4vw,2.5rem); line-height:1.2; color:var(--gris-900); margin-bottom:1rem; }
.section-subtitle { font-size:1.05rem; color:var(--gris-600); line-height:1.7; }

/* ─── HEADER ─── */
.header {
  position:fixed; top:0; left:0; right:0; z-index:var(--z-fixed);
  background:rgba(255,255,255,.92); backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(0,0,0,.06);
  transition:all var(--transition);
}
.header.scrolled { box-shadow:var(--shadow-md); background:rgba(255,255,255,.98); }
.header-content { display:flex; align-items:center; justify-content:space-between; height:76px; }
.logo {
  display:flex; align-items:center; gap:.75rem; color:var(--azul);
  font-weight:700; transition:transform var(--transition);
}
.logo:hover { transform:scale(1.03); }
.logo svg { flex-shrink:0; }
.logo-text { display:flex; flex-direction:column; line-height:1.1; }
.logo-name { font-size:1.15rem; font-family:var(--font-heading); }
.logo-tagline { font-size:.7rem; color:var(--gris-500); font-weight:400; }
.nav { display:none; gap:2rem; }
@media(min-width:1024px){ .nav{ display:flex; align-items:center; } }
.nav-link { font-size:.875rem; font-weight:500; color:var(--gris-700); padding:.5rem 0; position:relative; }
.nav-link::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--azul); transition:width var(--transition); border-radius:2px; }
.nav-link:hover, .nav-link.active { color:var(--azul); }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.header-actions { display:flex; align-items:center; gap:1rem; }
.menu-toggle { display:flex; flex-direction:column; gap:5px; width:28px; height:28px; justify-content:center; }
@media(min-width:1024px){ .menu-toggle{ display:none; } .header-actions .btn-primary{ display:flex; } }
.menu-toggle span { display:block; width:100%; height:2px; background:var(--azul); border-radius:2px; transition:all var(--transition); transform-origin:center; }
.menu-toggle.active span:nth-child(1){ transform:rotate(45deg) translate(5px,5px); }
.menu-toggle.active span:nth-child(2){ opacity:0; transform:scaleX(0); }
.menu-toggle.active span:nth-child(3){ transform:rotate(-45deg) translate(5px,-5px); }

/* Mobile Nav */
@media(max-width:1023px){
  .nav {
    position:fixed; top:76px; left:0; right:0; background:#fff;
    flex-direction:column; padding:1.5rem; gap:1rem;
    box-shadow:var(--shadow-xl); transform:translateY(-110%); opacity:0;
    pointer-events:none; transition:all .35s cubic-bezier(.4,0,.2,1);
    border-bottom:1px solid var(--gris-200);
  }
  .nav.active { transform:translateY(0); opacity:1; pointer-events:all; }
  .nav-link { font-size:1.1rem; padding:.75rem 0; border-bottom:1px solid var(--gris-100); }
  .nav-link:last-child { border-bottom:none; }
  .header-actions .btn-primary { display:none; }
}

/* ─── HERO ─── */
.hero-consulting {
  padding:120px 0 80px; position:relative; overflow:hidden;
  background:linear-gradient(135deg,#F0F4FF 0%,#EFF6FF 50%,#F9FAFB 100%);
  min-height:100vh; display:flex; align-items:center;
}
.hero-grid { display:grid; gap:3rem; align-items:center; position:relative; z-index:2; }
@media(min-width:1024px){ .hero-grid{ grid-template-columns:1.3fr 1fr; gap:4rem; } }

.hero-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.5rem 1.25rem; background:rgba(30,58,138,.08);
  color:var(--azul); font-size:.8rem; font-weight:600;
  border-radius:var(--radius-full); margin-bottom:1.5rem;
  border:1px solid rgba(30,58,138,.15);
  animation:slideDown .6s ease both;
}
.hero-title {
  font-family:var(--font-heading); font-size:clamp(2.2rem,5vw,3.5rem);
  line-height:1.1; color:var(--gris-900); margin-bottom:1.5rem;
  animation:fadeInUp .8s .1s ease both;
}
.hero-subtitle { font-size:1.15rem; color:var(--gris-600); margin-bottom:2rem; max-width:560px; animation:fadeInUp .8s .2s ease both; }
.hero-stats-inline { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem 1.5rem; margin-bottom:2rem; animation:fadeInUp .8s .3s ease both; }
@media(min-width:600px){ .hero-stats-inline{ grid-template-columns:repeat(4,1fr); } }
.stat-inline { display:flex; flex-direction:column; }
.stat-inline .stat-number { font-family:var(--font-heading); font-size:1.8rem; font-weight:700; color:var(--azul); line-height:1; }
.stat-inline .stat-label { font-size:.75rem; color:var(--gris-500); margin-top:.25rem; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:1rem; animation:fadeInUp .8s .4s ease both; }

/* Profile Card */
.profile-card {
  background:#fff; border-radius:var(--radius-2xl); padding:2.5rem;
  box-shadow:var(--shadow-2xl); position:relative;
  border:1px solid rgba(30,58,138,.06);
  transition:transform .4s ease;
}
.card-3d:hover { transform:perspective(1000px) rotateY(-3deg) rotateX(2deg) translateY(-5px); }
.profile-image { position:relative; width:180px; height:180px; margin:0 auto 1.5rem; }
.profile-image img { width:100%; height:100%; object-fit:cover; border-radius:var(--radius-full); border:4px solid #fff; box-shadow:var(--shadow-lg); }
.profile-badge { position:absolute; bottom:8px; right:8px; width:38px; height:38px; background:var(--success); border-radius:var(--radius-full); display:flex; align-items:center; justify-content:center; border:3px solid #fff; box-shadow:var(--shadow-md); }
.profile-info { text-align:center; }
.profile-info h3 { font-family:var(--font-heading); font-size:1.5rem; color:var(--gris-900); margin-bottom:.25rem; }
.profile-info p { color:var(--gris-600); margin-bottom:1rem; }
.profile-credentials { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; }
.profile-credentials span { padding:.3rem .8rem; background:var(--gris-100); border-radius:var(--radius-full); font-size:.75rem; font-weight:600; color:var(--gris-700); }

/* Floating badges */
.float-badge {
  position:absolute; background:linear-gradient(135deg,var(--azul),var(--azul-claro));
  color:#fff; padding:.5rem 1rem; border-radius:var(--radius-full);
  font-size:.75rem; font-weight:700; box-shadow:var(--shadow-md);
  white-space:nowrap;
}
.float-badge-1 { top:-12px; right:-12px; animation:float 3s ease-in-out infinite; }
.float-badge-2 { bottom:-12px; left:-12px; animation:float 3s 1.5s ease-in-out infinite; }

/* Experience badge */
.experience-badge {
  position:absolute; bottom:-16px; right:-16px;
  background:var(--azul); color:#fff; border-radius:var(--radius-xl);
  padding:1rem; text-align:center; box-shadow:var(--shadow-lg);
}
.exp-num { display:block; font-family:var(--font-heading); font-size:1.5rem; font-weight:700; }
.exp-txt { font-size:.65rem; opacity:.85; line-height:1.3; }

/* Hero decoration */
.hero-decoration { position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.circle { position:absolute; border-radius:var(--radius-full); }
.circle-1 { width:600px; height:600px; background:radial-gradient(circle,rgba(30,58,138,.06),transparent 70%); top:-300px; right:-150px; }
.circle-2 { width:400px; height:400px; background:radial-gradient(circle,rgba(249,115,22,.06),transparent 70%); bottom:-200px; left:-100px; }
.circle-3 { width:200px; height:200px; background:radial-gradient(circle,rgba(96,165,250,.1),transparent 70%); top:40%; right:15%; }

/* Hero particles */
.hero-particles { position:absolute; inset:0; }
.particle { position:absolute; width:4px; height:4px; border-radius:50%; background:var(--azul); opacity:.2; animation:float var(--dur,4s) var(--delay,0s) ease-in-out infinite; }

/* Scroll indicator */
.scroll-indicator {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  color:var(--gris-500); font-size:.75rem; z-index:2;
  animation:fadeInUp 1s 1s ease both;
}
.scroll-arrow { width:20px; height:20px; border-right:2px solid var(--gris-400); border-bottom:2px solid var(--gris-400); transform:rotate(45deg); animation:float 1.5s ease-in-out infinite; }

/* ─── TRUSTED TICKER ─── */
.trusted-ticker { background:var(--gris-900); padding:1rem 0; overflow:hidden; }
.ticker-label { text-align:center; font-size:.7rem; font-weight:600; color:var(--gris-500); letter-spacing:2px; text-transform:uppercase; margin-bottom:.75rem; }
.ticker-track { display:flex; overflow:hidden; }
.ticker-items { display:flex; gap:3rem; align-items:center; padding:0 1.5rem; white-space:nowrap; animation:ticker 25s linear infinite; }
.ticker-items span { color:rgba(255,255,255,.5); font-size:.85rem; font-weight:500; transition:color var(--transition); }
.ticker-items span:hover { color:#fff; }

/* ─── BENEFITS ─── */
.benefits { padding:5rem 0; background:#fff; }
.benefits-grid { display:grid; gap:1.5rem; }
@media(min-width:640px){ .benefits-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .benefits-grid{ grid-template-columns:repeat(4,1fr); } }

.benefit-card {
  padding:2rem; background:var(--gris-50); border-radius:var(--radius-xl);
  transition:all var(--transition-slow); position:relative; overflow:hidden;
  border:1px solid transparent;
}
.benefit-card:hover { background:#fff; box-shadow:var(--shadow-xl); transform:translateY(-6px); border-color:rgba(30,58,138,.1); }
.benefit-accent { position:absolute; bottom:0; left:0; width:0; height:3px; background:linear-gradient(90deg,var(--azul),var(--azul-claro)); transition:width var(--transition-slow); border-radius:0 3px 0 0; }
.benefit-card:hover .benefit-accent { width:100%; }
.benefit-icon { width:56px; height:56px; background:linear-gradient(135deg,var(--azul),var(--azul-claro)); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem; color:#fff; transition:transform var(--transition); }
.benefit-card:hover .benefit-icon { transform:scale(1.1) rotate(5deg); }
.benefit-card h3 { font-size:1.1rem; font-weight:700; color:var(--gris-900); margin-bottom:.75rem; }
.benefit-card p { color:var(--gris-600); font-size:.9rem; line-height:1.6; margin-bottom:1rem; }
.benefit-list { display:flex; flex-direction:column; gap:.4rem; }
.benefit-list li { font-size:.85rem; color:var(--gris-700); padding-left:1.25rem; position:relative; }
.benefit-list li::before { content:'✓'; position:absolute; left:0; color:var(--success); font-weight:700; }

/* ─── SERVICES ─── */
.services-consulting { padding:5rem 0; background:linear-gradient(180deg,#fff 0%,var(--gris-50) 100%); }
.services-grid-consulting { display:grid; gap:1.5rem; }
@media(min-width:768px){ .services-grid-consulting{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1200px){ .services-grid-consulting{ grid-template-columns:repeat(3,1fr); } }

.service-card-consulting {
  background:#fff; border-radius:var(--radius-xl); padding:2rem;
  border:2px solid var(--gris-200); transition:all var(--transition-slow);
  position:relative; overflow:hidden;
}
.service-card-consulting::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--azul),var(--azul-claro));
  transform:scaleX(0); transition:transform var(--transition-slow);
  transform-origin:left;
}
.service-card-consulting:hover { border-color:var(--azul); box-shadow:var(--shadow-xl); transform:translateY(-6px); }
.service-card-consulting:hover::before { transform:scaleX(1); }
.service-number { position:absolute; top:-10px; right:16px; font-size:5rem; font-weight:700; font-family:var(--font-heading); color:var(--gris-100); line-height:1; user-select:none; }
.service-icon-consulting { width:60px; height:60px; background:rgba(30,58,138,.08); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem; color:var(--azul); transition:all var(--transition); }
.service-card-consulting:hover .service-icon-consulting { background:var(--azul); color:#fff; transform:scale(1.1); }
.service-card-consulting h3 { font-size:1.1rem; font-weight:700; color:var(--gris-900); margin-bottom:.75rem; }
.service-card-consulting > p { color:var(--gris-600); font-size:.9rem; line-height:1.6; margin-bottom:1rem; }
.service-features-consulting { display:flex; flex-direction:column; gap:.35rem; margin-bottom:1.5rem; }
.service-features-consulting li { font-size:.85rem; color:var(--gris-700); padding-left:1.25rem; position:relative; }
.service-features-consulting li::before { content:'→'; position:absolute; left:0; color:var(--azul); }
.service-footer { display:flex; justify-content:space-between; align-items:center; padding-top:1rem; border-top:1px solid var(--gris-200); }
.service-price { display:flex; flex-direction:column; }
.price-label { font-size:.7rem; color:var(--gris-500); text-transform:uppercase; letter-spacing:.5px; }
.price-value { font-size:1.4rem; font-weight:700; color:var(--azul); font-family:var(--font-heading); }
.service-link { display:flex; align-items:center; gap:.4rem; color:var(--azul); font-weight:600; font-size:.875rem; transition:gap var(--transition); }
.service-link:hover { gap:.75rem; }

/* ─── ABOUT ─── */
.about-roberto { padding:5rem 0; background:#fff; }
.about-grid { display:grid; gap:3rem; align-items:center; }
@media(min-width:1024px){ .about-grid{ grid-template-columns:1fr 1.2fr; gap:4rem; } }
.about-image { position:relative; }
.image-wrapper { position:relative; border-radius:var(--radius-2xl); overflow:hidden; box-shadow:var(--shadow-2xl); }
.image-wrapper img { width:100%; height:auto; display:block; transition:transform var(--transition-slow); }
.image-wrapper:hover img { transform:scale(1.03); }
.image-decoration { position:absolute; top:-16px; right:-16px; width:180px; height:180px; background:linear-gradient(135deg,var(--azul),var(--azul-claro)); border-radius:var(--radius-2xl); z-index:-1; opacity:.8; }
.about-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.5rem; }
.about-stat { background:#fff; padding:1.25rem; border-radius:var(--radius-xl); text-align:center; box-shadow:var(--shadow-lg); border:1px solid var(--gris-100); }
.about-stat .stat-number { display:block; font-size:1.75rem; font-weight:700; color:var(--azul); font-family:var(--font-heading); }
.about-stat .stat-label { display:block; font-size:.75rem; color:var(--gris-600); }
.about-subtitle { font-size:1rem; color:var(--gris-600); margin-bottom:1.5rem; }
.about-quote { font-family:var(--font-heading); font-size:1.1rem; line-height:1.7; color:var(--gris-700); padding:1.5rem; background:var(--gris-50); border-left:4px solid var(--azul); border-radius:0 var(--radius-lg) var(--radius-lg) 0; margin:1.5rem 0; }
.about-text { color:var(--gris-600); line-height:1.8; margin-bottom:1rem; }
.credentials { margin:1.5rem 0; }
.credentials h4 { font-size:1rem; font-weight:700; color:var(--gris-900); margin-bottom:1rem; }
.credentials-list { display:flex; flex-direction:column; gap:.875rem; }
.credentials-list li { display:flex; align-items:flex-start; gap:.75rem; }
.credentials-list svg { flex-shrink:0; color:var(--azul); margin-top:2px; }
.credentials-list span { color:var(--gris-700); line-height:1.5; font-size:.9rem; }
.about-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.5rem; }

/* ─── METHODOLOGY ─── */
.methodology { padding:5rem 0; background:linear-gradient(180deg,var(--gris-50),#fff); }
.methodology-timeline { position:relative; max-width:900px; margin:0 auto; }
.timeline-step { display:grid; gap:1.5rem; margin-bottom:2.5rem; }
@media(min-width:768px){ .timeline-step{ grid-template-columns:80px 1fr; gap:2rem; } }
.step-number {
  width:80px; height:80px; border-radius:var(--radius-full);
  background:linear-gradient(135deg,var(--azul),var(--azul-claro));
  display:flex; align-items:center; justify-content:center;
  font-size:1.75rem; font-weight:700; color:#fff;
  font-family:var(--font-heading); box-shadow:var(--shadow-lg); flex-shrink:0;
  transition:transform var(--transition);
}
.timeline-step:hover .step-number { transform:scale(1.1) rotate(5deg); }
.step-content { background:#fff; padding:2rem; border-radius:var(--radius-xl); box-shadow:var(--shadow-md); transition:all var(--transition-slow); border:1px solid var(--gris-100); }
.step-content:hover { box-shadow:var(--shadow-xl); transform:translateX(8px); border-color:rgba(30,58,138,.1); }
.step-content h3 { font-size:1.25rem; font-weight:700; color:var(--gris-900); margin-bottom:.35rem; }
.step-duration { font-size:.8rem; color:var(--azul); font-weight:600; margin-bottom:.75rem; display:block; }
.step-content > p { color:var(--gris-600); line-height:1.6; margin-bottom:1rem; font-size:.9rem; }
.step-features { display:grid; grid-template-columns:repeat(2,1fr); gap:.5rem; }
.step-features li { font-size:.825rem; color:var(--gris-700); padding-left:1.25rem; position:relative; }
.step-features li::before { content:'✓'; position:absolute; left:0; color:var(--success); font-weight:700; }
.timeline-connector { display:none; }
@media(min-width:768px){
  .timeline-connector { display:block; width:4px; height:50px; background:linear-gradient(180deg,var(--azul-claro),var(--azul)); margin:-40px 0 -40px 38px; border-radius:2px; position:relative; z-index:1; }
}
.methodology-cta { text-align:center; margin-top:4rem; padding:3rem; background:linear-gradient(135deg,var(--azul),var(--azul-claro)); border-radius:var(--radius-2xl); color:#fff; }
.methodology-cta h3 { font-size:1.75rem; font-family:var(--font-heading); margin-bottom:2rem; }
.methodology-benefits { display:grid; gap:1rem; max-width:600px; margin:0 auto 2rem; text-align:left; }
@media(min-width:768px){ .methodology-benefits{ grid-template-columns:repeat(2,1fr); } }
.method-benefit { display:flex; align-items:center; gap:.75rem; }
.method-benefit svg { flex-shrink:0; color:rgba(255,255,255,.9); }

/* ─── RESULTS ─── */
.results { padding:5rem 0; background:#fff; }
.results-grid { display:grid; gap:1.5rem; margin-bottom:3rem; }
@media(min-width:768px){ .results-grid{ grid-template-columns:repeat(2,1fr); } }
.result-card {
  background:#fff; border:2px solid var(--gris-200); border-radius:var(--radius-xl);
  padding:2rem; transition:all var(--transition-slow);
}
.result-card:hover { border-color:var(--azul); box-shadow:var(--shadow-xl); transform:translateY(-6px); }
.result-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; }
.result-industry { padding:.35rem 1rem; background:rgba(30,58,138,.08); color:var(--azul); font-size:.8rem; font-weight:600; border-radius:var(--radius-full); }
.result-duration { font-size:.8rem; color:var(--gris-500); font-weight:500; }
.result-card h3 { font-size:1.25rem; font-weight:700; color:var(--gris-900); margin-bottom:.75rem; }
.result-challenge { color:var(--gris-600); font-size:.9rem; margin-bottom:1.25rem; line-height:1.6; }
.result-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; padding:1.25rem; background:var(--gris-50); border-radius:var(--radius-lg); margin-bottom:1.25rem; }
.metric { text-align:center; }
.metric-value { display:block; font-size:1.6rem; font-weight:700; color:var(--success); font-family:var(--font-heading); }
.metric-label { display:block; font-size:.75rem; color:var(--gris-600); margin-top:.2rem; }
.result-card blockquote { font-style:italic; color:var(--gris-700); line-height:1.6; font-size:.9rem; margin-bottom:.5rem; border-left:3px solid var(--azul); padding-left:.875rem; }
.result-author { font-size:.8rem; color:var(--gris-500); font-weight:500; }

/* Global metrics */
.global-metrics { background:linear-gradient(135deg,var(--azul),var(--azul-claro)); padding:3rem; border-radius:var(--radius-2xl); color:#fff; text-align:center; }
.global-metrics h3 { font-size:1.75rem; font-family:var(--font-heading); margin-bottom:2rem; }
.global-stats { display:grid; gap:1.5rem; }
@media(min-width:640px){ .global-stats{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1024px){ .global-stats{ grid-template-columns:repeat(6,1fr); } }
.global-stat { display:flex; flex-direction:column; align-items:center; }
.global-number { font-size:2rem; font-weight:700; font-family:var(--font-heading); }
.global-label { font-size:.75rem; opacity:.85; margin-top:.35rem; line-height:1.3; }

/* ─── TESTIMONIALS ─── */
.testimonials-consulting { padding:5rem 0; background:var(--gris-50); }
.testimonials-carousel-consulting { position:relative; max-width:900px; margin:0 auto; overflow:hidden; }
.testimonials-track-consulting { display:flex; transition:transform .5s cubic-bezier(.4,0,.2,1); }
.testimonial-card-consulting {
  flex:0 0 100%; background:#fff; padding:2.5rem;
  border-radius:var(--radius-2xl); box-shadow:var(--shadow-lg);
  border:1px solid var(--gris-100);
}
.testimonial-rating-consulting { font-size:1.25rem; color:#F59E0B; margin-bottom:1.25rem; letter-spacing:.1rem; }
.testimonial-text-consulting { font-size:1.05rem; line-height:1.8; color:var(--gris-700); margin-bottom:1.5rem; font-style:italic; }
.testimonial-author-consulting { display:flex; align-items:center; gap:1rem; }
.testimonial-author-consulting img { width:60px; height:60px; border-radius:var(--radius-full); object-fit:cover; border:3px solid var(--gris-100); }
.testimonial-author-consulting h4 { font-size:1rem; font-weight:700; color:var(--gris-900); }
.testimonial-author-consulting p { font-size:.875rem; color:var(--gris-600); }
.company-size { display:block; font-size:.75rem; color:var(--gris-500); margin-top:.15rem; }
.carousel-btn-consulting {
  position:absolute; top:50%; transform:translateY(-50%);
  width:48px; height:48px; background:#fff; border-radius:var(--radius-full);
  box-shadow:var(--shadow-md); display:flex; align-items:center; justify-content:center;
  color:var(--azul); z-index:10; transition:all var(--transition);
}
.carousel-btn-consulting:hover { box-shadow:var(--shadow-lg); transform:translateY(-50%) scale(1.1); }
.carousel-btn-consulting.prev { left:-24px; }
.carousel-btn-consulting.next { right:-24px; }
@media(max-width:768px){
  .carousel-btn-consulting.prev { left:4px; }
  .carousel-btn-consulting.next { right:4px; }
}
.carousel-dots-consulting { display:flex; justify-content:center; gap:.5rem; margin-top:1.5rem; }
.carousel-dots-consulting .dot { width:10px; height:10px; background:var(--gris-300); border-radius:var(--radius-full); cursor:pointer; transition:all var(--transition); }
.carousel-dots-consulting .dot.active { background:var(--azul); width:28px; }

/* ─── CALCULATOR ─── */
.calculator-section { padding:5rem 0; background:#fff; }
.calculator-wrapper { display:grid; gap:3rem; }
@media(min-width:1024px){ .calculator-wrapper{ grid-template-columns:1fr 1.2fr; gap:4rem; align-items:start; } }
.calculator-info .section-badge { margin-bottom:1rem; }
.calculator-info h2 { font-family:var(--font-heading); font-size:clamp(1.6rem,3vw,2.2rem); color:var(--gris-900); margin-bottom:1rem; line-height:1.2; }
.calculator-info > p { color:var(--gris-600); line-height:1.7; margin-bottom:1.5rem; }
.calculator-assumptions { background:var(--gris-50); padding:1.25rem 1.5rem; border-radius:var(--radius-lg); }
.calculator-assumptions h4 { font-weight:700; color:var(--gris-900); margin-bottom:.75rem; font-size:.9rem; }
.calculator-assumptions ul { display:flex; flex-direction:column; gap:.4rem; }
.calculator-assumptions li { color:var(--gris-700); padding-left:1.25rem; position:relative; font-size:.875rem; }
.calculator-assumptions li::before { content:'✓'; position:absolute; left:0; color:var(--success); font-weight:700; }
.calculator-tool { background:var(--gris-50); padding:2rem; border-radius:var(--radius-2xl); border:2px solid var(--gris-200); }
.calculator-tool h3 { font-size:1.25rem; font-weight:700; color:var(--gris-900); margin-bottom:1.5rem; }
.calc-field { margin-bottom:1.25rem; }
.calc-field label { display:block; font-weight:600; color:var(--gris-700); margin-bottom:.5rem; font-size:.9rem; }
.calc-field input { width:100%; padding:.875rem 1rem; border:2px solid var(--gris-300); border-radius:var(--radius-lg); font-size:1rem; background:#fff; transition:border-color var(--transition); }
.calc-field input:focus { outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(30,58,138,.1); }
.calculator-results { margin-top:1.5rem; padding:1.5rem; background:#fff; border-radius:var(--radius-xl); animation:scaleIn .4s ease; }
.calculator-results h4 { font-size:1.1rem; font-weight:700; color:var(--gris-900); margin-bottom:1rem; }
.calc-result { display:flex; justify-content:space-between; align-items:center; padding:.875rem 0; border-bottom:1px solid var(--gris-100); }
.calc-result.highlight { background:linear-gradient(135deg,rgba(30,58,138,.05),rgba(96,165,250,.05)); padding:.875rem 1rem; border-radius:var(--radius-lg); border:none; margin-top:.75rem; }
.calc-label { font-weight:600; color:var(--gris-700); font-size:.9rem; }
.calc-value { font-size:1.35rem; font-weight:700; color:var(--azul); font-family:var(--font-heading); }
.calc-value.success { color:var(--success); }
.calc-disclaimer { font-size:.775rem; color:var(--gris-500); font-style:italic; margin-top:.875rem; line-height:1.5; }

/* ─── BLOG ─── */
.blog-section { padding:5rem 0; background:var(--gris-50); }
.blog-grid { display:grid; gap:1.5rem; margin-bottom:3rem; }
@media(min-width:768px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .blog-grid{ grid-template-columns:repeat(3,1fr); } }
.blog-card-consulting { background:#fff; border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-md); transition:all var(--transition-slow); }
.blog-card-consulting:hover { box-shadow:var(--shadow-xl); transform:translateY(-6px); }
.blog-image-consulting { position:relative; height:220px; overflow:hidden; }
.blog-image-consulting img { width:100%; height:100%; object-fit:cover; transition:transform var(--transition-slow); }
.blog-card-consulting:hover .blog-image-consulting img { transform:scale(1.07); }
.blog-category-consulting { position:absolute; top:1rem; left:1rem; padding:.3rem .875rem; background:var(--azul); color:#fff; font-size:.75rem; font-weight:600; border-radius:var(--radius-full); }
.blog-content-consulting { padding:1.5rem; }
.blog-date-consulting { display:block; font-size:.8rem; color:var(--gris-500); margin-bottom:.75rem; }
.blog-content-consulting h3 { font-size:1.05rem; font-weight:700; color:var(--gris-900); margin-bottom:.75rem; line-height:1.4; }
.blog-content-consulting h3 a:hover { color:var(--azul); }
.blog-content-consulting > p { color:var(--gris-600); font-size:.875rem; line-height:1.6; margin-bottom:1rem; }
.blog-meta { display:flex; justify-content:space-between; align-items:center; }
.read-time { font-size:.8rem; color:var(--gris-500); }
.blog-link-consulting { display:flex; align-items:center; gap:.35rem; color:var(--azul); font-weight:600; font-size:.875rem; transition:gap var(--transition); }
.blog-link-consulting:hover { gap:.75rem; }

/* Newsletter */
.newsletter-section { background:linear-gradient(135deg,var(--azul),var(--azul-claro)); padding:3rem; border-radius:var(--radius-2xl); color:#fff; }
.newsletter-content { display:flex; gap:1.5rem; align-items:flex-start; margin-bottom:1.5rem; }
.newsletter-content svg { flex-shrink:0; }
.newsletter-content h3 { font-size:1.35rem; font-family:var(--font-heading); margin-bottom:.35rem; }
.newsletter-content p { font-size:.9rem; opacity:.9; line-height:1.6; }
.newsletter-form { display:flex; gap:.875rem; flex-wrap:wrap; }
@media(min-width:768px){ .newsletter-form{ flex-wrap:nowrap; } }
.newsletter-form input { flex:1; min-width:220px; padding:1rem; border:2px solid rgba(255,255,255,.3); border-radius:var(--radius-lg); font-size:.95rem; background:rgba(255,255,255,.15); color:#fff; }
.newsletter-form input::placeholder { color:rgba(255,255,255,.65); }
.newsletter-form input:focus { outline:none; border-color:#fff; background:rgba(255,255,255,.2); }

/* ─── CTA ─── */
.cta-consulting { padding:5rem 0; background:linear-gradient(135deg,var(--gris-900),var(--gris-800)); color:#fff; }
.cta-content-consulting { max-width:800px; margin:0 auto; text-align:center; }
.cta-content-consulting h2 { font-family:var(--font-heading); font-size:clamp(1.8rem,4vw,2.8rem); margin-bottom:1rem; }
.cta-content-consulting > p { font-size:1.1rem; opacity:.85; margin-bottom:2.5rem; }
.cta-benefits { display:grid; gap:1rem; max-width:600px; margin:0 auto 2.5rem; text-align:left; }
@media(min-width:768px){ .cta-benefits{ grid-template-columns:repeat(2,1fr); } }
.cta-benefit { display:flex; align-items:flex-start; gap:.75rem; }
.cta-benefit svg { flex-shrink:0; color:var(--success); margin-top:2px; }
.cta-contact-alt { display:flex; justify-content:center; align-items:center; gap:1.5rem; flex-wrap:wrap; margin-top:1.5rem; font-size:.875rem; opacity:.75; }
.cta-contact-alt a:hover { opacity:1; text-decoration:underline; }

/* ─── CONTACT ─── */
.contact-consulting { padding:5rem 0; background:#fff; }
.contact-wrapper-consulting { display:grid; gap:3rem; margin-bottom:3rem; }
@media(min-width:1024px){ .contact-wrapper-consulting{ grid-template-columns:1fr 1.5fr; gap:4rem; } }
.contact-info-consulting h2 { font-family:var(--font-heading); font-size:clamp(1.75rem,3vw,2.25rem); color:var(--gris-900); margin-bottom:.75rem; }
.contact-info-consulting > p { color:var(--gris-600); margin-bottom:2rem; }
.contact-details-consulting { display:flex; flex-direction:column; gap:1.5rem; margin-bottom:2rem; }
.contact-item-consulting { display:flex; gap:1rem; align-items:flex-start; }
.contact-icon-consulting { width:48px; height:48px; background:rgba(30,58,138,.08); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; color:var(--azul); flex-shrink:0; }
.contact-item-consulting h4 { font-weight:700; color:var(--gris-900); margin-bottom:.25rem; font-size:.95rem; }
.contact-item-consulting p { color:var(--gris-600); font-size:.875rem; line-height:1.6; }
.social-links-consulting { display:flex; gap:.875rem; }
.social-links-consulting a { width:46px; height:46px; background:var(--gris-100); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; color:var(--azul); transition:all var(--transition); }
.social-links-consulting a:hover { background:var(--azul); color:#fff; transform:translateY(-3px); box-shadow:var(--shadow-md); }

/* Form */
.contact-form-consulting { background:var(--gris-50); padding:2rem; border-radius:var(--radius-2xl); border:2px solid var(--gris-200); }
.form-group { margin-bottom:1.25rem; }
.form-group label { display:block; font-weight:600; color:var(--gris-700); margin-bottom:.5rem; font-size:.9rem; }
.form-group input,.form-group select,.form-group textarea {
  width:100%; padding:.875rem 1rem; border:2px solid var(--gris-300);
  border-radius:var(--radius-lg); font-size:.95rem; background:#fff;
  transition:all var(--transition); color:var(--gris-800);
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { outline:none; border-color:var(--azul); box-shadow:0 0 0 3px rgba(30,58,138,.1); }
.form-group input.error,.form-group select.error,.form-group textarea.error { border-color:var(--error); }
.form-group textarea { resize:vertical; min-height:110px; }
.form-row { display:grid; gap:1rem; }
@media(min-width:640px){ .form-row{ grid-template-columns:repeat(2,1fr); } }
.form-disclaimer { font-size:.8rem; color:var(--gris-500); text-align:center; margin-top:1rem; line-height:1.5; }
.map-container-consulting { border-radius:var(--radius-2xl); overflow:hidden; box-shadow:var(--shadow-lg); }

/* ─── FOOTER ─── */
.footer-consulting { background:var(--gris-900); color:#fff; padding:4rem 0 0; }
.footer-content-consulting { display:grid; gap:2rem; margin-bottom:3rem; }
@media(min-width:640px){ .footer-content-consulting{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px){ .footer-content-consulting{ grid-template-columns:1.5fr 1fr 1fr 1fr; } }
.footer-logo { display:flex; align-items:center; gap:.75rem; color:#fff; margin-bottom:1rem; }
.footer-column p { opacity:.7; line-height:1.7; font-size:.875rem; }
.footer-column h4 { font-size:1rem; font-weight:700; margin-bottom:1rem; }
.footer-column ul { display:flex; flex-direction:column; gap:.625rem; }
.footer-column a { opacity:.7; font-size:.875rem; transition:opacity var(--transition); }
.footer-column a:hover { opacity:1; color:var(--azul-claro); }
.footer-contact-consulting li { display:flex; align-items:flex-start; gap:.75rem; font-size:.875rem; opacity:.7; margin-bottom:.75rem; line-height:1.5; }
.footer-contact-consulting svg { flex-shrink:0; margin-top:2px; }
.footer-bottom-consulting { display:flex; justify-content:space-between; align-items:center; padding:1.5rem 0; border-top:1px solid rgba(255,255,255,.08); flex-wrap:wrap; gap:1rem; }
.footer-bottom-consulting p { opacity:.5; font-size:.8rem; }
.footer-links-consulting { display:flex; gap:1.5rem; }
.footer-links-consulting a { opacity:.5; font-size:.8rem; transition:opacity var(--transition); }
.footer-links-consulting a:hover { opacity:1; }

/* ─── CHATBOT ─── */
.chatbot-trigger {
  position:fixed; bottom:1.5rem; right:1.5rem; width:60px; height:60px;
  background:linear-gradient(135deg,var(--azul),var(--azul-claro));
  border-radius:var(--radius-full); box-shadow:0 8px 24px rgba(30,58,138,.4);
  display:flex; align-items:center; justify-content:center; color:#fff;
  z-index:var(--z-fixed); transition:all var(--transition);
}
.chatbot-trigger:hover { transform:scale(1.1); box-shadow:0 12px 32px rgba(30,58,138,.55); }
.chatbot-trigger .chatbot-close { display:none; }
.chatbot-trigger.active .chatbot-icon { display:none; }
.chatbot-trigger.active .chatbot-close { display:block; }
.chatbot-notification {
  position:absolute; top:-4px; right:-4px; width:20px; height:20px;
  background:var(--naranja); border-radius:var(--radius-full);
  font-size:.7rem; font-weight:700; display:flex; align-items:center; justify-content:center;
  animation:pulse 2s infinite;
}
.chatbot-window {
  position:fixed; bottom:90px; right:1.5rem; width:360px; max-width:calc(100vw - 2rem);
  height:540px; max-height:calc(100vh - 120px); background:#fff;
  border-radius:var(--radius-2xl); box-shadow:0 20px 60px rgba(0,0,0,.25);
  z-index:var(--z-modal); display:none; flex-direction:column; overflow:hidden;
  animation:scaleIn .3s ease; transform-origin:bottom right;
}
.chatbot-window.active { display:flex; }
.chatbot-header { background:linear-gradient(135deg,var(--azul),var(--azul-claro)); color:#fff; padding:1rem; display:flex; justify-content:space-between; align-items:center; flex-shrink:0; }
.chatbot-profile { display:flex; align-items:center; gap:.75rem; }
.chatbot-profile img { width:38px; height:38px; border-radius:var(--radius-full); border:2px solid rgba(255,255,255,.5); }
.chatbot-profile h4 { font-size:.9rem; font-weight:600; }
.chatbot-status { display:flex; align-items:center; gap:.4rem; font-size:.75rem; opacity:.85; }
.status-dot { width:8px; height:8px; background:var(--success); border-radius:var(--radius-full); animation:pulse 2s infinite; }
.chatbot-minimize { width:30px; height:30px; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.8); transition:color var(--transition); }
.chatbot-minimize:hover { color:#fff; }
.chatbot-messages { flex:1; padding:1rem; overflow-y:auto; background:var(--gris-50); display:flex; flex-direction:column; gap:.875rem; }
.chatbot-messages::-webkit-scrollbar { width:4px; }
.chatbot-messages::-webkit-scrollbar-thumb { background:var(--gris-300); border-radius:2px; }
.chatbot-message { display:flex; flex-direction:column; }
.chatbot-message.bot { align-items:flex-start; }
.chatbot-message.user { align-items:flex-end; }
.message-content { max-width:82%; padding:.75rem 1rem; border-radius:var(--radius-lg); font-size:.875rem; line-height:1.5; animation:fadeInUp .3s ease; }
.chatbot-message.bot .message-content { background:#fff; border-bottom-left-radius:.25rem; box-shadow:var(--shadow-sm); }
.chatbot-message.user .message-content { background:var(--azul); color:#fff; border-bottom-right-radius:.25rem; }
.message-time { font-size:.7rem; color:var(--gris-400); margin-top:.25rem; }
.chatbot-quick-replies { padding:.875rem; background:#fff; border-top:1px solid var(--gris-100); display:flex; flex-wrap:wrap; gap:.5rem; flex-shrink:0; }
.quick-reply { padding:.4rem 1rem; background:var(--gris-100); border-radius:var(--radius-full); font-size:.8rem; color:var(--gris-700); transition:all var(--transition); }
.quick-reply:hover { background:var(--azul); color:#fff; }
.chatbot-input { padding:.875rem; background:#fff; border-top:1px solid var(--gris-100); display:flex; gap:.5rem; flex-shrink:0; }
.chatbot-input input { flex:1; padding:.625rem .875rem; border:2px solid var(--gris-200); border-radius:var(--radius-lg); font-size:.875rem; }
.chatbot-input input:focus { outline:none; border-color:var(--azul); }
.chatbot-input button { width:38px; height:38px; background:var(--azul); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; color:#fff; transition:background var(--transition); flex-shrink:0; }
.chatbot-input button:hover { background:#1D4ED8; }

/* ─── BACK TO TOP ─── */
.back-to-top {
  position:fixed; bottom:6rem; right:1.5rem; width:42px; height:42px;
  background:#fff; border-radius:var(--radius-full); box-shadow:var(--shadow-lg);
  display:flex; align-items:center; justify-content:center; color:var(--azul);
  z-index:var(--z-fixed); opacity:0; pointer-events:none;
  transition:all var(--transition);
}
.back-to-top.visible { opacity:1; pointer-events:all; }
.back-to-top:hover { background:var(--azul); color:#fff; transform:translateY(-3px); }

/* ─── RESPONSIVE FINAL ─── */
@media(max-width:639px){
  .hero-ctas { flex-direction:column; }
  .hero-ctas .btn { width:100%; justify-content:center; }
  .newsletter-form { flex-direction:column; }
  .newsletter-form input { min-width:0; }
  .step-features { grid-template-columns:1fr; }
  .result-metrics { gap:.5rem; }
  .metric-value { font-size:1.3rem; }
  .float-badge { display:none; }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}

@media print {
  .header,.chatbot-trigger,.chatbot-window,.back-to-top,.trusted-ticker { display:none!important; }
}