:root{
  --blue:#16345C; --blue-d:#0F2540; --blue-2:#22518A;
  --gold:#D6A339; --gold-d:#B8862B;
  --paper:#F4F6FA; --card:#FFFFFF; --ink:#18202B; --muted:#5B6675;
  --line:rgba(22,52,92,.12); --white:#fff;
  --disp:'Sora',-apple-system,BlinkMacSystemFont,sans-serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --maxw:1200px; --r:14px;
  --sh:0 1px 2px rgba(22,52,92,.05),0 14px 34px rgba(22,52,92,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;line-height:1.12;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.eyebrow{font-family:var(--disp);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-d)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--disp);font-weight:600;font-size:15px;border:none;border-radius:12px;padding:13px 22px;cursor:pointer;transition:.18s}
.btn-gold{background:var(--gold);color:#231a00}.btn-gold:hover{background:var(--gold-d);color:#fff}
.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:var(--blue-2)}
.btn-line{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1.5px solid var(--line);color:var(--blue);border-radius:11px;padding:10px 16px;font-weight:600;font-size:14px;font-family:var(--body);cursor:pointer;transition:.15s}
.btn-line:hover{border-color:var(--gold);color:var(--gold-d)}

/* topbar */
.topbar{background:var(--blue-d);color:rgba(255,255,255,.9);text-align:center;padding:8px 12px;font-size:13px}
.topbar b{color:var(--gold)}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr .row{display:flex;align-items:center;gap:22px;height:70px}
.brand{display:flex;align-items:center;gap:12px;cursor:pointer}
.brand .tile{width:42px;height:42px}
.brand .wm{font-family:var(--disp);font-weight:700;font-size:21px;letter-spacing:-.02em;color:var(--blue)}
.brand .wm span{color:var(--gold-d)}
.nav{display:flex;gap:20px;margin-left:6px}
.nav a{font-size:14.5px;font-weight:500;color:var(--ink);cursor:pointer;opacity:.85}
.nav a:hover{opacity:1;color:var(--blue)}
.hdr .sp{flex:1}
.hdr .cta{display:flex;gap:10px;align-items:center}
.callbtn{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;border-radius:11px;padding:11px 18px;font-family:var(--disp);font-weight:600;font-size:15px}
.callbtn:hover{background:var(--blue-2)}
.callbtn .num{letter-spacing:.02em}

