*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    :root{--blue:#1A4FBF;--blue-l:#2a62d8;--black:#0a0a0a;--white:#fff;--g1:#f5f5f7;--g2:#e8e8ec;--g5:#6b7280;--fh:'Montserrat',sans-serif;--fb:'Inter',sans-serif}
    html{scroll-behavior:smooth}
    body{font-family:var(--fb);background:var(--white);color:var(--black);overflow-x:hidden}
    a{text-decoration:none}
    nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 5%;height:64px;background:rgba(0,0,0,0.55);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,0.08);transition:background 0.3s}
    nav.scrolled{background:rgba(10,10,10,0.96)}
    .nav-logo{font-family:var(--fh);font-weight:900;font-size:1.35rem;color:#fff;letter-spacing:-0.5px}
    .nav-logo span{color:#4d82ff}
    .nav-links{display:flex;gap:2rem;list-style:none}
    .nav-links a{color:rgba(255,255,255,0.78);font-size:0.86rem;font-weight:500;transition:color 0.2s}
    .nav-links a:hover{color:#fff}
    .nav-cta{background:var(--blue);color:#fff!important;padding:0.45rem 1.1rem;border-radius:6px;font-weight:700!important;transition:background 0.2s!important}
    .nav-cta:hover{background:var(--blue-l)!important}
    .nav-burger{display:none;background:none;border:none;cursor:pointer;padding:4px}
    .nav-burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;border-radius:2px}
    #hero{position:relative;height:100vh;min-height:580px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
    .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;transform:scale(1.04);transition:transform 8s ease-out;z-index:0}.hero-bg::after{content:''}.hero-content::before{content:'';position:absolute;inset:-100vh -100vw;background:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(10,10,10,.75));z-index:-1;pointer-events:none}
    #hero:hover .hero-bg{transform:scale(1)}
    .hero-content{position:relative;z-index:2;max-width:780px;padding:0 1.5rem}
    .hero-badge{display:inline-block;background:rgba(26,79,191,0.28);border:1px solid rgba(77,130,255,0.5);color:#a8c4ff;font-size:0.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:0.38rem 1rem;border-radius:30px;margin-bottom:1.4rem}
    h1{font-family:var(--fh);font-weight:900;font-size:clamp(2.4rem,5.5vw,4.5rem);line-height:1.08;color:#fff;letter-spacing:-1.2px;margin-bottom:1.1rem}
    h1 em{font-style:normal;color:#4d82ff}
    .hero-sub{font-size:clamp(0.95rem,2vw,1.12rem);color:rgba(255,255,255,0.7);line-height:1.65;max-width:520px;margin:0 auto 2.4rem}
    .hero-actions{display:flex;gap:0.9rem;justify-content:center;flex-wrap:wrap}
    .btn-p{background:var(--blue);color:#fff;padding:0.82rem 1.9rem;border-radius:8px;font-family:var(--fh);font-weight:700;font-size:0.92rem;border:2px solid var(--blue);display:inline-block;transition:background 0.2s,border-color 0.2s}
    .btn-p:hover{background:var(--blue-l);border-color:var(--blue-l)}
    .btn-o{background:transparent;color:#fff;padding:0.82rem 1.9rem;border-radius:8px;font-family:var(--fh);font-weight:700;font-size:0.92rem;border:2px solid rgba(255,255,255,0.38);display:inline-block;transition:border-color 0.2s,background 0.2s}
    .btn-o:hover{border-color:#fff;background:rgba(255,255,255,0.08)}
    .hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(255,255,255,0.42);font-size:0.68rem;letter-spacing:2px;text-transform:uppercase}
    .scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,rgba(255,255,255,0.5),transparent);animation:sp 1.6s ease-in-out infinite}
    @keyframes sp{0%,100%{opacity:0.3}50%{opacity:1}}
    .stats-bar{background:var(--black);padding:1.4rem 5%;display:flex;justify-content:center;gap:4rem;flex-wrap:wrap}
    .stat-item{text-align:center;color:#fff}
    .stat-num{font-family:var(--fh);font-weight:900;font-size:1.85rem;color:#4d82ff;letter-spacing:-1px}
    .stat-label{font-size:0.7rem;color:rgba(255,255,255,0.4);letter-spacing:1px;text-transform:uppercase}
    section{padding:5rem 5%}
    .s-label{font-family:var(--fh);font-size:0.7rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--blue);margin-bottom:0.65rem}
    h2{font-family:var(--fh);font-weight:900;font-size:clamp(1.6rem,3.5vw,2.5rem);line-height:1.1;letter-spacing:-0.6px;color:var(--black);margin-bottom:0.9rem}
    .s-sub{font-size:0.95rem;color:var(--g5);line-height:1.75;max-width:500px}
    #destinos{background:var(--g1)}
    .dh{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2.2rem;flex-wrap:wrap;gap:1rem}
    .tab-group{display:flex;gap:0.45rem}
    .tab-btn{background:#fff;border:1.5px solid var(--g2);color:var(--g5);padding:0.45rem 1.1rem;border-radius:30px;font-family:var(--fh);font-weight:600;font-size:0.8rem;cursor:pointer;transition:all 0.2s}
    .tab-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}
    .tab-btn:hover:not(.active){border-color:var(--blue);color:var(--blue)}
    .dg{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.1rem}
    .dc{position:relative;border-radius:13px;overflow:hidden;aspect-ratio:3/4;cursor:pointer;transition:transform 0.3s}
    .dc:hover{transform:translateY(-6px)}
    .dc.featured{grid-row:auto;aspect-ratio:3/4}
    .di{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.5s}
    .dc:hover .di{transform:scale(1.05)}
    .do{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.76) 0%,transparent 55%)}
    .dinfo{position:absolute;bottom:0;left:0;right:0;padding:1.1rem}
    .dtag{display:inline-block;background:rgba(26,79,191,0.85);color:#fff;font-size:0.62rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:2px 9px;border-radius:20px;margin-bottom:0.4rem}
    .dname{font-family:var(--fh);font-weight:900;font-size:1.2rem;color:#fff;letter-spacing:-0.2px;line-height:1.2}
    .ddesc{font-size:0.76rem;color:rgba(255,255,255,0.68);margin-top:0.25rem}
    #propuesta{background:var(--black)}
    #propuesta h2{color:#fff}
    #propuesta .s-sub{color:rgba(255,255,255,0.48);max-width:580px}
    #propuesta .s-label{color:#4d82ff}
    .pg{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;margin-top:2.8rem}
    .pc{border:1px solid rgba(255,255,255,0.08);border-radius:13px;padding:1.75rem;background:rgba(255,255,255,0.03);transition:border-color 0.2s,background 0.2s}
    .pc:hover{border-color:rgba(26,79,191,0.5);background:rgba(26,79,191,0.07)}
    .picon{width:46px;height:46px;background:rgba(26,79,191,0.2);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;font-size:1.3rem}
    .ptitle{font-family:var(--fh);font-weight:700;font-size:1rem;color:#fff;margin-bottom:0.5rem}
    .ptext{font-size:0.86rem;color:rgba(255,255,255,0.44);line-height:1.72}
    .claim{margin-top:2.8rem;border:1px solid rgba(26,79,191,0.4);border-radius:15px;padding:2.5rem;background:rgba(26,79,191,0.08);text-align:center}
    .claim-t{font-family:var(--fh);font-weight:900;font-size:clamp(1.2rem,2.8vw,2rem);color:#fff;letter-spacing:-0.4px;line-height:1.2;margin-bottom:1.5rem}
    .claim-t span{color:#4d82ff}
    #nosotros{background:var(--white)}
    .nw{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
    .niw{position:relative;border-radius:17px;overflow:hidden;aspect-ratio:4/5}
    .niw img{width:100%;height:100%;object-fit:cover;display:block}
    .nb{position:absolute;bottom:1.4rem;left:1.4rem;background:var(--blue);color:#fff;border-radius:11px;padding:1rem 1.15rem}
    .nb .num{font-family:var(--fh);font-weight:900;font-size:1.8rem;line-height:1}
    .nb .lbl{font-size:0.72rem;opacity:0.8}
    .nc p{font-size:0.95rem;color:var(--g5);line-height:1.82;margin-bottom:0.9rem}
    .vals{margin-top:1.4rem;display:flex;flex-direction:column;gap:0.7rem}
    .vi{display:flex;align-items:flex-start;gap:0.7rem}
    .vd{width:7px;height:7px;background:var(--blue);border-radius:50%;margin-top:7px;flex-shrink:0}
    .vt{font-size:0.92rem;color:var(--black);font-weight:500}
    #contacto{background:var(--g1)}
    .ci{display:grid;grid-template-columns:1fr 1.35fr;gap:4rem;align-items:start;max-width:980px;margin:0 auto}
    .citems{margin-top:2rem;display:flex;flex-direction:column;gap:1.15rem}
    .cit{display:flex;align-items:center;gap:0.9rem}
    .cic{width:42px;height:42px;background:var(--blue);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
    .clbl{font-size:0.7rem;color:var(--g5);text-transform:uppercase;letter-spacing:1px}
    .cval{font-size:0.9rem;font-weight:600;color:var(--black)}
    .fc{background:#fff;border-radius:17px;padding:2.25rem;border:1px solid var(--g2)}
    .ft{font-family:var(--fh);font-weight:700;font-size:1.05rem;margin-bottom:1.35rem;color:var(--black)}
    .fr{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem}
    .fg{display:flex;flex-direction:column;gap:0.38rem;margin-bottom:0.9rem}
    .fg label{font-size:0.76rem;font-weight:600;color:var(--black)}
    .fg input,.fg select,.fg textarea{border:1.5px solid var(--g2);border-radius:7px;padding:0.65rem 0.85rem;font-size:0.88rem;font-family:var(--fb);color:var(--black);background:#fff;transition:border-color 0.2s;outline:none;width:100%}
    .fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--blue)}
    .fg textarea{resize:vertical;min-height:85px}
    .fsub{width:100%;background:var(--blue);color:#fff;border:none;padding:0.85rem;border-radius:8px;font-family:var(--fh);font-weight:700;font-size:0.92rem;cursor:pointer;transition:background 0.2s}
    .fsub:hover{background:var(--blue-l)}
    .fnote{text-align:center;font-size:0.72rem;color:var(--g5);margin-top:0.65rem}
    footer{background:var(--black);padding:2.8rem 5% 1.8rem}
    .ftop{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,0.1);flex-wrap:wrap;gap:1.75rem}
    .fbrand{font-family:var(--fh);font-weight:900;font-size:1.4rem;color:#fff;letter-spacing:-0.5px}
    .fbrand span{color:#4d82ff}
    .ftag{font-size:0.82rem;color:rgba(255,255,255,0.32);margin-top:0.4rem}
    .flinks{display:flex;gap:3.5rem;flex-wrap:wrap}
    .fcol h4{font-family:var(--fh);font-weight:700;font-size:0.7rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.38);margin-bottom:0.9rem}
    .fcol a{display:block;color:rgba(255,255,255,0.6);font-size:0.85rem;margin-bottom:0.55rem;text-decoration:none;transition:color 0.2s}
    .fcol a:hover{color:#fff}
    .fbot{display:flex;justify-content:space-between;align-items:center;padding-top:1.4rem;flex-wrap:wrap;gap:0.6rem}
    .fcopy{font-size:0.74rem;color:rgba(255,255,255,0.24)}
    .fsoc{display:flex;gap:0.6rem}
    .sb{width:32px;height:32px;background:rgba(255,255,255,0.07);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:0.82rem;text-decoration:none;transition:background 0.2s}
    .sb:hover{background:var(--blue)}
    .fade-up{opacity:0;transform:translateY(28px);transition:opacity 0.6s ease,transform 0.6s ease}
    .fade-up.visible{opacity:1;transform:translateY(0)}
    @media(max-width:768px){
      .nav-links{display:none}
      .nav-links.open{display:flex;flex-direction:column;position:fixed;top:64px;left:0;right:0;background:rgba(10,10,10,0.97);padding:1.5rem 5%;gap:1.25rem;border-bottom:1px solid rgba(255,255,255,0.1)}
      .nav-burger{display:block}
      .stats-bar{gap:2rem}
      .pg{grid-template-columns:1fr}
      .nw{grid-template-columns:1fr}
      .niw{aspect-ratio:16/9}
      .ci{grid-template-columns:1fr;gap:2.5rem}
      .fr{grid-template-columns:1fr}
      .ftop{flex-direction:column}
      .flinks{gap:2rem}
      .dh{flex-direction:column;align-items:flex-start}
      .dc.featured{grid-row:auto;aspect-ratio:3/4}
    }


/* v1.2 — accessibility, mobile polish and conversion helpers */
.skip-link{position:fixed;left:1rem;top:-100px;z-index:1000;background:#fff;color:var(--black);padding:.7rem 1rem;border-radius:7px;font-weight:700;box-shadow:0 5px 20px rgba(0,0,0,.2)}
.skip-link:focus{top:1rem}
.cval a{color:inherit;text-decoration:none}
.cval a:hover{text-decoration:underline}
.wa-float{position:fixed;right:1.2rem;bottom:1.2rem;z-index:90;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#19a974;color:#fff;font-size:1.35rem;box-shadow:0 8px 24px rgba(0,0,0,.22);text-decoration:none;transition:transform .2s,opacity .2s}
.wa-float:hover{transform:translateY(-3px)}
.wa-float.disabled{display:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(77,130,255,.45);outline-offset:3px}
@media(max-width:768px){
  section{padding:4rem 5%}
  .stats-bar{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1rem}
  .stat-num{font-size:1.45rem}
  .stat-label{font-size:.62rem}
  .hero-scroll{display:none}
  .fc{padding:1.35rem}
  .wa-float{right:1rem;bottom:1rem;width:50px;height:50px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .fade-up{opacity:1;transform:none}
}

/* v1.3 — brand assets and contact flow */
.nav-logo{display:flex;align-items:center;width:112px;height:52px;overflow:hidden}
.nav-logo img{width:112px;height:auto;display:block}
.footer-logo{width:170px;height:auto;display:block;margin-bottom:.55rem}
.fbrand{display:none}
.fsub:disabled{opacity:.7;cursor:default}
@media(max-width:768px){
  .nav-logo{width:92px;height:48px}
  .nav-logo img{width:92px}
  .footer-logo{width:150px}
}
.contact-logo{width:185px;height:auto;display:block;margin-bottom:1.5rem}
@media(max-width:768px){.contact-logo{width:155px}}

/* v1.4 — horizontal brand, local photography, structured consultation */
.nav-logo{width:145px;height:48px;overflow:visible}
.nav-logo img{width:145px;height:auto;display:block}
.footer-logo{width:205px;height:auto;display:block;margin-bottom:.55rem}
.contact-logo{width:205px;height:auto;display:block;margin-bottom:1.5rem}
.niw{aspect-ratio:4/3}
.niw img{object-position:center center}
.wa-icon{width:22px;height:22px;display:block;object-fit:contain}.cic .wa-icon,.wa-float .wa-icon,.sb .wa-icon{width:22px;height:22px}
.wa-float{background:#25D366;color:#fff}
.whatsapp-cic{background:#25D366}
.sb.whatsapp-link{color:#25D366}
.sb.whatsapp-link:hover{color:#fff}
.fg input[type="month"]{min-height:38px}
@media(max-width:768px){
  .nav-logo{width:120px;height:44px}
  .nav-logo img{width:120px}
  .footer-logo{width:175px}
  .contact-logo{width:180px}
  .niw{aspect-ratio:16/10}
}


/* v1.8 — responsive correction */
.hero-bg{background:#111}
#hero::before{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(10,10,10,.75));z-index:1;pointer-events:none}.hero-content::before{display:none}
.wa-icon{display:block;flex:0 0 auto}
@media(max-width:768px){
  nav{height:60px;padding:0 4.5%;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .nav-logo{width:128px;height:40px}
  .nav-logo img{width:128px}
  .nav-links.open{top:60px}
  #hero{height:100svh;min-height:620px}
  .hero-bg{object-position:center center;transform:none}
  .hero-content{width:100%;padding:0 1.1rem}
  h1{font-size:clamp(2.15rem,10vw,3.15rem)}
  .hero-sub{font-size:.94rem;margin-bottom:1.7rem}
  .hero-actions{gap:.65rem}.btn-p,.btn-o{padding:.72rem 1.15rem;font-size:.84rem}
  .stats-bar{padding:1.25rem 4%;grid-template-columns:1fr 1fr}
  section{padding:3.5rem 5%}
  .dh{margin-bottom:1.5rem}.tab-group{width:100%}.tab-btn{flex:1;text-align:center}
  .dg{grid-template-columns:1fr 1fr;gap:.75rem}
  .dc,.dc.featured{aspect-ratio:3/4;min-height:250px;grid-row:auto}
  .dinfo{padding:.8rem}.dname{font-size:1rem}.ddesc{font-size:.68rem}.dtag{font-size:.55rem}
  .nw{gap:2rem}.niw{aspect-ratio:4/3;min-height:0}.nb{bottom:.8rem;left:.8rem;padding:.75rem .9rem}.nb .num{font-size:1.4rem}.nb .lbl{font-size:.62rem}
  .ci{gap:2rem}.fc{padding:1.15rem;border-radius:14px}.fr{gap:0}.fg{margin-bottom:.75rem}.fg input,.fg select,.fg textarea{font-size:16px;min-height:44px}
  .fsub{width:100%;min-height:48px}.fnote{font-size:.68rem}
  footer{padding:2.5rem 5% 1.25rem}.ftop{gap:1.5rem}.flinks{width:100%;justify-content:space-between}.fcol{min-width:0}.fbot{align-items:flex-start}.fcopy{max-width:70%}
  .wa-float{right:.85rem;bottom:max(.85rem,env(safe-area-inset-bottom));width:52px;height:52px}
}
@media(max-width:390px){
  .dg{grid-template-columns:1fr}.dc,.dc.featured{min-height:360px}
  .hero-actions{flex-direction:column;align-items:stretch}.btn-p,.btn-o{text-align:center}
  .flinks{gap:1rem}.fcol a{font-size:.72rem}
}

/* v1.10 */
.dc { text-decoration:none; color:inherit; cursor:pointer; }
.dc.featured { grid-row:auto; }
.dmore { margin-top:.55rem; font-size:.68rem; font-weight:700; letter-spacing:.04em; color:#fff; opacity:0; transform:translateY(5px); transition:.25s ease; }
.dc:hover .dmore { opacity:1; transform:none; }

.offers-section { background:#f4f7fb; }
.offers-head { max-width:720px; margin-bottom:2.2rem; }
.offers-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr); gap:1.4rem; align-items:stretch; }
.offer-card { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(340px,1.1fr); background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 18px 55px rgba(0,0,0,.08); }
.offer-media { position:relative; min-height:520px; overflow:hidden; }
.offer-media img { width:100%; height:100%; object-fit:cover; display:block; }
.offer-media:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.25)); }
.offer-badge { position:absolute; z-index:2; top:1.15rem; left:1.15rem; padding:.58rem .85rem; border-radius:999px; background:#0348aa; color:#fff; font:700 .7rem Montserrat,sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.offer-body { padding:2rem; display:flex; flex-direction:column; }
.offer-kicker { color:#0348aa; font:700 .7rem Montserrat,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.offer-body h3 { margin:.35rem 0 .2rem; font:900 clamp(2rem,4vw,3.4rem)/.95 Montserrat,sans-serif; color:#111; }
.offer-date { font:600 1rem Montserrat,sans-serif; color:#5b6472; margin-bottom:1.25rem; }
.offer-includes { list-style:none; padding:0; margin:0 0 1.2rem; display:grid; gap:.55rem; color:#343b45; font-size:.86rem; }
.offer-includes li:before { content:"✓"; color:#0348aa; font-weight:900; margin-right:.55rem; }
.offer-price { margin-top:auto; padding-top:1rem; border-top:1px solid #e4e8ee; display:grid; }
.offer-price span { color:#69717c; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.offer-price strong { color:#0348aa; font:900 clamp(2.5rem,5vw,4.6rem)/1 Montserrat,sans-serif; }
.offer-price strong small { font-size:.34em; font-weight:600; vertical-align:top; margin-right:.15rem; }
.offer-price em { font-style:normal; color:#69717c; font-size:.72rem; margin-top:.25rem; }
.offer-actions { display:flex; gap:.85rem; align-items:center; margin-top:1.3rem; flex-wrap:wrap; }
.offer-query { color:#0348aa; font-weight:700; text-decoration:none; font-size:.82rem; }
.offer-custom { border-radius:20px; background:#0a0a0a; color:#fff; padding:2rem; display:flex; flex-direction:column; justify-content:center; }
.offer-custom .s-label { color:#79aaff; }
.offer-custom h3 { font:800 clamp(1.7rem,3vw,2.6rem)/1.05 Montserrat,sans-serif; margin:.55rem 0 1rem; }
.offer-custom p { color:#c5cbd3; line-height:1.7; font-size:.9rem; }
.offer-custom-icon { font-size:2.2rem; color:#79aaff; margin-bottom:1rem; }
.btn-o.dark { border-color:rgba(255,255,255,.35); color:#fff; align-self:flex-start; margin-top:.6rem; }
.social-icon { width:22px; height:22px; display:block; object-fit:contain; }

.destination-page { background:#fff; }
.destination-hero { min-height:72vh; position:relative; display:flex; align-items:flex-end; overflow:hidden; padding:7rem 6% 4rem; color:#fff; }
.destination-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.destination-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.72)); }
.destination-hero-content { position:relative; z-index:2; max-width:800px; }
.destination-hero h1 { margin:.35rem 0 .8rem; font-size:clamp(3rem,8vw,6.5rem); line-height:.9; }
.destination-hero p { max-width:650px; font-size:1rem; line-height:1.65; color:#eef2f7; }
.destination-main { padding:4rem 6%; }
.destination-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:2rem; align-items:start; max-width:1180px; margin:auto; }
.destination-copy h2 { font-size:clamp(2rem,4vw,3.5rem); }
.destination-side { position:sticky; top:90px; background:#f4f7fb; border-radius:18px; padding:1.5rem; }
.destination-side h3 { margin-top:0; }
.destination-offer { margin-top:2rem; border:1px solid #dfe5ed; border-radius:18px; overflow:hidden; background:#fff; }
.destination-offer-inner { padding:1.5rem; }
.destination-offer .offer-price { max-width:360px; }
.destination-empty { padding:1.3rem; background:#f4f7fb; border-radius:14px; margin-top:1.5rem; }
.back-home { display:inline-block; margin-bottom:1.25rem; color:#0348aa; font-weight:700; text-decoration:none; }

@media (max-width: 900px) {
  .offers-grid, .offer-card, .destination-layout { grid-template-columns:1fr; }
  .offer-media { min-height:360px; }
  .destination-side { position:static; }
}

@media (max-width: 768px) {
  nav { height:60px; padding:0 4.5%; }
  .nav-logo, .nav-logo img { width:118px; height:auto; }
  .nav-links { display:none; }
  .nav-links.open { display:flex; position:fixed; top:60px; left:0; right:0; flex-direction:column; gap:1rem; padding:1.25rem 5%; background:rgba(10,10,10,.98); border-bottom:1px solid rgba(255,255,255,.1); }
  .nav-burger { display:block; }
  #hero { height:100svh; min-height:620px; }
  .hero-bg { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transform:none; }
  .hero-content { width:100%; max-width:100%; padding:0 1rem; }
  h1 { font-size:clamp(2.2rem,10vw,3.15rem); }
  .hero-sub { font-size:.94rem; margin-bottom:1.7rem; }
  .stats-bar { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem .75rem; padding:1.25rem 4%; }
  section { padding:3.5rem 5%; }
  .dh { align-items:flex-start; margin-bottom:1.5rem; }
  .tab-group { width:100%; }
  .tab-btn { flex:1; text-align:center; }
  .dg { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .dc { aspect-ratio:3/4; min-height:0; }
  .di { display:block!important; width:100%; height:100%; opacity:1!important; }
  .dinfo { padding:.8rem; }
  .dname { font-size:1rem; }
  .ddesc { font-size:.68rem; }
  .dtag { font-size:.55rem; }
  .dmore { opacity:1; transform:none; font-size:.58rem; }
  .pg,.nw,.ci,.fr { grid-template-columns:1fr; }
  .nw { gap:2rem; }
  .niw { aspect-ratio:4/3; min-height:0; }
  .nb { display:none; }
  .fc { padding:1.15rem; border-radius:14px; }
  .fg input,.fg select,.fg textarea { font-size:16px; min-height:44px; }
  .fsub { width:100%; min-height:48px; }
  .offer-card { display:block; }
  .offer-media { min-height:300px; aspect-ratio:16/10; }
  .offer-body { padding:1.25rem; }
  .offer-body h3 { font-size:2.2rem; }
  .offer-price strong { font-size:3.2rem; }
  .offer-actions .btn-p { width:100%; text-align:center; }
  .offer-query { width:100%; text-align:center; padding:.4rem; }
  .destination-hero { min-height:64svh; padding:6rem 5% 2.5rem; }
  .destination-main { padding:3rem 5%; }
  .ftop { flex-direction:column; gap:1.5rem; }
  .flinks { width:100%; justify-content:space-between; gap:1rem; }
  .fbot { align-items:flex-start; }
  .wa-float { right:.85rem; bottom:max(.85rem,env(safe-area-inset-bottom)); width:52px; height:52px; }
}

@media (max-width: 430px) {
  .dg { grid-template-columns:1fr; }
  .dc { aspect-ratio:4/5; min-height:320px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .btn-p,.btn-o { text-align:center; }
  .flinks { flex-direction:column; }
}


/* v1.11 */
.hero-scroll { display:none !important; }

.offer-date {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.45rem;
}
.offer-date span {
  display:inline-block;
  padding:.25rem .55rem;
  border-radius:999px;
  background:#eef4ff;
  color:#0348aa;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.offer-whatsapp {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.78rem 1rem;
  border:1.5px solid #19a974;
  color:#137a58;
  border-radius:8px;
  transition:.2s ease;
}
.offer-whatsapp:hover {
  background:#19a974;
  color:#fff;
}

.destination-service-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
  margin-top:2rem;
}
.destination-service {
  border:1px solid #e1e6ed;
  border-radius:14px;
  padding:1rem;
  background:#fff;
}
.destination-service strong {
  display:block;
  font:700 .9rem Montserrat,sans-serif;
  margin-bottom:.25rem;
}
.destination-service span {
  display:block;
  color:#6b7280;
  font-size:.8rem;
  line-height:1.5;
}

@media(max-width:768px){
  .destination-service-grid { grid-template-columns:1fr 1fr; }
  .offer-whatsapp { width:100%; }
}
@media(max-width:430px){
  .destination-service-grid { grid-template-columns:1fr; }
}


/* v1.12 */
.optional{font-weight:400;color:var(--g5);font-size:.7rem}
.fnote a{color:var(--blue);text-decoration:underline}
.price-update,.price-note{display:block;color:#69717c;font-size:.68rem;margin-top:.35rem;line-height:1.4}
.price-note{max-width:430px}
.legal-page{padding-top:64px}
.legal-page section{max-width:820px;margin:0 auto;padding-top:5rem}
.legal-page p{color:var(--g5);line-height:1.8;margin:.8rem 0}




/* Corrección sobre v1.13: tamaño de precio recuperado */
.offer-price strong {
  font-size: clamp(2.5rem, 5vw, 4.6rem);
  line-height: 1;
  letter-spacing: normal;
}
.offer-price strong small {
  font-size: .34em;
  font-weight: 600;
  vertical-align: top;
  margin-right: .15rem;
}
@media (max-width: 768px) {
  .offer-price strong {
    font-size: 3.2rem;
  }
}


/* v1.15 — corrección real del precio de la promo.
   #rioPrice es un <span> dentro de <strong>; la regla genérica
   .offer-price span lo estaba forzando a 0.72rem. */
.offer-price strong {
  color: #0348aa;
  font: 900 clamp(4.6rem, 7.5vw, 6.8rem)/0.9 Montserrat, sans-serif;
  letter-spacing: -0.045em;
}

.offer-price strong small {
  font-size: 0.30em;
  font-weight: 700;
  letter-spacing: -0.02em;
  vertical-align: top;
  margin-right: 0.08em;
}

.offer-price strong #rioPrice {
  color: #0348aa;
  font: inherit;
  font-size: 1em;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
}

@media (max-width: 768px) {
  .offer-price strong {
    font-size: clamp(4rem, 17vw, 5.6rem);
  }
}


/* v1.16 — promociones dinámicas + footer */
.offers-list {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  min-width: 0;
}

.offers-list .offer-card {
  width: 100%;
}

/* El precio dinámico debe conservar la jerarquía visual de la v1.10/v1.15. */
.offer-price strong .offer-price-value {
  color: #0348aa;
  font: inherit;
  font-size: 1em;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
}

/* Instagram monocromático, más visible en el footer oscuro. */
.fsoc .instagram-link {
  width: 40px;
  height: 40px;
}

.fsoc .instagram-link .social-icon {
  width: 28px;
  height: 28px;
  filter: grayscale(1) brightness(0) invert(1);
  opacity: .95;
}

.destination-offers-label {
  margin-top: 2rem;
  margin-bottom: .8rem;
}

@media (max-width: 900px) {
  .offers-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.17 — carrusel de ofertas destacadas */
.offers-list{min-width:0;overflow:visible}
.offers-carousel{position:relative;width:100%;min-width:0}
.offers-carousel-viewport{overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:.25rem 0 1rem}
.offers-carousel-viewport::-webkit-scrollbar{display:none}
.offers-carousel-track{display:flex;gap:1rem;width:max-content}
.offers-carousel-slide{width:min(840px,calc(100vw - 12rem));min-width:min(840px,calc(100vw - 12rem));scroll-snap-align:start}
.offers-carousel-slide .offer-card{height:100%;width:100%}
.offers-carousel-arrow{position:absolute;top:50%;z-index:5;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.97);box-shadow:0 8px 24px rgba(0,0,0,.14);color:#0348aa;font:700 2rem/1 Montserrat,sans-serif;cursor:pointer;transform:translateY(-65%);transition:transform .2s ease,opacity .2s ease}
.offers-carousel-arrow:hover{transform:translateY(-65%) scale(1.06)}
.offers-carousel-arrow:disabled{opacity:.28;cursor:default}
.offers-carousel-prev{left:-21px}.offers-carousel-next{right:-21px}
.offers-carousel-dots{display:flex;justify-content:center;gap:.45rem;margin-top:.4rem}
.offers-carousel-dot{width:8px;height:8px;border:0;border-radius:999px;padding:0;background:#c9d2e1;cursor:pointer;transition:width .2s ease,background .2s ease}
.offers-carousel-dot.active{width:24px;background:#0348aa}
@media(max-width:900px){.offers-carousel-slide{width:86vw;min-width:86vw}.offers-carousel-prev{left:4px}.offers-carousel-next{right:4px}}
@media(max-width:768px){.offers-carousel-slide{width:92vw;min-width:92vw}.offers-carousel-arrow{display:none}.offers-carousel-dots{margin-top:.15rem}}


/* v1.18 rehecha desde v1.17 — categorías escalables */
.tab-group {
  flex-wrap: wrap;
}

.category-placeholder-grid {
  grid-template-columns: 1fr;
}

.category-placeholder {
  background: #fff;
  border: 1px dashed #cfd6e1;
  border-radius: 13px;
  padding: 2rem;
  min-height: 170px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.category-placeholder-title {
  font-family: var(--fh);
  font-weight: 900;
  font-size: 1.35rem;
  margin-bottom: .4rem;
}

.category-placeholder p {
  color: var(--g5);
  line-height: 1.6;
}

/* Instagram: mismo tamaño visual que WhatsApp, sin fondo blanco */
.fsoc .social-icon,
.fsoc .wa-icon {
  width: 22px;
  height: 22px;
  display: block;
  object-fit: contain;
  filter: none;
  opacity: 1;
}

@media(max-width:768px) {
  .tab-group {
    width: 100%;
    justify-content: flex-start;
  }

  .tab-btn {
    flex: 0 1 auto;
  }
}


/* v1.22 — mayor separación visual entre duración/hotel e incluidos */
.destination-offer-inner > p + .offer-includes {
  margin-top: 1.15rem;
}

.destination-offer-inner > p {
  margin-bottom: 0;
}


/* =========================================================
   v1.23 — RNAV + promos compactas + grilla de ofertas
   ========================================================= */

/* RNAV */
.rnav-trust{
  background:#f4f7fb;
  padding:2rem 6%;
  border-top:1px solid #e5eaf1;
}
.rnav-trust-inner{
  max-width:1180px;
  margin:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.6rem;
}
.rnav-trust img{
  width:190px;
  max-height:82px;
  object-fit:contain;
}
.rnav-trust .rnav-eyebrow{
  color:#0348aa;
  font:700 .66rem Montserrat,sans-serif;
  text-transform:uppercase;
  letter-spacing:.15em;
  margin-bottom:.25rem;
}
.rnav-trust strong{
  display:block;
  font:800 1.15rem Montserrat,sans-serif;
  color:#111;
}
.rnav-trust p{
  margin:.3rem 0 0;
  color:#68717e;
  font-size:.82rem;
}

/* Home: darle más espacio al carrusel y compactar el bloque negro */
.offers-grid{
  grid-template-columns:minmax(0,3.35fr) minmax(220px,.65fr);
  gap:1.1rem;
}
.offer-custom{
  padding:1.45rem;
}
.offer-custom h3{
  font-size:clamp(1.35rem,2vw,2rem);
}
.offer-custom p{
  font-size:.82rem;
  line-height:1.55;
}

/* Carrusel: casi dos promos visibles en desktop */
.offers-carousel-track{gap:1rem}
.offers-carousel-slide{
  width:calc((100vw - 12vw - 270px - 3.2rem)/2);
  min-width:420px;
  max-width:590px;
}
.offers-carousel-slide .offer-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.offers-carousel-slide .offer-media{
  min-height:0;
  height:220px;
  aspect-ratio:auto;
}
.offers-carousel-slide .offer-body{
  padding:1.25rem 1.35rem 1.35rem;
}
.offers-carousel-slide .offer-body h3{
  font-size:clamp(1.75rem,2.5vw,2.45rem);
  line-height:.98;
  margin:.3rem 0 .15rem;
}
.offers-carousel-slide .offer-date{
  margin-bottom:.75rem;
  font-size:.84rem;
}
.offers-carousel-slide .offer-includes{
  gap:.32rem;
  margin-bottom:.75rem;
  font-size:.77rem;
}
.offers-carousel-slide .offer-price{
  padding-top:.7rem;
}
.offers-carousel-slide .offer-price strong{
  font-size:clamp(2.65rem,4vw,3.8rem);
}
.offers-carousel-slide .offer-actions{
  margin-top:.85rem;
  gap:.55rem;
}
.offers-carousel-slide .offer-actions .btn-p{
  padding:.8rem 1rem;
}
.offers-carousel-dots{
  margin-top:.1rem;
}

/* Páginas de destino: separar título, explicación y CTA */
.destination-side h3{
  margin:.35rem 0 .7rem;
}
.destination-side p{
  margin:.7rem 0 1.05rem;
  line-height:1.5;
}
.destination-side .btn-p{
  display:block;
  margin-top:.9rem;
}

/* Ofertas de un destino en grilla */
#ofertas-disponibles{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:start;
}
#ofertas-disponibles > .destination-offers-label{
  grid-column:1/-1;
}
.destination-offer{
  margin-top:0;
  height:100%;
}
.destination-offer-inner{
  padding:1.15rem;
  height:100%;
  display:flex;
  flex-direction:column;
}
.destination-offer-inner h3{
  font-size:clamp(1.55rem,2.4vw,2.35rem)!important;
}
.destination-offer-inner > p{
  font-size:.8rem;
  line-height:1.4;
}
.destination-offer-inner > p + .offer-includes{
  margin-top:.85rem;
}
.destination-offer .offer-includes{
  gap:.32rem;
  font-size:.76rem;
  margin-bottom:.8rem;
}
.destination-offer .offer-price{
  margin-top:auto;
  padding-top:.7rem;
}
.destination-offer .offer-price strong{
  font-size:clamp(2.55rem,4vw,3.7rem);
}
.destination-offer .btn-p{
  margin-top:.85rem!important;
  padding:.8rem 1rem;
  font-size:.76rem;
  text-align:center;
}

/* Formulario: las filas con un solo campo aprovechan todo el ancho */
#contactForm .fr:has(> .fg:only-child){
  grid-template-columns:1fr;
}

@media(max-width:1100px){
  .offers-grid{grid-template-columns:minmax(0,1fr) 240px}
  .offers-carousel-slide{width:48vw;min-width:390px}
}

@media(max-width:900px){
  .offers-grid{grid-template-columns:1fr}
  .offer-custom{min-height:auto}
  .offers-carousel-slide{width:72vw;min-width:72vw;max-width:none}
  #ofertas-disponibles{grid-template-columns:1fr 1fr}
}

@media(max-width:768px){
  .offers-carousel-slide{width:88vw;min-width:88vw}
  .offers-carousel-slide .offer-media{height:175px}
  .offers-carousel-slide .offer-body{padding:1rem}
  .offers-carousel-slide .offer-body h3{font-size:1.85rem}
  .offers-carousel-slide .offer-includes{font-size:.73rem;gap:.25rem}
  .offers-carousel-slide .offer-price strong{font-size:3rem}
  .offers-carousel-slide .price-note{display:none}
  .offers-carousel-slide .offer-actions{margin-top:.7rem}
  #ofertas-disponibles{grid-template-columns:1fr}
  .destination-offer-inner{padding:1rem}
  .rnav-trust{padding:1.5rem 5%}
  .rnav-trust-inner{flex-direction:column;text-align:center;gap:.8rem}
  .rnav-trust img{width:155px;max-height:68px}
}


/* v1.27 — contenido SEO contextual en páginas de destino */
.destination-intro{max-width:760px;margin-bottom:1.25rem}
.destination-intro p,.destination-seo p{color:var(--g5);font-size:.95rem;line-height:1.8;margin:.7rem 0}
.destination-seo{margin-top:2rem;padding:1.5rem;border:1px solid #e1e6ed;border-radius:16px;background:#f8fafc}
.destination-seo h2{font-size:clamp(1.55rem,2.7vw,2.35rem);margin:.35rem 0 .75rem}
@media(max-width:768px){.destination-seo{padding:1.15rem}.destination-intro p,.destination-seo p{font-size:.9rem}}

/* v1.28 — acceso legal visible desde el primer acceso */
.arrep-float{position:fixed;left:18px;bottom:18px;z-index:90;display:inline-flex;align-items:center;justify-content:center;max-width:245px;padding:11px 14px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:#111;color:#fff;text-decoration:none;font:700 11px/1.2 Montserrat,sans-serif;letter-spacing:.025em;box-shadow:0 8px 24px rgba(0,0,0,.22)}
.arrep-float:hover{background:#252525;transform:translateY(-1px)}
@media(max-width:600px){.arrep-float{left:10px;bottom:10px;max-width:190px;padding:9px 11px;font-size:9.5px}.wa-float{bottom:10px}}
