/* ============================================================
   DISCOVER SICHUAN — Design System v5
   Upgraded with: high-end-visual-design · design-taste-frontend · emil-design-eng
   ============================================================ */

:root {
  --teal:    #1f5c63;
  --teal-d:  #16454b;
  --teal-dd: #0f3338;
  --ink:     #13302f;
  --paper:   #f4f1e9;
  --cream:   #fbf8f1;
  --sand:    #e7ddca;
  --leaf:    #4f8c5a;
  --leaf-d:  #3a6b44;
  --gold:    #d8a02e;
  --gold-d:  #bd8821;
  --terra:   #c0492b;
  --terra-d: #a13a20;
  --mist:    #7f9690;

  /* Colored shadows — tinted to palette */
  --shadow-teal:  0 18px 50px rgba(15,51,56,.14), 0 4px 14px rgba(15,51,56,.08);
  --shadow-terra: 0 14px 40px rgba(161,58,32,.22), 0 4px 12px rgba(161,58,32,.12);
  --shadow-gold:  0 8px 28px rgba(189,136,33,.28);
  --shadow-card:  0 2px 6px rgba(15,51,56,.04), 0 12px 36px rgba(15,51,56,.10);

  /* Easing */
  --ease-spring: cubic-bezier(.16,1,.3,1);
  --ease-out:    cubic-bezier(.22,1,.36,1);
}

/* ── Reset ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; min-width:0 }
html { scroll-behavior:smooth }
body {
  font-family:'Plus Jakarta Sans',sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4 { font-family:'Fraunces',serif; font-weight:500; line-height:1.08; text-wrap:balance }
p { text-wrap:pretty }
img { display:block; max-width:100% }
a { color:inherit }
input,select,textarea,button { max-width:100%; box-sizing:border-box }

/* ── Grain texture overlay — breaks digital flatness ── */
body::after {
  content:'';
  position:fixed;
  inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='280' height='280' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  pointer-events:none;
  z-index:10000;
  opacity:.03;
  mix-blend-mode:overlay;
}

/* ── Scroll reveal system ── */
[data-reveal] {
  opacity:0;
  transform:translateY(32px);
  transition:opacity .8s var(--ease-spring), transform .8s var(--ease-spring);
}
[data-reveal].is-visible { opacity:1; transform:none }
[data-reveal][data-delay="1"] { transition-delay:.08s }
[data-reveal][data-delay="2"] { transition-delay:.17s }
[data-reveal][data-delay="3"] { transition-delay:.26s }
[data-reveal][data-delay="4"] { transition-delay:.35s }
[data-reveal][data-delay="5"] { transition-delay:.44s }
[data-reveal][data-delay="6"] { transition-delay:.53s }
@media (prefers-reduced-motion:reduce) {
  [data-reveal] { opacity:1 !important; transform:none !important; transition:none !important }
}

/* ════════════════════════════════════════════════════════════
   NAVIGATION
   ════════════════════════════════════════════════════════════ */
nav {
  position:fixed;
  top:0; left:0; right:0;
  z-index:1000;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:1.1rem 2.4rem;
  color:#fff;
  transition:all .5s var(--ease-out);
}
nav.scrolled {
  background:rgba(11,42,46,.92);
  backdrop-filter:blur(16px) saturate(160%);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  padding:.7rem 2.4rem;
  box-shadow:0 1px 0 rgba(255,255,255,.06), 0 4px 30px rgba(0,0,0,.3);
  border-bottom:1px solid rgba(255,255,255,.07);
}
.logo-wrap { display:flex; align-items:center; gap:.65rem; text-decoration:none; color:inherit }
.logo-icon {
  width:42px; height:42px;
  border-radius:10px;
  object-fit:cover;
  flex-shrink:0;
  box-shadow:0 2px 12px rgba(0,0,0,.3);
}
.logo {
  font-family:'Fraunces',serif;
  font-size:1.35rem;
  font-weight:700;
  line-height:1;
  display:flex;
  flex-direction:column;
}
.logo small {
  font-family:'Plus Jakarta Sans';
  font-size:.52rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  font-weight:500;
  opacity:.78;
  margin-top:4px;
}
.logo b { color:var(--gold) }

.nav-links { display:flex; gap:1.8rem; list-style:none; align-items:center }
.nav-links a {
  text-decoration:none;
  font-size:.8rem;
  font-weight:500;
  position:relative;
  opacity:.88;
  transition:opacity .25s;
}
.nav-links a::after {
  content:'';
  position:absolute;
  bottom:-3px; left:0; right:0;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s var(--ease-out);
}
.nav-links a:hover { opacity:1 }
.nav-links a:hover::after { transform:scaleX(1) }