/* hero */
.hero{background:linear-gradient(rgba(15,37,64,.82),rgba(15,37,64,.9)),url('https://images.unsplash.com/photo-1547047549-0d757aaa848a?auto=format&fit=crop&w=1600&q=70') center/cover;color:#fff;position:relative}
.hero .in{position:relative;padding:66px 0 70px;max-width:760px}
.hero h1{font-size:50px;letter-spacing:-.02em;margin:14px 0 0}
.hero h1 .u{color:var(--gold)}
.hero .sub{color:rgba(255,255,255,.82);font-size:18px;margin-top:16px;max-width:620px}
.hero .disc{color:rgba(255,255,255,.7);font-size:13.5px;margin-top:12px;max-width:620px}
.search{margin-top:26px;background:#fff;border-radius:16px;padding:10px;display:flex;gap:8px;box-shadow:0 18px 44px rgba(0,0,0,.3);max-width:600px}
.search input{flex:1;min-width:0;border:none;background:#F1F4F8;border-radius:11px;padding:15px 14px;font-size:15px;font-family:var(--body);color:var(--ink);outline:none}
.search .btn{white-space:nowrap}
.hero .cta2{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap;align-items:center}
.hero .callbig{display:inline-flex;align-items:center;gap:9px;background:var(--gold);color:#231a00;border-radius:12px;padding:14px 22px;font-family:var(--disp);font-weight:700;font-size:16px}
.hero .callbig:hover{background:#fff}
.hero .trust{display:flex;gap:20px;margin-top:22px;flex-wrap:wrap;color:rgba(255,255,255,.82);font-size:13px}
.hero .trust b{color:#fff}

/* trust strip */
.strip{background:var(--blue);color:#fff;padding:16px 0}
.strip .in{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;font-size:14px}
.strip .in span{display:flex;align-items:center;gap:8px}
.strip .rh{color:var(--gold)}

/* segmented */
.seg-wrap{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:70px;z-index:40}
.seg{display:flex;gap:6px;overflow-x:auto;padding:12px 0}
.seg button{flex:none;background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:10px 17px;font-family:var(--body);font-weight:600;font-size:14px;cursor:pointer;transition:.15s;white-space:nowrap}
.seg button:hover{border-color:var(--gold)}
.seg button.on{background:var(--blue);color:#fff;border-color:var(--blue)}

/* panels */
.panels{padding:34px 0 20px;min-height:56vh}
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.phead h2{font-size:27px}
.phead .cnt{color:var(--muted);font-size:14px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.filters select{flex:1 1 170px;min-height:46px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 13px;font-size:14px;font-family:var(--body);color:var(--ink);cursor:pointer;outline:none}
.filters select:focus{border-color:var(--gold)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:18px}
.hcard,.pcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column;transition:.18s}
.hcard:hover,.pcard:hover{transform:translateY(-3px);box-shadow:0 22px 46px rgba(22,52,92,.14)}
.hcard-img,.pcard-img{height:158px;background-size:cover;background-position:center;position:relative}
.pin{position:absolute;left:10px;bottom:10px;font-size:11px;font-weight:600;letter-spacing:.02em;color:#fff;background:rgba(15,37,64,.66);padding:4px 9px;border-radius:7px}
.badge{position:absolute;top:10px;left:10px;background:var(--gold);color:#231a00;font-size:11px;font-weight:700;padding:4px 9px;border-radius:7px}
.hcard-b,.pcard-b{padding:14px 15px 16px;display:flex;flex-direction:column;flex:1}
.tag-chain{color:var(--gold-d);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.hcard-b h3,.pcard-b h3{font-size:17px;margin-top:5px;color:var(--ink)}
.hcard-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}
.chip{background:rgba(22,52,92,.08);color:var(--blue);font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:7px}
.stars{color:var(--gold);font-size:13px;letter-spacing:1px}
.hcard-b .btn-line,.pcard-b .btn-line{margin-top:13px}
.empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:44px 0}

/* call-to-compare panels (vuelos/cruceros/tours) */
.ctc{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh);padding:40px;text-align:center;max-width:760px;margin:0 auto}
.ctc .ic{font-size:40px}
.ctc h3{font-size:24px;margin:10px 0 8px}
.ctc p{color:var(--muted);max-width:520px;margin:0 auto 20px}
.ctc .callbig{display:inline-flex;align-items:center;gap:9px;background:var(--blue);color:#fff;border-radius:12px;padding:14px 24px;font-family:var(--disp);font-weight:700;font-size:16px}
.ctc .callbig:hover{background:var(--blue-2)}

/* dest grid */
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.dcard{position:relative;height:180px;border:none;border-radius:var(--r);overflow:hidden;cursor:pointer;background-size:cover;background-position:center;color:#fff;text-align:left;padding:0}
.dcard-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,37,64,.05),rgba(15,37,64,.75))}
.dcard .dregion{position:absolute;top:11px;left:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.9)}
.dcard .dname{position:absolute;left:12px;bottom:11px;font-family:var(--disp);font-weight:600;font-size:19px}

/* how it works */
.how{background:var(--blue);color:#fff;padding:60px 0}
.how .eyebrow{color:var(--gold)}
.how h2{font-size:30px;margin-top:10px;color:#fff}
.how .g{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px}
.how .step .n{font-family:var(--disp);font-size:30px;font-weight:700;color:var(--gold)}
.how .step h3{font-size:19px;margin-top:8px;color:#fff}
.how .step p{color:rgba(255,255,255,.75);margin-top:7px;font-size:14.5px}
.how .fee{margin-top:28px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:16px 18px;font-size:14px;color:rgba(255,255,255,.9)}
.how .fee b{color:var(--gold)}

/* reviews */
.reviews{padding:56px 0}
.reviews .eyebrow{color:var(--gold-d)}
.reviews h2{font-size:29px;margin-top:8px}
.rev-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:22px 2px 8px;scrollbar-width:none}
.rev-track::-webkit-scrollbar{display:none}
.rev-card{flex:0 0 330px;scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--sh)}
.rev-stars{color:var(--gold);font-size:16px;letter-spacing:2px}
.rev-text{margin:12px 0 16px;color:var(--ink);font-size:15px;line-height:1.6}
.rev-who{display:flex;align-items:center;gap:11px}
.rev-av{width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:600;font-size:17px;flex:none}
.rev-name{font-family:var(--disp);font-weight:600;font-size:15px}
.rev-city{color:var(--muted);font-size:12.5px}

/* callback (cotización) */
.cb{padding:20px 0 60px}
.cb .box{background:linear-gradient(120deg,var(--blue),var(--blue-2));border-radius:22px;padding:38px;color:#fff;display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:center}
.cb h2{font-size:27px;color:#fff}
.cb p{color:rgba(255,255,255,.9);margin-top:8px}
.cb .or{display:flex;align-items:center;gap:10px;margin-top:16px;color:rgba(255,255,255,.85);font-size:14px}
.cb .or .callbig{display:inline-flex;align-items:center;gap:8px;background:var(--gold);color:#231a00;border-radius:11px;padding:11px 18px;font-family:var(--disp);font-weight:700}
.cb-form{background:#fff;border-radius:16px;padding:20px}
.cb-form label{font-size:12.5px;font-weight:600;color:var(--muted);display:block;margin:8px 0 4px}
.cb-form input{width:100%;border:1px solid var(--line);border-radius:11px;padding:13px;font-size:15px;font-family:var(--body);outline:none;color:var(--ink)}
.cb-form input:focus{border-color:var(--gold)}
.cb-form .btn{width:100%;margin-top:14px}
.cb-form .priv{font-size:11.5px;color:var(--muted);margin-top:10px;text-align:center}
.cb .ok{display:none;background:#fff;border-radius:16px;padding:28px;text-align:center;color:var(--ink)}
.cb .ok .big{font-size:40px}

/* footer */
.ft{background:var(--blue-d);color:rgba(255,255,255,.72);padding:48px 0 30px}
.ft .top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:30px}
.ft .wm{font-family:var(--disp);font-weight:700;font-size:22px;color:#fff}
.ft .wm span{color:var(--gold)}
.ft .disc{margin-top:12px;font-size:13px;max-width:460px}
.ft h5{color:#fff;font-family:var(--disp);font-size:13px;margin-bottom:11px}
.ft ul{list-style:none}.ft li{margin-bottom:8px;font-size:14px;cursor:pointer}.ft li:hover{color:var(--gold)}
.ft .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;font-size:12.5px;line-height:1.7}
.legal-link{color:var(--gold);text-decoration:underline;cursor:pointer}

/* modal */
.overlay{position:fixed;inset:0;background:rgba(15,37,64,.55);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.overlay.open{display:flex}
.modal{background:#fff;border-radius:20px;max-width:640px;width:100%;padding:26px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.4);max-height:82vh;overflow-y:auto}
.modal .x{position:absolute;top:14px;right:16px;font-size:22px;color:var(--muted);cursor:pointer;background:none;border:none}
.modal h3{font-size:23px;margin-bottom:6px;padding-right:30px;color:var(--blue)}
.legal-body h4{font-family:var(--disp);font-size:15px;margin:16px 0 4px;color:var(--ink)}
.legal-body p{font-size:14px;color:var(--muted);line-height:1.65}

/* cookies */
.cookiebar{position:fixed;left:14px;right:14px;bottom:14px;z-index:90;background:var(--blue-d);color:#fff;border-radius:14px;padding:14px 16px;display:none;align-items:center;gap:14px;box-shadow:0 18px 44px rgba(0,0,0,.35);max-width:780px;margin:0 auto}
.cookiebar.show{display:flex}
.cookiebar p{font-size:13px;color:rgba(255,255,255,.85);flex:1;margin:0}
.cookiebar .btn-line{color:#fff;border-color:rgba(255,255,255,.4);min-height:40px}
.ck-acts{display:flex;gap:8px;flex:none}

/* floating call + mobile bar */
.floaters{position:fixed;right:18px;bottom:20px;z-index:60}
.floaters a{display:inline-flex;align-items:center;gap:9px;background:var(--gold);color:#231a00;border-radius:999px;padding:14px 20px;font-family:var(--disp);font-weight:700;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.mbar{display:none}

@media(max-width:900px){
  .nav{display:none}
  .hero h1{font-size:36px}
  .how .g{grid-template-columns:1fr}
  .cb .box{grid-template-columns:1fr}
  .ft .top{grid-template-columns:1fr}
}
@media(max-width:760px){
  .hdr .cta .callbtn{display:none}
  .hdr .row{height:60px}
  .seg-wrap{top:60px}
  .search{flex-direction:column}.search .btn{width:100%}
  .grid{grid-template-columns:1fr}
  .hcard{flex-direction:row}.hcard-img{width:120px;min-height:120px;height:auto;flex:none}
  .dgrid{grid-template-columns:1fr 1fr}
  .floaters{display:none}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:9px 12px}
  .mbar a{flex:1;text-align:center;justify-content:center;display:flex;align-items:center;gap:8px;background:var(--gold);color:#231a00;border-radius:12px;padding:13px;font-family:var(--disp);font-weight:700}
  body{padding-bottom:64px}
  .cookiebar{bottom:74px}
}
@media(max-width:420px){.hero h1{font-size:30px}.dgrid{grid-template-columns:1fr}}

/* savings band */
.savings{background:var(--gold);color:#231a00}
.savings .in2{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;padding:13px 0}
.savings span{font-size:15.5px}
.savings .callbig{background:var(--blue);color:#fff;padding:10px 18px;font-size:14.5px;border-radius:11px;display:inline-flex;align-items:center;gap:8px;font-family:var(--disp);font-weight:700}
.savings .callbig:hover{background:var(--blue-d)}

/* ctc cover */
.ctc-cover{height:210px;background-size:cover;background-position:center;border-radius:14px;margin-bottom:22px}
#cover-vuelos{background-image:url('https://images.unsplash.com/photo-1504814532849-cff240bbc503?auto=format&fit=crop&w=1200&q=70')}
#cover-cruceros{background-image:url('https://images.unsplash.com/photo-1616036740257-9449ea1f6605?auto=format&fit=crop&w=1200&q=70')}
#cover-tours{background-image:url('https://images.unsplash.com/photo-1681311869080-8609bc510c29?auto=format&fit=crop&w=1200&q=70')}

/* newsletter */
.nlsec{padding:20px 0 60px}
.nlbox{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--sh);padding:36px;display:grid;grid-template-columns:1.1fr .9fr;gap:26px;align-items:center}
.nlsec .eyebrow{color:var(--gold-d)}
.nlsec h2{font-size:26px;margin-top:8px}
.nlsec p{color:var(--muted);margin-top:8px}
.nl-form{display:flex;flex-direction:column;gap:10px}
.nl-form input{border:1px solid var(--line);border-radius:11px;padding:13px;font-size:15px;font-family:var(--body);outline:none;color:var(--ink)}
.nl-form input:focus{border-color:var(--gold)}
.nlpriv{font-size:11.5px;color:var(--muted);text-align:center}
.nl-ok{display:none;background:rgba(214,163,57,.12);border:1px solid var(--gold);border-radius:14px;padding:22px;text-align:center;font-weight:600;color:var(--ink)}
@media(max-width:760px){.nlbox{grid-template-columns:1fr}}
