/* ============================================================
   EVOLUCIONA CONSULTING — stylesheet
   Fuentes: Fraunces (display) + Manrope (body)
   Paleta: salvia / crema / terracota — tonos de bienestar
   ============================================================ */

:root{
  --c-bg: #FAF6ED;
  --c-bg-alt: #F1E9D6;
  --c-surface: #FFFFFF;
  --c-surface-2: #FBF8F1;
  --c-text: #26301F;
  --c-text-soft: #5C6552;
  --c-primary: #6B8F5E;
  --c-primary-dark: #4A6B3F;
  --c-primary-light: #A8C79A;
  --c-accent: #DD8449;
  --c-accent-2: #E9B65C;
  --c-border: rgba(38,48,31,.10);
  --c-shadow: rgba(74,90,56,.16);

  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-body: "Manrope", -apple-system, sans-serif;

  --container: 1180px;
  --radius-lg: 28px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --ease: cubic-bezier(.16,.84,.32,1);
  --ease-soft: cubic-bezier(.4,0,.2,1);
  --dur: .9s;

  color-scheme: light;
}

html[data-theme="dark"]{
  --c-bg: #161F16;
  --c-bg-alt: #1D291D;
  --c-surface: #202C1F;
  --c-surface-2: #253321;
  --c-text: #F1EADC;
  --c-text-soft: #B7C0A9;
  --c-primary: #8FBF7C;
  --c-primary-dark: #6B9A5B;
  --c-primary-light: #C9E2BC;
  --c-accent: #EFA268;
  --c-accent-2: #F2C87C;
  --c-border: rgba(241,234,220,.10);
  --c-shadow: rgba(0,0,0,.35);
  color-scheme: dark;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
  transition: background .5s var(--ease-soft), color .5s var(--ease-soft);
}
body.no-scroll{ overflow: hidden; }