.burger { display:none; background:none; border:none; color:#fff; font-size:1.5rem; cursor:pointer; line-height:1 }

/* ════════════════════════════════════════════════════════════
   HERO
   ════════════════════════════════════════════════════════════ */
.hero {
  min-height:100dvh;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:8rem 2.4rem 5rem;
  color:#fff;
  background:var(--teal-dd);
  overflow:hidden;
}
.hero-bg {
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 25%;
  z-index:0;
  will-change:transform;
}
/* Multi-layer hero overlay — vignette + directional gradient */
.hero-overlay {
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(ellipse 60% 80% at 0% 50%, rgba(10,38,42,.75) 0%, transparent 70%),
    linear-gradient(to right, rgba(10,38,42,.82) 0%, rgba(10,38,42,.38) 52%, rgba(18,58,64,.52) 100%),
    linear-gradient(to top, rgba(10,38,42,.6) 0%, transparent 40%);
}
.hero-inner {
  position:relative;
  z-index:2;
  max-width:1280px;
  width:100%;
  margin:0 auto;
}
.hero-badge {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.22);
  padding:.42rem 1.1rem;
  border-radius:50px;
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.04em;
  margin-bottom:2rem;
  backdrop-filter:blur(8px);
  opacity:0;
  animation:rise .8s .2s var(--ease-spring) forwards;
}
.hero h1 {
  font-size:clamp(3rem, 9vw, 8rem);
  max-width:14ch;
  font-weight:600;
  letter-spacing:-.035em;
  line-height:1.0;
}
.hero h1 em {
  font-style:italic;
  color:var(--gold);
  font-weight:500;
}
.hero h1 .ln {
  display:block;
  opacity:0;
  transform:translateY(44px);
  animation:rise 1s forwards var(--ease-spring);
  animation-fill-mode:forwards;
}
.hero-divider {
  width:56px;
  height:2px;
  background:var(--gold);
  border-radius:2px;
  margin:1.8rem 0;
  opacity:0;
  animation:rise .8s .85s var(--ease-spring) forwards;
}
.hero-sub {
  max-width:48ch;
  font-size:1.08rem;
  font-weight:300;
  line-height:1.7;
  opacity:0;
  animation:rise .9s 1s var(--ease-spring) forwards;
  color:rgba(255,255,255,.88);
}
.hero-actions {
  margin-top:2.4rem;
  display:flex;
  gap:.9rem;
  flex-wrap:wrap;
  opacity:0;
  animation:rise .9s 1.2s var(--ease-spring) forwards;
}
.hero-extra {
  margin-top:2rem;
  color:rgba(255,255,255,.8);
  font-size:.9rem;
  opacity:0;
  animation:rise .8s 1.4s var(--ease-spring) forwards;
}
.hero-extra a {
  color:var(--gold);
  text-decoration:none;
  border-bottom:1px solid rgba(216,160,46,.35);
  transition:border-color .2s, color .2s;
}
.hero-extra a:hover { color:#fff; border-bottom-color:#fff }

/* Scroll indicator */
.hero-scroll {
  position:absolute;
  bottom:2.5rem;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.4rem;
  opacity:0;
  animation:rise .8s 1.8s var(--ease-spring) forwards;
}
.hero-scroll span {
  font-size:.65rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.6;
}
.hero-scroll-line {
  width:1px;
  height:48px;
  background:linear-gradient(to bottom, rgba(255,255,255,.6), transparent);
  animation:scrollPulse 2.2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%, 100% { opacity:.6; transform:scaleY(1) }
  50% { opacity:1; transform:scaleY(1.1) }
}

@keyframes rise {
  from { opacity:0; transform:translateY(40px) }
  to   { opacity:1; transform:none }
}
@media (prefers-reduced-motion:reduce) {
  .hero-badge,.hero h1 .ln,.hero-sub,.hero-actions,.hero-extra,.hero-divider,.hero-scroll {
    opacity:1 !important; transform:none !important; animation:none !important;
  }
}

/* ════════════════════════════════════════════════════════════
   BUTTONS
   ════════════════════════════════════════════════════════════ */
.btn {
  display:inline-block;
  padding:.9rem 2rem;
  border-radius:50px;
  border:2px solid transparent;
  text-decoration:none;
  font-size:.85rem;
  font-weight:600;
  letter-spacing:.02em;
  transition:transform .35s var(--ease-spring), box-shadow .35s var(--ease-spring), background .2s, border-color .2s;
  cursor:pointer;
  font-family:inherit;
}
.btn:active { transform:scale(.97) translateY(1px) !important }

.btn-primary {
  background:var(--terra);
  color:#fff;
  border-color:var(--terra);
}
.btn-primary:hover {
  background:var(--terra-d);
  border-color:var(--terra-d);
  transform:translateY(-3px);
  box-shadow:var(--shadow-terra);
}

.btn-wa {
  background:#25D366;
  color:#fff;
  border-color:#25D366;
}
.btn-wa:hover {
  background:#1da851;
  border-color:#1da851;
  transform:translateY(-3px);
  box-shadow:0 12px 32px rgba(29,168,81,.35);
}

.btn-map {
  background:transparent;
  border:2px solid var(--teal);
  color:var(--teal);
}
.btn-map:hover { background:var(--teal); color:#fff }
.btn-map.active { background:var(--teal); color:#fff }

/* ════════════════════════════════════════════════════════════
   SECTIONS — shared
   ════════════════════════════════════════════════════════════ */
section { padding:6rem 2.4rem }

.section-head {
  max-width:1280px;
  margin:0 auto 3.5rem;
}
.section-head.center { text-align:center }

.eyebrow {
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.7rem;
  font-weight:700;
  color:var(--terra);
  margin-bottom:1.1rem;
}
.eyebrow::before {
  content:'';
  width:28px;
  height:2px;
  background:var(--terra);
  border-radius:2px;
  flex-shrink:0;
}
.section-head.center .eyebrow::before { display:none }

.section-head h2 {
  font-size:clamp(2rem, 4.5vw, 3.6rem);
  max-width:22ch;
  color:var(--teal-d);
  letter-spacing:-.02em;
}
.section-head.center h2 { margin:0 auto }

.section-head p.lead {
  max-width:58ch;
  margin-top:1.2rem;
  font-weight:300;
  font-size:1.05rem;
  color:#46514c;
  line-height:1.75;
}
.section-head.center p.lead { margin-left:auto; margin-right:auto }

/* ════════════════════════════════════════════════════════════
   FEATURES — editorial numbers instead of emoji columns
   ════════════════════════════════════════════════════════════ */
.feats {
  background:var(--teal-dd);
  padding:5rem 2.4rem;
  position:relative;
  overflow:hidden;
}
/* Subtle radial glow in background */
.feats::before {
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:700px;
  height:700px;
  background:radial-gradient(circle, rgba(31,92,99,.6) 0%, transparent 70%);
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.feats * { color:#fff }
.feat-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  max-width:1280px;
  margin:0 auto;
  position:relative;
}
.feat {
  padding:2.4rem 2rem;
  position:relative;
  border-left:1px solid rgba(255,255,255,.08);
}
.feat:first-child { border-left:none }
.feat-num {
  font-family:'Fraunces',serif;
  font-size:3.5rem;
  font-weight:600;
  color:var(--gold);
  text-shadow:0 2px 24px rgba(216,160,46,.22);
  line-height:1;
  margin-bottom:1.2rem;
  letter-spacing:-.04em;
}
.feat h4 {
  font-family:'Fraunces',serif;
  font-size:1.2rem;
  margin-bottom:.6rem;
  font-weight:600;
  color:#fff;
}
.feat p { font-weight:300; font-size:.9rem; opacity:.78; line-height:1.6 }
.feat .feat-icon { display:none } /* hide old emoji icons if present */
.feat .ic { display:none }

/* ════════════════════════════════════════════════════════════
   RUTAS / ITINERARIES
   ════════════════════════════════════════════════════════════ */
.rutas-section {
  max-width:1240px;
  margin:0 auto;
  padding:5rem 1.5rem;
}
.tabs-wrap { margin-top:2.4rem }
.tabs {
  display:inline-flex;
  background:rgba(15,51,56,.07);
  border:1px solid rgba(15,51,56,.1);
  border-radius:50px;
  padding:.3rem;
  margin:0 auto 2.8rem;
  gap:.2rem;
  max-width:100%;
}
.tabs-row { display:flex; justify-content:center; margin-bottom:.6rem }
.tab {
  background:transparent;
  border:none;
  font-family:inherit;
  font-size:.9rem;
  font-weight:600;
  color:var(--teal-d);
  padding:.8rem 1.6rem;
  cursor:pointer;
  border-radius:50px;
  transition:all .3s var(--ease-out);
  opacity:.7;
}
.tab:hover { opacity:1 }
.tab.active {
  background:#fff;
  color:var(--teal-d);
  opacity:1;
  box-shadow:0 2px 14px rgba(15,51,56,.12);
}
.tab-meta { text-align:center; color:#888; font-size:.82rem; margin-bottom:2rem; font-style:italic }
.tab-panel { display:none }
.tab-panel.active { display:block; animation:fadeIn .4s var(--ease-out) }

@keyframes fadeIn {
  from { opacity:0; transform:translateY(10px) }
  to   { opacity:1; transform:none }
}

.itin-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.6rem;
  max-width:1240px;
  margin:0 auto;
}
.itin-section-break {
  grid-column:1 / -1;
  margin:2rem 0 .5rem;
  padding-top:2.5rem;
  border-top:1px solid rgba(255,255,255,.1);
}
.itin-section-break .break-eyebrow {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold);
  opacity:.75;
  display:block;
  margin-bottom:.4rem;
}
.itin-section-break h4 {
  font-family:'Fraunces',serif;
  font-size:1.5rem;
  font-weight:600;
  color:#fff;
  margin:0;
  letter-spacing:-.01em;
}
.itin {
  border:1px solid rgba(231,221,202,.8);
  border-radius:20px;
  overflow:hidden;
  background:var(--cream);
  display:flex;
  flex-direction:column;
  transition:transform .45s var(--ease-spring), box-shadow .45s var(--ease-spring);
  position:relative;
}
.itin:hover {
  transform:translateY(-7px);
  box-shadow:var(--shadow-teal);
}
.itin.featured {
  border:2px solid var(--gold);
  box-shadow:var(--shadow-gold);
}
.itin.featured:hover {
  box-shadow:0 24px 60px rgba(189,136,33,.28), 0 6px 20px rgba(189,136,33,.15);
}

.itin-img {
  height:260px;
  position:relative;
  overflow:hidden;
}
.itin-img::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(10,38,42,.45) 0%, transparent 60%);
  pointer-events:none;
}
.itin-img img {
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
.itin:hover .itin-img img { transform:scale(1.06) }

.sights-row {
  display:flex;
  gap:.45rem;
  margin:.75rem 0 .1rem;
  overflow-x:auto;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.sights-row::-webkit-scrollbar { display:none }
.sight-card {
  flex:0 0 auto;
  width:96px;
  border-radius:8px;
  overflow:hidden;
  position:relative;
  aspect-ratio:4/3;
}
.sight-card img {
  width:100%; height:100%;
  object-fit:cover;
}
.sight-card span {
  position:absolute;
  bottom:0; left:0; right:0;
  padding:.22rem .4rem;
  font-size:.58rem;
  font-weight:600;
  color:#fff;
  background:linear-gradient(transparent, rgba(0,0,0,.7));
  line-height:1.25;
}

.days-badge {
  position:absolute;
  top:1rem; left:1rem;
  background:rgba(10,38,42,.85);
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.05em;
  padding:.32rem .85rem;
  border-radius:50px;
  z-index:2;
  border:1px solid rgba(255,255,255,.12);
}
.featured-badge {
  position:absolute;
  top:1rem; right:1rem;
  background:var(--gold);
  color:var(--ink);
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.06em;
  padding:.32rem .85rem;
  border-radius:50px;
  z-index:3;
}

.itin-body {
  padding:1.6rem;
  display:flex;
  flex-direction:column;
  flex:1;
}
.itin-body h3 {
  font-size:1.45rem;
  margin-bottom:.35rem;
  font-weight:600;
  color:var(--teal-d);
  letter-spacing:-.015em;
}
.itin-route { font-size:.78rem; color:var(--teal); font-weight:600; margin-bottom:.9rem; opacity:.9 }
.chips { display:flex; flex-wrap:wrap; gap:.38rem; margin-bottom:1rem }
.chip {
  font-size:.68rem;
  background:rgba(79,140,90,.1);
  color:var(--leaf-d);
  padding:.28rem .7rem;
  border-radius:50px;
  font-weight:500;
  border:1px solid rgba(79,140,90,.15);
}
.itin-meta {
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  font-size:.76rem;
  color:#566059;
  font-weight:500;
  padding:.85rem 0;
  border-top:1px solid rgba(231,221,202,.8);
  border-bottom:1px solid rgba(231,221,202,.8);
  margin-bottom:.4rem;
}
.itin-meta span { white-space:nowrap }

.itin-detail { margin:.6rem 0 }
.itin-detail summary {
  cursor:pointer;
  font-size:.82rem;
  font-weight:600;
  color:var(--terra);
  padding:.5rem .85rem;
  list-style:none;
  display:flex;
  align-items:center;
  gap:.4rem;
  border:1.5px solid rgba(192,73,43,.3);
  border-radius:999px;
  background:rgba(192,73,43,.05);
  transition:all .2s;
  width:fit-content;
}
.itin-detail summary:hover { background:var(--terra); color:#fff; border-color:var(--terra) }
.itin-detail summary::-webkit-details-marker { display:none }
.itin-detail summary::before { content:'▸'; transition:transform .25s }
.itin-detail[open] summary::before { transform:rotate(90deg) }

.day { padding:.65rem 0; border-bottom:1px solid rgba(231,221,202,.7) }
.day:last-child { border-bottom:none }
.d-head { display:flex; gap:.7rem; align-items:baseline }
.d-num {
  font-family:'Fraunces',serif;
  font-size:.88rem;
  font-weight:600;
  color:var(--terra);
  flex-shrink:0;
  min-width:3.2rem;
}
.d-route { font-size:.85rem; font-weight:500; line-height:1.5 }
.d-aloj { font-size:.75rem; font-weight:300; color:#6a736c; margin-top:.25rem; padding-left:3.9rem }

.itin-foot { margin-top:auto; padding-top:1.2rem }
.itin-btns { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.9rem }
.itin-btns .btn { flex:1; min-width:120px; text-align:center; padding:.75rem 1rem; font-size:.8rem }

.price-row { margin-bottom:.4rem; display:flex; flex-direction:column; gap:.15rem }
.price-from { display:none }
.price {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.82rem;
  font-weight:500;
  color:var(--mist);
  font-variant-numeric:tabular-nums;
  letter-spacing:0;
}
.price::before { content:'total para 4 personas · hoteles incl.: ' }
.price-unit { display:none }
.price-pp {
  display:block;
  font-family:'Fraunces',serif;
  font-size:2rem;
  font-weight:600;
  color:var(--teal-d);
  letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
  margin-top:0;
  order:-1;
}
.price-row::after { content:'Consulta precio para tu número de viajeros'; display:block; font-size:.68rem; color:var(--mist); opacity:.65; order:3; font-family:'Plus Jakarta Sans',sans-serif; }
.price-note {
  max-width:1240px;
  margin:2rem auto 0;
  font-size:.82rem;
  color:var(--mist);
  text-align:center;
  font-weight:300;
  line-height:1.6;
}

/* ════════════════════════════════════════════════════════════
   DESTINATIONS GRID
   ════════════════════════════════════════════════════════════ */
#destinos { background:var(--cream) }

.dest-grid {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:1.2rem;
  max-width:1280px;
  margin:0 auto;
}
.dcard {
  position:relative;
  border-radius:18px;
  overflow:hidden;
  cursor:pointer;
  min-height:290px;
  display:flex;
  align-items:flex-end;
}
.dcard.big  { grid-column:span 4; min-height:340px }
.dcard.small{ grid-column:span 4; min-height:340px }
.dcard.med  { grid-column:span 4; min-height:340px }
#panel-chengdu .dcard { grid-column:span 6; min-height:340px }
#panel-chengdu .dcard:last-child:nth-child(odd) { grid-column:4 / span 6 }

.dcard img {
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
}
.dcard::after {
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(to top, rgba(10,32,32,.96) 0%, rgba(10,32,32,.5) 30%, rgba(10,32,32,.08) 60%, transparent);
  transition:opacity .4s;
}
.dcard:hover img { transform:scale(1.07) }
.dcard-body {
  position:relative;
  z-index:2;
  padding:1.6rem;
  color:#fff;
}
.dcard-body .alt {
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--gold);
  font-weight:600;
  display:block;
  margin-bottom:.3rem;
}
.dcard-body h3 {
  font-size:1.6rem;
  margin-bottom:.35rem;
  font-weight:600;
  letter-spacing:-.02em;
}
.dcard-body p { font-size:.85rem; opacity:.88; font-weight:300; max-width:44ch; line-height:1.55 }
.dcard-body .elev {
  display:inline-block;
  margin-top:.7rem;
  font-size:.68rem;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(4px);
  padding:.25rem .7rem;
  border-radius:50px;
  font-weight:500;
  border:1px solid rgba(255,255,255,.15);
}

/* ════════════════════════════════════════════════════════════
   MAP SECTION
   ════════════════════════════════════════════════════════════ */
.map-section { background:var(--sand) }
.map-wrap { max-width:1100px; margin:0 auto }
.route-chips {
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  justify-content:center;
  margin-bottom:1.1rem;
}
.rchip {
  background:rgba(255,255,255,.7);
  backdrop-filter:blur(4px);
  border:1px solid rgba(15,51,56,.12);
  border-radius:50px;
  padding:.45rem 1rem;
  font-family:inherit;
  font-size:.76rem;
  font-weight:500;
  color:var(--teal-d);
  cursor:pointer;
  transition:all .25s var(--ease-out);
}
.rchip:hover { border-color:var(--teal); background:#fff; transform:translateY(-1px) }
.rchip.active { background:var(--teal); color:#fff; border-color:var(--teal) }

.map-note {
  text-align:center;
  font-size:.82rem;
  color:var(--teal-d);
  font-weight:500;
  margin-bottom:1rem;
  min-height:1.4em;
}
#map {
  height:520px;
  border-radius:20px;
  box-shadow:var(--shadow-teal);
  z-index:1;
}
.leaflet-popup-content { font-family:'Plus Jakarta Sans',sans-serif; margin:12px 15px; font-size:.85rem }
.leaflet-popup-content b { font-family:'Fraunces',serif; font-size:1rem }

.mtip {
  background:rgba(15,51,56,.95);
  color:#fff;
  border:none;
  border-radius:6px;
  font-size:.72rem;
  font-weight:500;
  padding:.22rem .55rem;
  box-shadow:0 2px 10px rgba(0,0,0,.25);
}
.mtip::before { border-top-color:rgba(15,51,56,.95) }
.mlabel {
  background:transparent;
  color:#fff;
  border:none;
  font-size:.72rem;
  font-weight:700;
  padding:.05rem .3rem;
  font-family:'Plus Jakarta Sans',sans-serif;
  text-shadow:0 0 4px rgba(0,0,0,1), 0 0 4px rgba(0,0,0,.9), 0 1px 3px rgba(0,0,0,.95);
  box-shadow:none;
  letter-spacing:.01em;
}
.mlabel::before { display:none }
.leaflet-tooltip.mlabel { background:transparent !important; border:none !important; box-shadow:none !important }

/* ════════════════════════════════════════════════════════════
   INFO SECTIONS & ACCORDIONS
   ════════════════════════════════════════════════════════════ */
.info-section {
  max-width:860px;
  margin:0 auto;
  padding:5rem 1.5rem;
}
.acc-wrap { display:flex; flex-direction:column; gap:.6rem; margin-top:2rem }
.acc-item {
  background:#fff;
  border:1px solid rgba(231,221,202,.8);
  border-radius:14px;
  overflow:hidden;
  transition:border-color .25s, box-shadow .25s;
}
.acc-item[open] {
  border-color:var(--teal);
  box-shadow:0 4px 20px rgba(31,92,99,.08);
}
.acc-item summary {
  list-style:none;
  cursor:pointer;
  padding:1.1rem 1.4rem;
  font-family:'Fraunces',serif;
  font-size:1.06rem;
  font-weight:600;
  color:var(--teal-d);
  display:flex;
  justify-content:space-between;
  align-items:center;
  transition:color .2s;
  user-select:none;
}
.acc-item summary::-webkit-details-marker { display:none }
.acc-item summary::after {
  content:'+';
  color:var(--teal);
  font-size:1.4rem;
  font-weight:300;
  transition:transform .3s var(--ease-spring);
  margin-left:1rem;
  flex-shrink:0;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.acc-item[open] summary::after { transform:rotate(45deg) }
.acc-body {
  padding:0 1.4rem 1.3rem;
  color:#444;
  font-size:.92rem;
  line-height:1.7;
  border-top:1px solid rgba(231,221,202,.6);
  padding-top:.9rem;
}
.acc-body p { margin:0 0 .7rem }
.acc-body ul { margin:.3rem 0 .3rem 1.2rem; padding:0 }
.acc-body li { margin-bottom:.5rem }
.acc-body b { color:var(--teal-d); font-weight:600 }
.acc-body a { color:var(--terra); text-decoration:underline; text-underline-offset:3px }

/* ════════════════════════════════════════════════════════════
   ESCAPADAS CERCA DE CHENGDU
   ════════════════════════════════════════════════════════════ */
.esc-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1.4rem;
  margin-top:2.4rem;
}
.esc-card {
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(231,221,202,.7);
  display:flex;
  flex-direction:column;
  transition:transform .45s var(--ease-spring), box-shadow .45s var(--ease-spring);
}
.esc-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow-card);
}
.esc-img { position:relative; height:200px; overflow:hidden }
.esc-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s cubic-bezier(.2,.7,.2,1) }
.esc-card:hover .esc-img img { transform:scale(1.05) }
.esc-days {
  position:absolute;
  top:1rem; left:1rem;
  background:rgba(10,38,42,.82);
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:.7rem;
  font-weight:600;
  padding:.3rem .7rem;
  border-radius:50px;
  letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.1);
}
.esc-body {
  padding:1.3rem 1.4rem 1.4rem;
  display:flex;
  flex-direction:column;
  gap:.65rem;
  flex:1;
}
.esc-body h3 { font-family:'Fraunces',serif; font-size:1.18rem; color:var(--teal-d); margin:0; letter-spacing:-.01em }
.esc-route { font-size:.78rem; color:var(--teal); font-weight:500; line-height:1.5; margin:0 }
.esc-desc { font-size:.86rem; color:#444; line-height:1.6; margin:0; flex:1 }
.esc-foot {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:1rem;
  margin-top:.5rem;
  padding-top:.85rem;
  border-top:1px solid rgba(231,221,202,.7);
}
.esc-price-row { display:flex; flex-direction:column; gap:.12rem }
.esc-price {
  font-family:'Fraunces',serif;
  font-size:1.4rem;
  font-weight:600;
  color:var(--terra);
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.esc-price-note { font-size:.68rem; color:#999; line-height:1.4; max-width:160px }
.esc-foot .btn { padding:.6rem 1rem; font-size:.78rem; white-space:nowrap }

/* ════════════════════════════════════════════════════════════
   ABOUT
   ════════════════════════════════════════════════════════════ */
.about { background:var(--cream) }
.about-grid {
  display:grid;
  grid-template-columns:.5fr 1.5fr;
  gap:4rem;
  align-items:center;
  max-width:1080px;
  margin:0 auto;
}
.about-photo { position:relative }
.about-photo .ph {
  border-radius:20px;
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:var(--shadow-teal);
  max-width:260px;
}
.about-photo .ph img { width:100%; height:100%; object-fit:cover }
/* Decorative element behind photo */
.about-photo::before {
  content:'';
  position:absolute;
  inset:-16px -16px auto auto;
  width:70%;
  height:60%;
  border:2px solid var(--gold);
  border-radius:20px;
  opacity:.2;
  pointer-events:none;
}
.about h2 {
  font-size:clamp(1.7rem, 3.5vw, 2.8rem);
  margin-bottom:1.4rem;
  color:var(--teal-d);
  letter-spacing:-.02em;
}
.about p { font-weight:300; margin-bottom:1.1rem; color:#3a443f; font-size:1.02rem; line-height:1.75 }
.about p b { font-weight:600; color:var(--ink) }
.about-sign {
  font-family:'Fraunces',serif;
  font-style:italic;
  font-size:1.3rem;
  color:var(--teal);
  margin-top:.8rem;
  display:block;
}

/* ════════════════════════════════════════════════════════════
   GUÍA (Lead magnet)
   ════════════════════════════════════════════════════════════ */
.guia-lead {
  background:var(--teal-dd);
  color:var(--cream);
  padding:6rem 2.4rem;
  position:relative;
  overflow:hidden;
}
/* Radial glow */
.guia-lead::before {
  content:'';
  position:absolute;
  top:-200px; right:-100px;
  width:600px; height:600px;
  background:radial-gradient(circle, rgba(216,160,46,.08) 0%, transparent 70%);
  pointer-events:none;
}
.guia-lead .gl-inner {
  max-width:1080px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:4rem;
  align-items:center;
  position:relative;
}
.guia-lead .gl-eyebrow {
  display:inline-block;
  color:var(--gold);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700;
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:1.1rem;
}
.guia-lead h2 {
  font-family:'Fraunces',Georgia,serif;
  font-weight:600;
  font-size:clamp(1.8rem,3.5vw,2.8rem);
  line-height:1.1;
  margin:0 0 1rem;
  color:#fbf8f1;
  letter-spacing:-.02em;
}
.guia-lead .gl-sub {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1rem;
  line-height:1.7;
  color:rgba(251,248,241,.78);
  margin:0 0 1.4rem;
}
.guia-lead .gl-list {
  list-style:none;
  padding:0;
  margin:0 0 1.6rem;
  display:grid;
  gap:.55rem;
}
.guia-lead .gl-list li {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.95rem;
  color:rgba(251,248,241,.9);
  padding-left:1.8rem;
  position:relative;
}
.guia-lead .gl-list li::before {
  content:'✓';
  position:absolute;
  left:0;
  color:var(--gold);
  font-weight:700;
}
.guia-lead .gl-img {
  width:100%;
  border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.4);
  display:block;
  margin-top:.4rem;
}
.guia-lead .gl-formwrap { display:flex; justify-content:center }

/* MailerLite overrides */
#mlb2-42398938.ml-form-embedContainer {
  box-sizing:border-box;
  width:100% !important;
  max-width:400px;
  font-family:'Plus Jakarta Sans','Open Sans',Arial,sans-serif;
}
#mlb2-42398938 .ml-form-embedWrapper {
  background-color:#fbf8f1;
  border-radius:14px;
  box-shadow:0 16px 50px rgba(0,0,0,.35);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
#mlb2-42398938 .ml-form-embedBody,
#mlb2-42398938 .ml-form-successBody { padding:28px 26px }
#mlb2-42398938 .ml-form-embedContent { text-align:left; margin-bottom:16px }
#mlb2-42398938 .ml-form-embedContent h4,
#mlb2-42398938 .ml-form-successContent h4 {
  color:var(--teal-d);
  font-family:'Fraunces',Georgia,serif;
  font-size:1.35rem;
  font-weight:600;
  margin:0 0 8px;
}
#mlb2-42398938 .ml-form-embedContent p,
#mlb2-42398938 .ml-form-successContent p { color:var(--ink); font-size:.9rem; line-height:1.55; margin:0 }
#mlb2-42398938 input[type=email] {
  width:100% !important;
  box-sizing:border-box;
  background:#fff;
  color:#333;
  border:1px solid #d4cab7;
  border-radius:10px;
  font-size:.95rem;
  padding:12px 14px;
  margin-bottom:12px;
  font-family:inherit;
  transition:border-color .2s;
}
#mlb2-42398938 input[type=email]:focus { outline:none; border-color:var(--teal) }
#mlb2-42398938 button.primary {
  width:100%;
  background-color:var(--terra);
  color:#fff;
  border:none;
  border-radius:50px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.9rem;
  font-weight:700;
  padding:13px;
  cursor:pointer;
  transition:background-color .2s, transform .3s var(--ease-spring);
}
#mlb2-42398938 button.primary:hover { background-color:var(--terra-d); transform:translateY(-2px) }
#mlb2-42398938 .ml-form-recaptcha { margin:2px 0 14px }
#mlb2-42398938 .ml-mobileButton-horizontal { display:none !important }
#mlb2-42398938 button.loading { display:none }
#mlb2-42398938 .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0 }
.ml-form-embedSubmitLoad { display:inline-block; width:20px; height:20px }
.ml-form-embedSubmitLoad:after {
  content:" ";
  display:block;
  width:11px; height:11px;
  margin:1px;
  border-radius:50%;
  border:4px solid #fff;
  border-color:#fff #fff #fff transparent;
  animation:ml-form-embedSubmitLoad 1.2s linear infinite;
}
@keyframes ml-form-embedSubmitLoad { 0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} }

