:root{
  --c-primary:#2F6F5E;
  --c-primary-dark:#1F4D3F;
  --c-accent:#E76F51;
  --c-accent-dark:#C9573D;
  --c-bg:#FAF6F0;
  --c-bg-alt:#F1E9DD;
  --c-text:#20281F;
  --c-text-muted:#5C6B62;
}
body, p, li, a, span, div{ font-family:'Inter', sans-serif; }
h1, h2, h3, h4, .wp-block-heading{ font-family:'Poppins', sans-serif; font-weight:700; letter-spacing:-0.02em; }

a{ transition: color .25s ease; }

/* Header */
.site-header, .ast-primary-header-bar{
  transition: box-shadow .3s ease, background-color .3s ease;
}
.scrolled-header .site-header{ box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.main-header-menu .menu-item > a{
  font-weight:600;
  position:relative;
}
.main-header-menu .menu-item > a::after{
  content:"";
  position:absolute; left:0; bottom:-4px;
  width:0; height:2px; background:var(--c-accent);
  transition:width .3s ease;
}
.main-header-menu .menu-item > a:hover::after{ width:100%; }

/* Buttons */
.wp-block-button__link{
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.wp-block-button__link:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  filter: brightness(1.05);
}

/* Cards */
.card-modern{
  transition: transform .35s ease, box-shadow .35s ease;
  border-radius:16px;
}
.card-modern:hover{
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(47,111,94,.18);
}

/* Hero gradient overlay helper */
.hero-gradient{
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-dark) 100%);
}

/* Section reveal default state before AOS kicks in (avoid flash) */
[data-aos]{ }

/* WhatsApp floating button */
.site-whatsapp-float{
  position:fixed; bottom:24px; right:24px;
  width:60px; height:60px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  z-index:9999; text-decoration:none;
  animation: wa-pulse 2.4s infinite;
}
.site-whatsapp-float:hover{ transform: scale(1.08); }
@keyframes wa-pulse{
  0%{ box-shadow:0 8px 24px rgba(37,211,102,.4); }
  70%{ box-shadow:0 8px 24px rgba(37,211,102,0); }
  100%{ box-shadow:0 8px 24px rgba(37,211,102,0); }
}

/* Smooth anchor scroll */
html{ scroll-behavior:smooth; }

/* Stat numbers */
.stat-number{ font-size:42px; font-weight:800; color:var(--c-primary); }

/* Image hover zoom */
.img-zoom{ overflow:hidden; border-radius:16px; }
.img-zoom img{ transition: transform .6s ease; }
.img-zoom:hover img{ transform: scale(1.08); }

/* ===== Modernización futurista (capa adicional) ===== */

.ambient-orbs{ position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.ambient-orbs .orb{ position:absolute; border-radius:50%; filter:blur(80px); opacity:.22; will-change:transform; }
.ambient-orbs .orb-1{ width:380px; height:380px; background:var(--c-accent); top:-100px; left:-100px; animation:drift1 20s ease-in-out infinite; }
.ambient-orbs .orb-2{ width:420px; height:420px; background:var(--c-primary); bottom:-150px; right:-120px; animation:drift2 24s ease-in-out infinite; }
.ambient-orbs .orb-3{ width:300px; height:300px; background:var(--c-accent-dark); top:45%; left:55%; opacity:.16; animation:drift3 18s ease-in-out infinite; }
@keyframes drift1{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(120px,80px); } }
@keyframes drift2{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-100px,-60px); } }
@keyframes drift3{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-80px,60px) scale(1.15); } }

/* Hero: blobs internos animados sobre el degradado existente */
.hero-gradient{ position:relative; overflow:hidden; isolation:isolate; }
.hero-gradient::before,
.hero-gradient::after{
  content:""; position:absolute; border-radius:50%;
  filter:blur(70px); opacity:.55; z-index:0;
  animation:float-blob 14s ease-in-out infinite;
}
.hero-gradient::before{ width:480px; height:480px; background:var(--c-accent); top:-140px; left:-100px; }
.hero-gradient::after{ width:420px; height:420px; background:var(--c-primary); bottom:-160px; right:-80px; animation-delay:-7s; }
.hero-gradient > *{ position:relative; z-index:1; }
@keyframes float-blob{
  0%,100%{ transform:translate(0,0) scale(1); }
  33%{ transform:translate(40px,-30px) scale(1.1); }
  66%{ transform:translate(-30px,30px) scale(.95); }
}

/* Texto del hero con gradiente */
.hero-gradient h1{
  background:linear-gradient(90deg,#ffffff 0%, var(--c-accent) 100%) !important;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent !important; color:transparent !important;
}

/* Tarjetas: efecto vidrio (glassmorphism) + borde con brillo al hover */
.card-modern{
  position:relative;
  background:rgba(255,255,255,.65) !important;
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 8px 32px rgba(0,0,0,.08);
  isolation:isolate;
  transition:transform .3s ease, box-shadow .3s ease;
  will-change:transform;
}
.card-modern::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
  background:linear-gradient(135deg, var(--c-accent), transparent 60%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:0; transition:opacity .35s ease; pointer-events:none; z-index:2;
}
.card-modern:hover::before{ opacity:1; }
.card-modern:hover{ box-shadow:0 24px 48px rgba(0,0,0,.16); }

/* Botones: glow dinámico */
.wp-block-button__link{ position:relative; }
.wp-block-button__link:hover{
  box-shadow:0 0 36px 6px color-mix(in srgb, var(--c-accent) 55%, transparent), 0 10px 24px rgba(0,0,0,.18) !important;
}

/* Textura sutil tipo grid en secciones oscuras */
.hero-gradient{
  background-image:
    linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-dark) 60%, var(--c-primary-dark) 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 32px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 32px);
}

@media (prefers-reduced-motion: reduce){
  .ambient-orbs .orb, .hero-gradient::before, .hero-gradient::after{ animation:none !important; }
}