h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 500;
  line-height: 1.12;
  margin: 0;
  color: var(--c-text);
  letter-spacing: -.01em;
}
h2 em, h1 em{ font-style: italic; color: var(--c-primary-dark); }
html[data-theme="dark"] h2 em, html[data-theme="dark"] h1 em{ color: var(--c-primary-light); }
p{ margin: 0; }
a{ color: inherit; text-decoration: none; }
ul{ list-style: none; margin: 0; padding: 0; }
button{ font-family: inherit; cursor: pointer; }
input, textarea, select{ font-family: inherit; font-size: .95rem; }
svg{ display:block; fill:none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

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

::selection{ background: var(--c-primary); color: var(--c-bg); }

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ============================== PRELOADER ============================== */
.preloader{
  position: fixed; inset: 0; z-index: 999;
  background: var(--c-bg);
  display: flex; align-items: center; justify-content: center;
  transition: opacity .7s var(--ease-soft), visibility .7s;
}
.preloader.hide{ opacity: 0; visibility: hidden; pointer-events: none; }
.preloader__inner{ display:flex; flex-direction:column; align-items:center; gap: 18px; }
.preloader__mark{ color: var(--c-primary); overflow: visible; }
.preloader__ring{ fill:none; stroke: var(--c-border); stroke-width: 2; }
.preloader__leaf{ fill: var(--c-primary); stroke:none; transform-origin: 60px 98px; animation: leafGrow 1.6s var(--ease) infinite alternate; }
.preloader__vein{ stroke: var(--c-bg); stroke-width: 1.6; }
@keyframes leafGrow{ from{ transform: scaleY(.35); opacity:.5 } to{ transform: scaleY(1); opacity: 1 } }
.preloader__word{ font-family: var(--font-display); font-size: 1.15rem; letter-spacing: .02em; color: var(--c-text); }
.preloader__word span{ display:block; font-size: .62rem; letter-spacing: .32em; text-transform: uppercase; color: var(--c-text-soft); text-align: center; margin-top: 2px; }
.preloader__bar{ width: 160px; height: 3px; border-radius: 4px; background: var(--c-border); overflow: hidden; }
.preloader__bar span{ display:block; height:100%; width:0%; background: linear-gradient(90deg, var(--c-primary), var(--c-accent-2)); transition: width .25s var(--ease-soft); }

/* ============================== CURSOR ============================== */
.cursor-dot, .cursor-ring{
  position: fixed; top:0; left:0; pointer-events:none; z-index: 998;
  border-radius: 50%; transform: translate(-50%,-50%);
  display: none;
}
.cursor-dot{ width:6px; height:6px; background: var(--c-accent); }
.cursor-ring{ width:34px; height:34px; border: 1.4px solid var(--c-primary); transition: width .25s var(--ease-soft), height .25s var(--ease-soft), border-color .25s, opacity .25s; opacity:.6; }
.cursor-ring.hover{ width: 54px; height: 54px; opacity: 1; border-color: var(--c-accent); }
@media (hover:hover) and (pointer:fine){
  .cursor-dot, .cursor-ring{ display:block; }
}

/* ============================== PARTICLES ============================== */
.particles-canvas{
  position: fixed; inset:0; width:100%; height:100%;
  pointer-events:none; z-index: 0; opacity: .55;
}

/* ============================== BUTTONS / CHIPS ============================== */
.btn{
  display: inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 15px 28px; border-radius: 100px; border: none;
  font-weight: 600; font-size: .92rem; letter-spacing: .01em;
  cursor: pointer; transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .35s;
  white-space: nowrap;
}
.btn svg{ width:16px; height:16px; transition: transform .3s var(--ease); }
.btn--primary{ background: var(--c-primary-dark); color: #FBF8F1; box-shadow: 0 10px 24px -8px var(--c-shadow); }
html[data-theme="dark"] .btn--primary{ color: #12180F; }
.btn--primary:hover{ transform: translateY(-3px); box-shadow: 0 16px 30px -8px var(--c-shadow); }
.btn--ghost{ background: transparent; color: var(--c-text); border: 1.4px solid var(--c-border); }
.btn--ghost:hover{ border-color: var(--c-primary); color: var(--c-primary-dark); transform: translateY(-3px); }
html[data-theme="dark"] .btn--ghost:hover{ color: var(--c-primary-light); }
.btn--ghost:hover svg{ transform: translateX(3px); }
.btn--small{ padding: 10px 20px; font-size: .82rem; }
.btn--full{ width: 100%; }

.chip{
  display: inline-flex; align-items:center; gap:9px;
  padding: 8px 16px; border-radius: 100px;
  background: var(--c-surface); border: 1px solid var(--c-border);
  font-size: .78rem; font-weight: 600; color: var(--c-text-soft);
  box-shadow: 0 6px 18px -10px var(--c-shadow);
}
.chip__dot{ width:7px; height:7px; border-radius:50%; background: var(--c-accent); position:relative; }
.chip--pulse .chip__dot::after{
  content:""; position:absolute; inset:-4px; border-radius:50%; background: var(--c-accent);
  animation: pulseDot 1.8s ease-out infinite;
}
@keyframes pulseDot{ 0%{ transform: scale(.4); opacity:.8 } 100%{ transform: scale(2.4); opacity:0 } }

/* ============================== HEADER ============================== */
.site-header{
  position: fixed; top:0; left:0; right:0; z-index: 200;
  padding: 22px 0; transition: padding .4s var(--ease-soft), background .4s, box-shadow .4s, border-color .4s;
  border-bottom: 1px solid transparent;
}
.site-header.scrolled{
  padding: 12px 0;
  background: color-mix(in srgb, var(--c-bg) 82%, transparent);
  backdrop-filter: blur(14px);
  border-color: var(--c-border);
  box-shadow: 0 10px 30px -18px var(--c-shadow);
}
.header-inner{
  max-width: var(--container); margin: 0 auto; padding: 0 28px;
  display:flex; align-items:center; justify-content:space-between; gap: 24px;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand__circle{ fill: var(--c-surface); stroke: var(--c-primary); stroke-width: 3; }
.brand__leaf{ fill: var(--c-primary); stroke:none; }
.brand__vein{ stroke: var(--c-surface); stroke-width:1.6; }
.brand__text{ font-family: var(--font-display); font-size: 1.15rem; color: var(--c-text); }
.brand__text em{ display:block; font-style: normal; font-size: .58rem; letter-spacing: .26em; text-transform: uppercase; color: var(--c-primary-dark); margin-top: -2px; }
html[data-theme="dark"] .brand__text em{ color: var(--c-primary-light); }

.main-nav{ display:flex; align-items:center; gap: 30px; }
.main-nav__list{ display:flex; align-items:center; gap: 30px; }
.nav-link{
  position: relative; font-size: .9rem; font-weight: 600; color: var(--c-text-soft);
  padding: 4px 0; transition: color .3s;
}
.nav-link::after{
  content:""; position:absolute; left:0; right:100%; bottom:-4px; height:2px;
  background: var(--c-accent); transition: right .35s var(--ease);
}
.nav-link:hover, .nav-link.active{ color: var(--c-text); }
.nav-link:hover::after, .nav-link.active::after{ right: 0; }

.header-actions{ display:flex; align-items:center; gap:14px; }
.theme-toggle{
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-border);
  background: var(--c-surface); color: var(--c-text); display:flex; align-items:center; justify-content:center;
  transition: transform .4s var(--ease), border-color .3s;
}
.theme-toggle:hover{ transform: rotate(24deg); border-color: var(--c-primary); }
.icon-moon{ display:none; }
html[data-theme="dark"] .icon-sun{ display:none; }
html[data-theme="dark"] .icon-moon{ display:block; }

.hamburger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-border); background: var(--c-surface);
}
.hamburger span{ width: 16px; height: 2px; background: var(--c-text); margin: 0 auto; transition: transform .35s var(--ease), opacity .3s; }
.hamburger.active span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2){ opacity:0; }
.hamburger.active span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* mobile nav overlay */
.mobile-nav{
  position: fixed; inset:0; z-index: 190; background: var(--c-bg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap: 40px;
  transform: translateY(-100%); transition: transform .55s var(--ease);
  overflow: hidden;
}
.mobile-nav.open{ transform: translateY(0); }
.mobile-nav__deco{ position:absolute; width: 480px; height: 480px; border-radius: 50%; background: radial-gradient(circle, var(--c-primary-light) 0%, transparent 70%); opacity:.35; top:-160px; right:-160px; }
.mobile-nav__list{ display:flex; flex-direction:column; align-items:center; gap: 22px; }
.mobile-nav__list li{ opacity:0; transform: translateY(30px); transition: opacity .5s var(--ease) calc(var(--i) * .07s), transform .5s var(--ease) calc(var(--i) * .07s); }
.mobile-nav.open .mobile-nav__list li{ opacity:1; transform: translateY(0); }
.mobile-link{ font-family: var(--font-display); font-size: 2rem; font-style: italic; color: var(--c-text); }
.mobile-nav__cta{ position:relative; }

/* ============================== HERO ============================== */
.hero{
  position: relative; min-height: 100vh; display:flex; align-items:center;
  padding: 140px 0 80px; overflow: hidden;
}
.hero__video-wrap{ position:absolute; inset:0; z-index:0; overflow:hidden; background: var(--c-bg-alt); }
.hero__video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
  opacity:0; transition: opacity 1.2s var(--ease-soft);
}
.hero__video.is-ready{ opacity:1; }
.hero__video-wrap.no-motion .hero__video{ display:none; }
.hero__video-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--c-bg) 78%, transparent) 0%, color-mix(in srgb, var(--c-bg) 40%, transparent) 45%, var(--c-bg) 100%),
    linear-gradient(100deg, color-mix(in srgb, var(--c-primary-dark) 34%, transparent) 0%, transparent 55%);
}
.hero__blobs{ position:absolute; inset:0; z-index:1; mix-blend-mode: soft-light; }
.blob{ position:absolute; border-radius: 50%; filter: blur(60px); opacity:.55; will-change: transform; }
.blob--1{ width: 480px; height: 480px; background: var(--c-primary-light); top: -140px; left: -120px; animation: floatBlob 14s ease-in-out infinite; }
.blob--2{ width: 380px; height: 380px; background: var(--c-accent-2); bottom: -140px; right: -100px; opacity:.4; animation: floatBlob 18s ease-in-out infinite reverse; }
.blob--3{ width: 260px; height: 260px; background: var(--c-accent); top: 40%; right: 10%; opacity:.3; animation: floatBlob 11s ease-in-out infinite; }
@keyframes floatBlob{ 0%,100%{ transform: translate(0,0) scale(1);} 50%{ transform: translate(30px,-40px) scale(1.08);} }