/* ════════════════════════════════════════════════════════════
   CONTACT
   ════════════════════════════════════════════════════════════ */
.contact { background:var(--paper) }
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:4rem;
  max-width:1200px;
  margin:0 auto;
  align-items:start;
}
.contact h2 {
  font-size:clamp(1.8rem,3.5vw,3rem);
  margin-bottom:1.1rem;
  color:var(--teal-d);
  letter-spacing:-.02em;
}
.contact-info > p {
  font-weight:300;
  color:#3a443f;
  margin-bottom:2rem;
  font-size:1.02rem;
  line-height:1.7;
}
.ci-item {
  display:flex;
  gap:.9rem;
  align-items:center;
  margin-bottom:.9rem;
  padding:.85rem 1.1rem;
  background:var(--cream);
  border-radius:14px;
  border:1px solid rgba(231,221,202,.8);
  text-decoration:none;
  transition:all .3s var(--ease-out);
}
a.ci-item:hover {
  border-color:var(--terra);
  transform:translateX(4px);
  box-shadow:0 4px 16px rgba(192,73,43,.1);
}
.ci-item .ic {
  font-size:1.1rem;
  flex-shrink:0;
  width:40px; height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--paper);
  border-radius:10px;
  border:1px solid rgba(231,221,202,.8);
}
.ci-item b { display:block; font-weight:600; font-size:.92rem }
.ci-item span { font-weight:300; color:#566059; font-size:.86rem }

.form-card {
  background:var(--cream);
  border:1px solid rgba(231,221,202,.8);
  border-radius:22px;
  padding:2.4rem;
  box-shadow:var(--shadow-card);
}
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem }
.field { display:flex; flex-direction:column; min-width:0 }
.field.full { grid-column:span 2 }
.field label {
  font-size:.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.09em;
  margin-bottom:.45rem;
  color:var(--teal-d);
}
.field input,
.field select,
.field textarea {
  padding:.85rem .95rem;
  border:1px solid rgba(212,202,183,.8);
  border-radius:12px;
  background:#fff;
  font-family:inherit;
  font-size:.92rem;
  color:var(--ink);
  transition:border-color .2s, box-shadow .2s;
  width:100%;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  outline:none;
  border-color:var(--teal);
  box-shadow:0 0 0 3px rgba(31,92,99,.08);
}
.field textarea { resize:vertical; min-height:110px }

