/* Enlace SR · estilo editorial, colores del logo */
:root{
  --noche:#1d0d36;      /* fondo oscuro */
  --noche-2:#2a1650;
  --morado:#55279a;
  --violeta:#7b4bd1;
  --lila:#c3a5f0;       /* acento (botones) */
  --lila-claro:#e6dbf7;
  --crema:#f5f0fa;      /* fondo claro */
  --tinta:#2a1f3b;
  --gris:#6c6080;
  --ph:linear-gradient(160deg,#cdb6f2 0%,#7b4bd1 55%,#2a1650 100%);
  --serif:"Poppins",system-ui,sans-serif;
  --sans:"Poppins",system-ui,sans-serif;
  --ancho:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--tinta);background:var(--crema);line-height:1.7;font-size:17px}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.08;margin:0 0 .45em;letter-spacing:-.03em;text-wrap:balance}
h2{font-size:clamp(1.9rem,3.6vw,3rem)}
h2 em,h1 em{font-style:italic;color:var(--violeta)}
h3{font-size:1.75rem;font-weight:400}
p{text-wrap:pretty;margin:0 0 1em}
strong{font-weight:500}
.wrap{max-width:var(--ancho);margin:0 auto;padding:0 28px}
.script{font-family:"Satisfy",cursive;color:var(--violeta);font-size:1.7rem;margin:0 0 .2em}
.dim{color:var(--gris)}
.foto{background-color:var(--lila);background-size:cover;background-position:center}

/* Botones: rectangulares, mayúsculas espaciadas */
.btn{display:inline-block;background:var(--lila);color:var(--noche);text-decoration:none;font:500 .8rem/1 var(--sans);
  letter-spacing:.16em;text-transform:uppercase;padding:18px 34px;border:1px solid var(--lila);cursor:pointer;transition:background .25s,color .25s}
