:root{
  --olivo-azul:#0a1f44; --olivo-rojo:#bf1e2e; --olivo-dorado:#d4af37;
  --gris:#0a1f44; --texto:#e5e7eb; --card:#0f172a; --muted:#94a3b8;
  --azul-900:#0a1f44; --azul-800:#0d2453; --azul-700:#123263; --azul-500:#3E77B6; --azul-300:#90B1DB;
}

html,body{height:100%}
body{
  background:
    radial-gradient(1200px 600px at 20% 0%, rgba(255,255,255,.06) 0%, transparent 40%),
    var(--gris);
  color:var(--texto);
}

/* botones/cards */
.btn-olivo{background:var(--olivo-rojo); color:#fff; border:none}
.btn-olivo:hover{background:#a81826; color:#fff}
.badge-olivo{background:var(--olivo-dorado); color:#000}
.card-olivo{background:var(--card); border:1px solid rgba(255,255,255,.08); border-radius:16px; box-shadow:0 10px 28px rgba(2,8,20,.24); color:#e8eef8}
.card-olivo--light{background:#fff; color:#0f172a; border:2px solid var(--azul-900)}

/* REVEAL */
.reveal{opacity:0; transform:translateY(16px); filter:blur(6px); transition:all .7s cubic-bezier(.2,.8,.2,1)}
.reveal.show{opacity:1; transform:none; filter:blur(0)}

/* HERO */
.hero-slider{position:relative; color:#fff; isolation:isolate}
.hero-slider .carousel-item{height:82vh;min-height:560px;position:relative}
.hero-slider .slide-bg{position:absolute;inset:0;z-index:-2;background:#0a1f44 center/cover no-repeat}
.hero-slider .slide-bg video{width:100%;height:100%;object-fit:cover}
.hero-slider .slide-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,31,68,.72) 0%,rgba(10,31,68,.38) 50%,rgba(10,31,68,.10) 100%);z-index:-1}
.hero-slider .slide-content{max-width:720px}
.hero-slider .display-title{font-weight:800;line-height:1.05;font-size:clamp(2.4rem,5vw + .5rem,4.25rem);text-shadow:0 2px 12px rgba(0,0,0,.35)}
.hero-slider .lead{font-size:clamp(1.05rem,1.2vw + .6rem,1.4rem)}

/* curva inferior */
.hero-curve{position:absolute;left:0;right:0;bottom:-1px;height:140px;z-index:2;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 140' preserveAspectRatio='none'><path fill='%230a1f44' d='M0,80 C360,160 1080,0 1440,80 L1440,140 L0,140 Z'/></svg>") no-repeat bottom center/cover}
.hero-curve-shadow{position:absolute;left:0;right:0;bottom:118px;height:22px;background:radial-gradient(50% 100% at 50% 0%, rgba(0,0,0,.28), rgba(0,0,0,0) 70%);filter:blur(8px);opacity:.35;pointer-events:none;z-index:2}

/* glow (animación de estela) */
.hero-glow{position:absolute; left:0; right:0; bottom:0; width:100%; height:170px; pointer-events:none; z-index:4}
.hero-glow .trail{stroke-dasharray: 320 1500; animation: trailShift 3.8s ease-in-out infinite; opacity: 1}
@keyframes trailShift{0%{stroke-dashoffset:0}50%{stroke-dashoffset:-1500}100%{stroke-dashoffset:0}}

/* footer */
#footer{position:relative;background:var(--azul-900)}
.footer-watermark{
  position:absolute; left: clamp(-40px, -6vw, -20px); bottom: -4%;
  width: min(56vw, 520px); max-width:520px; opacity:.08; pointer-events:none; z-index:0; object-fit:contain;
  animation: footerFloat 6s ease-in-out infinite; transform-origin:50% 50%; filter: blur(.6px);
}
@keyframes footerFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(1.2deg)}}
#footer > *:not(.footer-watermark){position:relative; z-index:1}
.site-footer{background: var(--azul-900);color:#e7f0fb;padding: 3rem 0 2rem;}
.subfooter{background: linear-gradient(to right, var(--azul-900), var(--azul-800)); color:#cfe2ff; padding:.85rem 0; font-size:.9rem;}
