:root{
    --marino:#0A2342; --marino-2:#061629; --agua:#C9A227; --agua-2:#F1DFA3;
    --coral:#D4AF37; --coral-2:#F6ECC4; --rojo:#C8102E; --rojo-2:#FBE3E6; --blanco:#F7F8FA; --tinta:#0F1B2D; --gris:#5C6B80;
    --wa:#25D366;
    --ff-d:"Bricolage Grotesque",system-ui,sans-serif; --ff-b:"Instrument Sans",system-ui,sans-serif;
    --r:18px; --max:1120px;
  }
  *{box-sizing:border-box} html{scroll-behavior:smooth}
  body{margin:0;font-family:var(--ff-b);color:var(--tinta);background:var(--blanco);line-height:1.55;-webkit-font-smoothing:antialiased}
  h1,h2,h3{font-family:var(--ff-d);font-weight:700;line-height:1.05;margin:0;letter-spacing:-.01em}
  h2{font-size:clamp(2rem,4.2vw,3.2rem)}
  p{margin:0}
  a{color:inherit}
  img{max-width:100%;display:block}
  .wrap{width:min(var(--max),calc(100% - 2.5rem));margin-inline:auto}
  section{padding:5.5rem 0}
  :focus-visible{outline:3px solid var(--coral);outline-offset:3px}

  /* Botones */
  .btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--ff-d);font-weight:700;font-size:1.05rem;padding:1rem 1.5rem;border-radius:999px;border:0;cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .15s}
  .btn:active{transform:scale(.98)}
  .btn-wa{background:var(--wa);color:#04331a;box-shadow:0 10px 30px rgba(37,211,102,.35)}
  .btn-wa svg{width:22px;height:22px}
  .btn-coral{background:var(--coral);color:#0A2342}
  .btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5)}

  /* Nav */
  .nav{position:fixed;inset:0 0 auto 0;z-index:50;padding:.9rem 0;transition:background .3s,backdrop-filter .3s}
  .nav.solid{background:rgba(13,59,79,.92);backdrop-filter:blur(10px)}
  .nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem}
  .logo{font-family:var(--ff-d);font-weight:800;font-size:1.35rem;color:#fff;text-decoration:none;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}
  .logo i{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#FFF8DC,var(--agua) 60%,#8A6D1E)}
  .nav ul{display:none;list-style:none;margin:0;padding:0;gap:1.6rem}
  .nav ul a{color:#fff;text-decoration:none;font-weight:500;opacity:.9}
  .nav .btn{padding:.65rem 1.1rem;font-size:.95rem}
  @media(min-width:760px){.nav ul{display:flex}}

  /* HERO */
  .hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;color:#fff;padding:7rem 0 0;background:#0A2342}
  .hero-bg,.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 60%}
  .hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,22,41,.86) 0%,rgba(6,22,41,.6) 38%,rgba(6,22,41,.08) 62%,rgba(6,22,41,0) 100%),linear-gradient(180deg,rgba(6,22,41,.35) 0%,rgba(6,22,41,0) 35%,rgba(6,22,41,.55) 100%)}
  .hero h1 .oro{color:var(--agua);display:block;font-size:1.3em;line-height:1;letter-spacing:-.02em}
  .hero .sun{position:absolute;left:50%;top:52%;width:min(38vw,320px);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);
    background:radial-gradient(circle,#FFF8DC 0%,#E8C547 40%,rgba(201,162,39,0) 72%);filter:blur(2px);animation:sun 18s ease-in-out infinite alternate}
  @keyframes sun{from{transform:translate(-50%,-46%)}to{transform:translate(-50%,-56%)}}
  .sea{position:absolute;left:0;right:0;bottom:0;height:34%;overflow:hidden}
  .wave{position:absolute;left:0;bottom:0;width:200%;height:100%;fill:var(--marino);opacity:.9;animation:drift 22s linear infinite}
  .wave.w2{fill:#0E2E57;opacity:.9;animation-duration:15s;animation-direction:reverse;bottom:10%}
  .wave.w3{fill:#1B3A6B;opacity:.85;animation-duration:30s;bottom:22%}
  @keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  .ship{position:absolute;bottom:26%;left:-30%;width:min(34vw,300px);animation:sail 60s linear infinite;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}
  @keyframes sail{from{left:-30%}to{left:110%}}
  .hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;display:none}
  .hero.has-video video{display:block}
  .hero-in{position:relative;z-index:2;display:grid;gap:2rem;padding-bottom:3.5rem}
  @media(min-width:900px){.hero-in{grid-template-columns:minmax(0,560px);justify-content:start;padding-bottom:4rem;gap:1.6rem}}
  .hero h1{font-size:clamp(2.3rem,4.6vw,3.4rem);font-weight:800;text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.25)}
  .hero .sub{font-size:clamp(1.1rem,2vw,1.35rem);max-width:34ch;margin-top:1rem;opacity:.95}
  .hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

  /* Slider de cuotas */
  .cuotas{background:rgba(6,22,41,.55);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.4rem 1.4rem 1.6rem;box-shadow:0 30px 60px rgba(0,0,0,.3)}
  .cuotas label{display:block;font-weight:600;font-size:1.05rem}
  .cuotas .val{font-family:var(--ff-d);font-size:clamp(2.2rem,5vw,2.8rem);font-weight:800;line-height:1;margin:.35rem 0 .6rem}
  .cuotas .val small{font-size:1rem;font-weight:500;font-family:var(--ff-b);opacity:.85;margin-left:.3rem}
  input[type=range]{width:100%;accent-color:var(--coral);height:2.4rem;cursor:pointer}
  .cuotas .res{margin-top:.9rem;display:grid;gap:.6rem}
  .cuotas .hit{display:flex;justify-content:space-between;align-items:center;gap:.6rem;background:rgba(255,255,255,.14);border-radius:12px;padding:.65rem .8rem;font-size:.95rem}
  .cuotas .hit b{font-family:var(--ff-d)}
  .cuotas .hit span{opacity:.85}
  .cuotas .none{opacity:.85;font-size:.95rem}
  .cuotas .fine{font-size:.78rem;opacity:.7;margin-top:.8rem}

  /* Salidas */
  .head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:2rem}
  .head p{color:var(--gris);max-width:48ch}
  .chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
  .chip{border:1.5px solid var(--marino);background:#fff;color:var(--marino);border-radius:999px;padding:.45rem .95rem;font-weight:600;cursor:pointer;font-family:var(--ff-b)}
  .chip[aria-pressed=true]{background:var(--marino);color:#fff}
  .grid{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
  .card{background:#fff;border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 0 rgba(13,59,79,.08),0 12px 30px -18px rgba(13,59,79,.35)}
  .card .top{padding:1.1rem 1.2rem 0;display:flex;justify-content:space-between;align-items:center}
  .card .tag{font-size:.78rem;font-weight:600;color:#5A4500;background:var(--agua-2);border-radius:999px;padding:.25rem .65rem}
  .card .nav-name{font-size:.85rem;color:var(--gris)}
  .card .art{height:110px;margin:.9rem 1.2rem 0;border-radius:12px;background:linear-gradient(160deg,#1B3A6B 0%,var(--marino) 100%);position:relative;overflow:hidden}
  .card .art::after{content:"";position:absolute;inset:auto -10% -40% -10%;height:70%;border-radius:50%;background:rgba(255,255,255,.18)}
  .card .art b{position:absolute;left:1rem;bottom:.7rem;color:#fff;font-family:var(--ff-d);font-size:1.15rem;text-shadow:0 1px 8px rgba(0,0,0,.3)}
  .card .body{padding:1rem 1.2rem 1.2rem;display:grid;gap:.35rem}
  .card h3{font-size:1.2rem}
  .card .meta{color:var(--gris);font-size:.95rem}
  .card .price{display:flex;align-items:baseline;gap:.5rem;margin-top:.4rem}
  .card .price b{font-family:var(--ff-d);font-size:1.7rem;color:var(--marino)}
  .card .price span{color:var(--gris);font-size:.9rem}
  .card .cuota{color:var(--coral);font-weight:600;font-size:.95rem}
  .card .btn{margin-top:.8rem;justify-content:center;background:var(--marino);color:#fff;padding:.8rem 1rem;font-size:.98rem}
  .fine{font-size:.82rem;color:var(--gris);margin-top:1.4rem;max-width:70ch}

  /* Cotizador */
  .cotiza{background:var(--marino);color:#fff}
  .cotiza .wrap{display:grid;gap:2.5rem}
  @media(min-width:900px){.cotiza .wrap{grid-template-columns:.9fr 1.1fr;align-items:start}}
  .cotiza p.lead{opacity:.9;margin-top:1rem;max-width:40ch;font-size:1.1rem}
  .form{background:#fff;color:var(--tinta);border-radius:24px;padding:1.6rem;display:grid;gap:1rem}
  .field{display:grid;gap:.35rem}
  .field label{font-weight:600;font-size:.95rem}
  .field select,.field input{font:inherit;padding:.8rem .9rem;border:1.5px solid #CFDCE3;border-radius:12px;background:#fff;color:var(--tinta)}
  .row{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
  .preview{background:var(--blanco);border-radius:12px;padding:.9rem 1rem;font-size:.95rem;color:var(--gris);border-left:4px solid var(--wa)}
  .preview b{color:var(--tinta)}

  /* Por qué */
  .why{display:grid;gap:1.4rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:2.5rem}
  .why div{border-top:3px solid var(--agua);padding-top:1rem}
  .why h3{font-size:1.25rem;margin-bottom:.4rem}
  .why p{color:var(--gris)}

  /* Navieras */
  .navieras{background:#fff;padding:2.5rem 0;border-block:1px solid #E3ECF0}
  .marquee{overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
  .marquee div{display:inline-block;animation:drift 28s linear infinite}
  .marquee span{display:inline-block;font-family:var(--ff-d);font-weight:700;font-size:1.5rem;color:var(--marino);opacity:.55;padding:0 2.2rem}

  /* Reseñas */
  .rev{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:2rem}
  .rev blockquote{margin:0;background:#fff;border-radius:var(--r);padding:1.4rem;font-size:1.05rem;box-shadow:0 12px 30px -18px rgba(13,59,79,.35)}
  .rev blockquote footer{margin-top:.9rem;color:var(--gris);font-size:.92rem}
  .stars{color:var(--coral);letter-spacing:.1em;font-size:.95rem}

  /* Equipo */
  .team{display:grid;gap:2rem;align-items:center}
  @media(min-width:800px){.team{grid-template-columns:.8fr 1.2fr}}
  .team .photo{aspect-ratio:4/5;border-radius:24px;background:linear-gradient(160deg,#1B3A6B,var(--marino));border:2px solid var(--agua);display:grid;place-items:center;color:#fff;font-family:var(--ff-d);font-size:1.1rem;text-align:center;padding:1rem}
  .team p{color:var(--gris);font-size:1.1rem;margin-top:1rem;max-width:52ch}

  /* Footer */
  footer{background:var(--marino-2);color:#B9CBD3;padding:3rem 0 6rem;font-size:.9rem}
  footer .wrap{display:grid;gap:1.4rem}
  footer a{color:#fff;text-decoration:none}
  footer .links{display:flex;flex-wrap:wrap;gap:1.2rem}
  footer .legal{line-height:1.7}

  /* WhatsApp flotante */
  .float{position:fixed;right:1rem;bottom:1rem;z-index:60;background:var(--wa);color:#04331a;border-radius:999px;padding:.9rem 1.2rem;font-family:var(--ff-d);font-weight:700;text-decoration:none;display:flex;align-items:center;gap:.6rem;box-shadow:0 12px 30px rgba(37,211,102,.45)}
  .float svg{width:24px;height:24px}
  @media(min-width:760px){.float span{display:inline}}

  @media(prefers-reduced-motion:reduce){
    .wave,.ship,.sun,.marquee div{animation:none!important}
    html{scroll-behavior:auto}
  }

/* ===== páginas internas ===== */
.page-hero{position:relative;color:#fff;padding:8.5rem 0 4rem;background:linear-gradient(160deg,var(--marino-2),var(--marino) 60%,#1B3A6B);overflow:hidden}
.page-hero.cuba{background:linear-gradient(160deg,#061629,#0A2342 55%,#1B3A6B)}
.page-hero.paq{background:linear-gradient(160deg,#061629,#0A2342 50%,#8A6D1E)}
.page-hero h1{font-size:clamp(2.4rem,6vw,4.4rem);font-weight:800;text-wrap:balance;max-width:16ch}
.page-hero .sub{font-size:1.15rem;max-width:44ch;margin-top:1rem;opacity:.95}
.page-hero .hero-cta{margin-top:1.6rem}
.page-hero::after{content:"";position:absolute;right:-10%;bottom:-40%;width:60vw;max-width:700px;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.07)}
.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:-1.6rem 0 2.2rem;position:relative;z-index:2}
.tab{background:#fff;border:1.5px solid #CFDCE3;border-radius:999px;padding:.6rem 1.05rem;font-weight:600;cursor:pointer;font-family:var(--ff-b);color:var(--marino)}
.tab[aria-selected=true]{background:var(--marino);color:#fff;border-color:var(--marino)}
.panel{display:none}.panel.on{display:block}
.rutas{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.ruta{background:#fff;border-radius:var(--r);padding:1.2rem;box-shadow:0 12px 30px -18px rgba(13,59,79,.35);display:grid;gap:.3rem}
.ruta .r{font-family:var(--ff-d);font-size:1.35rem;font-weight:700}
.ruta .r small{font-family:var(--ff-b);font-weight:500;color:var(--gris);font-size:.9rem;margin-left:.4rem}
.ruta .p{display:flex;align-items:baseline;gap:.4rem;margin-top:.3rem}
.ruta .p b{font-family:var(--ff-d);font-size:1.6rem;color:var(--marino)}
.ruta .p span{color:var(--gris);font-size:.88rem}
.ruta ul{margin:.3rem 0 0;padding-left:1.1rem;color:var(--gris);font-size:.93rem}
.ruta .btn{margin-top:.7rem;justify-content:center;background:var(--marino);color:#fff;padding:.75rem 1rem;font-size:.95rem}
.cuba .ruta .btn,.cuba .btn-acc{background:var(--marino)}
.faq{display:grid;gap:.6rem;max-width:760px;margin-top:2rem}
.faq details{background:#fff;border-radius:14px;padding:1rem 1.2rem;box-shadow:0 1px 0 rgba(13,59,79,.08)}
.faq summary{cursor:pointer;font-weight:600;font-family:var(--ff-d);font-size:1.08rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";color:var(--agua);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{color:var(--gris);margin-top:.6rem}
.aviso{background:#FFF4E5;border-left:4px solid #E9A23B;border-radius:12px;padding:1rem 1.2rem;color:#5A3E10;font-size:.95rem;max-width:760px;margin-top:2rem}
.lineas{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:2.5rem}
.linea{border-radius:var(--r);padding:1.5rem;color:#fff;text-decoration:none;display:grid;gap:.5rem;min-height:190px;align-content:end;position:relative;overflow:hidden}
.linea h3{font-size:1.5rem}.linea p{opacity:.9}
.linea.c{background:linear-gradient(160deg,#1B3A6B,var(--marino))}
.linea.q{background:linear-gradient(160deg,#0A2342,#061629);border:1.5px solid var(--agua)}
.linea.p{background:linear-gradient(160deg,#C9A227,#8A6D1E)}
.linea.v{background:linear-gradient(160deg,#3A4A63,#0F1B2D)}
.linea span{font-weight:600;font-size:.95rem}
.legal-page{padding-top:8rem;max-width:760px}
.legal-page h1{font-size:2.4rem;margin-bottom:1.5rem}
.legal-page h2{font-size:1.4rem;margin:2rem 0 .6rem}
.legal-page p,.legal-page li{color:var(--gris)}
.nav ul a[aria-current=page]{border-bottom:2px solid var(--agua);padding-bottom:2px}

.page-hero.photo{min-height:72svh;display:grid;align-items:end;padding-bottom:4rem;background:#0A2342}
.page-hero.photo::after{display:none}
.page-hero.photo .hero-bg img{object-position:62% 60%}
.page-hero h1 .oro{color:var(--agua);display:block;font-size:1.3em;line-height:1;letter-spacing:-.02em}
@media(max-width:700px){.page-hero.photo .hero-bg img{object-position:70% 60%}}

.team .photo{overflow:hidden;padding:0}.team .photo img{width:100%;height:100%;object-fit:cover;display:block}

.logo img{height:64px;width:auto;display:block}
.logo span{display:flex;flex-direction:column;line-height:1;font-size:1.25rem}.logo small{font-family:var(--ff-b);font-weight:500;font-size:.68rem;letter-spacing:.14em;color:var(--agua);margin-top:.3rem}
@media(max-width:700px){.logo img{height:50px}.logo span{font-size:1.05rem}}
.nav{padding:.5rem 0}

/* ===== rojo de marca (acento secundario) ===== */
.btn-coral{background:var(--rojo);color:#fff}
.page-hero.cuba h1 .oro{color:#FF4D5E}
.cuba .tab[aria-selected=true]{background:var(--rojo);border-color:var(--rojo)}
.cuba .ruta .btn{background:var(--rojo)}
.card .cuota{color:var(--rojo)}
.linea.q{border:1.5px solid var(--rojo)}
.linea.q span,.linea.c span,.linea.p span,.linea.v span{color:#fff}
.linea span::after{content:" →"}
footer{border-top:4px solid var(--rojo)}
.card .tag{background:var(--rojo-2);color:var(--rojo)}

.lang{color:#fff;text-decoration:none;font-weight:700;font-family:var(--ff-d);border:1.5px solid rgba(255,255,255,.5);border-radius:999px;padding:.4rem .7rem;font-size:.85rem;margin-right:.6rem}
@media(max-width:700px){.lang{padding:.35rem .55rem;font-size:.8rem;margin-right:.3rem}}

/* ===== barra blanca ===== */
.nav,.nav.solid{background:#fff;backdrop-filter:none;box-shadow:0 1px 0 rgba(10,35,66,.08),0 8px 24px -16px rgba(10,35,66,.25);padding:.4rem 0}
.nav ul a{color:var(--marino);opacity:1}
.nav ul a[aria-current=page]{border-bottom:2px solid var(--rojo)}
.logo img{height:84px;width:auto;display:block}
.lang{color:var(--marino);border-color:var(--marino)}
@media(max-width:700px){.logo img{height:62px}}
.hero{padding-top:7.5rem}
.page-hero{padding-top:9rem}

.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;color:var(--gris)}.consent input{margin-top:.25rem;accent-color:var(--rojo)}
.card .body .btn{background:var(--marino)}
.ruta .r{color:var(--marino)}

.page-hero.paq.photo .hero-bg img{object-position:75% 55%}

/* ===== menú móvil ===== */
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;align-items:center;margin-left:auto}
.burger span{display:block;width:24px;height:2.5px;background:var(--marino);border-radius:2px;transition:transform .2s,opacity .2s}
@media(max-width:759px){
  .burger{display:flex}
  .nav .wrap{flex-wrap:wrap}
  .nav ul{display:none;width:100%;order:10;flex-direction:column;gap:0;padding:.5rem 0 .8rem;border-top:1px solid #E3ECF0;margin-top:.5rem}
  .nav ul li a[aria-current=page]{display:inline-block;border-bottom:2px solid var(--rojo)}
  .nav ul li a{display:block;padding:.75rem .2rem;font-size:1.05rem}
  .menu-open .nav ul{display:flex}
  .menu-open .burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .menu-open .burger span:nth-child(2){opacity:0}
  .menu-open .burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
}
@media(min-width:760px){.nav ul{gap:1.2rem}.nav ul a{font-size:.98rem}}

.page-hero.photo.vuelos .hero-bg img{object-position:80% 55%}

.page-hero.photo.hoteles .hero-bg img{object-position:78% 55%}
