/* ============ BASE RESET ============ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
h1,h2,h3,h4,h5,h6 { margin: 0; padding: 0; }
ul, ol { list-style: none; margin: 0; padding: 0; }
img { display: block; max-width: 100%; }
button { cursor: pointer; }
a { text-decoration: none; color: inherit; }

:root{
  --selva-900:#0e3322;
  --selva-700:#1c5a3a;
  --selva-500:#2a8854;
  --selva-400:#3aa869;
  --palma:    #b6d68a;
  --crema:    #fbf5e7;
  --crema-2:  #f4e9cf;
  --arena:    #ecd9a8;
  --papaya:   #e87a2b;
  --mango:    #f4b53f;
  --coral:    #e0533c;
  --turquesa: #16b8c8;
  --aqua:     #5dd2dc;
  --rosa:     #e6357d;
  --uva:      #7d3a8f;
  --tinta:    #1a1410;
  --tinta-2:  #4a3f33;
}
html{font-size:clamp(1rem, 1vw, 100rem); overflow-x:hidden; touch-action:pan-y}
body{
  font-family:'DM Sans', system-ui, sans-serif;
  background:var(--crema);
  color:var(--tinta);
  font-size:1.0625rem;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Fraunces', Georgia, serif; font-weight:600; letter-spacing:-0.01em; line-height:1.06; text-wrap:balance;}
.upper{font-family:'Archivo', sans-serif; text-transform:uppercase; letter-spacing:0.02em; font-weight:800;}
p{text-wrap:pretty; margin:0;}
.wrap{max-width:82.5rem; margin:0 auto; padding:0 1.5rem}

/* ============ TOP BAR ============ */
.topbar{background:var(--selva-900); color:#f3e9d2; font-size:0.8125rem;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; padding:0.625rem 1.5rem; gap:0.875rem; flex-wrap:wrap}
.topbar .pill{display:inline-flex; align-items:center; gap:0.5rem}
.topbar .dot{width:0.4375rem; height:0.4375rem; border-radius:50%; background:var(--mango); box-shadow:0 0 0 0.25rem rgba(244,181,63,0.18)}
.topbar a{display:inline-flex; align-items:center; gap:0.375rem}
.topbar a:hover{color:var(--mango)}
.topbar .links{display:flex; gap:1.5rem; align-items:center}

/* ============ NAV ============ */
nav.main{
  background:#fff;
  border-bottom:2px solid var(--selva-900);
  position:sticky; top:0; z-index:50;
  box-shadow:0 0.25rem 1rem rgba(13,42,28,0.06);
}
nav.main .wrap{display:flex; align-items:center; justify-content:space-between; gap:1.125rem; padding:0.875rem 1.5rem; min-height:5.5rem}
.logo{display:flex; align-items:center; gap:1rem; flex-shrink:0; min-width:0}
.logo img{
  width:5.25rem; height:5.25rem; border-radius:50%;
  object-fit:cover;
  box-shadow:0 0.5rem 1.375rem rgba(13,42,28,0.22), 0 0 0 0.1875rem #fff, 0 0 0 0.3125rem var(--mango);
  flex-shrink:0;
}
.logo .brand{line-height:1; min-width:0}
.logo .brand .top{font-family:'Fraunces',serif; font-weight:700; font-size:1.75rem; color:var(--selva-900); letter-spacing:-0.015em; white-space:nowrap}
.logo .brand .sub{font-size:0.6875rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--papaya); margin-top:0.375rem; font-weight:700; white-space:nowrap}
nav.main ul{list-style:none; display:flex; gap:0.25rem; padding:0; margin:0; justify-content:center; flex-wrap:nowrap; flex-shrink:1; min-width:0}
nav.main ul a{
  font-family:'Archivo',sans-serif;
  font-weight:700; font-size:0.875rem; letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--selva-900); padding:0.625rem 0.875rem; border-radius:0.625rem;
  position:relative; transition:background .15s ease, color .15s ease;
  white-space:nowrap;
}
nav.main ul a:hover{background:var(--crema-2); color:var(--selva-700)}
nav.main ul a.active{color:var(--papaya)}
nav.main ul a.active::after{
  content:""; position:absolute; left:0.875rem; right:0.875rem; bottom:0; height:0.1875rem;
  background:var(--papaya); border-radius:2px;
}
.nav-cta{display:flex; gap:0.625rem; align-items:center; flex-shrink:0}
.hamburger{
  display:none;
  width:3rem; min-width:3rem; height:3rem; aspect-ratio:1/1; border-radius:0.75rem;
  flex-shrink:0; flex:0 0 3rem;
  background:var(--selva-900); color:#fff;
  border:0; cursor:pointer; padding:0;
  align-items:center; justify-content:center;
  flex-direction:column; gap:0.3125rem;
}
.hamburger span{display:block; width:1.375rem; height:0.1563rem; background:#fff; border-radius:2px}
.hamburger.open span:nth-child(1){transform:translateY(0.4688rem) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-0.4688rem) rotate(-45deg)}
.hamburger span{transition:transform .2s ease, opacity .2s ease}