.hero__orbit{ position:absolute; right: -60px; top: 50%; transform: translateY(-50%); width: 560px; opacity:.9; z-index:1; }
.orbit-svg{ width:100%; height:auto; color: var(--c-primary); }
.orbit-ring{ fill:none; stroke: var(--c-border); stroke-width: 1.2; }
.orbit-ring--2{ stroke-dasharray: 4 8; }
.orbit-spin{ transform-origin: 260px 260px; animation: spin 26s linear infinite; }
.orbit-spin--rev{ animation-duration: 34s; animation-direction: reverse; }
.orbit-dot{ fill: var(--c-accent); stroke:none; }
.orbit-dot--alt{ fill: var(--c-primary); }
@keyframes spin{ to{ transform: rotate(360deg); } }
.orbit-leaf{ fill: var(--c-primary-light); opacity:.7; stroke: var(--c-primary); stroke-width: 1.4; animation: leafGrow 5s var(--ease-soft) infinite alternate; }

.hero__grid{ position: relative; z-index: 2; }
.hero__copy{ max-width: 700px; }
.hero__title{ font-size: clamp(2.6rem, 6vw, 4.6rem); margin-top: 22px; }
.hero__subtitle{ margin-top: 22px; font-size: 1.12rem; color: var(--c-text-soft); max-width: 560px; }
.hero__actions{ display:flex; gap: 16px; margin-top: 38px; flex-wrap: wrap; }