.btn:hover{background:#fff;border-color:#fff}
.btn-line{background:transparent;color:var(--morado);border-color:var(--morado)}
.btn-line:hover{background:var(--morado);color:#fff;border-color:var(--morado)}
.pill{background:var(--lila);color:var(--noche);text-decoration:none;font:500 .74rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;
  padding:13px 24px;border-radius:999px;transition:background .25s;white-space:nowrap}
.pill:hover{background:#fff}

/* Marca en texto (menú y pie) */
.marca-txt{text-decoration:none;display:flex;flex-direction:column;line-height:1;color:#fff}
.marca-txt .m1{font-family:var(--serif);font-size:1.4rem;letter-spacing:.12em;font-weight:400}
.marca-txt .m1 em{font-style:italic;color:var(--lila)}
.marca-txt .m2{font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;margin-top:5px;opacity:.75}

/* Menú */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .35s,box-shadow .35s}
.nav.solido{background:rgba(29,13,54,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.nav-in{display:flex;align-items:center;gap:40px;height:86px;transition:height .35s}
.nav.solido .nav-in{height:70px}
.nav-links{display:flex;gap:30px;margin-left:auto}
.nav-links a{color:#fff;text-decoration:none;font-size:.88rem;opacity:.85;transition:opacity .2s}
.nav-links a:hover{opacity:1}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:12px 8px}
.nav-toggle span{display:block;height:1.5px;background:#fff;margin:6px 0;transition:.3s}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}

/* Portada */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero-foto{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-velo{position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,13,54,.45) 0%,rgba(29,13,54,.1) 35%,rgba(29,13,54,.75) 100%)}
.hero-in{position:relative;width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding-bottom:90px}
.hero-script{color:var(--lila);font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:.4em;padding-bottom:14px;border-bottom:1px solid rgba(195,165,240,.5);display:inline-block}
.hero h1,.hero .h1{font-family:var(--serif);font-weight:300;line-height:1.08;letter-spacing:-.03em;margin:0 0 .45em;font-size:clamp(2.4rem,5.2vw,4.6rem);max-width:16ch}
.hero-sub{max-width:520px;font-size:1.05rem;opacity:.88;margin:0}
@keyframes respira{from{transform:scale(1.02)}to{transform:scale(1.1)}}

/* Nosotros */
.intro{padding:140px 0}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.intro-txt p{color:#3d3150;max-width:520px}
.intro-txt .btn{margin-top:14px}
.intro-fotos{position:relative;height:600px}
.intro-fotos .foto-a{position:absolute;inset:0 18% 14% 0}
.intro-fotos .foto-b{position:absolute;inset:52% 0 0 46%;outline:10px solid var(--crema)}

/* Destinos */
.destinos{background:var(--noche);color:#fff;padding:120px 0 100px}
.dest-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:50px}
.dest-head h2{max-width:13ch}
.dest-head p{max-width:440px;opacity:.7;margin:0}
.flechas{display:flex;gap:10px}
.flechas button{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:none;color:#fff;font-size:1.1rem;cursor:pointer;transition:.25s}
.flechas button:hover{background:var(--lila);border-color:var(--lila);color:var(--noche)}
.carrusel{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding:0 max(28px,calc((100vw - var(--ancho))/2 + 28px))}
.carrusel::-webkit-scrollbar{display:none}
.slide{margin:0;flex:0 0 clamp(250px,24vw,330px);aspect-ratio:3/4.3;position:relative;overflow:hidden;scroll-snap-align:start}
.slide .foto{position:absolute;inset:0;transition:transform .8s}
.slide:hover .foto{transform:scale(1.06)}
.slide::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(29,13,54,.85))}
.slide figcaption{position:absolute;left:22px;right:22px;bottom:20px;z-index:1;font-family:var(--serif);font-size:1.6rem;line-height:1.1}
.dest-pie{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:40px}
.puntos{display:flex;gap:7px}
.puntos i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);transition:.3s}
.puntos i.on{background:var(--lila);width:24px;border-radius:4px}

/* Tour + itinerario */
.tours{padding:140px 0 100px}
.tour{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}
.tour-foto{aspect-ratio:4/5}
.kicker{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--violeta);font-weight:500}
.tour-datos{margin:30px 0 34px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--lila-claro)}
.tour-datos div{padding:18px 0;border-bottom:1px solid var(--lila-claro)}
.tour-datos div+div{padding-left:24px;border-left:1px solid var(--lila-claro)}
.tour-datos dt{font-family:var(--serif);font-size:1.9rem;color:var(--morado);line-height:1}
.tour-datos dd{margin:6px 0 0;font-size:.92rem;color:var(--gris)}
.tour-dias{display:flex;gap:12px;flex-wrap:wrap}
.tour-dias .btn:not(.btn-line){background:var(--morado);border-color:var(--morado);color:#fff}
.tour-dias .btn:not(.btn-line):hover{background:var(--noche);border-color:var(--noche)}

.itinerario{list-style:none;margin:120px 0 0;padding:0;display:grid;grid-template-columns:repeat(var(--cols,4),1fr);border-top:1px solid var(--lila-claro)}
.itinerario li{padding:34px 28px 10px 0;position:relative}
.itinerario li+li{padding-left:28px;border-left:1px solid var(--lila-claro)}
.itinerario .dia{font-family:"Satisfy",cursive;font-size:1.6rem;color:var(--violeta)}
.itinerario h3{font-size:1.55rem;margin:6px 0 14px;color:var(--noche)}
.itinerario p{font-size:.94rem;color:#4a3d5e}
.itinerario strong{color:var(--morado)}
.itinerario .noche{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--violeta);padding-top:12px;border-top:1px dashed var(--lila)}
.aviso{margin:40px 0 0;padding:18px 24px;background:var(--lila-claro);font-size:.92rem;color:var(--noche-2)}

/* Qué incluye */
.incluye{background:var(--crema);padding:140px 0}
.sec-head{margin-bottom:50px;max-width:640px}
.sec-head p{color:var(--gris)}
.inc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.inc{background:var(--noche-2);color:#fff;display:flex;flex-direction:column}
.inc .foto{aspect-ratio:4/3.2}
.inc h3{margin:24px 24px 8px;font-size:1.6rem}
.inc p{margin:0 24px 28px;font-size:.92rem;opacity:.72}

/* Preguntas */
.faq{background:#fff;padding:120px 0}
.faq-in{display:grid;grid-template-columns:1fr 1.6fr;gap:80px}
.faq details{border-bottom:1px solid var(--lila-claro);padding:22px 0}
.faq details:first-child{border-top:1px solid var(--lila-claro)}
.faq summary{font-family:var(--serif);font-size:1.45rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;color:var(--noche)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:300;color:var(--violeta);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:.7em 0 0;color:var(--gris);max-width:620px}

/* Contacto */
.contacto{background:var(--noche);color:#fff;padding:130px 0}
.contacto .script{color:var(--lila)}
.contacto .dim{color:rgba(255,255,255,.6)}
.contacto-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;align-items:start}
.form-wa{display:grid;gap:18px;margin-top:30px}
.form-wa label{display:grid;gap:4px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--lila)}
.form-wa input,.form-wa textarea{font:300 1.05rem var(--sans);padding:10px 0;border:0;border-bottom:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;
  letter-spacing:0;text-transform:none;color-scheme:dark}
.form-wa input::placeholder{color:rgba(255,255,255,.35)}
.form-wa input:focus,.form-wa textarea:focus{outline:none;border-bottom-color:var(--lila)}
.form-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.form-wa .btn{justify-self:start;margin-top:12px}
.contacto-logo{width:190px;background:#fff;border-radius:50%;padding:16px;margin-bottom:34px}
.contacto-datos ul{list-style:none;margin:0;padding:0}
.contacto-datos li{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);display:grid;gap:2px}
.contacto-datos span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--lila)}
.contacto-datos a{text-decoration:none;font-size:1.1rem}
.contacto-datos a:hover{color:var(--lila)}

/* Pie */
.pie{background:#140826;color:rgba(255,255,255,.7);padding:60px 0 30px;font-size:.88rem}
.pie-in{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.08)}
.pie nav,.pie-redes{display:flex;gap:24px;flex-wrap:wrap}
.pie a{text-decoration:none}
.pie nav a:hover,.pie-redes a:hover{color:var(--lila)}
.pie-copy{padding-top:24px;font-size:.78rem;opacity:.6}

/* WhatsApp flotante */
.wa-flot{position:fixed;right:22px;bottom:22px;z-index:60;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;
  display:grid;place-items:center;box-shadow:0 10px 26px -8px rgba(0,0,0,.45);transition:transform .2s}
.wa-flot:hover{transform:scale(1.08)}

/* Aparecer al bajar */
.ver{opacity:0;transform:translateY(30px);transition:opacity 1s,transform 1s}
.ver.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.ver{opacity:1;transform:none}.hero-foto{animation:none}html{scroll-behavior:auto}}