.form-msg {
  grid-column:span 2;
  background:rgba(79,140,90,.1);
  border:1px solid rgba(79,140,90,.2);
  color:var(--teal-dd);
  padding:.9rem 1rem;
  border-radius:12px;
  font-size:.9rem;
  display:none;
  line-height:1.5;
}
.form-card .btn { grid-column:span 2 }

/* ════════════════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════════════════ */
footer {
  background:var(--teal-dd);
  color:#fff;
  padding:4rem 2.4rem 2rem;
}
.footer-top {
  max-width:1280px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  gap:3rem;
  flex-wrap:wrap;
  padding-bottom:2.5rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-brand { max-width:32ch }
.footer-brand p {
  font-weight:300;
  opacity:.65;
  font-size:.88rem;
  margin-top:.6rem;
  line-height:1.65;
}
.footer-cols { display:flex; gap:3.5rem; flex-wrap:wrap }
.footer-col h4 {
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  margin-bottom:1.1rem;
  color:var(--gold);
  font-weight:700;
}
.footer-col a,
.footer-col span {
  display:block;
  text-decoration:none;
  font-size:.87rem;
  font-weight:300;
  opacity:.7;
  margin-bottom:.55rem;
  transition:opacity .2s, color .2s;
}
.footer-col a:hover { opacity:1; color:var(--gold) }
.footer-bottom {
  max-width:1280px;
  margin:1.8rem auto 0;
  display:flex;
  justify-content:space-between;
  font-size:.76rem;
  opacity:.5;
  flex-wrap:wrap;
  gap:1rem;
}

/* ════════════════════════════════════════════════════════════
   FLOATING WhatsApp
   ════════════════════════════════════════════════════════════ */
.wa-float {
  position:fixed;
  bottom:24px; right:24px;
  width:56px; height:56px;
  background:#25D366;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.7rem;
  box-shadow:0 6px 24px rgba(37,211,102,.45);
  z-index:999;
  text-decoration:none;
  transition:transform .35s var(--ease-spring), box-shadow .35s var(--ease-spring);
}
.wa-float:hover {
  transform:scale(1.12) translateY(-2px);
  box-shadow:0 12px 36px rgba(37,211,102,.55);
}

/* ════════════════════════════════════════════════════════════
   CURRENCY SWITCH
   ════════════════════════════════════════════════════════════ */
.currency-switch {
  display:inline-flex;
  gap:0;
  border:1.5px solid rgba(216,160,46,.5);
  border-radius:999px;
  overflow:hidden;
  margin-left:1rem;
  flex-shrink:0;
}
.currency-switch .cur-btn {
  background:transparent;
  border:0;
  padding:.32rem .7rem;
  font:600 .78rem/1 'Plus Jakarta Sans',sans-serif;
  color:rgba(255,255,255,.75);
  cursor:pointer;
  transition:background .15s, color .15s;
  white-space:nowrap;
}
.currency-switch .cur-btn.active { background:var(--gold); color:var(--teal-dd) }
.currency-switch .cur-btn:hover:not(.active) { background:rgba(216,160,46,.2); color:#fff }

/* ════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════ */
@media (max-width:1000px) {
  .about-grid,
  .contact-layout { grid-template-columns:1fr; gap:2.5rem }
  #map { height:420px }
  .feat-grid { grid-template-columns:repeat(2,1fr) }
  .itin-grid { grid-template-columns:1fr; max-width:520px }
  .dest-grid { grid-template-columns:repeat(2,1fr) }
  .dcard.big,.dcard.small,.dcard.med { grid-column:span 2; min-height:300px }
  .about-photo { max-width:360px; margin:0 auto }
  .about-photo::before { display:none }
  .guia-lead .gl-inner { grid-template-columns:1fr; gap:2.5rem }
  .guia-lead .gl-img { display:none }
  .footer-cols { gap:2rem }
}

@media (max-width:720px) {
  nav { padding:.9rem 1rem; gap:.5rem }
  nav.scrolled { padding:.7rem 1rem }
  .logo-icon { width:34px; height:34px }
  .logo { font-size:1.05rem }
  .logo small { font-size:.46rem; letter-spacing:.22em }
  .currency-switch { margin-left:auto }
  .currency-switch .cur-btn { padding:.28rem .5rem; font-size:.68rem }
  .nav-links {
    display:none;
    position:absolute;
    top:100%; left:0; right:0;
    background:rgba(10,38,42,.97);
    backdrop-filter:blur(16px);
    flex-direction:column;
    padding:1.6rem;
    gap:1.2rem;
    align-items:flex-start;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .nav-links.open { display:flex }
  .burger { display:block }

  section { padding:4rem 1.2rem }
  .hero { padding:7rem 1.4rem 4rem }
  .hero h1 { font-size:clamp(2.5rem, 10vw, 4rem) }
  .hero-scroll { display:none }

  .feat-grid { grid-template-columns:1fr; gap:0 }
  .feat { border-left:none; border-top:1px solid rgba(255,255,255,.08) }
  .feat:first-child { border-top:none }

  .dest-grid { grid-template-columns:1fr }
  .dcard.big,.dcard.small,.dcard.med { grid-column:span 1 }

  .form-grid { grid-template-columns:1fr }
  .field.full,.form-msg,.form-card .btn { grid-column:span 1 }
  .form-card { padding:1.6rem }

  .footer-top { flex-direction:column }
  .footer-cols { gap:2rem }

  #map { height:380px }

  .tabs { width:100%; justify-content:stretch }
  .tab { flex:1; padding:.7rem .5rem; font-size:.8rem; white-space:normal; line-height:1.2 }
}

@media (max-width:520px) {
  .itin-btns { flex-direction:column }
  .itin-btns .btn { width:100%; min-width:0; flex:none }
  .itin-meta { flex-direction:column; gap:.4rem }
  .ci-item span span { word-break:break-word }
  .esc-foot { flex-direction:column; align-items:flex-start; gap:.8rem }
}

/* ════════════════════════════════════════════════════════════
   FOCUS & ACCESSIBILITY
   ════════════════════════════════════════════════════════════ */
:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:4px;
}

/* Skip to content */
.skip-link {
  position:absolute;
  top:-100%;
  left:1rem;
  background:var(--teal-dd);
  color:#fff;
  padding:.6rem 1.2rem;
  border-radius:0 0 8px 8px;
  font-size:.85rem;
  font-weight:600;
  z-index:10001;
  transition:top .2s;
}
.skip-link:focus { top:0 }

html, body { max-width:100%; overflow-x:hidden }