.scroll-cue{
  position:absolute; left: 50%; bottom: 36px; transform: translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px; z-index:2;
  color: var(--c-text-soft); font-size: .72rem; letter-spacing:.16em; text-transform: uppercase;
}
.scroll-cue__mouse{ width: 22px; height: 34px; border: 1.6px solid var(--c-text-soft); border-radius: 14px; display:flex; justify-content:center; padding-top:6px; }
.scroll-cue__mouse span{ width:3px; height:6px; border-radius:2px; background: var(--c-accent); animation: scrollWheel 1.6s ease infinite; }
@keyframes scrollWheel{ 0%{ transform: translateY(0); opacity:1;} 70%{ opacity:0; } 100%{ transform: translateY(10px); opacity:0; } }

/* ============================== STATS ============================== */
.stats{ position:relative; z-index:1; padding: 60px 0 40px; }
.stats__grid{
  display:grid; grid-template-columns: repeat(4,1fr); gap: 24px;
  background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-lg);
  padding: 46px 30px; box-shadow: 0 20px 50px -30px var(--c-shadow);
}
.stat{ text-align:center; }
.stat__num{ font-family: var(--font-display); font-size: 2.6rem; color: var(--c-primary-dark); }
html[data-theme="dark"] .stat__num{ color: var(--c-primary-light); }
.stat__plus{ font-family: var(--font-display); font-size: 1.6rem; color: var(--c-accent); }
.stat p{ margin-top: 6px; font-size: .84rem; color: var(--c-text-soft); }
.stats__note{ text-align:center; font-size: .72rem; color: var(--c-text-soft); opacity:.7; margin-top: 14px; }

/* ============================== SECTION SHARED ============================== */
section{ position: relative; z-index: 1; padding: 120px 0; }
.section-head{ max-width: 640px; margin: 0 auto 64px; text-align:center; }
.eyebrow{
  display:inline-block; font-size: .76rem; font-weight:700; letter-spacing:.2em; text-transform: uppercase;
  color: var(--c-accent); margin-bottom: 14px;
}
.section-head h2{ font-size: clamp(2rem, 4vw, 2.9rem); }
.section-head__desc{ margin-top: 18px; color: var(--c-text-soft); font-size: 1.02rem; }

/* ============================== HISTORIA ============================== */
.historia{ background: var(--c-bg-alt); }
.historia__quote-wrap{ max-width: 820px; margin: 0 auto; position: relative; text-align:center; }
.historia__quote-mark{ color: var(--c-accent); margin: 0 auto 14px; opacity:.7; fill: currentColor; }
.historia__quote{
  font-family: var(--font-display); font-style: italic; font-size: clamp(1.3rem, 2.6vw, 1.9rem);
  line-height: 1.55; color: var(--c-text);
}
.historia__quote strong{ font-style: normal; color: var(--c-primary-dark); font-weight: 600; }
html[data-theme="dark"] .historia__quote strong{ color: var(--c-primary-light); }

