/* ============================================================
   ARFASA — Capa de interacción de la página de inicio
   Degradados, micro-animaciones y elementos reactivos al cursor.
   Se carga en todas las páginas. Respeta prefers-reduced-motion.
   ============================================================ */

/* ─── Barra de progreso de lectura ─────────────── */
.progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:600;pointer-events:none;
  background:linear-gradient(90deg,var(--gold),var(--gold-3));transform:scaleX(0);transform-origin:left;}

/* ─── Hero: entrada escalonada + Ken Burns + brillo ── */
@media(prefers-reduced-motion:no-preference){
  .hero-photo{animation:heroZoom 16s cubic-bezier(.15,.5,.3,1) both;transform-origin:68% 38%;}
  @keyframes heroZoom{from{transform:scale(1.09);}to{transform:scale(1);}}
  .hero-copy>*{opacity:0;transform:translateY(20px);animation:heroUp .85s cubic-bezier(.2,.7,.2,1) forwards;}
  .hero-copy>h1{opacity:1;animation-name:heroUpSolid;}
  @keyframes heroUpSolid{from{transform:translateY(12px);}to{transform:none;}}
  .hero-copy>*:nth-child(1){animation-delay:.08s;}
  .hero-copy>*:nth-child(2){animation-delay:.18s;}
  .hero-copy>*:nth-child(3){animation-delay:.3s;}
  .hero-copy>*:nth-child(4){animation-delay:.42s;}
  .hero-copy>*:nth-child(5){animation-delay:.54s;}
  .hero-copy>*:nth-child(6){animation-delay:.64s;}
  @keyframes heroUp{to{opacity:1;transform:none;}}
  .hero h1 em{background:linear-gradient(100deg,var(--gold-3) 20%,#FFF3D6 50%,var(--gold-3) 80%);
    background-size:220% 100%;-webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;animation:goldShimmer 7s ease-in-out infinite;}
  @keyframes goldShimmer{0%,100%{background-position:0% 0;}50%{background-position:100% 0;}}
}
.hero-glow{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .6s ease;
  background:radial-gradient(360px circle at var(--hx,72%) var(--hy,38%),rgba(226,200,121,.16),transparent 70%);}
.hero:hover .hero-glow{opacity:1;}

/* ─── Foco dorado que sigue al cursor en tarjetas ── */
.spot{position:relative;}
.spot::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  transition:opacity .35s ease;z-index:0;
  background:radial-gradient(230px circle at var(--mx,50%) var(--my,50%),rgba(176,138,46,.13),transparent 65%);}
.spot:hover::after{opacity:1;}
.spot>*{position:relative;z-index:1;}

/* ─── Iconos: cambio de color al pasar ─────────── */
.need .icon-badge,.svc .icon-badge,.why-item .icon-badge{
  transition:background .35s ease,border-color .35s ease,transform .35s ease;}
.need .icon-badge svg,.svc .icon-badge svg,.why-item .icon-badge svg{transition:stroke .35s ease;}
.need:hover .icon-badge,.svc:hover .icon-badge,.why-item:hover .icon-badge{
  background:var(--gold);border-color:var(--gold);transform:scale(1.07) rotate(-4deg);}
.need:hover .icon-badge svg,.svc:hover .icon-badge svg,.why-item:hover .icon-badge svg{stroke:#fff;}
.svc{position:relative;overflow:hidden;}
.svc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;z-index:1;
  background:linear-gradient(90deg,var(--gold),var(--gold-3));transform:scaleX(0);transform-origin:left;transition:transform .35s ease;}
.svc:hover::before{transform:scaleX(1);}

/* ─── Botones: destello al pasar ───────────────── */
.btn-wa,.btn-gold,.btn-navy{position:relative;overflow:hidden;}
.btn-wa::after,.btn-gold::after,.btn-navy::after{content:'';position:absolute;top:-10%;left:-70%;width:45%;height:120%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.34),transparent);transform:skewX(-20deg);pointer-events:none;}
.btn-wa:hover::after,.btn-gold:hover::after,.btn-navy:hover::after{left:135%;transition:left .65s ease;}

/* ─── Nav: subrayado animado ───────────────────── */
.nav>li>a{position:relative;}
.nav>li>a::after{content:'';position:absolute;left:.85rem;right:.85rem;bottom:.28rem;height:1.5px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .28s ease;}
.nav>li>a:hover::after{transform:scaleX(1);}

/* ─── Cifras: reacción al pasar ────────────────── */
.trust-cell{transition:background .35s ease;}
.trust-cell:hover{background:rgba(255,255,255,.04);}
.trust-cell .tn{transition:transform .35s ease,color .35s ease;}
.trust-cell:hover .tn{transform:translateY(-2px) scale(1.05);color:var(--gold-2);}

/* ─── Blog: fotos reales con degradado ─────────── */
.post .pimg{position:relative;}
.post .pimg img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.post .pimg::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(20,33,61,.06) 0%,rgba(20,33,61,0) 38%,rgba(20,33,61,.5) 100%);
  opacity:.9;transition:opacity .45s ease;}
.post:hover .pimg img{transform:scale(1.06);}
.post:hover .pimg::after{opacity:.55;}

/* ─── Equipo: degradado + realce del nombre ────── */
.member .ph{position:relative;}
.member .ph::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .45s ease;
  background:linear-gradient(180deg,transparent 55%,rgba(11,19,38,.42) 100%);}
.member:hover .ph::after{opacity:1;}
.member .mb b{transition:color .3s ease;}
.member:hover .mb b{color:var(--gold);}

/* ─── Testimonios: comilla decorativa ──────────── */
.testi{overflow:hidden;border-radius:var(--r);transition:var(--t);}
.testi:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--gold-line);}
.testi::before{content:'“';position:absolute;top:-.4rem;right:1rem;font-family:var(--serif);font-size:6.5rem;
  line-height:1;color:var(--gold);opacity:.1;pointer-events:none;transition:opacity .4s ease,transform .4s ease;}
.testi:hover::before{opacity:.22;transform:translateY(4px);}

/* ─── Pasos del proceso: número reactivo ───────── */
.step .sn{transition:transform .35s ease,color .35s ease;display:inline-block;}
.step:hover .sn{transform:translateY(-3px);color:var(--gold-2);}

/* ─── Botón volver arriba ──────────────────────── */
.to-top{position:fixed;bottom:1.7rem;left:1.6rem;z-index:200;width:46px;height:46px;border-radius:50%;
  background:var(--navy);color:var(--gold-3);border:1px solid rgba(226,200,121,.35);display:flex;align-items:center;justify-content:center;
  box-shadow:var(--sh-2);opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .35s ease,transform .35s ease,visibility .35s,background .3s ease;}
.to-top.show{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--navy-2);transform:translateY(-3px);}
.to-top svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
@media(max-width:640px){.to-top{bottom:1.2rem;left:1.2rem;width:42px;height:42px;}}

@media(prefers-reduced-motion:reduce){
  .progress,.hero-glow{display:none;}
  .spot::after{display:none;}
}