.mobile-menu{
  display:none;
  position:fixed; top:0; left:0; right:0; bottom:0; z-index:100;
  background:rgba(14,51,34,0.96); backdrop-filter:blur(0.5rem);
  padding:6rem 2rem 2rem;
  flex-direction:column; gap:0.375rem;
  overflow-y:scroll; -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y;
  height:100vh; height:100dvh; max-height:100vh; max-height:100dvh;
}
.mobile-menu.open{display:flex}
.mobile-menu a{
  font-family:'Archivo',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:0.06em;
  font-size:1.375rem; color:#fff;
  padding:1.125rem 0.5rem; border-bottom:1px solid rgba(255,255,255,0.1);
}
.mobile-menu a:hover{color:var(--mango)}
.mobile-menu .mobile-cta{
  margin-top:1.5rem; background:var(--mango); color:var(--selva-900);
  border:0; border-bottom:0; border-radius:62.4375rem;
  padding:1rem 1.5rem; text-align:center; font-size:1rem; letter-spacing:0.08em;
  box-shadow:0 0.5rem 1.25rem rgba(244,181,63,0.3);
}
.mobile-menu .mobile-cta:hover{color:var(--selva-900); background:#fbc459}
.mobile-close{
  position:fixed; top:1.5rem; right:1.5rem; z-index:101;
  width:3rem; height:3rem; border-radius:0.75rem;
  background:rgba(255,255,255,0.1); color:#fff; border:0; cursor:pointer;
  font-size:1.5rem; display:flex; align-items:center; justify-content:center;
}
.btn{
  display:inline-flex; align-items:center; gap:0.5625rem;
  font-family:'Archivo',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:0.06em;
  border-radius:62.4375rem; padding:0.8125rem 1.375rem; font-size:0.8438rem;
  border:1.5px solid transparent; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--papaya); color:#fff; box-shadow:0 0.375rem 1rem rgba(232,122,43,0.4)}
.btn-primary:hover{background:#d96a1c}
.btn-ghost{background:transparent; color:var(--selva-900); border-color:rgba(13,42,28,0.22)}
.btn-ghost:hover{border-color:var(--selva-700); background:rgba(42,136,84,0.08)}
.btn-dark{background:var(--selva-900); color:#fff}
.btn-dark:hover{background:#082016}
.btn-mango{background:var(--mango); color:var(--selva-900); box-shadow:0 0.5rem 1.375rem rgba(244,181,63,0.4)}
.btn-mango:hover{background:#f0a82a}
.btn-wa{background:#25D366; color:#fff; box-shadow:0 0.375rem 1rem rgba(37,211,102,0.35);}
.btn-wa:hover{background:#1fb958}
.btn-wa svg{width:1rem; height:1rem; fill:#fff}

/* ============ HERO ============ */
.hero{position:relative; min-height:42.5rem; overflow:hidden; color:#fff; isolation:isolate;}
.hero-slides{position:absolute; inset:0; z-index:0}
.hero-slide{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0;
  transition:opacity 1.4s ease;
  transform:scale(1.04);
  animation:kenburns 14s ease-in-out infinite;
}
.hero-slide.active{opacity:1}
@keyframes kenburns{0%,100%{transform:scale(1.0)}50%{transform:scale(1.08)}}
.hero::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(115deg, rgba(14,51,34,0.85) 0%, rgba(14,51,34,0.55) 45%, rgba(14,51,34,0.25) 70%, transparent 100%),
    linear-gradient(to top, rgba(0,0,0,0.45), transparent 60%);
}
.hero .wrap{position:relative; z-index:2; padding-top:6rem; padding-bottom:7.5rem; min-height:42.5rem; display:flex; flex-direction:column; justify-content:center}
.hero-inner{max-width:48.75rem}
.eyebrow{
  display:inline-flex; align-items:center; gap:0.625rem;
  font-family:'Archivo',sans-serif;
  font-size:0.75rem; letter-spacing:0.24em; text-transform:uppercase;
  color:var(--mango); font-weight:700;
  background:rgba(244,181,63,0.12);
  padding:0.5rem 1rem; border-radius:62.4375rem;
  border:1px solid rgba(244,181,63,0.45);
}
.eyebrow .flag{
  width:1.125rem; height:0.75rem; border-radius:2px; overflow:hidden;
  background:linear-gradient(to right, #006847 33.3%, #fff 33.3% 66.6%, #ce1126 66.6%);
}
h1.headline{
  font-family:'Archivo',sans-serif;
  font-weight:900;
  text-transform:uppercase;
  font-size:clamp(3rem, 6.5vw, 6rem);
  line-height:0.95;
  letter-spacing:-0.015em;
  margin:1.5rem 0 1.375rem;
  color:#fff;
}
h1.headline .accent{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-style:italic;
  text-transform:none;
  letter-spacing:-0.02em;
  color:var(--mango);
  display:inline-block;
  position:relative;
}
h1.headline .accent::before{
  content:""; position:absolute; left:-2%; right:-2%; bottom:6%; height:0.875rem;
  background:var(--rosa); opacity:.45; border-radius:0.5rem; transform:skewX(-10deg); z-index:-1;
}
.hero p.lede{font-size:1.1875rem; color:#f1e6c8; max-width:35rem; margin-bottom:2rem; line-height:1.5;}
.hero-ctas{display:flex; gap:0.875rem; flex-wrap:wrap; margin-bottom:2.5rem}
.btn-outline-light{background:rgba(255,255,255,0.1); color:#fff; border-color:rgba(255,255,255,0.4); backdrop-filter:blur(0.375rem)}
.btn-outline-light:hover{border-color:#fff; background:rgba(255,255,255,0.18)}
.hero-stats{display:flex; gap:2.25rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.18); max-width:42.5rem}
.hero-stats .stat{font-size:0.8125rem; color:#cbbf9f; font-family:'Archivo',sans-serif; text-transform:uppercase; letter-spacing:0.08em; font-weight:600}
.hero-stats .stat b{display:block; font-family:'Fraunces',serif; font-size:2rem; font-weight:600; color:#fff; margin-bottom:2px; letter-spacing:-0.01em; text-transform:none}
.hero-dots{position:absolute; bottom:2rem; right:2rem; z-index:3; display:flex; gap:0.5rem;}
.hero-dots button{
  width:2.25rem; height:0.25rem; border:0; border-radius:2px;
  background:rgba(255,255,255,0.35); cursor:pointer; padding:0;
  transition:background .25s ease;
}
.hero-dots button.active{background:var(--mango)}
.hero-tag{
  position:absolute; top:1.5rem; right:1.5rem; z-index:3;
  background:rgba(14,51,34,0.85); backdrop-filter:blur(0.625rem);
  color:#fff; padding:0.625rem 1.125rem; border-radius:62.4375rem;
  font-family:'Archivo',sans-serif; font-size:0.75rem; letter-spacing:0.16em; text-transform:uppercase; font-weight:600;
  display:flex; align-items:center; gap:0.625rem;
  border:1px solid rgba(255,255,255,0.22);
  box-shadow:0 0.5rem 1.25rem rgba(0,0,0,0.25);
}
.hero-tag .pulse{
  width:0.5rem; height:0.5rem; border-radius:50%; background:var(--mango);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(244,181,63,0.6)}50%{box-shadow:0 0 0 0.625rem rgba(244,181,63,0)}}

/* Search card */
.search-card{
  margin:-3rem 2rem 0; max-width:76rem;
  margin-left:auto; margin-right:auto;
  position:relative; z-index:5;
  background:#fff; border-radius:1.375rem;
  box-shadow:0 1.75rem 3.75rem rgba(13,42,28,0.22), 0 2px 0 rgba(13,42,28,0.04);
  padding:0.875rem;
  display:flex; gap:0.375rem; align-items:center; flex-wrap:nowrap;
  border:1px solid rgba(26,20,16,0.04);
}
.search-card .field{padding:0.875rem 1.125rem; border-right:1px solid rgba(26,20,16,0.08); flex:1 1 auto}
.search-card .field:last-of-type{border-right:none}
.search-card label{display:block; font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--tinta-2); font-weight:700; margin-bottom:0.375rem}
.search-card .val{font-size:0.9375rem; color:var(--tinta); font-weight:500}
.search-card .val span{color:var(--tinta-2); font-weight:400}
.search-card .btn{padding:1rem 1.625rem; flex:0 0 auto}
/* Search card — form is layout-transparent so .field divs sit in the parent grid */
.search-card form{display:contents}
/* Inputs/selects styled to match .val text exactly */
.sc-val{font-size:0.9375rem;color:var(--tinta);font-weight:500;border:none;outline:none;background:transparent;padding:0;font-family:'DM Sans',sans-serif;cursor:pointer;width:100%;display:block}
.sc-val::placeholder{color:var(--tinta-2);font-weight:400}
input[type="date"].sc-val{color-scheme:light}
input[type="date"].sc-val::-webkit-calendar-picker-indicator{opacity:0.4;cursor:pointer;margin-left:0.25rem}
/* Viajeros selects sit inline — no stretching */
.viajeros-row{display:flex;align-items:center;gap:0}
select.sc-val{-webkit-appearance:none;appearance:none;width:auto;flex:0 0 auto}
.sc-sep{font-size:0.9375rem;color:var(--tinta);font-weight:500;margin:0 0.2rem;flex-shrink:0}

/* ========== SECTIONS ========== */
section{padding:6.5rem 0}
.section-head{display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.75rem; flex-wrap:wrap}
.section-head .left{max-width:42.5rem}
.section-head h2{font-family:'Archivo',sans-serif; text-transform:uppercase; font-weight:900; font-size:clamp(1.75rem,7vw,4.5rem); color:var(--selva-900); letter-spacing:-0.015em; line-height:0.98; overflow-wrap:break-word}
.section-head h2 em{font-family:'Fraunces',serif; font-style:italic; color:var(--papaya); font-weight:500; text-transform:none; letter-spacing:-0.02em}
.section-head p{color:var(--tinta-2); margin-top:1.125rem; font-size:1.0625rem; max-width:36.25rem}
.kicker{font-family:'Archivo',sans-serif; font-size:0.75rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--selva-500); font-weight:700; margin-bottom:1rem; display:flex; align-items:center; gap:0.625rem}
.kicker::before{content:""; width:1.5rem; height:2px; background:var(--papaya); display:inline-block}

/* ========== PACKAGES ========== */
.pkg-grid{display:flex; flex-wrap:wrap; gap:1.625rem}
.pkg{
  background:#fff; border-radius:1.375rem; overflow:hidden;
  box-shadow:0 1px 0 rgba(26,20,16,0.04), 0 0.75rem 1.875rem rgba(13,42,28,0.08);
  border:1px solid rgba(26,20,16,0.06);
  display:flex; flex-direction:column;
  flex:0 0 calc(33.333% - 1.085rem);
  transition:transform .25s ease, box-shadow .25s ease;
}
.pkg:hover{transform:translateY(-0.375rem); box-shadow:0 1.5rem 3.5rem rgba(13,42,28,0.18)}
.pkg .photo{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--selva-700)}
.pkg .photo img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.pkg:hover .photo img{transform:scale(1.06)}
.pkg .badge{
  position:absolute; top:0.875rem; left:0.875rem;
  background:var(--mango); color:var(--selva-900);
  padding:0.4375rem 0.8125rem; border-radius:62.4375rem;
  font-family:'Archivo',sans-serif; font-size:0.6875rem; font-weight:800;
  letter-spacing:0.08em; text-transform:uppercase;
}
.pkg .heart{
  position:absolute; top:0.875rem; right:0.875rem;
  width:2.375rem; height:2.375rem; border-radius:50%; background:rgba(255,255,255,0.95);
  display:flex; align-items:center; justify-content:center; font-size:1rem;
  color:var(--coral); cursor:pointer;
}
.pkg .body{padding:1.5rem 1.5rem 1.625rem; display:flex; flex-direction:column; flex:1}
.pkg .place{font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--selva-500); font-weight:700}
.pkg h3{font-family:'Fraunces',serif; font-size:1.5rem; margin:0.5rem 0 0.75rem; color:var(--selva-900); font-weight:600}
.pkg .meta{display:flex; gap:0.875rem; font-size:0.8438rem; color:var(--tinta-2); margin-bottom:1.125rem; flex-wrap:wrap}
.pkg .meta .m{display:inline-flex; align-items:center; gap:0.375rem}
.pkg .meta .m::before{content:""; width:0.3125rem; height:0.3125rem; border-radius:50%; background:var(--palma)}
.incl{display:flex; flex-wrap:wrap; gap:0.375rem; margin-bottom:1.25rem}
.incl span{font-size:0.75rem; padding:0.375rem 0.6875rem; border-radius:62.4375rem; background:rgba(42,136,84,0.1); color:var(--selva-700); font-weight:600;}
.pkg .price-row{display:flex; align-items:end; justify-content:space-between; gap:0.75rem; padding-top:1.125rem; border-top:1px dashed rgba(26,20,16,0.16); margin-top:auto}
.pkg .price{line-height:1}
.pkg .price .from{font-family:'Archivo',sans-serif; font-size:0.6875rem; color:var(--tinta-2); letter-spacing:0.16em; text-transform:uppercase; font-weight:700}
.pkg .price .num{font-family:'Fraunces',serif; font-size:2rem; font-weight:600; color:var(--selva-900); margin-top:0.25rem; letter-spacing:-0.01em}
.pkg .price .num small{font-size:0.875rem; color:var(--tinta-2); font-weight:500}
.pkg .price .pp{font-size:0.7813rem; color:var(--papaya); font-weight:700; margin-top:0.3125rem}
.pkg .go{
  width:2.875rem; height:2.875rem; border-radius:50%; background:var(--selva-700); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.25rem;
  transition:background .15s ease;
}
.pkg:hover .go{background:var(--papaya)}
.pkg-tabs{
  display:flex; gap:0.5rem; padding:0.375rem; background:#fff; border-radius:0.875rem;
  border:1px solid rgba(26,20,16,0.08); width:fit-content; margin-bottom:2rem;
  box-shadow:0 0.25rem 0.75rem rgba(13,42,28,0.06);
}
.pkg-tab{
  font-family:'Archivo',sans-serif; font-size:0.8125rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:700;
  padding:0.625rem 1.125rem; border-radius:0.5625rem; cursor:pointer; color:var(--tinta-2); border:0; background:transparent;
}
.pkg-tab.active{background:var(--selva-900); color:#fff}

/* ========== BANDA ========== */
.banda{
  background:linear-gradient(90deg, var(--selva-700), var(--selva-500), var(--selva-700));
  color:#fff; padding:0; overflow:hidden;
  border-top:0.25rem solid var(--mango); border-bottom:0.25rem solid var(--mango);
}
.banda-strip{
  display:flex; gap:3rem; padding:1.375rem 0;
  font-family:'Fraunces',serif; font-size:2.375rem; font-weight:400; font-style:italic; letter-spacing:-0.01em;
  white-space:nowrap;
  animation:slide 38s linear infinite;
}
.banda-strip span{display:inline-flex; align-items:center; gap:3rem; color:#fff}
.banda-strip span::after{content:"✺"; color:var(--mango); font-size:1.875rem; font-weight:400;}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ========== POCO A POCO ========== */
.pap{background:var(--crema-2); position:relative; overflow:hidden}
.pap::before{
  content:""; position:absolute; right:-12.5rem; top:-12.5rem; width:31.25rem; height:31.25rem; border-radius:50%;
  background:radial-gradient(circle, rgba(244,181,63,0.18), transparent 70%);
}
.pap-grid{display:flex; gap:4rem; align-items:center; position:relative}
.pap-left,.pap-right{flex:1 1 0; min-width:0}
.pap h2{font-family:'Archivo',sans-serif; text-transform:uppercase; font-weight:900; font-size:clamp(2.375rem, 4.5vw, 3.625rem); color:var(--selva-900); letter-spacing:-0.015em; line-height:0.98}
.pap h2 em{font-family:'Fraunces',serif; font-style:italic; color:var(--papaya); text-transform:none; font-weight:500}
.pap-mockup{
  background:#fff; border-radius:1.5rem; padding:1.875rem;
  box-shadow:0 1.5rem 3.75rem rgba(13,42,28,0.16);
  position:relative;
}
.pap-mockup::before{
  content:"PAGA POQUITO A POCO"; position:absolute;
  top:-0.875rem; left:1.5rem;
  background:var(--papaya); color:#fff;
  padding:0.4375rem 1rem; border-radius:62.4375rem;
  font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.22em; font-weight:800;
}
.pap-mockup h4{font-family:'Fraunces',serif; font-size:1.375rem; color:var(--selva-900); margin-bottom:0.25rem; font-weight:600}
.pap-mockup .pap-sub{color:var(--tinta-2); font-size:0.875rem; margin-bottom:1.375rem}
.pap-bar{height:0.875rem; background:var(--crema); border-radius:62.4375rem; overflow:hidden; margin-bottom:0.5rem;}
.pap-bar i{display:block; height:100%; width:62%; background:linear-gradient(to right, var(--selva-500), var(--mango)); border-radius:62.4375rem}
.pap-bar-row{display:flex; justify-content:space-between; font-size:0.8125rem; color:var(--tinta-2); margin-bottom:1.5rem}
.pap-bar-row b{color:var(--selva-900)}
.pap-rows{display:grid; gap:0.625rem}
.pap-row{
  display:flex; justify-content:space-between; align-items:center;
  padding:0.875rem 1rem; background:var(--crema); border-radius:0.75rem;
  font-size:0.9063rem;
}
.pap-row .left{display:flex; gap:0.75rem; align-items:center}
.pap-row .ico{
  width:2.125rem; height:2.125rem; flex:0 0 2.125rem; border-radius:50%; background:var(--selva-700); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:0.875rem; font-weight:700;
}
.pap-row .left{min-width:0; flex:1 1 auto}
.pap-row .left > div:last-child{min-width:0; word-break:break-word}
.pap-row .amt{flex-shrink:0; white-space:nowrap}
.pap-row.done .ico{background:var(--selva-500)}
.pap-row.now .ico{background:var(--papaya)}
.pap-row.future .ico{background:#cdbf9b; color:var(--selva-900)}
.pap-row b{color:var(--selva-900)}
.pap-row .amt{font-family:'Fraunces',serif; font-size:1.125rem; color:var(--selva-900); font-weight:600}
.pap-list{margin-top:1.125rem; display:grid; gap:1.125rem}
.pap-feature{display:flex; gap:1.125rem; align-items:flex-start}
.pap-feature .num{
  flex:0 0 3rem; height:3rem; border-radius:50%;
  background:var(--selva-700); color:var(--mango);
  font-family:'Fraunces',serif; font-size:1.375rem; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.pap-feature h5{font-family:'Archivo',sans-serif; font-size:1.0625rem; color:var(--selva-900); margin:0 0 0.375rem; font-weight:800; text-transform:uppercase; letter-spacing:0.02em}
.pap-feature p{font-size:0.9063rem; color:var(--tinta-2)}

/* ========== OCASIONES ========== */
.ocasiones{background:var(--crema); padding:6.5rem 0 0}
.occ-head{max-width:44rem; margin-bottom:2.5rem}
.occ-eyebrow{font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--selva-500); font-weight:700; display:flex; align-items:center; gap:0.5rem; margin-bottom:0.75rem}
.occ-eyebrow::before{content:''; display:block; width:1.375rem; height:2px; background:var(--papaya); border-radius:2px; flex-shrink:0}
.occ-head h2{font-family:'Archivo',sans-serif; font-size:clamp(1.75rem,7vw,4.5rem); font-weight:900; color:var(--selva-900); line-height:1.0; margin:0 0 1rem; text-transform:uppercase; letter-spacing:-0.02em; overflow-wrap:break-word}
.occ-head h2 .occ-accent{font-family:'Fraunces',serif; font-style:italic; color:var(--papaya); text-transform:none; font-weight:500}
.occ-head p{font-size:1.0625rem; color:var(--tinta-2); line-height:1.6; margin:0}
.occ-grid{display:grid; grid-template-columns:repeat(6, 1fr); grid-auto-rows:12.5rem; gap:0.875rem}
.occ{border-radius:1.125rem; overflow:hidden; position:relative; color:#fff; cursor:pointer; background:var(--selva-700); display:block;}
.occ img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.occ:hover img{transform:scale(1.06)}
.occ::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(13,42,28,0.88) 0%, rgba(13,42,28,0.15) 50%, transparent 100%);
}
.occ .label{position:absolute; left:1.25rem; right:1.25rem; bottom:1.25rem; z-index:2}
.occ .label .e{font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--mango); font-weight:700}
.occ .label h3{font-family:'Fraunces',serif; font-size:1.5rem; font-weight:600; color:#fff; line-height:1.1; margin:0.375rem 0 0; text-wrap:pretty; letter-spacing:-0.01em}
.occ.big{grid-column:span 3; grid-row:span 2}
.occ.med{grid-column:span 3}
.occ.sm{grid-column:span 2}
.occ.big .label h3{font-size:2.625rem; line-height:1.0}

/* ── Ocasion taxonomy archive hero ── */
.occ-tax-hero{position:relative; background:var(--selva-900) center/cover no-repeat}
.occ-tax-hero-overlay{position:absolute; inset:0; background:linear-gradient(to top, rgba(13,42,28,0.9) 0%, rgba(13,42,28,0.3) 60%, transparent 100%)}
.occ-tax-hero-text{position:relative; z-index:2; padding-top:3rem; padding-bottom:3rem; color:#fff}
.occ-tax-label{font-family:'Archivo',sans-serif; font-size:0.75rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--mango); font-weight:700; display:block; margin-bottom:0.75rem}
.occ-tax-hero-text h1{font-family:'Fraunces',serif; font-size:clamp(2.25rem,5vw,4rem); font-weight:600; color:#fff; margin:0 0 0.875rem; line-height:1.05}
.occ-tax-hero-text p{font-size:1.0625rem; color:rgba(255,255,255,0.8); max-width:38rem; margin:0}

/* ========== DESTINOS ========== */
.destinos{background:var(--selva-900); color:#fff; position:relative; overflow:hidden; margin-top:6.5rem}
.destinos::before{
  content:""; position:absolute; left:-9.375rem; bottom:-9.375rem; width:25rem; height:25rem; border-radius:50%;
  background:radial-gradient(circle, rgba(22,184,200,0.15), transparent 70%);
}
.destinos h2{color:#fff}
.destinos h2 em{color:var(--mango)}
.destinos .section-head p{color:#cbbf9f}
.destinos .kicker{color:var(--mango)}
.destinos .kicker::before{background:var(--mango)}
.dest-grid{display:flex; flex-wrap:wrap; gap:1.125rem}
.dest{position:relative; aspect-ratio:3/4; border-radius:1.125rem; overflow:hidden; color:#fff; flex:0 0 calc(25% - 0.844rem);}
.dest img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.dest:hover img{transform:scale(1.06)}
.dest::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,0.82) 0%, transparent 55%);
}
.dest .info{position:absolute; left:1.25rem; right:1.25rem; bottom:1.25rem; z-index:2; display:flex; justify-content:space-between; align-items:end; gap:0.75rem}
.dest .info h3{font-family:'Fraunces',serif; font-size:1.5rem; font-weight:600}
.dest .info .sub{color:#cbbf9f; font-size:0.7813rem; font-family:'Archivo',sans-serif; text-transform:uppercase; letter-spacing:0.1em; font-weight:600; margin-top:0.25rem}
.dest .info .from{font-size:0.7188rem; color:#cbbf9f; font-family:'Archivo',sans-serif; text-transform:uppercase; letter-spacing:0.12em; font-weight:600; text-align:right}
.dest .info .from b{display:block; font-family:'Fraunces',serif; font-size:1.125rem; color:var(--mango); font-weight:600; margin-top:2px; letter-spacing:-0.01em}
.dest .pin{
  position:absolute; top:0.875rem; left:0.875rem; z-index:2;
  background:rgba(255,255,255,0.95); color:var(--selva-900);
  padding:0.3125rem 0.6875rem; border-radius:62.4375rem;
  font-family:'Archivo',sans-serif; font-size:0.6563rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:800;
}

/* ========== SERVICIOS ========== */
.servicios{background:var(--crema); padding:6.5rem 0 0}
.servicios-top{display:flex; gap:2.5rem; align-items:center; justify-content:space-between; margin-bottom:3rem}
.servicios-left{max-width:42rem}
.servicios-eyebrow{font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--selva-500); font-weight:700; display:flex; align-items:center; gap:0.5rem; margin-bottom:0.75rem}
.servicios-eyebrow::before{content:''; display:block; width:1.375rem; height:2px; background:var(--papaya); border-radius:2px; flex-shrink:0}
.servicios-hl{font-family:'Archivo',sans-serif; font-size:clamp(1.75rem,7.5vw,5rem); font-weight:900; color:var(--selva-900); line-height:1.0; margin:0 0 1rem; text-transform:uppercase; overflow-wrap:break-word}
.servicios-hl .servicios-accent{font-family:'Fraunces',serif; font-style:italic; color:var(--papaya); text-transform:none; font-weight:500}
.servicios-body{font-size:1.0625rem; color:var(--tinta-2); line-height:1.6; margin:0}
.servicios-right{flex-shrink:0}
.servicios-btn{background:var(--selva-900); color:#fff; font-family:'Archivo',sans-serif; font-size:0.75rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; padding:1rem 1.75rem; border-radius:62rem; text-decoration:none; white-space:nowrap; display:inline-block; transition:background .2s ease}
.servicios-btn:hover{background:var(--selva-700)}
.serv-grid{display:flex; flex-wrap:wrap; gap:1.125rem}
.serv{
  background:#fff; border-radius:1.125rem; padding:1.75rem;
  border:1px solid rgba(26,20,16,0.06);
  flex:0 0 calc(25% - 0.844rem);
  transition:transform .2s ease, box-shadow .2s ease;
}
.serv:hover{transform:translateY(-0.25rem); box-shadow:0 1rem 2.25rem rgba(13,42,28,0.1)}
.serv .ico{
  width:3.375rem; height:3.375rem; border-radius:0.875rem;
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; margin-bottom:1.125rem; color:#fff;
}
.serv:nth-child(1) .ico{background:var(--selva-500)}
.serv:nth-child(2) .ico{background:var(--papaya)}
.serv:nth-child(3) .ico{background:var(--turquesa)}
.serv:nth-child(4) .ico{background:var(--coral)}
.serv h4{font-family:'Archivo',sans-serif; text-transform:uppercase; font-size:0.9375rem; font-weight:800; color:var(--selva-900); letter-spacing:0.02em; margin-bottom:0.5rem}
.serv p{font-size:0.9063rem; color:var(--tinta-2); line-height:1.5}
.serv-cta{
  margin-top:2rem;
  background:var(--selva-900); color:#fff;
  border-radius:1.375rem; padding:2.5rem 2.75rem;
  display:flex; gap:2.25rem; align-items:center;
  position:relative; overflow:hidden;
}
.serv-cta > div:first-child{flex:1.1 1 0; min-width:0}
.serv-cta .serv-form{flex:1 1 0; min-width:0}
.serv-cta::before{
  content:""; position:absolute; right:-3.75rem; top:-3.75rem; width:15rem; height:15rem; border-radius:50%;
  background:radial-gradient(circle, rgba(244,181,63,0.25), transparent 70%);
}
.serv-cta-eyebrow{font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--mango); font-weight:700; display:flex; align-items:center; gap:0.5rem; margin-bottom:0.875rem; position:relative}
.serv-cta-eyebrow::before{content:''; display:block; width:1.375rem; height:2px; background:var(--mango); border-radius:2px; flex-shrink:0}
.serv-cta h3{font-family:'Archivo',sans-serif; text-transform:uppercase; font-weight:900; font-size:clamp(1.5rem,6vw,3rem); line-height:1.05; letter-spacing:-0.01em; margin-bottom:0.75rem; position:relative; overflow-wrap:break-word}
.serv-cta h3 em{font-family:'Fraunces',serif; font-style:italic; color:var(--mango); text-transform:none; font-weight:500}
.serv-cta p{color:#cbbf9f; font-size:0.9375rem; max-width:27.5rem; position:relative}
.serv-form{display:flex; flex-wrap:wrap; gap:0.625rem; position:relative}
.serv-form input{
  flex:0 0 100%;
  padding:1rem 1.125rem; border-radius:0.75rem; border:0;
  font-family:'DM Sans',sans-serif; font-size:0.9375rem;
  background:#fff; color:var(--tinta);
}
.serv-form input:first-child{flex:1 1 calc(50% - 0.3125rem)}
.serv-form input:nth-child(2){flex:1 1 calc(50% - 0.3125rem)}
.serv-form button{flex:0 0 100%; padding:1rem; border:0; cursor:pointer; justify-content:center}

/* ========== TESTIMONIOS ========== */
.testi{background:var(--crema-2)}
.testi-grid{display:flex; flex-wrap:wrap; gap:1.5rem}
.testi-card{
  background:#fff; border-radius:1.25rem; padding:2rem;
  border:1px solid rgba(26,20,16,0.06);
  box-shadow:0 0.5rem 1.5rem rgba(13,42,28,0.06);
  display:flex; flex-direction:column; gap:1.125rem;
}
.testi-grid .testi-card{flex:0 0 calc(33.333% - 1rem)}
.testi-card .quote{font-family:'Fraunces',serif; font-size:1.1875rem; line-height:1.5; color:var(--selva-900); font-style:italic}
.testi-card .who{display:flex; align-items:center; gap:0.75rem; margin-top:auto}
.testi-card .who .av{
  width:3rem; height:3rem; border-radius:50%;
  background:linear-gradient(135deg, var(--mango), var(--papaya));
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-family:'Fraunces',serif; font-size:1.125rem;
}
.testi-card .who b{display:block; color:var(--selva-900); font-size:0.9375rem}
.testi-card .who span{font-size:0.8125rem; color:var(--tinta-2)}
.stars{color:var(--mango); letter-spacing:2px; font-size:0.875rem}

/* ========== TESTIMONIOS CARRUSEL ========== */
.testimonios{background:var(--crema-2); padding:6.5rem 0}
.testi-track-wrap{overflow:hidden; margin-top:3rem}
.testi-track{
  display:flex; gap:1.5rem; padding:0.25rem 1.5rem 1.5rem; width:max-content;
  --tw:26rem; --tg:1.5rem;
  animation:testi-scroll 52s linear infinite;
}
.testi-track:hover{animation-play-state:paused}
@keyframes testi-scroll{
  to{transform:translateX(calc(-6 * (var(--tw) + var(--tg))))}
}
.testi-card{
  flex:0 0 var(--tw); background:#fff; border-radius:1.25rem;
  padding:2rem; display:flex; flex-direction:column; gap:1.125rem;
  box-shadow:0 2px 16px rgba(0,0,0,0.06);
}
.testi-stars{color:var(--mango); font-size:1.125rem; letter-spacing:0.1em}
.testi-q{font-size:1rem; line-height:1.65; color:var(--tinta-1); font-style:italic; margin:0; flex:1 1 auto}
.testi-author{display:flex; align-items:center; gap:0.875rem; margin-top:auto}
.testi-avatar{width:2.5rem; height:2.5rem; border-radius:50%; background:var(--mango); color:#fff; font-weight:700; font-size:1rem; display:flex; align-items:center; justify-content:center; flex-shrink:0}
.testi-name{font-weight:700; font-size:0.9375rem; color:var(--selva-900)}
.testi-loc{font-size:0.8125rem; color:var(--tinta-2)}

/* ========== CTA FINAL ========== */
.cta-final-wrap{background:var(--crema); padding:6.5rem 2rem}
.cta-final{
  background:linear-gradient(135deg, var(--selva-700), var(--selva-900));
  color:#fff; border-radius:1.75rem; padding:4rem 3.75rem;
  max-width:76rem; margin:0 auto;
  display:flex; gap:3rem; align-items:center;
  position:relative; overflow:hidden;
}
.cta-final > div:first-child{flex:1 1 0; min-width:0; overflow-wrap:break-word; word-break:break-word}
.cta-final .actions{flex:0 0 22rem}
.cta-final::before{
  content:""; position:absolute; right:-5rem; top:-5rem;
  width:21.25rem; height:21.25rem; border-radius:50%;
  background:radial-gradient(circle, rgba(244,181,63,0.4), transparent 70%);
}
.cta-final::after{
  content:""; position:absolute; left:-6.25rem; bottom:-6.25rem;
  width:18.75rem; height:18.75rem; border-radius:50%;
  background:radial-gradient(circle, rgba(22,184,200,0.22), transparent 70%);
}
.cta-final h2{font-family:'Archivo',sans-serif; text-transform:uppercase; font-weight:900; font-size:clamp(1.375rem,6.5vw,4rem); position:relative; z-index:2; letter-spacing:-0.015em; line-height:0.98; overflow-wrap:break-word}
.cta-final h2 em{font-family:'Fraunces',serif; color:var(--mango); font-style:italic; text-transform:none; font-weight:500}
.cta-final p{color:#d8cba9; margin-top:1.125rem; max-width:31.25rem; position:relative; z-index:2; font-size:1.0625rem}
.cta-final .actions{display:flex; flex-direction:column; gap:0.75rem; position:relative; z-index:2}
.cta-wa{
  background:#25D366; color:#fff;
  padding:1.125rem 1.375rem; border-radius:1rem;
  display:flex; align-items:center; gap:0.875rem;
  font-weight:700;
  box-shadow:0 0.75rem 1.875rem rgba(37,211,102,0.4);
  transition:transform .15s ease, box-shadow .15s ease;
}
.cta-wa:hover{transform:translateY(-2px); box-shadow:0 1rem 2.25rem rgba(37,211,102,0.5)}
.cta-wa .icon{
  width:2.875rem; height:2.875rem; border-radius:50%;
  background:rgba(255,255,255,0.18);
  display:flex; align-items:center; justify-content:center;
}
.cta-wa .icon svg{width:1.5rem; height:1.5rem; fill:#fff}
.cta-wa .num{font-family:'Fraunces',serif; font-size:1.375rem; color:#fff; font-weight:600}
.cta-wa .lab{font-family:'Archivo',sans-serif; font-size:0.6875rem; color:rgba(255,255,255,0.8); display:block; letter-spacing:0.16em; text-transform:uppercase; font-weight:700}

/* ========== FOOTER ========== */
footer{background:var(--selva-900); color:#cbbf9f; padding:4.5rem 0 1.875rem}
.foot-grid{display:flex; flex-wrap:wrap; gap:2.5rem}
footer h5{font-family:'Archivo',sans-serif; text-transform:uppercase; color:#fff; font-size:0.8125rem; margin-bottom:1.125rem; font-weight:800; letter-spacing:0.14em}
footer ul{list-style:none; padding:0; margin:0; display:grid; gap:0.625rem}
footer ul a{font-size:0.9063rem; cursor:pointer}
footer ul a:hover{color:var(--mango)}
.foot-brand{display:flex; gap:1.25rem; align-items:flex-start; flex:0 0 calc(32% - 1.25rem)}
footer .foot-grid > div:not(.foot-brand){flex:1 1 calc(18% - 1.25rem)}
.foot-brand a{cursor:pointer; display:block; flex:0 0 6rem}
.foot-brand img{width:6rem; height:6rem; border-radius:50%; object-fit:cover; box-shadow:0 0 0 0.1875rem rgba(244,181,63,0.25)}
.foot-brand .b-name{font-family:'Fraunces',serif; color:#fff; font-size:1.625rem; font-weight:600; line-height:1.1}
.foot-brand .b-tag{color:var(--mango); font-size:0.6875rem; letter-spacing:0.22em; text-transform:uppercase; font-weight:700; margin:0.3125rem 0 0.875rem; font-family:'Archivo',sans-serif}
.foot-brand p{font-size:0.875rem; line-height:1.55; color:#a89b7a}
.foot-social{display:flex; gap:0.625rem; margin-top:1.125rem; flex-wrap:wrap}
.foot-social a{
  width:2.375rem; height:2.375rem; border-radius:50%;
  flex:0 0 2.375rem; aspect-ratio:1/1;
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1);
  color:#cbbf9f;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.foot-social a:hover{background:var(--mango); color:var(--selva-900); border-color:var(--mango); transform:translateY(-2px)}
.foot-social svg{width:1.0625rem; height:1.0625rem}
.foot-bottom{
  margin-top:3.375rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.08);
  display:flex; justify-content:space-between; gap:1.125rem; font-size:0.8125rem; color:#8c8161; flex-wrap:wrap;
}
.foot-bottom .ribbon{display:flex; gap:1.125rem}
.plixail-credit{display:inline-flex; align-items:center; color:#a89b7a; opacity:0.85; transition:opacity .15s ease, color .15s ease, transform .15s ease;}
.plixail-credit svg{height:1.25rem; width:auto; max-width:100%;}
.plixail-credit:hover{color:var(--mango); opacity:1; transform:translateY(-1px)}

/* placeholder fallback */
.ph-fallback{
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,0.06) 0 0.875rem, transparent 0.875rem 1.75rem),
    linear-gradient(135deg, var(--selva-700), var(--selva-500));
}

/* Floating WhatsApp */
.float-wa{
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:90;
  width:3.875rem; height:3.875rem; min-width:3.875rem; aspect-ratio:1/1;
  border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 0.75rem 1.875rem rgba(37,211,102,0.5);
  transition:transform .2s ease; line-height:0; flex-shrink:0;
}
.float-wa:hover{transform:scale(1.08)}
.float-wa svg{display:block; width:1.875rem; height:1.875rem; fill:#fff}
.float-wa::before{
  content:""; position:absolute; inset:-0.375rem; border-radius:50%;
  border:2px solid rgba(37,211,102,0.5);
  animation:ring 2s ease-out infinite;
}
@keyframes ring{0%{transform:scale(1); opacity:1}100%{transform:scale(1.4); opacity:0}}

/* ========== RESPONSIVE ========== */
@media (max-width: 1400px){
  nav.main ul{display:none}
  .hamburger{display:flex}
}
@media (max-width: 900px){
  .topbar .links a:nth-child(3){display:none}
  .topbar .wrap{padding:0.5rem 1.25rem}
  .pkg-tabs{overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch; flex-wrap:nowrap}
  .pkg-tabs::-webkit-scrollbar{display:none}
  .pkg-tab{flex-shrink:0}
}
@media (max-width: 760px){
  .hero-tag{top:0.875rem; right:auto; left:50%; transform:translateX(-50%); white-space:nowrap; margin-top:0.4rem}
  .nav-cta .btn-ghost, .nav-cta .btn-primary{display:none}
  .logo img{width:3.75rem; height:3.75rem; box-shadow:0 0.375rem 1rem rgba(13,42,28,0.18), 0 0 0 2px #fff, 0 0 0 0.25rem var(--mango)}
  .logo .brand .top{font-size:1.25rem}
  .logo .brand .sub{font-size:0.5938rem; letter-spacing:0.16em; margin-top:0.25rem}
  .logo{gap:0.75rem}
  nav.main .wrap{padding:0.75rem 1.125rem; min-height:auto}
  .topbar{font-size:0.75rem}
  .topbar .wrap{flex-direction:column; align-items:center; gap:0.5rem; text-align:center}
  .topbar .links{gap:0.875rem; flex-wrap:wrap; justify-content:center}
  .topbar .pill{font-size:0.7188rem; justify-content:center}
  .hamburger{width:2.625rem; min-width:2.625rem; height:2.625rem; flex:0 0 2.625rem; border-radius:0.625rem}
  .hamburger span{width:1.125rem}
  .float-wa{width:3.375rem; height:3.375rem; min-width:3.375rem; aspect-ratio:1/1; bottom:1.125rem; right:1.125rem}
  .float-wa svg{width:1.625rem; height:1.625rem}
}
@media (max-width: 980px){
  .hero .wrap{padding-top:3.5rem; padding-bottom:5rem; min-height:35rem}
  .hero{min-height:35rem}
  h1.headline{font-size:clamp(2.5rem,8vw,4rem)}
  .pkg-grid .pkg,.pkg-grid .pkg-card{flex:0 0 calc(50% - 0.8125rem)}
  .pkg-grid .pkg:nth-child(3),.pkg-grid .pkg-card:nth-child(3){flex:0 0 100%}
  .occ-grid{grid-template-columns:repeat(3,1fr); grid-auto-rows:10rem}
  .occ.big{grid-column:span 3; grid-row:span 1}
  .occ.med{grid-column:span 3}
  .occ.sm{grid-column:span 3}
  .dest{flex:0 0 calc(50% - 0.5625rem)}
  .pap-grid{flex-direction:column; gap:2.25rem}
  .testi-grid .testi-card{flex:0 0 100%}
  .cta-final{flex-direction:column; align-items:stretch; padding:3rem 2rem}
  .cta-final .actions{flex:0 0 auto; width:100%}
  .cta-final-wrap{padding:4rem 1.5rem}
  .foot-grid{gap:2rem}
  .foot-brand,.foot-grid > div:not(.foot-brand){flex:0 0 calc(50% - 1rem)}
  .search-card{flex-direction:column; padding:0.625rem; margin:-2rem 1rem 0}
  .search-card form{display:contents}
  .search-card .field{border-right:none; border-bottom:1px solid rgba(26,20,16,0.08); flex:0 0 auto}
  .search-card .field:last-of-type{border-bottom:none}
  .search-card .btn{width:100%; justify-content:center}
  nav.main .wrap{min-height:auto; gap:0.875rem}
  .serv-grid .serv{flex:0 0 calc(50% - 0.5625rem)}
  .serv-cta{flex-direction:column; align-items:stretch; padding:2rem}
  .serv-form input:first-child, .serv-form input:nth-child(2){flex:0 0 100%}
  .servicios-top{flex-direction:column; align-items:flex-start; gap:1.5rem}
  section{padding:4rem 0}
  .servicios{padding:4rem 0 0}
  .ocasiones{padding:4rem 0 0}
  .paquetes-section{padding:4rem 0}
  .pap-section{padding:4rem 0 0}
  .testimonios{padding:4rem 0}
  .destinos{margin-top:4rem}
}
@media (max-width:900px){
  .testi-track{--tw:22rem}
}
@media (max-width:640px){
  .testi-track{--tw:80vw}
  .testimonios{padding:2.5rem 0}
  .wrap{padding:0 1.125rem}
  .servicios{padding:2.5rem 0 0}
  .ocasiones{padding:2.5rem 0 0}
  .pkg-grid .pkg,.pkg-grid .pkg:nth-child(3),.pkg-grid .pkg-card,.pkg-grid .pkg-card:nth-child(3){flex:0 0 100%}
  .dest-grid{gap:0.875rem}
  .dest{flex:0 0 calc(50% - 0.4375rem)}
  .foot-grid{flex-direction:column; text-align:center; align-items:center}
  .foot-brand,.foot-grid > div:not(.foot-brand){flex:0 0 100%}
  .foot-brand{flex-direction:column; align-items:center; gap:0.875rem}
  .foot-brand p{text-align:center}
  .foot-brand .b-tag{margin-left:auto; margin-right:auto}
  .foot-social{justify-content:center}
  .foot-bottom{flex-direction:column; gap:0.75rem; text-align:center; align-items:center}
  .plixail-credit{justify-content:center}
  .foot-bottom .ribbon{justify-content:center}
  .hero-stats{flex-wrap:wrap; gap:1.25rem; justify-content:center}
  .hero-stats .stat{text-align:center}
  .hero .wrap{text-align:center; padding-top:2.5rem; padding-bottom:3.75rem}
  .hero .eyebrow{margin:0 auto 1rem}
  .serv-grid .serv{flex:0 0 100%}
  .servicios-btn{width:100%; text-align:center}
  section .btn, .cta-final-wrap .btn, .search-card .btn{width:100%; justify-content:center}
  .cta-final-wrap .cta-wa{width:100%; justify-content:center}
  h1.headline{font-size:clamp(2.125rem,9vw,3.25rem)}
  .banda-strip{font-size:1.5rem; gap:1.75rem; padding:1rem 0}
  .banda-strip span{gap:1.75rem}
  .banda-strip span::after{font-size:1.25rem}
  .pap-grid{padding:0}
  .cta-final{padding:2.25rem 1.375rem}
  .cta-final h2{font-size:clamp(1.75rem,7vw,2.5rem)}
  .occ-grid{grid-template-columns:1fr; grid-auto-rows:auto}
  .occ.big,.occ.med,.occ.sm{grid-column:span 1; grid-row:span 1; min-height:12.5rem}
  .pkg-tabs{padding:0.375rem}
  .pkg-tab{padding:0.625rem 1rem; font-size:0.75rem}
  section{padding:2.5rem 0}
  .pap-section{padding:2.5rem 0 0}
  .destinos{margin-top:2.5rem}
  .cta-final-wrap{padding:4rem 1.125rem}
  .section-head{margin-bottom:1.5rem}
  .btn{width:100%; justify-content:center}
  .nav-cta .btn{width:auto}
  .pkg-tab, .topbar a, footer a, .hero-dots button, .hamburger, .float-wa{width:auto}
  .page-hero-ctas, .hero-ctas, .ocasion-feat-btns{flex-direction:column; align-items:stretch; gap:0.75rem}
  .page-hero-ctas > .btn, .hero-ctas > .btn, .ocasion-feat-btns > .btn{width:100%; max-width:100%}
}
@media (max-width:380px){
  .wrap{padding:0 0.875rem}
  .topbar{font-size:0.6875rem}
  .topbar .wrap{padding:0.5rem 0.875rem; gap:0.5rem; flex-direction:column; align-items:center; text-align:center}
  .topbar .pill{font-size:0.6563rem; line-height:1.4; justify-content:center}
  .topbar .links{gap:0.625rem; font-size:0.6875rem; justify-content:center; flex-wrap:wrap}
  .topbar .links a{white-space:nowrap}
  nav.main .wrap{padding:0.625rem 0.875rem; gap:0.625rem}
  .logo img{width:3.25rem; height:3.25rem; box-shadow:0 0.25rem 0.75rem rgba(13,42,28,0.18), 0 0 0 2px #fff, 0 0 0 0.1875rem var(--mango)}
  .logo .brand .top{font-size:1.125rem}
  .logo .brand .sub{font-size:0.5313rem; letter-spacing:0.14em; margin-top:0.1875rem}
  .logo{gap:0.625rem}
  .hamburger{width:2.375rem; min-width:2.375rem; height:2.375rem; flex:0 0 2.375rem}
  .hero{min-height:auto}
  .hero p.lede{font-size:0.875rem}
  .banda-strip{font-size:1.25rem; gap:1.25rem}
  .banda-strip span{gap:1.25rem}
  .pkg-tabs{flex-direction:column; width:100%; padding:0.375rem; overflow:visible; gap:0.25rem}
  .pkg-tab{padding:0.625rem 0.75rem; font-size:0.6875rem; width:100%; text-align:center}
  .dest-grid{gap:0.75rem}
  .dest{flex:0 0 100%}
  .dest .info h3{font-size:1.25rem}
  .dest .info .from b{font-size:1rem}
  .dest .pin{font-size:0.625rem; padding:0.3125rem 0.625rem}
  .float-wa{width:3rem; height:3rem; min-width:3rem; aspect-ratio:1/1; bottom:0.875rem; right:0.875rem}
  .float-wa svg{width:1.375rem; height:1.375rem}
  .btn{font-size:0.8125rem; padding:0.6875rem 1rem}
  .search-card{margin:1.25rem 0.625rem 0}
  .cta-final{padding:1.75rem 1.125rem; border-radius:1.25rem}
  .cta-final h2{font-size:1.625rem; line-height:1.02; word-break:break-word; hyphens:auto}
  .cta-final p{font-size:0.9375rem; margin-top:0.875rem}
  .cta-wa{padding:0.875rem 1rem; gap:0.625rem; border-radius:0.875rem}
  .cta-wa .icon{width:2.25rem; height:2.25rem; flex:0 0 2.25rem}
  .cta-wa .icon svg{width:1.125rem; height:1.125rem}
  .cta-wa .num{font-size:1.0625rem}
  .cta-wa .lab{font-size:0.5625rem; letter-spacing:0.12em}
  .pap-card{padding:1rem}
  .pap-row{padding:0.75rem 0.875rem; font-size:0.8125rem; flex-direction:column; align-items:flex-start; gap:0.375rem}
  .pap-row-left{gap:0.625rem; margin-right:0; width:100%}
  .pap-icon{width:1.875rem; height:1.875rem; aspect-ratio:1; flex:0 0 1.875rem; font-size:0.8125rem}
  .pap-row-amount{font-size:1rem; align-self:flex-start; padding-left:calc(1.875rem + 0.625rem)}
  .pap-bar-row{font-size:0.75rem}
  .foot-brand{flex-direction:column; gap:0.875rem; align-items:center; text-align:center}
  .foot-brand .b-tag{margin-left:auto; margin-right:auto}
  .foot-brand img{width:4.5rem; height:4.5rem; flex:0 0 4.5rem}
  .foot-brand .b-name{font-size:1.375rem}
  .foot-brand p{font-size:0.8125rem}
  footer{padding:3rem 0 1.5rem}
  footer .wrap{padding:0 1rem}
  .foot-grid{gap:2rem}
  .foot-bottom{margin-top:2rem; gap:0.75rem; font-size:0.75rem}
  .foot-bottom .ribbon{flex-direction:column; gap:0.375rem}
  .hero-tag{top:0.875rem; right:auto; left:50%; bottom:auto; transform:translateX(-50%); padding:0.5rem 0.75rem; font-size:0.625rem; letter-spacing:0.12em; max-width:calc(100% - 1.75rem); white-space:nowrap}
  .search-card .field{padding:0.75rem 0.875rem}
  .search-card .val{font-size:0.875rem}
  .cta-final-wrap{padding:4rem 1rem}
  .cta-final h2{overflow-wrap:break-word; word-break:break-word; font-size:1.5rem}
}

/* ========== PAQUETES SECTION (dynamic block) ========== */
.paquetes-section{background:var(--crema); padding:6.5rem 0}
.pkg-header{display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:2rem; flex-wrap:wrap}
.pkg-header-left{max-width:42rem}
.pkg-header-right{flex-shrink:0}
.pkg-eyebrow{font-family:'Archivo',sans-serif; font-size:0.75rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--selva-500); font-weight:700; display:flex; align-items:center; gap:0.625rem; margin-bottom:1rem}
.pkg-eyebrow::before{content:""; width:1.5rem; height:2px; background:var(--papaya); display:inline-block}
.pkg-headline{font-family:'Archivo',sans-serif; text-transform:uppercase; font-weight:900; font-size:clamp(1.75rem,7vw,4.5rem); color:var(--selva-900); letter-spacing:-0.015em; line-height:0.98; margin-bottom:1rem; overflow-wrap:break-word}
.pkg-headline .accent{font-family:'Fraunces',serif; font-style:italic; color:var(--papaya); font-weight:500; text-transform:none; letter-spacing:-0.02em}
.pkg-headline br{display:block}
.pkg-lede{color:var(--tinta-2); font-size:1.0625rem; max-width:34rem}
.pkg-tabs-row{margin-bottom:2rem}

/* ── Card grid ── */
.pkg-card{
  background:#fff; border-radius:1.375rem; overflow:hidden;
  box-shadow:0 1px 0 rgba(26,20,16,0.04), 0 0.75rem 1.875rem rgba(13,42,28,0.08);
  border:1px solid rgba(26,20,16,0.06);
  display:flex; flex-direction:column;
  flex:0 0 calc(33.333% - 1.085rem);
  transition:transform .25s ease, box-shadow .25s ease;
}
.pkg-card:hover{transform:translateY(-0.375rem); box-shadow:0 1.5rem 3.5rem rgba(13,42,28,0.18)}

/* ── Card image ── */
.pkg-card-img{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--selva-700)}
.pkg-card-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease}
.pkg-card:hover .pkg-card-img img{transform:scale(1.06)}
.pkg-badges{position:absolute; top:0.875rem; left:0.875rem; display:flex; flex-wrap:wrap; gap:0.375rem; z-index:2}
.pkg-badge{
  display:inline-flex; align-items:center;
  padding:0.5rem 1rem; border-radius:62.4375rem;
  font-family:'Archivo',sans-serif; font-size:0.6875rem; font-weight:800;
  letter-spacing:0.08em; text-transform:uppercase;
  line-height:2; white-space:nowrap;
}
.pkg-fav{
  position:absolute; top:0.875rem; right:0.875rem; z-index:2;
  width:2.375rem; height:2.375rem; border-radius:50%;
  background:rgba(255,255,255,0.95); border:0; padding:0;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:transform .15s ease;
}
.pkg-fav:hover{transform:scale(1.1)}
.pkg-fav svg{width:1.125rem; height:1.125rem; fill:var(--coral)}

/* ── Card body ── */
.pkg-card-body{padding:1.5rem 1.5rem 1.75rem; display:flex; flex-direction:column; flex:1}
.pkg-dest{
  font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--selva-500); font-weight:700; margin-bottom:0.5rem;
}
.pkg-title{font-family:'Fraunces',serif; font-size:1.375rem; color:var(--selva-900); font-weight:600; margin-bottom:0.875rem; line-height:1.2}
.pkg-meta{list-style:none; margin:0 0 0.75rem; padding:0; display:flex; flex-wrap:wrap; gap:0.3125rem 1rem}
.pkg-meta li{
  font-size:0.8125rem; color:var(--tinta-2); display:flex; align-items:center; gap:0.4375rem; line-height:1.35;
}
.pkg-meta li::before{
  content:''; flex-shrink:0; width:0.375rem; height:0.375rem; border-radius:50%;
  background:var(--palma);
}
.pkg-specs{list-style:none; margin:0 0 1.125rem; padding:0; display:flex; flex-wrap:wrap; gap:0.375rem}
.pkg-specs li{
  font-size:0.75rem; padding:0.3125rem 0.6875rem; border-radius:62.4375rem;
  background:rgba(42,136,84,0.1); color:var(--selva-700); font-weight:600;
}
.pkg-specs li::before{content:'✓ '; font-size:0.625rem}
.pkg-price-prefix{display:block; font-family:'Archivo',sans-serif; font-size:0.625rem; color:var(--tinta-2); letter-spacing:0.2em; text-transform:uppercase; font-weight:700; margin-bottom:0.1875rem}
.pkg-price-row{display:flex; align-items:baseline; gap:0.375rem}
.pkg-price-amount{font-family:'Fraunces',serif; font-size:2rem; color:var(--selva-900); font-weight:600; letter-spacing:-0.01em}
.pkg-price-currency{font-size:0.75rem; color:var(--tinta-2); font-weight:500}
.pkg-monthly{font-size:0.8125rem; color:var(--papaya); font-weight:700; margin-top:0.25rem}
.pkg-cta{margin-top:1.25rem; align-self:flex-start}
.pkg-empty{width:100%; text-align:center; color:#9ca3af; padding:3rem}

/* ── btn-outline variant ── */
.btn-outline{
  background:transparent; color:var(--selva-900);
  border:2px solid var(--selva-900); padding:0.6875rem 1.375rem;
}
.btn-outline:hover{background:var(--selva-900); color:#fff}

/* ── Search card required error state ── */
.sc-val.sc-error{border-bottom:2px solid var(--coral) !important; color:var(--coral)}
.field:has(.sc-error) label{color:var(--coral)}

/* ========== PLAN APARTADO ========== */
.pap-section{background:var(--crema); padding:6.5rem 0 0; overflow-x:clip}
.pap-grid{display:flex; gap:5rem; align-items:center}
.pap-eyebrow{display:flex; align-items:center; gap:0.75rem; font-family:'Archivo',sans-serif; font-size:0.8125rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--selva-500); margin-bottom:1.125rem}
.pap-eyebrow::before{content:''; display:inline-block; width:1.5rem; height:2px; background:var(--papaya); flex-shrink:0}
.pap-headline{font-family:'Archivo',sans-serif; font-size:clamp(1.75rem,7vw,4.25rem); font-weight:900; color:var(--selva-900); line-height:1.02; margin:0 0 1.25rem; text-transform:uppercase; letter-spacing:-0.02em; overflow-wrap:break-word}
.pap-accent{font-family:'Fraunces',serif; font-weight:400; font-style:italic; color:var(--papaya); text-transform:none; display:block; letter-spacing:-0.01em}
.pap-body{color:var(--tinta-2); font-size:1.0625rem; line-height:1.65; max-width:32rem; margin-bottom:2.5rem}
.pap-steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1.75rem}
.pap-step{display:flex; gap:1.25rem; align-items:flex-start}
.pap-step-num{flex-shrink:0; width:2.875rem; height:2.875rem; border-radius:50%; background:var(--selva-700); color:var(--mango); font-family:'Fraunces',serif; font-size:1.375rem; font-weight:600; font-style:normal; display:flex; align-items:center; justify-content:center}
.pap-step-title{font-family:'Archivo',sans-serif; font-size:1rem; font-weight:800; letter-spacing:0.06em; text-transform:uppercase; color:var(--selva-900); margin:0 0 0.375rem}
.pap-step-body{color:var(--tinta-2); font-size:1rem; line-height:1.6; margin:0}

/* ── Payment card ── */
.pap-card{background:#fff; border-radius:1.5rem; padding:2.5rem 2rem 2rem; box-shadow:0 2px 0 rgba(26,20,16,0.04), 0 1.25rem 3rem rgba(13,42,28,0.12); border:1px solid rgba(26,20,16,0.06); position:relative; overflow:visible}
.pap-card-badge{display:inline-flex; align-items:center; background:var(--papaya); color:#fff; font-family:'Archivo',sans-serif; font-size:0.6875rem; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; padding:0.5rem 1.125rem; border-radius:62rem; line-height:1.6; position:absolute; top:0; left:2rem; transform:translateY(-50%); white-space:nowrap}
.pap-card-title{font-family:'Fraunces',serif; font-size:1.5rem; font-weight:600; color:var(--selva-900); margin:0 0 0.3125rem; line-height:1.2}
.pap-card-subtitle{font-size:0.9375rem; color:var(--tinta-2); margin:0 0 1.5rem}
.pap-progress-wrap{margin-bottom:1.5rem}
.pap-progress-bar{height:0.75rem; border-radius:62rem; background:var(--crema-2); overflow:hidden; margin-bottom:0.625rem}
.pap-progress-fill{height:100%; border-radius:62rem; background:linear-gradient(to right, var(--selva-500), var(--mango))}
.pap-progress-labels{display:flex; justify-content:space-between; font-size:0.875rem; color:var(--tinta-2)}
.pap-progress-labels strong{color:var(--selva-900); font-weight:700}
.pap-rows{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.625rem}
.pap-row{display:flex; justify-content:space-between; align-items:center; background:var(--crema); border-radius:0.875rem; padding:0.875rem 1rem; font-size:0.9063rem}
.pap-row-left{display:flex; gap:0.75rem; align-items:center; flex:1 1 auto; min-width:0; margin-right:0.75rem}
.pap-icon{flex-shrink:0; width:2.125rem; height:2.125rem; aspect-ratio:1; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.875rem; font-weight:700; color:#fff}
.pap-icon--paid{background:var(--selva-500)}
.pap-icon--pending{background:var(--papaya)}
.pap-icon--upcoming{background:#d8cdb4; color:var(--tinta-2)}
.pap-row-info{min-width:0; overflow-wrap:break-word}
.pap-row-label{display:block; font-weight:700; font-size:1rem; color:var(--selva-900)}
.pap-row-sub{display:block; font-size:0.8125rem; color:var(--tinta-2); margin-top:0.125rem}
.pap-row-sub--due{color:var(--papaya); font-weight:600}
.pap-row-amount{font-family:'Fraunces',serif; font-size:1.125rem; font-weight:600; color:var(--selva-900); flex-shrink:0; white-space:nowrap}

@media (max-width:900px){
  .pap-grid{flex-direction:column; gap:6rem}
  .pap-section{padding:4rem 0 0}
}
@media (max-width:640px){
  .pap-card{padding:1.5rem 1rem}
  .pap-card-badge{left:1rem}
}

/* ========== SINGLE PAQUETE ========== */
.single-pkg-hero{position:relative; aspect-ratio:16/6; overflow:hidden; background:var(--selva-700)}
.single-pkg-hero img{width:100%; height:100%; object-fit:cover; display:block}
.single-pkg-hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(13,42,28,0.85) 0%, rgba(13,42,28,0.25) 60%, transparent 100%);
  display:flex; align-items:flex-end;
}
.single-pkg-hero-text{padding:3rem 2rem; max-width:82.5rem; margin:0 auto; width:100%}
.single-pkg-hero-text .pkg-dest{margin-bottom:0.5rem; font-size:0.8125rem}
.single-pkg-hero-text .pkg-dest{color:var(--palma)}
.single-pkg-hero-text h1{font-family:'Fraunces',serif; font-size:clamp(2.5rem,5.5vw,4.5rem); color:#fff; font-weight:600; margin-bottom:1rem}
.single-pkg-badges{display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:0}
.single-pkg-wrap{display:grid; grid-template-columns:1fr 22rem; gap:3.5rem; align-items:start; padding:4rem 0 6rem}
.single-pkg-content{min-width:0}
.single-pkg-content h2{font-family:'Fraunces',serif; font-size:1.875rem; color:var(--selva-900); margin:2rem 0 1rem; font-weight:600}
.single-pkg-content p{color:var(--tinta-2); line-height:1.7; margin-bottom:1rem}
.single-pkg-content img{border-radius:1rem; margin:1.5rem 0}
.single-pkg-gallery{display:grid; grid-template-columns:repeat(auto-fill, minmax(10rem, 1fr)); gap:0.75rem; margin:1.5rem 0}
.pkg-gallery-btn{display:block; padding:0; border:none; background:none; cursor:zoom-in; border-radius:0.75rem; overflow:hidden}
.pkg-gallery-btn img{aspect-ratio:1; object-fit:cover; display:block; width:100%; transition:transform .4s ease}
.pkg-gallery-btn:hover img{transform:scale(1.06)}
.single-pkg-sidebar{position:sticky; top:6.5rem; background:#fff; border-radius:1.375rem; padding:2rem; box-shadow:0 1px 0 rgba(26,20,16,0.04), 0 0.75rem 1.875rem rgba(13,42,28,0.1); border:1px solid rgba(26,20,16,0.07)}
.single-pkg-sidebar .pkg-specs{margin-bottom:0}
.single-pkg-price{margin:1.25rem 0; padding:1.25rem 0; border-top:1px dashed rgba(26,20,16,0.14); border-bottom:1px dashed rgba(26,20,16,0.14)}
.single-pkg-cta{display:flex; flex-direction:column; gap:0.75rem; margin-top:1.5rem}
.single-pkg-cta .btn{width:100%; justify-content:center}

/* ========== RESPONSIVE — paquetes ========== */
@media (max-width:980px){
  .pkg-header{flex-direction:column; align-items:flex-start; gap:1.25rem}
  .pkg-header-right{width:100%}
  .pkg-header-right .btn{width:100%; justify-content:center}
  .single-pkg-wrap{grid-template-columns:1fr}
  .single-pkg-sidebar{position:static}
  .single-pkg-hero{aspect-ratio:16/7}
}
@media (max-width:640px){
  .paquetes-section{padding:2.5rem 0}
  .pkg-cta{align-self:stretch; text-align:center; justify-content:center}
}

/* ── pkg-card clickable overlay + arrow ── */
.pkg-card{position:relative}
.pkg-card-overlay{position:absolute; inset:0; z-index:0; display:block}
.pkg-card-img,.pkg-card-body{position:relative; z-index:1}
.pkg-fav{position:relative; z-index:2}
.pkg-go{
  position:relative; z-index:2;
  width:2.875rem; height:2.875rem; border-radius:50%;
  background:var(--selva-700); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.25rem; flex-shrink:0;
  transition:background .15s ease;
  text-decoration:none;
}
.pkg-card:hover .pkg-go{background:var(--papaya)}
.pkg-price{display:flex; align-items:flex-end; justify-content:space-between; gap:0.75rem; margin-bottom:0; padding-top:1.125rem; border-top:1px dashed rgba(26,20,16,0.16); margin-top:auto}
.pkg-price-group{display:flex; flex-direction:column; gap:0}

/* ── fix: card overlay must sit above content, arrow above overlay ── */
.pkg-card-overlay{z-index:2}
.pkg-card-img,.pkg-card-body{z-index:1}
.pkg-go{z-index:3}
.pkg-card{cursor:pointer}

/* ========== INNER PAGE HERO ========== */
.page-hero{position:relative; background:var(--selva-900); overflow:hidden; padding:5.5rem 0 4.5rem; color:#fff; isolation:isolate}
.page-hero-bg{position:absolute; inset:0; background-size:cover; background-position:center; z-index:-2}
.page-hero::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(130deg, rgba(14,51,34,0.93) 0%, rgba(14,51,34,0.65) 55%, rgba(14,51,34,0.30) 100%)}
.page-hero .wrap{position:relative; z-index:1}
.page-hero .eyebrow{margin-bottom:1.375rem}
.page-hero h1{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(2.5rem,5.5vw,5rem); letter-spacing:-0.015em; line-height:0.97; color:#fff; margin-bottom:1.25rem; overflow-wrap:break-word}
.page-hero h1 em{font-family:'Fraunces',serif; font-style:italic; font-weight:500; text-transform:none; color:var(--mango); letter-spacing:-0.02em}
.page-hero p.lede{font-size:1.125rem; color:#d8cba9; max-width:38rem; line-height:1.65; margin-bottom:2rem}
.page-hero-ctas{display:flex; gap:0.875rem; flex-wrap:wrap}
@media(max-width:640px){.page-hero{padding:3.5rem 0 3rem} .page-hero h1{font-size:clamp(2rem,8vw,3rem)} .page-hero p.lede{font-size:1rem}}

/* ── Inclusions bar ── */
.incl-bar{background:var(--selva-700); color:#fff; padding:0.875rem 0}
.incl-bar .wrap{display:flex; gap:1.75rem; align-items:center; justify-content:center; flex-wrap:wrap}
.incl-bar-item{display:flex; align-items:center; gap:0.5rem; font-family:'Archivo',sans-serif; font-size:0.75rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; white-space:nowrap}
.incl-bar-item .ico{font-size:1.125rem; line-height:1}
@media(max-width:640px){.incl-bar-item{font-size:0.6875rem; letter-spacing:0.07em}}

/* ========== FILTER BAR ========== */
.filter-bar{background:#fff; border-radius:1.25rem; padding:1.25rem 1.5rem; box-shadow:0 0.5rem 1.5rem rgba(13,42,28,0.08), 0 1px 0 rgba(13,42,28,0.04); border:1px solid rgba(26,20,16,0.06); display:flex; gap:0.875rem; align-items:flex-end; flex-wrap:wrap; margin-bottom:2.5rem}
.filter-field{display:flex; flex-direction:column; gap:0.375rem; flex:1 1 11rem; min-width:0}
.filter-field label{font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--tinta-2); font-weight:700}
.filter-field select,.filter-field input{font-family:'DM Sans',sans-serif; font-size:0.9375rem; color:var(--tinta); border:1.5px solid rgba(26,20,16,0.14); border-radius:0.625rem; padding:0.6875rem 0.875rem; background:#fff; outline:none; width:100%; appearance:none; -webkit-appearance:none; transition:border-color .15s ease}
.filter-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234a3f33' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 0.75rem center; padding-right:2.25rem}
.filter-field select:focus,.filter-field input:focus{border-color:var(--selva-500)}
.filter-bar .btn{flex-shrink:0; align-self:flex-end}
@media(max-width:640px){.filter-bar{flex-direction:column} .filter-field{flex:0 0 auto; width:100%} .filter-bar .btn{width:100%; justify-content:center}}

/* ========== REGION TABS ========== */
.region-tabs{display:flex; gap:0.5rem; flex-wrap:wrap; margin-bottom:2.5rem}
.region-tab{font-family:'Archivo',sans-serif; font-size:0.8125rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; padding:0.6875rem 1.25rem; border-radius:62.4375rem; cursor:pointer; border:2px solid rgba(26,20,16,0.12); background:transparent; color:var(--tinta-2); transition:all .15s ease; text-decoration:none}
.region-tab:hover{border-color:var(--selva-500); color:var(--selva-700); background:rgba(42,136,84,0.06)}
.region-tab.active{background:var(--selva-900); color:#fff; border-color:var(--selva-900)}
.region-tabs.on-dark .region-tab{border-color:rgba(255,255,255,0.22); background:rgba(255,255,255,0.06); color:#fff}
.region-tabs.on-dark .region-tab:hover{border-color:var(--mango); background:rgba(244,181,63,0.16); color:#fff}
.region-tabs.on-dark .region-tab.active{background:var(--mango); border-color:var(--mango); color:var(--selva-900)}
.dest-region{display:none}
.dest-region.active{display:block}

/* ── Best months chips ── */
.best-months{display:flex; gap:0.375rem; flex-wrap:wrap}
.month-chip{font-family:'Archivo',sans-serif; font-size:0.6875rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; padding:0.3125rem 0.625rem; border-radius:62rem; background:rgba(244,181,63,0.14); color:var(--selva-700)}
.month-chip.peak{background:var(--mango); color:var(--selva-900)}

/* ========== CRUISE PAGE ========== */
.cruise-diff-grid{display:flex; flex-wrap:wrap; gap:1.125rem; margin:2.5rem 0 4.5rem}
.cruise-diff{background:#fff; border-radius:1.125rem; padding:1.75rem; border:1px solid rgba(26,20,16,0.06); flex:0 0 calc(25% - 0.844rem); transition:transform .2s ease, box-shadow .2s ease}
.cruise-diff:hover{transform:translateY(-0.25rem); box-shadow:0 1rem 2.25rem rgba(13,42,28,0.1)}
.cruise-diff .ico{width:3rem; height:3rem; border-radius:0.875rem; display:flex; align-items:center; justify-content:center; font-size:1.375rem; margin-bottom:1rem}
.cruise-diff h4{font-family:'Archivo',sans-serif; font-size:0.9375rem; font-weight:800; text-transform:uppercase; letter-spacing:0.04em; color:var(--selva-900); margin-bottom:0.5rem}
.cruise-diff p{font-size:0.9063rem; color:var(--tinta-2); line-height:1.55}
@media(max-width:980px){.cruise-diff{flex:0 0 calc(50% - 0.5625rem)}}
@media(max-width:640px){.cruise-diff{flex:0 0 100%}}

/* ── Cruise payment explainer ── */
.cruise-pay-box{background:linear-gradient(135deg, var(--selva-900), var(--selva-700)); border-radius:1.375rem; padding:3rem 3.25rem; color:#fff; display:flex; gap:3rem; align-items:center; position:relative; overflow:hidden; margin:3rem 0}
.cruise-pay-box::before{content:""; position:absolute; right:-4rem; top:-4rem; width:16rem; height:16rem; border-radius:50%; background:rgba(255,255,255,0.14)}
.cruise-pay-box > div:first-child{flex:1.2 1 0; min-width:0; position:relative}
.cruise-pay-box h3{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(1.5rem,4vw,2.5rem); letter-spacing:-0.015em; color:#fff; margin-bottom:0.875rem; overflow-wrap:break-word}
.cruise-pay-box h3 em{font-family:'Fraunces',serif; font-style:italic; font-weight:500; text-transform:none; color:var(--mango)}
.cruise-pay-box > div:first-child p{color:rgba(255,255,255,0.92); font-size:1.0625rem; max-width:30rem}
.cruise-pay-steps{flex:0 0 22rem; display:flex; flex-direction:column; gap:0.75rem; position:relative}
.cruise-pay-step{background:rgba(255,255,255,0.18); border-radius:0.875rem; padding:1rem 1.25rem; display:flex; gap:1rem; align-items:flex-start}
.cruise-pay-step-num{flex-shrink:0; width:2rem; height:2rem; border-radius:50%; background:rgba(255,255,255,0.3); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:1.125rem; font-weight:600; color:#fff}
.cruise-pay-step-text strong{display:block; font-family:'Archivo',sans-serif; font-size:0.8125rem; font-weight:800; text-transform:uppercase; letter-spacing:0.06em; color:#fff; margin-bottom:0.25rem}
.cruise-pay-step-text span{font-size:0.875rem; color:rgba(255,255,255,0.88)}
@media(max-width:980px){.cruise-pay-box{flex-direction:column; padding:2rem; gap:2rem} .cruise-pay-steps{flex:0 0 auto; width:100%}}
@media(max-width:640px){.cruise-pay-box{padding:1.75rem 1.5rem}}

/* ── Cabin type cards ── */
.cabin-grid{display:flex; flex-wrap:wrap; gap:1.125rem; margin:2rem 0}
.cabin-card{background:#fff; border-radius:1.125rem; padding:1.75rem 1.5rem; border:1px solid rgba(26,20,16,0.06); flex:0 0 calc(25% - 0.844rem); position:relative; overflow:hidden}
.cabin-card.featured{border-color:var(--mango); box-shadow:0 0 0 2px var(--mango)}
.cabin-card .cabin-tag{position:absolute; top:0; right:1.25rem; background:var(--mango); color:var(--selva-900); font-family:'Archivo',sans-serif; font-size:0.6875rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; padding:0.375rem 0.75rem; border-radius:0 0 0.625rem 0.625rem}
.cabin-card .cabin-icon{font-size:2.25rem; margin-bottom:0.75rem; display:block}
.cabin-card h4{font-family:'Fraunces',serif; font-size:1.25rem; color:var(--selva-900); margin-bottom:0.5rem; font-weight:600}
.cabin-card p{font-size:0.875rem; color:var(--tinta-2); margin-bottom:1rem; line-height:1.5}
.cabin-card .cabin-price{font-family:'Archivo',sans-serif; font-size:0.75rem; font-weight:700; color:var(--selva-500); text-transform:uppercase; letter-spacing:0.1em}
.cabin-card .cabin-price b{font-family:'Fraunces',serif; font-size:1.375rem; color:var(--selva-900); font-weight:600; text-transform:none; letter-spacing:-0.01em; margin-left:0.375rem}
@media(max-width:980px){.cabin-card{flex:0 0 calc(50% - 0.5625rem)}}
@media(max-width:640px){.cabin-card{flex:0 0 100%}}

/* ========== VUELOS PAGE ========== */
.vuelos-claim{background:var(--selva-900); border-radius:1.375rem; padding:3.5rem 3.75rem; display:flex; gap:3rem; align-items:center; position:relative; overflow:hidden; margin-bottom:3rem}
.vuelos-claim::before{content:""; position:absolute; right:-5rem; top:-5rem; width:18rem; height:18rem; border-radius:50%; background:radial-gradient(circle, rgba(22,184,200,0.22), transparent 70%)}
.vuelos-claim::after{content:""; position:absolute; left:-4rem; bottom:-4rem; width:14rem; height:14rem; border-radius:50%; background:radial-gradient(circle, rgba(244,181,63,0.18), transparent 70%)}
.vuelos-claim > div:first-child{flex:1.2 1 0; min-width:0; position:relative; z-index:1}
.vuelos-claim h2{font-family:'Archivo',sans-serif; font-weight:900; text-transform:uppercase; font-size:clamp(1.875rem,4.5vw,3.375rem); line-height:1.0; letter-spacing:-0.015em; color:#fff; margin-bottom:1rem; overflow-wrap:break-word}
.vuelos-claim h2 em{font-family:'Fraunces',serif; font-style:italic; font-weight:500; text-transform:none; color:var(--mango)}
.vuelos-claim > div:first-child p{color:#d8cba9; font-size:1.0625rem; max-width:32rem}
.vuelos-form-box{flex:0 0 27rem; background:rgba(255,255,255,0.09); backdrop-filter:blur(0.5rem); border-radius:1.25rem; padding:2rem; border:1px solid rgba(255,255,255,0.15); position:relative; z-index:1}
.vuelos-form-box h4{font-family:'Archivo',sans-serif; font-size:0.6875rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--mango); font-weight:700; margin-bottom:1.25rem}
.vuelos-form{display:flex; flex-direction:column; gap:0.625rem}
.vuelos-form input,.vuelos-form select{font-family:'DM Sans',sans-serif; font-size:0.9375rem; color:var(--tinta); padding:0.875rem 1rem; border-radius:0.75rem; border:0; background:#fff; width:100%; outline:none}
.vuelos-form input::placeholder{color:var(--tinta-2)}
.vuelos-form .two-col{display:grid; grid-template-columns:1fr 1fr; gap:0.625rem}
.vuelos-form select{appearance:none; -webkit-appearance:none}
.vuelos-form button{padding:1rem; border:0; cursor:pointer}
.vuelos-props{display:flex; flex-wrap:wrap; gap:1.125rem; margin-bottom:3rem}
.vuelos-prop{background:#fff; border-radius:1.125rem; padding:1.75rem; border:1px solid rgba(26,20,16,0.06); flex:0 0 calc(25% - 0.844rem); transition:transform .2s ease, box-shadow .2s ease}
.vuelos-prop:hover{transform:translateY(-0.25rem); box-shadow:0 1rem 2.25rem rgba(13,42,28,0.1)}
.vuelos-prop .ico{width:3rem; height:3rem; border-radius:0.875rem; display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:1rem; color:#fff}
.vuelos-prop h4{font-family:'Archivo',sans-serif; font-size:0.9375rem; font-weight:800; text-transform:uppercase; letter-spacing:0.04em; color:var(--selva-900); margin-bottom:0.5rem}
.vuelos-prop p{font-size:0.9063rem; color:var(--tinta-2); line-height:1.55}
@media(max-width:980px){.vuelos-claim{flex-direction:column; padding:2.5rem 2rem; gap:2rem} .vuelos-form-box{flex:0 0 auto; width:100%} .vuelos-prop{flex:0 0 calc(50% - 0.5625rem)}}
@media(max-width:640px){.vuelos-prop{flex:0 0 100%} .vuelos-claim{padding:1.75rem 1.5rem} .vuelos-form .two-col{grid-template-columns:1fr} .vuelos-cmp-grid{grid-template-columns:1fr !important}}
@media(max-width:380px){.vuelos-form-box{padding:1.25rem} .vuelos-form button{padding:0.875rem 0.625rem; font-size:0.75rem; letter-spacing:0.04em; white-space:normal; line-height:1.25; min-width:0; width:100%}}
@media(max-width:640px){#mi-ocasion{padding-top:1.5rem !important}}

/* ========== PAQ FILTERS ========== */
.paq-filters{display:flex; gap:0.625rem; flex-wrap:wrap; margin-bottom:2rem; align-items:center}
.paq-filters select{
  appearance:none; -webkit-appearance:none;
  font-family:'DM Sans',sans-serif; font-size:0.9375rem; font-weight:500; color:var(--tinta);
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%234a3f33' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1rem center;
  padding:0.75rem 2.75rem 0.75rem 1.125rem;
  border-radius:0.875rem; border:1px solid rgba(26,20,16,0.12);
  cursor:pointer; outline:none; min-width:12.5rem;
  box-shadow:0 0.125rem 0.5rem rgba(26,20,16,0.05);
  transition:border-color .18s, box-shadow .18s;
}
.paq-filters select:hover{border-color:var(--selva-500)}
.paq-filters select:focus{border-color:var(--selva-500); box-shadow:0 0 0 3px rgba(42,136,84,0.15)}
@media(max-width:540px){.paq-filters select{width:100%; min-width:0}}
#pkgResults{transition:opacity .22s ease}
#pkgResults.paq-loading{opacity:.4; pointer-events:none}

/* ========== OCASIONES PAGE ========== */
.ocasion-overview-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; padding-bottom:5rem}
.ocasion-card{display:block; border-radius:1rem; overflow:hidden; position:relative; aspect-ratio:3/4; text-decoration:none; background:var(--selva-700)}
.ocasion-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease}
.ocasion-card:hover img{transform:scale(1.05)}
.ocasion-card-body{position:absolute; bottom:0; left:0; right:0; padding:1rem 1.125rem; background:linear-gradient(to top, rgba(0,0,0,0.72) 0%, transparent 100%); color:#fff}
.ocasion-emoji{font-size:1.625rem; display:block; margin-bottom:0.25rem; line-height:1}
.ocasion-card-body h3{font-family:'Archivo',sans-serif; font-size:0.9375rem; font-weight:900; text-transform:uppercase; letter-spacing:0.04em; color:#fff; margin:0; line-height:1.2}
@media(max-width:860px){.ocasion-overview-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.ocasion-overview-grid{grid-template-columns:repeat(2,1fr)}}
.ocasion-features{display:flex; flex-direction:column; gap:6rem; padding:4rem 0 6rem}
.ocasion-feat{display:flex; gap:4rem; align-items:center}
.ocasion-feat + .ocasion-feat{margin-top:6rem}
.ocasion-feat:nth-child(even){flex-direction:row-reverse}
.ocasion-feat-img{flex:0 0 46%; border-radius:1.375rem; overflow:hidden; aspect-ratio:4/3; position:relative; background:var(--selva-700)}
.ocasion-feat-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease}
.ocasion-feat:hover .ocasion-feat-img img{transform:scale(1.05)}
.ocasion-feat-body{flex:1 1 0; min-width:0}
.ocasion-eyebrow{font-family:'Archivo',sans-serif; font-size:0.75rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--selva-500); font-weight:700; display:inline-flex; align-items:center; gap:0.625rem; margin-bottom:0.875rem}
.ocasion-eyebrow::before{content:""; width:1.375rem; height:2px; background:var(--papaya); display:inline-block; flex-shrink:0}
.ocasion-feat-body h2{font-family:'Fraunces',serif; font-size:clamp(2rem,3.5vw,3rem); font-weight:600; color:var(--selva-900); line-height:1.1; margin-bottom:1rem; letter-spacing:-0.015em}
.ocasion-feat-body h2 em{color:var(--papaya); font-style:italic}
.ocasion-feat-body > p{font-size:1.0625rem; color:var(--tinta-2); line-height:1.7; margin-bottom:1.5rem}
.ocasion-example{background:var(--crema-2); border-radius:0.875rem; padding:1.125rem 1.25rem; display:flex; gap:0.875rem; align-items:flex-start; margin-bottom:1.5rem; border-left:3px solid var(--mango)}
.ocasion-example .ex-ico{font-size:1.375rem; flex-shrink:0; line-height:1.2}
.ocasion-example strong{display:block; font-family:'Archivo',sans-serif; font-size:0.75rem; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--papaya); margin-bottom:0.25rem}
.ocasion-example span{font-size:0.9375rem; color:var(--tinta-2); line-height:1.5}
.ocasion-feat-btns{display:flex; gap:0.75rem; flex-wrap:wrap}
.ocasion-feat > .pkg-grid{flex:0 0 48%; max-width:48%; gap:1rem}
.ocasion-feat > .pkg-grid > .pkg-card{flex:1 1 calc(50% - 0.5rem); min-width:0}
@media(max-width:980px){.ocasion-feat,.ocasion-feat:nth-child(even){flex-direction:column-reverse; gap:2rem} .ocasion-feat + .ocasion-feat{margin-top:3rem} .ocasion-feat-img{flex:0 0 auto; width:100%; max-width:100%} .ocasion-feat > .pkg-grid{flex:0 0 auto; width:100%; max-width:100%} .ocasion-feat > .pkg-grid > .pkg-card{flex:0 0 100%} .ocasion-features{gap:3rem; padding:0 0 3rem} .promesa-central{margin-top:3rem}}
@media(max-width:640px){.ocasion-features{gap:3rem; padding:2rem 0}}