.pillars{ margin-top: 80px; display:grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.pillar{
  background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-md);
  padding: 30px 24px; transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.pillar:hover{ transform: translateY(-8px); box-shadow: 0 20px 40px -22px var(--c-shadow); }
.pillar__num{ font-family: var(--font-display); font-style: italic; color: var(--c-primary-light); font-size: 1.6rem; }
.pillar h3{ font-size: 1.15rem; margin-top: 10px; }
.pillar p{ margin-top: 10px; font-size: .88rem; color: var(--c-text-soft); }

/* ============================== OFRECEMOS ============================== */
.services{ display:grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.service-card{
  position: relative; background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: var(--radius-md); padding: 34px 28px; overflow:hidden;
  transition: box-shadow .4s var(--ease), border-color .4s;
  transform-style: preserve-3d; will-change: transform;
}
.service-card::before{
  content:""; position:absolute; inset:0; opacity:0; transition: opacity .4s;
  background: radial-gradient(400px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--c-primary-light) 35%, transparent), transparent 60%);
}
.service-card:hover::before{ opacity:1; }
.service-card:hover{ border-color: var(--c-primary); box-shadow: 0 26px 50px -28px var(--c-shadow); }
.service-card__icon{
  width: 58px; height: 58px; border-radius: 16px; display:flex; align-items:center; justify-content:center;
  background: var(--c-bg-alt); color: var(--c-primary-dark); margin-bottom: 20px;
}
html[data-theme="dark"] .service-card__icon{ color: var(--c-primary-light); }
.service-card__icon svg{ width: 28px; height: 28px; }
.service-card h3{ font-size: 1.2rem; }
.service-card p{ margin-top: 10px; font-size: .9rem; color: var(--c-text-soft); }

