/* enhancements.css - CTA de portada, boton flotante movil y pagina 404.
   Solo anade estilos nuevos. No modifica assets/main-*.css */

/* ---------- CTA en la primera pantalla ---------- */
.hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:36px;opacity:0;animation:ctaIn .8s ease 2.2s forwards}
.hero-cta a{display:inline-flex;align-items:center;justify-content:center;padding:16px 36px;border-radius:100px;font-size:1rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:transform .35s cubic-bezier(.175,.885,.32,1.275),background .3s,color .3s,border-color .3s,box-shadow .3s}
.hero-cta .btn-primary{background:var(--accent-color);color:#000;box-shadow:0 8px 30px rgba(170,206,0,.3)}
.hero-cta .btn-primary:hover{background:#fff;transform:translateY(-3px) scale(1.04);box-shadow:0 14px 40px rgba(170,206,0,.4)}
.hero-cta .btn-ghost{color:#fff;border:2px solid rgba(255,255,255,.35);background:rgba(0,0,0,.25);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero-cta .btn-ghost:hover{color:var(--accent-color);border-color:var(--accent-color);transform:translateY(-3px)}
@keyframes ctaIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- Microtexto bajo el boton de contacto ---------- */
.contact-note{margin-top:22px !important;font-size:.95rem !important;color:var(--text-secondary);opacity:.75}

/* ---------- Boton flotante (solo movil) ---------- */
.fab-contact{display:none}
@media (max-width:768px){
  .hero-cta{gap:10px;margin-top:24px}
  .hero-cta a{padding:12px 22px;font-size:.8rem;letter-spacing:.5px}
  .fab-contact{display:flex;position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-color);color:#000;box-shadow:0 6px 22px rgba(0,0,0,.55);z-index:900;opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:opacity .35s ease,transform .35s ease}
  .fab-contact.show{opacity:.96;transform:none;pointer-events:auto}
  .fab-contact svg{width:24px;height:24px}
}
@media (prefers-reduced-motion:reduce){.hero-cta{animation:none;opacity:1}.fab-contact{transition:none}}

/* ---------- Pagina 404 ---------- */
.nf-body{margin:0;min-height:100vh;background:#000;color:var(--text-primary)}
.nf-wrap{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 8% 80px;overflow:hidden}
.nf-bg{position:absolute;inset:0;background:url('/project-3d-sanctuary.jpg') center/cover no-repeat;filter:blur(3px) saturate(.8);transform:scale(1.06);opacity:.35}
.nf-wrap::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 60%,rgba(13,17,0,.55),#000 78%)}
.nf-content{position:relative;z-index:2;max-width:720px}
.nf-code{font-family:Outfit,sans-serif;font-weight:900;line-height:.85;font-size:clamp(7rem,26vw,16rem);color:var(--accent-color);letter-spacing:-4px;text-shadow:0 10px 60px rgba(170,206,0,.25)}
.nf-title{font-family:Outfit,sans-serif;font-weight:900;font-size:clamp(1.8rem,5vw,3rem);text-transform:uppercase;margin:24px 0 12px}
.nf-text{color:var(--text-secondary);font-size:1.15rem;line-height:1.6;margin:0 auto 36px;max-width:560px}
.nf-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.nf-actions a{display:inline-flex;align-items:center;justify-content:center;padding:16px 36px;border-radius:100px;font-size:1rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:transform .35s cubic-bezier(.175,.885,.32,1.275),background .3s,color .3s,border-color .3s}
.nf-actions .btn-primary{background:var(--accent-color);color:#000;box-shadow:0 8px 30px rgba(170,206,0,.3)}
.nf-actions .btn-primary:hover{background:#fff;transform:translateY(-3px) scale(1.04)}
.nf-actions .btn-ghost{color:#fff;border:2px solid rgba(255,255,255,.35)}
.nf-actions .btn-ghost:hover{color:var(--accent-color);border-color:var(--accent-color);transform:translateY(-3px)}
@media (max-width:768px){.nf-actions a{padding:13px 26px;font-size:.85rem}}