/* Tablet */
@media (max-width:1080px){
  .nav-links,.nav .pill{display:none}
  .nav-toggle{display:block;margin-left:auto}
  .nav.abierto{background:var(--noche)}
  .nav.abierto .nav-links{display:flex;position:fixed;inset:86px 0 auto;flex-direction:column;gap:0;background:var(--noche);padding:10px 28px 30px}
  .nav.solido.abierto .nav-links{top:70px}
  .nav.abierto .nav-links a{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:1.05rem}
  .itinerario{grid-template-columns:1fr 1fr}
  .itinerario li:nth-child(3){padding-left:0;border-left:0}
  .itinerario li:nth-child(n+3){border-top:1px solid var(--lila-claro)}
  .inc-grid{grid-template-columns:1fr 1fr}
}
/* Celular */
@media (max-width:760px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .hero-in{flex-direction:column;align-items:flex-start;padding-bottom:60px}
  .intro,.tours,.faq,.contacto{padding:80px 0}
  .destinos{padding:80px 0 70px}
  .incluye{padding:80px 0}
  .intro-grid,.tour,.faq-in,.contacto-grid{grid-template-columns:1fr;gap:44px}
  .intro-fotos{height:420px}
  .dest-head{flex-direction:column;align-items:flex-start}
  .flechas{display:none}
  .carrusel{padding:0 20px}
  .slide{flex-basis:72vw}
  .dest-pie{flex-direction:column;align-items:flex-start}
  .tour-foto{aspect-ratio:4/3.4}
  .itinerario{grid-template-columns:1fr;margin-top:70px}
  .itinerario li,.itinerario li+li{padding:28px 0 6px;border-left:0}
  .itinerario li+li{border-top:1px solid var(--lila-claro)}
  .inc-grid{grid-template-columns:1fr}
  .form-2{grid-template-columns:1fr}
  .pie-in{flex-direction:column;align-items:flex-start}
}

/* Logo: va sobre una placa blanca porque el logo tiene fondo blanco */
.nav-logo{align-self:flex-start;background:#fff;border-radius:0 0 22px 22px;padding:10px 14px 12px;box-shadow:0 12px 30px -12px rgba(0,0,0,.45);transition:padding .35s}
.nav-logo img{height:112px;width:auto;transition:height .35s}
.nav.solido .nav-logo{padding:6px 10px 8px;border-radius:0 0 16px 16px}
.nav.solido .nav-logo img{height:64px}
.pie-logo{background:#fff;border-radius:50%;padding:14px;display:block}
.pie-logo img{width:120px}
@media (max-width:760px){
  .nav-logo img{height:80px}
  .nav.solido .nav-logo img{height:52px}
}

.hero-video{width:100%;height:100%;object-fit:cover;display:block}

/* Diapositivas de la portada */
.hero-slide{position:absolute;inset:0;display:flex;align-items:flex-end;opacity:0;visibility:hidden;transition:opacity 1.2s ease,visibility 0s 1.2s}
.hero-slide.on{opacity:1;visibility:visible;transition:opacity 1.2s ease}
.hero-slide .hero-in > div{transform:translateY(20px);opacity:0;transition:transform 1s .4s,opacity 1s .4s}
.hero-slide.on .hero-in > div{transform:none;opacity:1}
.hero-puntos{position:absolute;z-index:3;left:50%;bottom:30px;transform:translateX(-50%);display:flex;gap:10px}
.hero-puntos button{width:44px;height:24px;border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center}
.hero-puntos i{display:block;width:100%;height:2px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.hero-puntos i::after{content:"";position:absolute;inset:0;background:var(--lila);transform:scaleX(0);transform-origin:left}
.hero-puntos button.on i::after{animation:llenar var(--seg,7s) linear forwards}
@keyframes llenar{to{transform:scaleX(1)}}
@media (max-width:760px){.hero-puntos{bottom:18px}}