.process{ margin-top: 90px; }
.process__title{ text-align:center; font-size: 1.5rem; margin-bottom: 46px; }
.process__steps{ display:grid; grid-template-columns: repeat(4,1fr); gap: 24px; position: relative; }
.process__steps::before{
  content:""; position:absolute; top: 26px; left: 10%; right:10%; height: 1px;
  background: repeating-linear-gradient(90deg, var(--c-border) 0 8px, transparent 8px 16px);
}
.process__step{ text-align:center; position:relative; }
.process__num{
  display:inline-flex; align-items:center; justify-content:center; width: 52px; height: 52px;
  border-radius: 50%; background: var(--c-primary-dark); color: var(--c-bg); font-family: var(--font-display);
  font-size: 1.2rem; margin-bottom: 16px; position: relative; z-index:1;
  box-shadow: 0 0 0 8px var(--c-bg-alt);
}
html[data-theme="dark"] .process__num{ color: #12180F; box-shadow: 0 0 0 8px var(--c-bg); }
.process__step h4{ font-size: 1rem; }
.process__step p{ margin-top: 8px; font-size: .84rem; color: var(--c-text-soft); }

/* ============================== RECURSOS ============================== */
.recursos{ background: var(--c-bg-alt); }
.resources{ display:grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.resource-card{
  background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-md);
  padding: 28px 24px; display:flex; flex-direction:column; gap: 10px; min-height: 230px;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.resource-card:hover{ transform: translateY(-6px); box-shadow: 0 20px 40px -24px var(--c-shadow); }
.resource-card__tag{
  align-self:flex-start; font-size: .68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color: var(--c-accent); background: color-mix(in srgb, var(--c-accent) 14%, transparent); padding: 4px 10px; border-radius: 100px;
}
.resource-card h3{ font-size: 1.05rem; margin-top: 6px; }
.resource-card p{ font-size: .86rem; color: var(--c-text-soft); flex:1; }
.resource-card__cta{ display:flex; align-items:center; gap:6px; font-size: .8rem; font-weight:600; color: var(--c-text-soft); }
.resource-card--form{ background: var(--c-primary-dark); border-color: transparent; }
.resource-card--form h3, .resource-card--form .resource-card__tag{ color: #FBF8F1; background: rgba(255,255,255,.14); }
.resource-card--form p{ color: rgba(251,248,241,.78); }
.newsletter-form{ display:flex; gap:8px; margin-top: 6px; flex-wrap: wrap; }
.newsletter-form input{
  flex:1; min-width: 120px; padding: 11px 14px; border-radius: 100px; border: 1px solid rgba(255,255,255,.3);
  background: rgba(255,255,255,.12); color: #FBF8F1;
}
.newsletter-form input::placeholder{ color: rgba(251,248,241,.6); }
.resource-card--form .btn--primary{ background: #FBF8F1; color: var(--c-primary-dark); }

/* ============================== CONTACTO ============================== */
.contacto{ position: relative; overflow:hidden; }
.contacto__blob{
  position:absolute; width: 600px; height: 600px; border-radius:50%;
  background: radial-gradient(circle, var(--c-primary-light) 0%, transparent 70%);
  opacity:.3; top: -200px; left: -200px; z-index:0; filter: blur(10px);
}
.contacto__grid{ position:relative; z-index:1; display:grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items:flex-start; }
.contacto__desc{ margin-top: 18px; color: var(--c-text-soft); font-size: 1rem; max-width: 460px; }

.contact-list{ margin-top: 36px; display:flex; flex-direction:column; gap: 18px; }
.contact-list li{ display:flex; align-items:center; gap: 14px; }
.contact-list__icon{
  width: 40px; height: 40px; flex-shrink:0; border-radius: 50%; background: var(--c-surface);
  border: 1px solid var(--c-border); display:flex; align-items:center; justify-content:center; color: var(--c-primary-dark);
}
html[data-theme="dark"] .contact-list__icon{ color: var(--c-primary-light); }
.contact-list strong{ display:block; font-size: .82rem; }
.contact-list span{ font-size: .86rem; color: var(--c-text-soft); }

.colombia-map{ margin-top: 40px; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-md); padding: 18px; }
.colombia-map svg{ width: 100%; height: auto; color: var(--c-text-soft); }
.map-dots text{ font-size: 8px; font-family: var(--font-body); fill: var(--c-text-soft); stroke:none; }
.dot{ fill: var(--c-accent); stroke:none; }
.dot--big{ fill: var(--c-primary-dark); }
html[data-theme="dark"] .dot--big{ fill: var(--c-primary-light); }
.dot--pulse{ animation: dotPulse 2.4s ease-in-out infinite; animation-delay: var(--dd,0s); }
@keyframes dotPulse{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
.colombia-map__label{ display:block; text-align:center; font-size: .74rem; color: var(--c-text-soft); margin-top: 4px; }

.social-row{ margin-top: 32px; display:flex; gap: 12px; }
.social-row a{
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-border); background: var(--c-surface);
  display:flex; align-items:center; justify-content:center; color: var(--c-text); transition: all .3s var(--ease);
}
.social-row a:hover{ background: var(--c-primary-dark); color: var(--c-bg); transform: translateY(-4px); }

.contact-form{
  background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-lg);
  padding: 40px; display:flex; flex-direction:column; gap: 20px; box-shadow: 0 30px 60px -34px var(--c-shadow);
}
.field{ display:flex; flex-direction:column; gap:8px; flex:1; }
.field-row{ display:flex; gap: 20px; }
.field label{ font-size: .78rem; font-weight:700; color: var(--c-text-soft); }
.field input, .field textarea, .field select{
  padding: 13px 16px; border-radius: var(--radius-sm); border: 1px solid var(--c-border);
  background: var(--c-bg-alt); color: var(--c-text); transition: border-color .3s, background .3s;
  resize: vertical;
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline: none; border-color: var(--c-primary); background: var(--c-surface);
}
.form-note{ font-size: .74rem; color: var(--c-text-soft); text-align:center; opacity:.75; }

/* ============================== FOOTER ============================== */
.site-footer{ background: var(--c-bg-alt); padding-top: 80px; border-top: 1px solid var(--c-border); }
.footer__grid{ display:grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; padding-bottom: 50px; }
.footer__brand p{ margin-top: 16px; color: var(--c-text-soft); font-size: .88rem; max-width: 320px; }
.footer__col-title{ display:block; font-size: .74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color: var(--c-text-soft); margin-bottom: 16px; }
.footer__nav, .footer__legal{ display:flex; flex-direction:column; gap: 12px; }
.footer__nav a, .footer__legal a{ font-size: .9rem; color: var(--c-text-soft); transition: color .3s, transform .3s; width: fit-content; }
.footer__nav a:hover, .footer__legal a:hover{ color: var(--c-primary-dark); transform: translateX(4px); }
html[data-theme="dark"] .footer__nav a:hover, html[data-theme="dark"] .footer__legal a:hover{ color: var(--c-primary-light); }
.footer__bottom{
  border-top: 1px solid var(--c-border); padding: 22px 28px; display:flex; justify-content:space-between;
  font-size: .78rem; color: var(--c-text-soft); flex-wrap:wrap; gap: 10px;
}

/* ============================== FLOATING BUTTONS ============================== */
.whatsapp-fab{
  position: fixed; bottom: 28px; right: 28px; z-index: 150;
  width: 58px; height: 58px; border-radius: 50%; background: #3FA55A;
  display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow: 0 14px 30px -10px rgba(0,0,0,.4);
  animation: fabPulse 2.6s ease-in-out infinite;
}
.whatsapp-fab:hover{ transform: scale(1.08); }
@keyframes fabPulse{ 0%,100%{ box-shadow: 0 14px 30px -10px rgba(0,0,0,.4), 0 0 0 0 rgba(63,165,90,.5);} 50%{ box-shadow: 0 14px 30px -10px rgba(0,0,0,.4), 0 0 0 12px rgba(63,165,90,0);} }

.back-to-top{
  position: fixed; bottom: 28px; right: 98px; z-index: 150;
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--c-border);
  background: var(--c-surface); color: var(--c-text); display:flex; align-items:center; justify-content:center;
  opacity:0; transform: translateY(16px); pointer-events:none; transition: all .4s var(--ease);
}
.back-to-top.show{ opacity:1; transform: translateY(0); pointer-events:auto; }
.back-to-top:hover{ background: var(--c-primary-dark); color: var(--c-bg); }

.toast{
  position: fixed; left: 50%; bottom: 34px; transform: translate(-50%, 20px);
  background: var(--c-primary-dark); color: var(--c-bg); padding: 14px 26px; border-radius: 100px;
  font-size: .86rem; font-weight:600; opacity:0; pointer-events:none; transition: all .45s var(--ease);
  z-index: 300; box-shadow: 0 16px 34px -14px rgba(0,0,0,.4);
}
.toast.show{ opacity:1; transform: translate(-50%, 0); }

/* ============================== SCROLL REVEAL ============================== */
[data-reveal]{ opacity: 0; transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); transition-delay: calc(var(--d,0) * .12s); will-change: transform, opacity; }
[data-reveal="up"]{ transform: translateY(90px); }
[data-reveal="left"]{ transform: translateX(-140px); }
[data-reveal="right"]{ transform: translateX(140px); }
[data-reveal="scale"]{ transform: scale(.7) translateY(40px); }
[data-reveal].in-view{ opacity: 1; transform: translate(0,0) scale(1); }

