/* /assets/css/app.css v2.4 (más moderno, más contraste y “vida”) */

:root{
  --bg:#ffffff;
  --fg:#0f172a;
  --muted:#475569;
  --muted2:#64748b;
  --border: rgba(15,23,42,.10);

  --glass: rgba(255,255,255,.72);
  --glass2: rgba(255,255,255,.50);

  --amber1: rgba(245,158,11,.18);
  --amber2: rgba(245,158,11,.38);
  --amber3: rgba(245,158,11,.78);

  --shadow: 0 22px 70px rgba(0,0,0,.14);
  --shadow2: 0 10px 26px rgba(0,0,0,.10);

  --radius: 18px;
}

html.dark{
  --bg:#000000;
  --fg: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.70);
  --muted2: rgba(255,255,255,.55);
  --border: rgba(255,255,255,.12);

  --glass: rgba(255,255,255,.06);
  --glass2: rgba(255,255,255,.10);

  --shadow: 0 30px 90px rgba(0,0,0,.55);
  --shadow2: 0 18px 55px rgba(0,0,0,.45);
}

html, body{ height:100%; }
body{
  margin:0;
  background: var(--bg);
  color: var(--fg);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

*{ box-sizing:border-box; }
a{ color:inherit; }
img{ max-width:100%; display:block; }

/* --- fondo con “vida” (sutil, elegante) --- */
body::before{
  content:"";
  position:fixed;
  inset:-40vh -20vw;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(900px 520px at 20% 10%, rgba(245,158,11,.14), transparent 60%),
    radial-gradient(900px 520px at 80% 10%, rgba(226,232,240,.20), transparent 60%),
    radial-gradient(900px 520px at 50% 100%, rgba(2,132,199,.08), transparent 60%);
  filter: blur(12px);
  opacity:.90;
}
html.dark body::before{
  background:
    radial-gradient(900px 520px at 18% 10%, rgba(245,158,11,.18), transparent 60%),
    radial-gradient(900px 520px at 82% 10%, rgba(226,232,240,.10), transparent 60%),
    radial-gradient(900px 520px at 50% 100%, rgba(2,132,199,.10), transparent 60%);
  opacity:.75;
}

/* --- helpers --- */
.shadow-soft{ box-shadow: var(--shadow); }
.shadow-soft2{ box-shadow: var(--shadow2); }

.card-glass{
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: linear-gradient(180deg, var(--glass), var(--glass2));
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: var(--shadow2);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card-glass:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow);
  border-color: rgba(245,158,11,.20);
}
html.dark .card-glass:hover{
  border-color: rgba(245,158,11,.22);
}

/* --- HERO --- */
.bg-hero{
  position: relative;
  overflow:hidden;
  background:
    radial-gradient(1200px 650px at 50% 0%, var(--amber1), transparent 60%),
    radial-gradient(800px 420px at 15% 10%, rgba(245,158,11,.10), transparent 60%),
    radial-gradient(800px 420px at 85% 10%, rgba(226,232,240,.14), transparent 60%);
}
html.dark .bg-hero{
  background:
    radial-gradient(1200px 650px at 50% 0%, rgba(245,158,11,.22), transparent 60%),
    radial-gradient(800px 420px at 15% 10%, rgba(245,158,11,.12), transparent 60%),
    radial-gradient(800px 420px at 85% 10%, rgba(226,232,240,.10), transparent 60%);
}

/* --- botones: más premium --- */
.btn-primary,
.btn-ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.72rem 1.05rem;
  border-radius: 14px;
  font-weight: 800;
  font-size: .95rem;
  line-height:1;
  text-decoration:none;
  user-select:none;
  transition: transform .08s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease, opacity .18s ease;
  border:1px solid transparent;
}

.btn-primary{
  color:#0b0b0b;
  border-color: rgba(245,158,11,.45);
  background: linear-gradient(180deg, rgba(245,158,11,.98), rgba(245,158,11,.72));
  box-shadow: 0 14px 34px rgba(245,158,11,.18);
}
.btn-primary:hover{ opacity:.96; }
.btn-primary:active{ transform: translateY(1px) scale(.99); }

.btn-ghost{
  color: var(--fg);
  background: rgba(0,0,0,.03);
  border-color: var(--border);
}
html.dark .btn-ghost{ background: rgba(255,255,255,.06); }
.btn-ghost:hover{
  background: rgba(0,0,0,.05);
}
html.dark .btn-ghost:hover{
  background: rgba(255,255,255,.09);
}
.btn-ghost:active{ transform: translateY(1px) scale(.99); }

/* --- footer: legible y elegante --- */
footer{
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,.70);
}
html.dark footer{
  background: rgba(0,0,0,.78);
}

.footer-title{
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fg);
  opacity: .92;
  margin-bottom: .75rem;
}
.footer-list{
  list-style:none;
  padding:0;
  margin:0;
}
.footer-list li{ margin: .42rem 0; }
.footer-list a{
  text-decoration:none;
  color: var(--muted2);
  font-size: .92rem;
  font-weight: 650;
}
.footer-list a:hover{
  color: var(--fg);
  opacity:.96;
}

/* --- loader --- */
#pageLoader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(900px 520px at 50% 0%, rgba(245,158,11,.16), transparent 60%),
    var(--bg);
}
#pageLoader.hide{
  opacity: 0;
  visibility: hidden;
  pointer-events:none;
  transform: translateY(-6px) scale(.98);
  transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.loader-wrap{ width: 260px; text-align:center; }
.loader-logo{ width: 64px; height: 64px; margin: 0 auto 14px; object-fit:contain; }
html.dark .loader-logo{ filter: drop-shadow(0 12px 35px rgba(0,0,0,.55)); }

.loader-bar{
  height: 10px;
  border-radius: 999px;
  overflow:hidden;
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.08);
}
html.dark .loader-bar{
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
}
.loader-bar span{
  display:block;
  height:100%;
  width:40%;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(245,158,11,.25), rgba(245,158,11,.95), rgba(226,232,240,.35));
  animation: loaderMove 1.2s ease-in-out infinite;
}
@keyframes loaderMove{
  0%{ transform: translateX(-50%); }
  50%{ transform: translateX(150%); }
  100%{ transform: translateX(-50%); }
}

/* móvil: botones full */
@media (max-width:640px){
  .btn-primary,.btn-ghost{ width:100%; }
}
