:root{
  --bg:#0b1220;
  --card: rgba(255,255,255,.06);
  --text:#e9eefc;
  --muted: rgba(233,238,252,.78);
  --brand:#f4a21a;
  --brand2:#ffcf6a;
  --line: rgba(255,255,255,.14);
  --shadow: 0 18px 45px rgba(0,0,0,.35);
  --radius: 22px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(900px 500px at 12% 8%, rgba(244,162,26,.18), transparent 60%),
    radial-gradient(900px 500px at 88% 24%, rgba(38,195,255,.12), transparent 55%),
    radial-gradient(800px 500px at 60% 90%, rgba(255,207,106,.10), transparent 60%),
    var(--bg);
  overflow-x:hidden;
}
a{color:inherit}
.container{width:min(1100px, 92vw); margin:0 auto}
header{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(12px);
  background: linear-gradient(to bottom, rgba(11,18,32,.88), rgba(11,18,32,.55));
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none}
.brand img{width:44px; height:44px; border-radius:14px; box-shadow:0 10px 25px rgba(0,0,0,.35)}
.brand .t1{font-weight:900; letter-spacing:.2px}
.brand .t2{font-size:12px; color:var(--muted); margin-top:2px}
.navlinks{display:flex; gap:18px; align-items:center}
.navlinks a{text-decoration:none; color:var(--muted); font-weight:700; font-size:14px; padding:10px 12px; border-radius:14px; transition:.2s}
.navlinks a:hover{background:rgba(255,255,255,.06); color:var(--text)}
.burger{display:none; background:rgba(255,255,255,.06); border:1px solid var(--line); color:var(--text); border-radius:16px; padding:10px 12px; font-weight:900}
@media (max-width: 860px){
  .navlinks{display:none}
  .burger{display:inline-flex}
  .mobile{display:none; padding:0 0 16px 0}
  .mobile a{display:block; padding:12px 14px; border-radius:16px; margin-top:8px; background:rgba(255,255,255,.05); border:1px solid var(--line); text-decoration:none; color:var(--text); font-weight:800}
  .mobile a span{color:var(--muted); font-weight:700; margin-left:6px}
  .mobile.open{display:block}
}
.hero{padding:38px 0 10px 0}
.heroGrid{display:grid; grid-template-columns:1.25fr .75fr; gap:18px; align-items:stretch}
@media (max-width: 980px){.heroGrid{grid-template-columns:1fr}}
.heroCard{
  position:relative; border-radius:calc(var(--radius) + 8px); overflow:hidden;
  box-shadow:var(--shadow); border:1px solid rgba(255,255,255,.12);
  min-height:430px; background:#000
}
.heroCard .bg{position:absolute; inset:0; background-image:url("../img/portada.jpg"); background-size:cover; background-position:center; filter:saturate(1.05) contrast(1.05); transform:scale(1.02)}
.heroCard .overlay{position:absolute; inset:0; background:linear-gradient(110deg, rgba(11,18,32,.92) 0%, rgba(11,18,32,.58) 40%, rgba(11,18,32,.12) 100%)}
.heroCard .content{position:relative; padding:34px 28px; max-width:720px}
.kicker{display:inline-flex; align-items:center; gap:10px; padding:10px 14px; border-radius:999px; background:rgba(244,162,26,.14); border:1px solid rgba(244,162,26,.24); color:var(--brand2); font-weight:900; letter-spacing:.4px; font-size:12px}
h1{margin:14px 0 10px 0; font-size:clamp(30px, 4vw, 48px); line-height:1.05; letter-spacing:-.6px}
.lead{margin:0; color:var(--muted); font-size:16px; line-height:1.6}
.heroBtns{margin-top:18px; display:flex; flex-wrap:wrap; gap:10px}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:12px 16px; border-radius:18px; border:1px solid var(--line); background:rgba(255,255,255,.06); color:var(--text); text-decoration:none; font-weight:900; transition:.2s}
.btn:hover{transform:translateY(-1px); background:rgba(255,255,255,.09)}
.btn.primary{background:linear-gradient(135deg, var(--brand) 0%, var(--brand2) 100%); border:0; color:#1a1207}
.btn.primary:hover{filter:brightness(1.03)}
.heroSide{display:grid; grid-template-rows:1fr 1fr; gap:18px}
.infoCard{border-radius:calc(var(--radius) + 8px); border:1px solid var(--line); background:rgba(255,255,255,.05); box-shadow:var(--shadow); padding:18px; overflow:hidden; position:relative}
.infoCard::after{content:""; position:absolute; inset:-2px -2px auto auto; width:170px; height:170px; background:radial-gradient(circle at 30% 30%, rgba(244,162,26,.18), transparent 55%); pointer-events:none}
.infoTitle{font-weight:1000; font-size:14px; letter-spacing:.4px; color:var(--brand2)}
.infoMain{font-size:20px; font-weight:1000; margin-top:8px}
.infoSub{color:var(--muted); margin-top:6px; line-height:1.55}
.badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.badge{font-size:12px; padding:8px 10px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.05); color:var(--muted); font-weight:800}
section{padding:34px 0}
.sectionTitle{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:14px}
.sectionTitle h2{margin:0; font-size:26px; letter-spacing:-.3px}
.sectionTitle p{margin:0; color:var(--muted); max-width:54ch; line-height:1.6}
.grid3{display:grid; grid-template-columns:repeat(3, 1fr); gap:14px}
@media (max-width: 980px){.grid3{grid-template-columns:1fr}}
.card{border-radius:var(--radius); border:1px solid var(--line); background:rgba(255,255,255,.05); box-shadow:var(--shadow); padding:16px}
.card h3{margin:0 0 8px 0; font-size:18px}
.card p{margin:0; color:var(--muted); line-height:1.6}
.destinos{display:grid; grid-template-columns:repeat(3, 1fr); gap:14px}
@media (max-width: 980px){.destinos{grid-template-columns:1fr}}
.dest{border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:rgba(255,255,255,.05); box-shadow:var(--shadow)}
.dest .img{height:180px; background-size:cover; background-position:center}
.dest .body{padding:14px}
.dest .tag{display:inline-flex; font-size:11px; font-weight:1000; padding:8px 10px; border-radius:999px; background:rgba(244,162,26,.16); border:1px solid rgba(244,162,26,.26); color:var(--brand2)}
.dest h3{margin:10px 0 6px 0}
.dest p{margin:0; color:var(--muted); line-height:1.55}
.gallery{display:grid; grid-template-columns:repeat(4, 1fr); gap:10px}
@media (max-width: 980px){.gallery{grid-template-columns:repeat(2, 1fr)}}
.gallery a{border-radius:18px; overflow:hidden; border:1px solid var(--line); background:rgba(255,255,255,.04); box-shadow:var(--shadow); display:block; aspect-ratio:1/1}
.gallery img{width:100%; height:100%; object-fit:cover; transform:scale(1.01); transition:.25s}
.gallery a:hover img{transform:scale(1.08)}
.lightbox{position:fixed; inset:0; z-index:80; background:rgba(5,9,16,.88); display:none; align-items:center; justify-content:center; padding:22px}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1100px, 96vw); max-height:84vh; border-radius:18px; border:1px solid rgba(255,255,255,.14); box-shadow:0 25px 70px rgba(0,0,0,.55)}
.lightbox .close{position:absolute; top:14px; right:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:var(--text); padding:10px 12px; border-radius:16px; font-weight:1000; cursor:pointer}
.videoWrap{border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:rgba(255,255,255,.04); box-shadow:var(--shadow)}
.videoWrap iframe{width:100%; aspect-ratio:16/9; border:0; display:block}
.socialGrid{display:grid; grid-template-columns:1.1fr .9fr; gap:14px}
@media (max-width: 980px){.socialGrid{grid-template-columns:1fr}}
.embedBox{border-radius:var(--radius); border:1px solid var(--line); background:rgba(255,255,255,.05); box-shadow:var(--shadow); overflow:hidden}
.embedBox .head{display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--line)}
.embedBox .head strong{font-weight:1000}
.embedBox .head a{color:var(--brand2); font-weight:900; text-decoration:none}
.embedBox iframe{width:100%; height:520px; border:0; background:rgba(0,0,0,.2)}
@media (max-width: 980px){.embedBox iframe{height:460px}}
form{display:grid; gap:10px}
input,textarea{width:100%; padding:12px 14px; border-radius:16px; border:1px solid var(--line); background:rgba(255,255,255,.05); color:var(--text); outline:none}
textarea{min-height:120px; resize:vertical}
input::placeholder, textarea::placeholder{color: rgba(233,238,252,.55)}
.formRow{display:grid; grid-template-columns:1fr 1fr; gap:10px}
@media (max-width: 720px){.formRow{grid-template-columns:1fr}}
.note{color:var(--muted); font-size:13px; line-height:1.6}
footer{border-top:1px solid var(--line); padding:20px 0 80px 0; color:var(--muted)}
footer .foot{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap}
.fabWrap{position:fixed; right:16px; bottom:16px; z-index:90; display:flex; flex-direction:column; gap:10px}
.fab{display:inline-flex; align-items:center; gap:10px; padding:12px 14px; border-radius:18px; background:rgba(20,255,120,.14); border:1px solid rgba(20,255,120,.28); color:#dfffee; text-decoration:none; font-weight:1000; box-shadow:var(--shadow)}
.fab.call{background:rgba(244,162,26,.16); border:1px solid rgba(244,162,26,.28); color:var(--text)}
.fade{opacity:0; transform:translateY(10px); transition:.55s}
.fade.show{opacity:1; transform:translateY(0)}