/* ============================== RESPONSIVE ============================== */
@media (max-width: 1080px){
  .services{ grid-template-columns: repeat(2,1fr); }
  .resources{ grid-template-columns: repeat(2,1fr); }
  .pillars{ grid-template-columns: repeat(2,1fr); }
  .stats__grid{ grid-template-columns: repeat(2,1fr); }
  .hero__orbit{ opacity:.5; width: 440px; }
}

@media (max-width: 900px){
  .main-nav{ display:none; }
  .hamburger{ display:flex; }
  .contacto__grid{ grid-template-columns: 1fr; }
  .footer__grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px){
  .container{ padding: 0 20px; }
  section{ padding: 84px 0; }
  .hero{ padding-top: 120px; text-align:left; }
  .hero__title{ font-size: 2.6rem; }
  .hero__orbit{ display:none; }
  .stats__grid{ grid-template-columns: repeat(2,1fr); padding: 30px 20px; gap: 26px 16px; }
  .services{ grid-template-columns: 1fr; }
  .resources{ grid-template-columns: 1fr; }
  .pillars{ grid-template-columns: 1fr; }
  .process__steps{ grid-template-columns: 1fr; gap: 34px; }
  .process__steps::before{ display:none; }
  .field-row{ flex-direction:column; }
  .footer__grid{ grid-template-columns: 1fr; }
  .footer__bottom{ flex-direction:column; text-align:center; }
  .back-to-top{ right: 20px; bottom: 96px; }
  .whatsapp-fab{ right: 20px; bottom: 24px; width: 52px; height: 52px; }
  [data-reveal="left"], [data-reveal="right"]{ transform: translateY(70px); }
}
