/* ════════════════════════════════════════════════════════
   HEADER
════════════════════════════════════════════════════════ */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  padding: 0 var(--px); height: 72px; min-height: 72px;
  display: flex; align-items: center; justify-content: space-between;
  transition: background .3s ease, box-shadow .3s ease;
  /* Por defecto: sólido blanco — funciona en todas las páginas */
  background: var(--white);
  box-shadow: 0 1px 0 var(--border);
}

/* En páginas con hero (home, país, tipo safari) y antes de hacer scroll: transparente */
.is-home .site-header:not(.is-scrolled),
.is-pais .site-header:not(.is-scrolled),
.is-tipo-safari .site-header:not(.is-scrolled) {
  background: transparent;
  box-shadow: none;
}

.site-header.is-scrolled {
  background: var(--white);
  box-shadow: 0 1px 0 var(--border);
}

/* Logo */
.site-header__logo { flex-shrink: 0; }
.site-logo-link { display: flex; align-items: center; line-height: 0; height: 36px; overflow: hidden; }
.site-logo-link img,
.site-logo-link picture,
.site-logo-link picture img,
.site-logo-img {
  height: 36px !important; width: auto !important;
  max-width: 180px !important; max-height: 36px !important;
  display: block !important; object-fit: contain;
  /* Negro por defecto (el logo es blanco → lo invertimos) */
  filter: brightness(0) !important;
  transition: filter .3s;
}
/* En hero antes de scroll: logo blanco */
.is-home .site-header:not(.is-scrolled) .site-logo-link img,
.is-home .site-header:not(.is-scrolled) .site-logo-link picture,
.is-home .site-header:not(.is-scrolled) .site-logo-link picture img,
.is-pais .site-header:not(.is-scrolled) .site-logo-link img,
.is-pais .site-header:not(.is-scrolled) .site-logo-link picture,
.is-pais .site-header:not(.is-scrolled) .site-logo-link picture img,
.is-tipo-safari .site-header:not(.is-scrolled) .site-logo-link img,
.is-tipo-safari .site-header:not(.is-scrolled) .site-logo-link picture,
.is-tipo-safari .site-header:not(.is-scrolled) .site-logo-link picture img {
  filter: brightness(0) invert(1) !important;
}
.site-logo-text {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.4rem; font-weight: 700; color: var(--black); transition: color .3s;
}
.is-home .site-header:not(.is-scrolled) .site-logo-text,
.is-pais .site-header:not(.is-scrolled) .site-logo-text { color: var(--white); }

/* ── Admin bar: WordPress admin bar (32px) empuja el header ── */
.admin-bar .site-header { top: 32px; }
.admin-bar .mobile-menu { top: calc(32px + 72px); }
@media screen and (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .admin-bar .mobile-menu { top: calc(46px + 72px); }
}

/* Nav */
.site-nav { display: flex; align-items: center; }
.site-nav__list { display: flex; align-items: center; gap: 40px; flex-wrap: nowrap; }
.site-nav__list li a,
.site-nav__list .nav-parent { white-space: nowrap; }
.site-nav__list li a {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 500; font-size: .9rem;
  color: var(--black); /* negro por defecto */
  transition: color var(--t);
}
.site-nav__list li a:hover { color: var(--amber); }

/* En hero: links blancos */
.is-home .site-header:not(.is-scrolled) .site-nav__list a,
.is-pais .site-header:not(.is-scrolled) .site-nav__list a,
.is-tipo-safari .site-header:not(.is-scrolled) .site-nav__list a { color: rgba(255,255,255,.9); }
.is-home .site-header:not(.is-scrolled) .site-nav__list a:hover,
.is-pais .site-header:not(.is-scrolled) .site-nav__list a:hover,
.is-tipo-safari .site-header:not(.is-scrolled) .site-nav__list a:hover { color: var(--amber); }

.site-header__cta { flex-shrink: 0; }

/* Mobile toggle */
.site-header__toggle {
  display: none; flex-direction: column; gap: 5px;
  width: 28px; margin-left: auto;
}
.site-header__toggle span {
  display: block; height: 2px;
  background: var(--black); border-radius: 2px; transition: all var(--t);
}
.is-home .site-header:not(.is-scrolled) .site-header__toggle span,
.is-pais .site-header:not(.is-scrolled) .site-header__toggle span,
.is-tipo-safari .site-header:not(.is-scrolled) .site-header__toggle span { background: var(--white); }

/* Mobile menu */
.mobile-menu {
  display: none; position: fixed;
  top: 72px; left: 0; right: 0;
  background: var(--white); padding: 24px var(--px) 32px;
  box-shadow: var(--shadow-lg); z-index: 99;
}
.mobile-menu.is-open,
.ww-nav-cb:checked ~ .mobile-menu { display: block; }
.mobile-menu__cta { margin-top: 16px; }
.mobile-menu__list { display: flex; flex-direction: column; gap: 4px; margin-bottom: 20px; }
.mobile-menu__list li a {
  display: block; padding: 10px 0;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 600; font-size: 1.1rem; color: var(--black);
  border-bottom: 1px solid var(--border);
}

/* La barra al completo mide logo 180 + nav 595 (sin gaps) + CTA 177 = 952px.
   Con gap 40 y el padding por defecto deja de caber por debajo de ~1460px,
   asi que se aprieta en dos escalones y por debajo de 1200 pasa a hamburguesa. */
@media (min-width: 1201px) and (max-width: 1460px) {
  .site-header { padding: 0 40px; }
  .site-nav__list { gap: 26px; }
}
@media (min-width: 1201px) and (max-width: 1300px) {
  .site-nav__list { gap: 18px; }
  .site-nav__list > li > a,
  .site-nav__list > li > .nav-parent { font-size: .82rem; }
}

@media (max-width: 1200px) {
  .site-nav, .site-header__cta { display: none; }
  .site-header__toggle { display: flex; }
  .site-header.is-open .site-header__toggle span:nth-child(1),
  .ww-nav-cb:checked ~ .site-header .site-header__toggle span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
  .site-header.is-open .site-header__toggle span:nth-child(2),
  .ww-nav-cb:checked ~ .site-header .site-header__toggle span:nth-child(2) { opacity: 0; }
  .site-header.is-open .site-header__toggle span:nth-child(3),
  .ww-nav-cb:checked ~ .site-header .site-header__toggle span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
  .site-header.is-scrolled .site-header__toggle span { background: var(--black); }
}

/* ── Nav dropdowns (desktop) ─────────────────────────────── */
.site-nav .nav-has-children { position: relative; }
.site-nav .nav-parent {
  display: inline-flex; align-items: center; gap: 5px;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 500; font-size: .9rem;
  color: var(--black); background: none; border: none; padding: 0; cursor: pointer;
  transition: color var(--t);
}
.site-nav .nav-parent:hover { color: var(--amber); }
.nav-chev { width: 13px; height: 13px; transition: transform var(--t); }
.site-nav .nav-has-children:hover .nav-chev,
.site-nav .nav-has-children:focus-within .nav-chev { transform: rotate(180deg); }

.is-home .site-header:not(.is-scrolled) .site-nav .nav-parent,
.is-pais .site-header:not(.is-scrolled) .site-nav .nav-parent,
.is-tipo-safari .site-header:not(.is-scrolled) .site-nav .nav-parent { color: rgba(255,255,255,.9); }
.is-home .site-header:not(.is-scrolled) .site-nav .nav-parent:hover,
.is-pais .site-header:not(.is-scrolled) .site-nav .nav-parent:hover,
.is-tipo-safari .site-header:not(.is-scrolled) .site-nav .nav-parent:hover { color: var(--amber); }

.site-nav .nav-dropdown {
  position: absolute; top: calc(100% + 16px); left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 230px; background: var(--white);
  border: 1px solid var(--border); border-radius: var(--r-md);
  box-shadow: var(--shadow-lg); padding: 8px;
  display: flex; flex-direction: column; gap: 2px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease; z-index: 120;
}
.site-nav .nav-dropdown::before {
  content: ''; position: absolute; top: -16px; left: 0; right: 0; height: 16px;
}
.site-nav .nav-has-children:hover .nav-dropdown,
.site-nav .nav-has-children:focus-within .nav-dropdown,
.site-nav .nav-dropdown.is-open {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.site-nav .nav-dropdown li a {
  display: block; padding: 9px 14px; border-radius: var(--r-sm);
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 500; font-size: .9rem;
  color: var(--black) !important; transition: background var(--t), color var(--t);
}
.site-nav .nav-dropdown li a:hover { background: var(--bg); color: var(--green) !important; }

/* ── Nav dropdowns (móvil, acordeón) ─────────────────────── */
.mobile-menu .nav-parent {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: 12px 0; font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 600; font-size: 1.1rem; color: var(--black);
  background: none; border: none; border-bottom: 1px solid var(--border); cursor: pointer;
}
.mobile-menu .nav-parent .nav-chev { width: 18px; height: 18px; }
.mobile-menu .nav-parent[aria-expanded="true"] .nav-chev { transform: rotate(180deg); }
.mobile-menu .nav-dropdown {
  list-style: none; padding: 0; margin: 0;
  max-height: 0; overflow: hidden; transition: max-height .3s ease;
}
/* 400px deja margen para ~10 entradas sin recortar y mantiene el recorrido
   cerca de la altura real (~240px con 6 países), para que el easing se lea. */
.mobile-menu .nav-dropdown.is-open { max-height: 400px; }
.mobile-menu .nav-dropdown li a {
  display: block; padding: 10px 0 10px 16px; font-size: 1rem;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 500;
  color: var(--text); border-bottom: 1px solid var(--border);
}
.mobile-menu .nav-dropdown li a:hover { color: var(--green); }

/* Pages without hero — header always white */
body:not(.is-home):not(.is-pais):not(.is-tipo-safari):not(.is-parque) .site-header {
  background: var(--white);
  box-shadow: 0 1px 0 var(--border);
}
body:not(.is-home):not(.is-pais):not(.is-tipo-safari):not(.is-parque) .site-nav__list a,
body:not(.is-home):not(.is-pais):not(.is-tipo-safari):not(.is-parque) .site-header__logo-text { color: var(--black); }
body:not(.is-home):not(.is-pais):not(.is-tipo-safari):not(.is-parque) .site-header__toggle span { background: var(--black); }
body:not(.is-home):not(.is-pais):not(.is-tipo-safari):not(.is-parque) .site-header__logo .custom-logo { filter: none; }

/* ════════════════════════════════════════════════════════
   HERO
════════════════════════════════════════════════════════ */
.hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center;
  padding-top: 72px; padding-bottom: 80px;
  overflow: hidden;
  background: var(--brown-d, #3d2f24);
}
.hero__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.hero__bg, .hero__video { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Imagify envuelve el img en <picture class="hero__bg"> → el img interno también debe cubrir */
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
/* Ken Burns sutil en imagen de hero */
.hero__bg { animation: ken-burns 22s ease-out both; transform-origin: 60% 40%; }
@keyframes ken-burns { from { transform: scale(1); } to { transform: scale(1.1); } }
@media (prefers-reduced-motion: reduce) { .hero__bg { animation: none; } }
.hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(10,8,6,.55) 0%, rgba(10,8,6,.3) 55%, rgba(10,8,6,.65) 100%);
}
.hero .wrap { position: relative; z-index: 1; }
.hero__content {
  max-width: 760px; color: var(--white);
  animation: hero-enter .9s cubic-bezier(.16,1,.3,1) both;
  animation-delay: .15s;
}
@keyframes hero-enter {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) { .hero__content { animation: none; } }
.hero__content h1 {
  color: var(--white); margin-bottom: 24px;
  text-shadow: 0 2px 40px rgba(0,0,0,.3);
  text-wrap: balance;
}
.hero__content h1 em { font-style: normal; color: var(--amber); }
.hero__content p { font-size: 1.15rem; color: rgba(255,255,255,.82); margin-bottom: 40px; max-width: 52ch; line-height: 1.75; }
.hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }

.hero-badges {
  position: absolute; bottom: 44px; right: var(--px); z-index: 1;
  display: flex; flex-direction: column; gap: 10px; align-items: flex-end;
}
.hero-badge {
  background: rgba(255,255,255,.1); backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.2); border-radius: var(--r-full);
  padding: 8px 16px; display: flex; align-items: center; gap: 8px;
  color: var(--white); font-size: .8rem;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 500;
}
.hero-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--amber); flex-shrink: 0; }

/* Scroll indicator */
.hero__scroll {
  position: absolute; bottom: 38px; left: 50%;
  transform: translateX(-50%);
  z-index: 2; color: rgba(255,255,255,.45);
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px;
  border: 1px solid rgba(255,255,255,.2); border-radius: 50%;
  transition: var(--t); text-decoration: none;
}
.hero__scroll:hover { color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.5); }
.hero__scroll svg { width: 16px; height: 16px; }

@media (max-width: 640px) {
  .hero { padding-top: 56px; padding-bottom: 60px; }
  .hero__ctas { flex-direction: column; }
  .hero__ctas .btn { width: 100%; justify-content: center; }
  .hero-badges { display: none; }
  .hero__scroll { display: none; }
}

/* ════════════════════════════════════════════════════════
   PERKS — split editorial layout
════════════════════════════════════════════════════════ */
.perks { background: var(--bg); padding-block: 80px; }
.perks-split {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 80px; align-items: start;
}
.perks-lead h2 { margin-bottom: 20px; }
.perks-lead > p {
  color: var(--text); font-size: 1.05rem;
  line-height: 1.8; margin-bottom: 36px; max-width: 40ch;
}
.perks-dl { display: flex; flex-direction: column; }
.perks-dl__item { display: flex; gap: 16px; align-items: flex-start; padding: 24px 0; border-bottom: 1px solid var(--border); }
.perks-dl__item:first-child { border-top: 1px solid var(--border); }
.perks-dl__icon { flex-shrink: 0; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.perks-dl__icon img { width: 100%; height: 100%; object-fit: contain; }
.perks-dl__text { flex: 1; }
.perks-dl__item dt {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 700; font-size: 1rem;
  color: var(--black); margin-bottom: 6px;
}
.perks-dl__item dd { font-size: .9rem; color: var(--text); line-height: 1.7; }

@media (max-width: 768px) {
  .perks-split { grid-template-columns: 1fr; gap: 40px; }
}

/* ════════════════════════════════════════════════════════
   DESTINATIONS
════════════════════════════════════════════════════════ */
.section-header { margin-bottom: 60px; }
.section-header h2 { margin-bottom: 16px; }
.section-header p { color: var(--text); font-size: 1.05rem; max-width: 55ch; line-height: 1.75; }

.dest-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 232px;
  gap: 14px;
}
/* Bento: primer destino destacado (2x2) */
.dest-grid > .dest-card:first-child { grid-column: span 2; grid-row: span 2; }
.dest-card {
  position: relative; border-radius: var(--r-lg); overflow: hidden;
  display: block; text-decoration: none; color: inherit; height: 100%;
}
.dest-img { height: 100%; overflow: hidden; background: var(--bg); }
.dest-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.dest-card:hover .dest-img img { transform: scale(1.06); }
/* La carta destacada respira con titular mayor */
.dest-grid > .dest-card:first-child .dest-info h3 { font-size: clamp(1.4rem, 2.6vw, 2rem); }
.dest-grid > .dest-card:first-child .dest-info p  { font-size: .92rem; }

.dest-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,8,6,.82) 0%, rgba(10,8,6,.08) 55%);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 22px; transition: var(--t);
}
.dest-card:hover .dest-overlay {
  background: linear-gradient(to top, rgba(10,8,6,.92) 0%, rgba(10,8,6,.15) 60%);
}

/* Footer: nombre+subtítulo izquierda, flecha derecha */
.dest-footer {
  display: flex; align-items: flex-end;
  justify-content: space-between; gap: 14px;
}
.dest-info h3 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1rem, 1.8vw, 1.25rem); font-weight: 700;
  color: var(--white); line-height: 1.2; margin-bottom: 4px;
}
.dest-info p {
  font-size: .78rem; color: rgba(255,255,255,.72);
  line-height: 1.4; margin: 0;
}

/* Botón flecha circular */
.dest-arrow {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  background: rgba(255,255,255,.12); backdrop-filter: blur(8px);
  border: 1.5px solid rgba(255,255,255,.3);
  display: flex; align-items: center; justify-content: center;
  color: var(--white); transition: background var(--t), border-color var(--t), transform var(--t);
}
.dest-arrow svg { width: 18px; height: 18px; }
.dest-card:hover .dest-arrow {
  background: var(--amber); border-color: var(--amber);
  transform: translateX(3px);
}

@media (max-width: 900px) {
  /* Movil/tablet: parrilla uniforme 2 columnas (3 y 3), Tanzania igual que el resto */
  .dest-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
  .dest-grid > .dest-card:first-child { grid-column: span 1; grid-row: span 1; }
  .dest-grid > .dest-card:first-child .dest-info h3 { font-size: clamp(1rem, 1.8vw, 1.25rem); }
}
@media (max-width: 600px) {
  /* Movil: subtitulo demasiado largo para la tarjeta -> solo el nombre del pais */
  .dest-info p { display: none; }
}
@media (max-width: 480px) {
  .dest-grid { grid-auto-rows: 172px; gap: 10px; }
}

/* ════════════════════════════════════════════════════════
   ABOUT HOME
════════════════════════════════════════════════════════ */
.about-home { background: var(--bg); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.about-content h2 { margin-bottom: 20px; }
.about-content > p { color: var(--text); font-size: 1.05rem; margin-bottom: 40px; line-height: 1.8; }
.features { display: flex; flex-direction: column; gap: 24px; margin-bottom: 40px; }
.feature { display: flex; gap: 20px; align-items: flex-start; }
.feature__icon {
  flex-shrink: 0; width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
}
.feature__icon img { width: 100%; height: 100%; object-fit: contain; }
.feature h4 { margin-bottom: 4px; font-size: .95rem; }
.feature p  { font-size: .875rem; color: var(--text); line-height: 1.6; }
.about-img { position: relative; }
.about-img__main {
  border-radius: var(--r-xl); overflow: hidden; aspect-ratio: 4/5;
  background: linear-gradient(160deg, rgba(75,106,71,.2) 0%, rgba(106,87,71,.3) 100%);
}
.about-img__main img { width: 100%; height: 100%; object-fit: cover; }
.about-card {
  position: absolute; bottom: -20px; left: -20px;
  background: var(--white); border-radius: var(--r-lg);
  padding: 20px 24px; box-shadow: var(--shadow-lg);
  display: flex; gap: 14px; align-items: center; min-width: 200px;
}
.about-card__icon {
  width: 44px; height: 44px; border-radius: 10px;
  background: var(--green); display: flex; align-items: center; justify-content: center;
  color: var(--white); flex-shrink: 0;
}
.about-card__icon svg { width: 20px; height: 20px; }
.about-card__num { font-family: 'Bricolage Grotesque', sans-serif; font-size: 1.5rem; font-weight: 700; color: var(--black); line-height: 1; }
.about-card__label { font-size: .78rem; color: var(--text); margin-top: 2px; }

@media (max-width: 900px) {
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-img { margin-top: 40px; }
  .about-card { left: 0; }
  .about-img__main { aspect-ratio: 16/9; }
}

/* ════════════════════════════════════════════════════════
   SAFARI TYPES — tarjetas con imagen + overlay
════════════════════════════════════════════════════════ */
.stype-grid {
  display: grid; gap: 16px; margin-top: 56px;
  grid-template-columns: repeat(4, 1fr);
}
.stype {
  position: relative; display: block; overflow: hidden;
  border-radius: var(--r-lg); aspect-ratio: 3/4;
  color: var(--white); text-decoration: none;
  background: var(--brown-d);
}
.stype__img { position: absolute; inset: 0; }
.stype__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.stype:hover .stype__img img { transform: scale(1.07); }
.stype__overlay {
  position: absolute; inset: 0; z-index: 1;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 24px;
  background: linear-gradient(to top, rgba(10,8,6,.88) 0%, rgba(10,8,6,.35) 45%, rgba(10,8,6,.05) 100%);
}
.stype__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem; font-weight: 700; color: var(--white);
  line-height: 1.18; margin-bottom: 8px;
}
.stype__text {
  font-size: .85rem; color: rgba(255,255,255,.82); line-height: 1.55;
  margin-bottom: 14px;
  /* clamp a 3 líneas para igualar alturas visuales */
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.stype__cta {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600;
  font-size: .82rem; color: var(--amber);
  transition: gap var(--t);
}
.stype__cta svg { width: 16px; height: 16px; }
.stype:hover .stype__cta { gap: 12px; }

@media (max-width: 1000px) { .stype-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px)  { .stype-grid { grid-template-columns: 1fr; } .stype { aspect-ratio: 4/3; } }

/* ════════════════════════════════════════════════════════
   HOW IT WORKS
════════════════════════════════════════════════════════ */
.how-it-works { background: var(--black); }
.how-it-works h2 { color: var(--white); margin-bottom: 64px; }
.steps {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; position: relative;
}
.steps::before {
  content: ''; position: absolute;
  top: 22px; left: 12.5%; right: 12.5%;
  height: 1px; background: rgba(255,255,255,.1);
}
.step { padding-right: 32px; }
.step__num {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--amber);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700;
  font-size: .95rem; color: var(--white); margin-bottom: 24px; position: relative; z-index: 1;
}
.step h4 { color: var(--white); margin-bottom: 10px; font-size: 1rem; }
.step p  { font-size: .875rem; color: rgba(255,255,255,.55); line-height: 1.7; }

@media (max-width: 900px) {
  .steps { grid-template-columns: repeat(2, 1fr); gap: 40px; }
  .steps::before { display: none; }
}
@media (max-width: 480px) { .steps { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   CTA STRIP
════════════════════════════════════════════════════════ */
.cta-strip {
  background: var(--brown); padding-block: 80px;
  position: relative; overflow: hidden;
}
.cta-strip::before {
  content: ''; position: absolute; inset: 0;
  background: url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=1400&q=60') center/cover;
  opacity: .12;
}
.cta-inner {
  position: relative; z-index: 1;
  text-align: center; max-width: 640px; margin-inline: auto;
}
.cta-inner h2 { color: var(--white); margin-bottom: 16px; }
.cta-inner p  { color: rgba(255,255,255,.75); font-size: 1.05rem; margin-bottom: 36px; line-height: 1.7; }
.cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ════════════════════════════════════════════════════════
   FAQ
════════════════════════════════════════════════════════ */
.faq-home { background: var(--bg); }
.faq-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 80px; align-items: start; }
.faq-sidebar h2 { margin-bottom: 16px; }
.faq-sidebar p  { color: var(--text); margin-bottom: 28px; line-height: 1.7; }
.faq-list { display: flex; flex-direction: column; gap: 2px; }
details.faq-item {
  background: var(--white); border-radius: var(--r-md);
  border: 1px solid var(--border); overflow: hidden; transition: var(--t);
}
details.faq-item[open] { border-color: var(--green); }
details.faq-item[open] summary.faq-q { color: var(--green); }
summary.faq-q {
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 24px; cursor: pointer; list-style: none;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600;
  font-size: .95rem; color: var(--black); gap: 16px; user-select: none;
}
summary.faq-q::-webkit-details-marker { display: none; }
.faq-icon {
  width: 24px; height: 24px; border-radius: 50%;
  border: 1.5px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: var(--t);
}
details[open] .faq-icon { background: var(--green); border-color: var(--green); color: var(--white); }
.faq-icon svg { width: 12px; height: 12px; }
details[open] .faq-plus { display: none; }
details:not([open]) .faq-minus { display: none; }
.faq-a { padding: 0 24px 20px; font-size: .9rem; color: var(--text); line-height: 1.8; }

@media (max-width: 768px) {
  .faq-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ════════════════════════════════════════════════════════
   FOOTER
════════════════════════════════════════════════════════ */
.site-footer { background: var(--black); padding-top: 70px; }
.footer-grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
  gap: 48px; padding-bottom: 60px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer-brand p {
  font-size: .875rem; color: rgba(255,255,255,.45);
  margin-top: 16px; line-height: 1.7; max-width: 26ch;
}
.footer-logo-text {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.5rem; font-weight: 700; color: var(--white);
}
.footer-logo .custom-logo-link img { height: 28px; width: auto; filter: brightness(100); }
.footer-social { display: flex; gap: 10px; margin-top: 24px; }
.footer-social a {
  width: 36px; height: 36px; border-radius: var(--r-sm);
  background: rgba(255,255,255,.07);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.5); transition: var(--t);
}
.footer-social a:hover { background: var(--green); color: var(--white); }
.footer-social svg { width: 16px; height: 16px; }
.footer-col h5 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .75rem; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: rgba(255,255,255,.35); margin-bottom: 18px;
}
.footer-col ul { display: flex; flex-direction: column; gap: 10px; }
.footer-col a { font-size: .875rem; color: rgba(255,255,255,.55); transition: var(--t); }
.footer-col a:hover { color: var(--white); }
.footer-bottom {
  display: flex; justify-content: space-between; align-items: center;
  padding-block: 20px; flex-wrap: wrap; gap: 12px;
}
.footer-bottom p { font-size: .78rem; color: rgba(255,255,255,.5); }
.footer-legal { display: flex; gap: 24px; }
.footer-legal a { font-size: .78rem; color: rgba(255,255,255,.5); transition: var(--t); }
.footer-legal a:hover { color: rgba(255,255,255,.8); }

@media (max-width: 1200px) {
  .footer-grid { grid-template-columns: repeat(4, 1fr); gap: 40px 32px; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; }
}

/* ════════════════════════════════════════════════════════
   PAGE HERO (páginas internas)
════════════════════════════════════════════════════════ */
.page-hero {
  padding: 90px var(--px) 40px;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  max-width: 100%;
}
.page-hero .wrap { padding: 0; }
.page-hero h1 { font-size: clamp(2rem, 4vw, 3.2rem); margin-bottom: 16px; }
.page-hero p { font-size: 1.1rem; color: var(--text); max-width: 52ch; }

/* ════════════════════════════════════════════════════════
   SOBRE NOSOTROS
════════════════════════════════════════════════════════ */
.sobre-intro { padding-block: 100px; }
.sobre-intro__cta { margin-top: 24px; }
.sobre-intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.sobre-intro-content h2 { margin-bottom: 20px; }
.sobre-intro-content p { color: var(--text); line-height: 1.8; margin-bottom: 16px; }
.sobre-img {
  aspect-ratio: 4/3; border-radius: var(--r-xl); overflow: hidden;
  background: linear-gradient(135deg, var(--bg) 0%, var(--border) 100%);
}
.sobre-img img { width: 100%; height: 100%; object-fit: cover; }

.valores { background: var(--bg); }
.valores-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 2px; background: var(--border);
  border-radius: var(--r-lg); overflow: hidden;
  margin-top: 56px;
}
.valor-card { background: var(--white); padding: 36px 28px; }
.valor-card__icon { width: 48px; height: 48px; color: var(--green); margin-bottom: 18px; }
.valor-card__icon svg { width: 100%; height: 100%; }
.valor-card h4 { margin-bottom: 8px; font-size: 1rem; }
.valor-card p  { font-size: .875rem; color: var(--text); line-height: 1.6; }

.diferencial { padding-block: 100px; }
.diferencial-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 80px; align-items: start; }
.diferencial-list { display: flex; flex-direction: column; gap: 0; margin-top: 40px; }
.diferencial-item {
  display: flex; gap: 20px; align-items: flex-start;
  padding-block: 24px; border-bottom: 1px solid var(--border);
}
.diferencial-num {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 2rem; font-weight: 700; color: var(--amber);
  line-height: 1; flex-shrink: 0; width: 52px;
}
.diferencial-item h4 { margin-bottom: 6px; font-size: 1rem; }
.diferencial-item p  { font-size: .875rem; color: var(--text); line-height: 1.6; }

.destinos-pills h3 { font-size: 1.1rem; margin-bottom: 16px; }
.destino-pill {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; border: 1px solid var(--border); border-radius: var(--r-md);
  margin-bottom: 8px; transition: var(--t);
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600; font-size: .9rem;
}
.destino-pill:hover { border-color: var(--green); color: var(--green); }
.destino-pill img { width: 36px; height: 36px; border-radius: 6px; object-fit: cover; }

@media (max-width: 900px) {
  .sobre-intro-grid { grid-template-columns: 1fr; }
  .valores-grid { grid-template-columns: repeat(2, 1fr); }
  .diferencial-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) { .valores-grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   CONTACTO
════════════════════════════════════════════════════════ */
.contacto { padding-block: 60px 100px; }
.contacto-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 80px; align-items: start; }
.contacto-info h2 { margin-bottom: 16px; }
.contacto-info > p { color: var(--text); line-height: 1.8; margin-bottom: 40px; }
.contacto-datos { display: flex; flex-direction: column; gap: 12px; margin-bottom: 40px; }
.contacto-dato {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 20px; background: var(--bg); border-radius: var(--r-md);
}
.contacto-dato__icon {
  width: 44px; height: 44px; border-radius: var(--r-md);
  background: var(--green); display: flex; align-items: center;
  justify-content: center; color: var(--white); flex-shrink: 0;
}
.contacto-dato__icon svg { width: 20px; height: 20px; }
.contacto-dato__label { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text); margin-bottom: 2px; }
.contacto-dato__value { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600; color: var(--black); font-size: 1rem; }
.contacto-dato__value:hover { color: var(--green); }
.contacto-tags-label { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--text); margin-bottom: 12px; display: block; }
.contacto-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.contacto-tags a {
  padding: 6px 14px; border: 1px solid var(--border); border-radius: var(--r-full);
  font-size: .8rem; font-family: 'Bricolage Grotesque', sans-serif; font-weight: 500;
  color: var(--black); transition: var(--t);
}
.contacto-tags a:hover { border-color: var(--green); color: var(--green); }

/* Form */
.contacto-form-wrap {
  background: var(--white); border-radius: var(--r-xl);
  padding: 40px; box-shadow: var(--shadow-md);
  border: 1px solid var(--border);
}
.form-title { font-size: 1.3rem; margin-bottom: 28px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { margin-bottom: 16px; }
.form-label {
  display: block; font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 600; font-size: .85rem; color: var(--black); margin-bottom: 8px;
}
.form-label-hint { font-weight: 400; color: var(--text); font-size: .8rem; }
.form-input {
  width: 100%; padding: 12px 16px;
  border: 1px solid var(--border); border-radius: var(--r-md);
  font-family: 'Inter', sans-serif; font-size: .95rem;
  color: var(--black); background: var(--white);
  transition: border-color var(--t); outline: none;
}
.form-input:focus { border-color: var(--green); }
.form-textarea { resize: vertical; min-height: 130px; }
.form-select {
  appearance: none; cursor: pointer; padding-right: 42px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c5855' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px;
}

/* ── Estados del formulario ───────────────────────────────── */
.form-error { font-size: .8rem; color: #b3261e; margin-top: 6px; line-height: 1.4; }
.form-error:empty { display: none; }
.form-input.is-invalid,
.form-input.is-invalid:focus { border-color: #b3261e; }

.form-consent {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 22px 0 4px; font-size: .88rem; line-height: 1.5; color: var(--text);
  cursor: pointer; user-select: none;
}
.form-consent input {
  margin-top: 2px; width: 17px; height: 17px; flex-shrink: 0;
  accent-color: var(--green); cursor: pointer;
}
.form-consent a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }

#ww-submit { margin-top: 22px; }
.btn-loading { display: none; align-items: center; gap: 8px; }
#ww-submit.is-loading .btn-text    { display: none; }
#ww-submit.is-loading .btn-loading { display: inline-flex; }
#ww-submit:disabled { opacity: .85; cursor: default; transform: none; box-shadow: none; }
.ww-spinner { animation: ww-spin .7s linear infinite; }
@keyframes ww-spin { to { transform: rotate(360deg); } }

/* Separador de sección dentro del formulario */
.form-section-sep {
  margin: 24px 0 20px; padding-top: 24px;
  border-top: 1px solid var(--border);
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text); opacity: .55;
}

/* Honeypot: fuera de pantalla, accesible para que los bots lo rellenen */
.ww-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Pills de selección (radio y checkbox) */
.form-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.form-pill { position: relative; }
.form-pill input[type="radio"],
.form-pill input[type="checkbox"] {
  position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none;
}
.form-pill label {
  display: inline-flex; align-items: center; padding: 9px 18px;
  border: 1.5px solid var(--border); border-radius: var(--r-full);
  font-size: .85rem;
  color: var(--text); cursor: pointer;
  transition: border-color .2s ease, color .2s ease, background-color .2s ease;
  background: var(--white); user-select: none; line-height: 1.3;
}
.form-pill input:checked + label {
  border-color: var(--green); color: var(--green);
  background: rgba(75,106,71,.08); font-weight: 500;
}
.form-pill label:hover { border-color: var(--green); color: var(--green); }
/* Stepper 2 pasos */
.ww-stepper { display: flex; align-items: flex-start; gap: 0; margin-bottom: 28px; }
.ww-stepper__step { display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 56px; }
.ww-stepper__dot {
  width: 28px; height: 28px; border-radius: var(--r-full);
  border: 2px solid var(--border); background: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-size: .7rem; font-weight: 700; color: var(--text);
  transition: border-color .25s ease, background-color .25s ease, color .25s ease;
}
.ww-stepper__step.is-active .ww-stepper__dot,
.ww-stepper__step.is-done .ww-stepper__dot { border-color: var(--green); background: var(--green); color: var(--white); }
.ww-stepper__label { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text); font-weight: 500; }
.ww-stepper__step.is-active .ww-stepper__label { color: var(--black); font-weight: 600; }
.ww-stepper__line { flex: 1; height: 2px; background: var(--border); margin-top: 13px; margin-bottom: 22px; transition: background-color .3s ease; }
.ww-stepper__line.is-done { background: var(--green); }

.ww-back {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: none; padding: 0; margin-bottom: 20px;
  font-size: .85rem; color: var(--text); cursor: pointer; font-family: inherit;
  transition: color .15s ease;
}
.ww-back:hover { color: var(--black); }
#ww-next svg { margin-left: 6px; vertical-align: middle; }

.form-error--general {
  display: none; margin-top: 16px; padding: 12px 16px;
  background: #fcebea; border-radius: var(--r-md); font-size: .88rem; line-height: 1.5;
}
.form-error--general.is-visible { display: block; }
.form-error--general a { color: #b3261e; font-weight: 600; }

.ww-form-success { text-align: center; padding: 28px 8px 16px; }
.ww-form-success__icon {
  width: 60px; height: 60px; margin: 0 auto 22px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--r-full); background: rgba(75,106,71,.12); color: var(--green);
}
.ww-form-success__icon svg { width: 30px; height: 30px; }
.ww-form-success h3 { font-size: 1.45rem; margin-bottom: 12px; }
.ww-form-success p {
  color: var(--text); line-height: 1.7; margin: 0 auto 26px; max-width: 44ch;
}

@media (prefers-reduced-motion: reduce) {
  .ww-spinner { animation-duration: 1.6s; }
}

@media (max-width: 900px) {
  .page-hero { padding: 96px var(--px) 32px; }
  .contacto { padding-block: 48px 72px; }
  .contacto-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
}

/* Botón flotante WhatsApp (plugin wp-whatsapp) — subir posición para no tapar contenido */
.wa__btn_popup   { bottom: 80px !important; }
.wa__popup_chat_box { bottom: 152px !important; }

/* ════════════════════════════════════════════════════════
   404
════════════════════════════════════════════════════════ */
.error-404 { min-height: 80vh; display: flex; align-items: center; text-align: center; }
.error-404__code { font-size: 8rem; color: var(--border); line-height: 1; margin-bottom: 16px; }
.error-404 p { color: var(--text); margin-block: 12px 32px; }

/* ════════════════════════════════════════════════════════
   REVEAL ANIMATIONS
════════════════════════════════════════════════════════ */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .65s ease, transform .65s ease;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .5s ease, transform .5s ease;
}
.reveal-stagger.is-visible > * { opacity: 1; transform: translateY(0); }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0s; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: .1s; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: .2s; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: .3s; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: .4s; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: .5s; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-stagger > * { opacity: 1; transform: none; transition: none; }
}

/* ════════════════════════════════════════════════════════
   UTILS
════════════════════════════════════════════════════════ */
html { scroll-padding-top: 90px; }

/* ════════════════════════════════════════════════════════
   LAYOUT — .container alias (usado en single-pais.php)
════════════════════════════════════════════════════════ */
.container       { max-width: var(--max); margin-inline: auto; padding-inline: var(--px); }
.container--narrow { max-width: 780px; }

/* ════════════════════════════════════════════════════════
   BUTTONS — variantes BEM (single-pais usa btn--secondary)
════════════════════════════════════════════════════════ */
.btn--primary       { background: var(--amber); color: #fff; }
.btn--primary:hover { background: #b36830; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(200,121,58,.35); }
.btn--secondary       { background: var(--amber); color: #fff; }
.btn--secondary:hover { background: #b36830; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(200,121,58,.35); }
.btn--green       { background: var(--green); color: #fff; }
.btn--green:hover { background: var(--green-d); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(75,106,71,.35); }
.btn--outline-white       { border-color: rgba(255,255,255,.55); color: #fff; }
.btn--outline-white:hover { border-color: #fff; background: rgba(255,255,255,.12); }
.btn--ghost       { border-color: var(--border); color: var(--black); }
.btn--ghost:hover { border-color: var(--green); color: var(--green); }

/* ════════════════════════════════════════════════════════
   SECTION TITLE — h2 genérico dentro de secciones CPT
════════════════════════════════════════════════════════ */
.section-title {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 700; letter-spacing: -.015em;
  color: var(--black); margin-bottom: 44px;
  line-height: 1.15;
}

/* ════════════════════════════════════════════════════════
   CPT HEROES — .container z-index (pais + tipo safari)
════════════════════════════════════════════════════════ */
.hero--pais .container,
.hero--pais .hero__content,
.hero--tipo-safari .container,
.hero--tipo-safari .hero__content { position: relative; z-index: 1; }

/* ════════════════════════════════════════════════════════
   PAIS — Intro (2 columnas: texto + imagen)
════════════════════════════════════════════════════════ */
.pais-intro { background: var(--bg); }

.pais-intro__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.pais-intro__content .eyebrow { margin-bottom: 20px; }

/* Primer párrafo como lead */
.pais-intro__text p:first-child {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.22rem; font-weight: 500;
  color: var(--black); line-height: 1.72;
  margin-bottom: 1.2rem;
}
.pais-intro__text p {
  font-size: 1rem; color: var(--text);
  line-height: 1.85; margin-bottom: 1rem;
}
.pais-intro__text p:last-child { margin-bottom: 0; }

/* Imagen */
.pais-intro__visual { position: relative; }
.pais-intro__img-wrap {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.pais-intro__img-wrap img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .7s cubic-bezier(.16,1,.3,1);
}
.pais-intro__img-wrap:hover img { transform: scale(1.04); }

/* Badge sobre imagen (intro país / tipo) */
.img-badge {
  position: absolute; left: 16px; bottom: 16px; z-index: 1;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: var(--r-full);
  background: rgba(20,16,12,.42); backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff; font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 500; font-size: .8rem; letter-spacing: .005em;
}
.img-badge__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); flex-shrink: 0; }

@media (max-width: 900px) {
  .pais-intro__grid { grid-template-columns: 1fr; gap: 36px; }
  .pais-intro__visual { order: -1; }
  .pais-intro__img-wrap { aspect-ratio: 16/9; }
}

/* ════════════════════════════════════════════════════════
   PAIS — Base de sección
════════════════════════════════════════════════════════ */
.pais-section { padding-block: 90px; }

.pais-benefits { background: var(--bg); }
.pais-parques  { background: var(--white); }
.pais-tipos    { background: var(--bg); }
.pais-epoca    { background: var(--white); }

/* ════════════════════════════════════════════════════════
   PAIS — Beneficios
════════════════════════════════════════════════════════ */
.pais-benefits__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.benefit-card {
  display: flex; gap: 18px; align-items: flex-start;
  background: var(--white); border-radius: var(--r-lg);
  padding: 28px 24px; border: 1px solid var(--border);
  box-shadow: var(--shadow-sm); transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.benefit-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: #d8cfc0; }
.benefit-card__dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--amber); flex-shrink: 0; margin-top: 7px;
}
.benefit-card__title { font-size: 1rem; font-weight: 600; color: var(--black); margin-bottom: 6px; }
.benefit-card__text  { font-size: .875rem; color: var(--text); line-height: 1.65; }

@media (max-width: 640px) { .pais-benefits__grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   PAIS — Tipos Safari
════════════════════════════════════════════════════════ */
.pais-tipos__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.tipo-card {
  padding: 28px 24px; background: var(--white);
  border-radius: var(--r-lg); border: 1px solid var(--border);
  box-shadow: var(--shadow-sm); transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.tipo-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: #d8cfc0; }
.tipo-card__title { position: relative; padding-left: 22px; }
.tipo-card__title::before {
  content: ''; position: absolute; left: 0; top: .42em;
  width: 9px; height: 9px; border-radius: 50%; background: var(--green);
}
.tipo-card__title { font-size: 1rem; font-weight: 600; margin-bottom: 10px; color: var(--black); }
.tipo-card__desc  { font-size: .875rem; color: var(--text); line-height: 1.65; }

@media (max-width: 900px) { .pais-tipos__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .pais-tipos__grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   INTERIORES — icono en benefit-card
════════════════════════════════════════════════════════ */
.benefit-card__ic {
  width: 48px; height: 48px; border-radius: var(--r-md); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(75,106,71,.1);
}
.benefit-card__ic img { width: 27px; height: 27px; object-fit: contain; }

/* ════════════════════════════════════════════════════════
   INTERIORES — media cards (parques / tipos de país)
════════════════════════════════════════════════════════ */
.media-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.media-card {
  display: block; background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-lg); overflow: hidden; color: inherit; text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.media-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: #d8cfc0; }
.media-card__img { position: relative; aspect-ratio: 3/2; overflow: hidden; background: var(--bg); }
.media-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.media-card:hover .media-card__img img { transform: scale(1.05); }
.media-card__pin {
  position: absolute; top: 12px; left: 12px;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(255,255,255,.92); color: var(--green);
  display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-sm);
}
.media-card__pin svg { width: 18px; height: 18px; }
.media-card__body { padding: 22px 24px 26px; }
.media-card__title { font-size: 1.15rem; font-weight: 700; color: var(--black); margin-bottom: 8px; }
.media-card__text {
  font-size: .9rem; color: var(--text); line-height: 1.65;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
@media (max-width: 900px) { .media-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .media-grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   INTERIORES — ejemplos de viaje (filas editoriales alternas)
════════════════════════════════════════════════════════ */
.examples-list { display: flex; flex-direction: column; gap: 36px; }
.example-row { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
.example-row:nth-child(even) .example-row__media { order: 2; }
.example-row__media {
  aspect-ratio: 4/3; border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-md);
}
.example-row__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.16,1,.3,1); }
.example-row:hover .example-row__media img { transform: scale(1.04); }
.example-row__title { font-size: clamp(1.3rem, 2.2vw, 1.7rem); margin-bottom: 14px; }
.example-row__text { font-size: 1rem; color: var(--text); line-height: 1.8; }
@media (max-width: 768px) {
  .example-row { grid-template-columns: 1fr; gap: 18px; }
  .example-row:nth-child(even) .example-row__media { order: 0; }
}

/* ════════════════════════════════════════════════════════
   PAIS — Mejor época
════════════════════════════════════════════════════════ */
.pais-epoca__intro {
  font-size: 1.05rem; color: var(--text); line-height: 1.85;
  margin-bottom: 36px; max-width: 72ch;
}
.pais-epoca__intro p { margin-bottom: 1rem; }
.pais-epoca__table-wrap {
  overflow-x: auto; border-radius: var(--r-lg);
  border: 1px solid var(--border);
}
.pais-epoca__table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.pais-epoca__table th {
  background: var(--green); color: var(--white);
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600;
  padding: 14px 18px; text-align: left;
  white-space: nowrap;
}
.pais-epoca__table td   { padding: 13px 18px; border-bottom: 1px solid var(--border); }
.pais-epoca__table tr:last-child td { border-bottom: none; }
.pais-epoca__table tr:nth-child(even) td { background: var(--bg); }
.pais-epoca__mes {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 600; color: var(--black); white-space: nowrap;
}
.pais-epoca__note {
  margin-top: 20px; padding: 20px 24px;
  background: rgba(200,121,58,.08); border: 1px solid rgba(200,121,58,.22);
  border-radius: var(--r-md);
  font-size: .9rem; color: #6b4a2c; line-height: 1.75;
}
.pais-epoca__note p { margin-bottom: .5rem; }
.pais-epoca__note p:last-child { margin-bottom: 0; }

/* ════════════════════════════════════════════════════════
   PAIS — CTA Final
════════════════════════════════════════════════════════ */
.cta-section {
  background: var(--brown-d);
  position: relative; overflow: hidden;
}
.cta-section::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(75,106,71,.15) 0%, transparent 60%);
}
.cta-section .container { position: relative; z-index: 1; }
.cta-section__inner {
  text-align: center; max-width: 640px; margin-inline: auto;
}
.cta-section__title {
  color: var(--white); margin-bottom: 16px;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
}
.cta-section__text {
  color: rgba(255,255,255,.72); font-size: 1.05rem;
  margin-bottom: 36px; line-height: 1.75;
}
.cta-section__btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

@media (max-width: 600px) {
  .cta-section__btns { flex-direction: column; align-items: stretch; }
  .cta-section__btns .btn { justify-content: center; }
}

/* ════════════════════════════════════════════════════════
   CPT — Section subtitle (texto bajo el h2)
════════════════════════════════════════════════════════ */
.section-subtitle {
  font-size: 1.05rem; color: var(--text); line-height: 1.8;
  max-width: 60ch; margin-bottom: 40px; margin-top: -24px;
}

/* ════════════════════════════════════════════════════════
   TIPO SAFARI — Destinos relacionados
════════════════════════════════════════════════════════ */
.destinations__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.dest-card__link {
  display: block; border-radius: var(--r-lg);
  overflow: hidden; position: relative;
  text-decoration: none; color: inherit;
}
.dest-card__image {
  position: relative; aspect-ratio: 4/3;
  overflow: hidden; background: var(--bg);
}
.dest-card__image img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s ease; display: block;
}
.dest-card__link:hover .dest-card__image img { transform: scale(1.06); }
.dest-card__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,8,6,.82) 0%, rgba(10,8,6,.1) 55%);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 24px; color: var(--white);
  transition: background var(--t);
}
.dest-card__link:hover .dest-card__overlay {
  background: linear-gradient(to top, rgba(10,8,6,.9) 0%, rgba(10,8,6,.2) 60%);
}
.dest-card__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1rem, 2vw, 1.25rem); font-weight: 700;
  color: var(--white); margin-bottom: 4px;
}
.dest-card__subtitle {
  font-size: .82rem; color: rgba(255,255,255,.72);
  line-height: 1.5; margin-bottom: 10px;
}
.dest-card__cta {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .8rem; font-weight: 600;
  color: var(--amber); display: inline-block;
  transition: transform var(--t);
}
.dest-card__link:hover .dest-card__cta { transform: translateX(4px); }

@media (max-width: 900px) { .destinations__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .destinations__grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   PAIS — Otros destinos
════════════════════════════════════════════════════════ */
.pais-otros { background: var(--bg); }
.pais-tipos-cta { background: var(--bg); }

/* ════════════════════════════════════════════════════════
   RESEÑAS (testimonios nativos · Google)
════════════════════════════════════════════════════════ */
.reviews { background: var(--bg); position: relative; overflow: hidden; }
.reviews--plain { background: var(--white); }
.reviews::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(70% 55% at 50% 0%, rgba(75,106,71,.07) 0%, transparent 70%);
}
.reviews .wrap { position: relative; z-index: 1; }

.reviews__head { max-width: 680px; margin-inline: auto; text-align: center; margin-bottom: 52px; }
.reviews__badge {
  display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: center;
  padding: 8px 18px; border-radius: var(--r-full);
  background: var(--white); border: 1px solid var(--border); box-shadow: var(--shadow-sm);
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600;
  font-size: .82rem; color: var(--black); margin-bottom: 22px;
  text-decoration: none; transition: box-shadow .2s, border-color .2s;
}
a.reviews__badge:hover {
  border-color: #4285F4; box-shadow: 0 2px 12px rgba(66,133,244,.18);
}
.reviews__stars { display: inline-flex; gap: 1px; }
.reviews__title { margin-bottom: 14px; }
.reviews__lead { color: #4d4945; font-size: 1.05rem; line-height: 1.75; }

.rv-star { width: 16px; height: 16px; fill: var(--amber); flex-shrink: 0; }

/* Masonry de tarjetas */
.reviews__grid { columns: 3; column-gap: 20px; }
@media (max-width: 900px) { .reviews__grid { columns: 2; } }
@media (max-width: 560px) { .reviews__grid { columns: 1; } }

.rv-card {
  break-inside: avoid; margin: 0 0 20px;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: 26px 26px 22px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.rv-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: #d8cfc0; }
.rv-card__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.rv-card__stars { display: inline-flex; gap: 2px; }
.rv-card__g { flex-shrink: 0; opacity: .9; }
.rv-card__text {
  font-size: .95rem; line-height: 1.72; color: #3a3633;
  margin: 0 0 20px;
}
.rv-card__author { display: flex; align-items: center; gap: 12px; }
.rv-card__avatar {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--green); color: var(--white);
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 1.05rem;
}
.rv-card__meta { display: flex; flex-direction: column; line-height: 1.3; }
.rv-card__name { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600; font-size: .92rem; color: var(--black); }
.rv-card__src { font-size: .78rem; color: var(--text); }

@media (max-width: 768px) { .reviews__head { margin-bottom: 38px; } }

/* ════════════════════════════════════════════════════════
   CPT — Responsive general (pais + tipo safari)
════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .pais-section { padding-block: 60px; }
  .section-title { margin-bottom: 28px; }
  .section-subtitle { margin-bottom: 28px; margin-top: -16px; }
}

/* ════════════════════════════════════════════════════════
   PARQUES — Header transparente en hero
════════════════════════════════════════════════════════ */
.is-parque .site-header:not(.is-scrolled) {
  background: transparent; box-shadow: none;
}
.is-parque .site-header:not(.is-scrolled) .site-logo-link img,
.is-parque .site-header:not(.is-scrolled) .site-logo-link picture img { filter: brightness(0) invert(1) !important; }
.is-parque .site-header:not(.is-scrolled) .site-nav__list a,
.is-parque .site-header:not(.is-scrolled) .site-nav .nav-parent { color: rgba(255,255,255,.9); }
.is-parque .site-header:not(.is-scrolled) .site-nav__list a:hover,
.is-parque .site-header:not(.is-scrolled) .site-nav .nav-parent:hover { color: var(--amber); }
.is-parque .site-header:not(.is-scrolled) .site-header__toggle span { background: var(--white); }

/* ════════════════════════════════════════════════════════
   PARQUES — Hero overlay específico
════════════════════════════════════════════════════════ */
.hero--parque .hero__overlay--parque {
  background: linear-gradient(170deg, rgba(10,8,6,.6) 0%, rgba(10,8,6,.25) 50%, rgba(10,8,6,.7) 100%);
}
.hero--parque .container,
.hero--parque .hero__content { position: relative; z-index: 1; }

/* Breadcrumb sobre el hero */
.parque-breadcrumb {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-family: 'Bricolage Grotesque', sans-serif; font-size: .8rem; font-weight: 500;
  color: rgba(255,255,255,.6); margin-bottom: 24px;
}
.parque-breadcrumb a { color: rgba(255,255,255,.7); text-decoration: none; transition: color var(--t); }
.parque-breadcrumb a:hover { color: var(--amber); }
.parque-breadcrumb [aria-current="page"] { color: rgba(255,255,255,.4); }

/* ════════════════════════════════════════════════════════
   PARQUES — Stats strip
════════════════════════════════════════════════════════ */
.parque-stats {
  background: var(--black); padding-block: 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.parque-stats__list {
  display: flex; align-items: stretch; list-style: none;
  margin: 0; padding: 0;
}
.parque-stats__item {
  flex: 1; display: flex; flex-direction: column; justify-content: center;
  padding: 28px 32px; gap: 4px;
  border-right: 1px solid rgba(255,255,255,.07);
  transition: background var(--t);
}
.parque-stats__item:last-child { border-right: none; }
.parque-stats__item:hover { background: rgba(255,255,255,.03); }
.parque-stats__val {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.3rem; font-weight: 700;
  color: var(--amber); line-height: 1.1;
}
.parque-stats__lbl {
  font-size: .72rem; font-weight: 500; letter-spacing: .08em;
  text-transform: uppercase; color: rgba(255,255,255,.4);
}

@media (max-width: 768px) {
  .parque-stats__list { flex-wrap: wrap; }
  .parque-stats__item { flex: 0 0 50%; border-bottom: 1px solid rgba(255,255,255,.07); }
  .parque-stats__item:nth-child(2) { border-right: none; }
  .parque-stats__item:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 420px) {
  .parque-stats__item { flex: 0 0 100%; border-right: none; }
  .parque-stats__item:last-child { border-bottom: none; }
}

/* ════════════════════════════════════════════════════════
   PARQUES — Sección base
════════════════════════════════════════════════════════ */
.parque-section { padding-block: 90px; }
.parque-intro  { background: var(--white); }
.parque-quever { background: var(--bg); }
.parque-fauna  { background: var(--white); }
.parque-epoca  { background: var(--bg); }
.parque-practico { background: var(--white); }
.parque-otros  { background: var(--bg); }

@media (max-width: 768px) { .parque-section { padding-block: 60px; } }

/* ════════════════════════════════════════════════════════
   PARQUES — Intro (texto + highlight card)
════════════════════════════════════════════════════════ */
.parque-intro__grid {
  display: grid; grid-template-columns: 1fr 380px;
  gap: 64px; align-items: start;
}
.parque-intro__text p:first-child {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.2rem; font-weight: 500; color: var(--black);
  line-height: 1.72; margin-bottom: 1.2rem;
}
.parque-intro__text p {
  font-size: 1rem; color: var(--text); line-height: 1.85; margin-bottom: 1rem;
}
.parque-intro__text p:last-child { margin-bottom: 0; }

/* Highlight card */
.parque-highlight {
  position: sticky; top: 100px;
  background: var(--black); border-radius: var(--r-xl);
  padding: 36px 32px; color: var(--white);
  border: 1px solid rgba(255,255,255,.06);
}
.parque-highlight__label {
  display: inline-block; font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .7rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--amber);
  margin-bottom: 14px;
}
.parque-highlight__text {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.15rem; font-weight: 500; line-height: 1.68;
  color: rgba(255,255,255,.85); margin-bottom: 28px;
}
.parque-highlight__footer {
  display: flex; align-items: center; gap: 10px;
  font-size: .8rem; color: rgba(255,255,255,.4);
  font-family: 'Bricolage Grotesque', sans-serif;
  border-top: 1px solid rgba(255,255,255,.08); padding-top: 20px;
}
.parque-highlight__dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--amber); flex-shrink: 0;
}

@media (max-width: 960px) {
  .parque-intro__grid { grid-template-columns: 1fr; gap: 40px; }
  .parque-highlight { position: static; }
}

/* ════════════════════════════════════════════════════════
   PARQUES — Qué ver y hacer
════════════════════════════════════════════════════════ */
.parque-quever__grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.parque-qv-card {
  background: var(--white); border-radius: var(--r-lg);
  padding: 32px 28px; border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.parque-qv-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: #d8cfc0; }
.parque-qv-card__emoji {
  display: block; font-size: 2rem; line-height: 1;
  margin-bottom: 16px;
}
.parque-qv-card__dot {
  display: block; width: 10px; height: 10px; border-radius: 50%;
  background: var(--amber); margin-bottom: 18px;
}
.parque-qv-card__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.05rem; font-weight: 700; color: var(--black);
  margin-bottom: 10px; line-height: 1.3;
}
.parque-qv-card__text { font-size: .875rem; color: var(--text); line-height: 1.7; }

@media (max-width: 900px) { .parque-quever__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .parque-quever__grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   PARQUES — Fauna destacada
════════════════════════════════════════════════════════ */
.parque-fauna__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden;
}
.parque-fauna__item {
  display: flex; flex-direction: column; gap: 4px;
  padding: 22px 28px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  transition: background var(--t);
}
.parque-fauna__item:hover { background: var(--bg); }
.parque-fauna__item:nth-child(even) { border-right: none; }
.parque-fauna__item:nth-last-child(-n+2) { border-bottom: none; }
.parque-fauna__animal {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem; font-weight: 700; color: var(--black);
}
.parque-fauna__desc { font-size: .85rem; color: var(--text); line-height: 1.5; }

@media (max-width: 560px) {
  .parque-fauna__list { grid-template-columns: 1fr; }
  .parque-fauna__item { border-right: none; }
  .parque-fauna__item:nth-last-child(-n+2) { border-bottom: 1px solid var(--border); }
  .parque-fauna__item:last-child { border-bottom: none; }
}

/* ════════════════════════════════════════════════════════
   PARQUES — Mejor época
════════════════════════════════════════════════════════ */
.parque-epoca__grid {
  display: grid; grid-template-columns: 1fr 420px;
  gap: 72px; align-items: center;
}
.parque-epoca__badge {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 11px 20px; border-radius: var(--r-full);
  background: rgba(200,121,58,.1); border: 1px solid rgba(200,121,58,.25);
  font-family: 'Bricolage Grotesque', sans-serif; font-size: .9rem;
  color: #6b4a2c; margin-bottom: 24px;
}
.parque-epoca__badge svg { width: 16px; height: 16px; flex-shrink: 0; }
.parque-epoca__badge strong { font-weight: 700; color: var(--black); }
.parque-epoca__text p { font-size: 1rem; color: var(--text); line-height: 1.85; margin-bottom: 1rem; }
.parque-epoca__text p:last-child { margin-bottom: 0; }

.parque-epoca__img-wrap {
  aspect-ratio: 4/3; border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.parque-epoca__img-wrap img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 960px) {
  .parque-epoca__grid { grid-template-columns: 1fr; gap: 40px; }
  .parque-epoca__visual { order: -1; }
  .parque-epoca__img-wrap { aspect-ratio: 16/9; }
}

/* ════════════════════════════════════════════════════════
   PARQUES — Info práctica
════════════════════════════════════════════════════════ */
.parque-practico__list {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden;
}
.parque-practico__row {
  display: flex; gap: 0; flex-direction: column;
  padding: 22px 28px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  transition: background var(--t);
}
.parque-practico__row:hover { background: var(--bg); }
.parque-practico__row:nth-child(even) { border-right: none; }
.parque-practico__row:nth-last-child(-n+2) { border-bottom: none; }
.parque-practico__label {
  font-size: .72rem; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--text); margin-bottom: 6px;
}
.parque-practico__valor {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem; font-weight: 600; color: var(--black); line-height: 1.4;
}

@media (max-width: 560px) {
  .parque-practico__list { grid-template-columns: 1fr; }
  .parque-practico__row { border-right: none; }
  .parque-practico__row:nth-last-child(-n+2) { border-bottom: 1px solid var(--border); }
  .parque-practico__row:last-child { border-bottom: none; }
}

/* ════════════════════════════════════════════════════════
   PARQUES — Banner país padre
════════════════════════════════════════════════════════ */
.parque-pais-banner {
  background: var(--green); padding-block: 72px;
  position: relative; overflow: hidden;
}
.parque-pais-banner::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(70% 90% at 85% 50%, rgba(255,255,255,.06) 0%, transparent 70%);
  pointer-events: none;
}
.parque-pais-banner__inner { position: relative; z-index: 1; max-width: 680px; }
.parque-pais-banner__kicker {
  display: inline-block; font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .7rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(255,255,255,.6);
  margin-bottom: 12px;
}
.parque-pais-banner__title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 700;
  color: var(--white); margin-bottom: 16px; line-height: 1.15;
}
.parque-pais-banner__text {
  font-size: 1rem; color: rgba(255,255,255,.75);
  line-height: 1.8; margin-bottom: 32px; max-width: 52ch;
}

/* ════════════════════════════════════════════════════════
   PARQUES — Otros parques
════════════════════════════════════════════════════════ */
.parque-otros .destinations__grid {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 560px) {
  .parque-otros .destinations__grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════
   PAIS — Ficha rápida
════════════════════════════════════════════════════════ */
.pais-ficha { background: var(--black); padding-block: 48px; }
.pais-ficha__grid {
  display: flex; flex-wrap: wrap; gap: 0;
  border: 1px solid rgba(255,255,255,.12); border-radius: var(--r-lg);
  overflow: hidden;
}
.ficha-item {
  flex: 1 1 180px; padding: 28px 32px;
  border-right: 1px solid rgba(255,255,255,.10);
  display: flex; flex-direction: column; gap: 8px;
}
.ficha-item:last-child { border-right: none; }
.ficha-item__label {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .72rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255,255,255,.45);
}
.ficha-item__val {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem; font-weight: 600; color: var(--white);
  line-height: 1.3;
}
@media (max-width: 900px) {
  .pais-ficha__grid { flex-direction: column; }
  .ficha-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.10); padding: 22px 24px; }
  .ficha-item:last-child { border-bottom: none; }
}

/* ════════════════════════════════════════════════════════
   PAIS — Fauna destacada
════════════════════════════════════════════════════════ */
.pais-fauna { background: var(--bg); }
.fauna-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.fauna-card {
  background: var(--white); border-radius: var(--r-lg);
  border: 1px solid var(--border); overflow: hidden;
  transition: box-shadow var(--t), transform var(--t);
}
.fauna-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.fauna-card__img { aspect-ratio: 4/3; overflow: hidden; }
.fauna-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.fauna-card:hover .fauna-card__img img { transform: scale(1.05); }
.fauna-card__img--empty { background: var(--bg); }
.fauna-card__body { padding: 20px; }
.fauna-card__title { font-size: 1rem; font-weight: 700; color: var(--black); margin-bottom: 8px; }
.fauna-card__text  { font-size: .83rem; color: var(--text); line-height: 1.65; }
@media (max-width: 1000px) { .fauna-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .fauna-grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   PAIS — Itinerarios de ejemplo
════════════════════════════════════════════════════════ */
.itin-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.itin-card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: 32px 36px;
  display: flex; flex-direction: column; gap: 16px;
  transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.itin-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: #d8cfc0; }
.itin-card__head { display: flex; flex-direction: column; gap: 12px; }
.itin-card__title { font-size: 1.2rem; font-weight: 700; color: var(--black); }
.itin-card__meta  { display: flex; flex-wrap: wrap; gap: 8px; }
.itin-badge {
  display: inline-block; padding: 4px 12px;
  border-radius: var(--r-full); font-size: .78rem; font-weight: 600;
  background: var(--bg); color: var(--text);
  font-family: 'Bricolage Grotesque', sans-serif;
}
.itin-badge--price { background: rgba(200,121,58,.12); color: var(--amber); }
.itin-card__text  { font-size: .9rem; color: var(--text); line-height: 1.7; flex: 1; }
.itin-card__cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .88rem; font-weight: 600; color: var(--green);
  margin-top: auto; text-decoration: none;
  transition: color var(--t), gap var(--t);
}
.itin-card__cta:hover { color: var(--green-d); gap: 10px; }
@media (max-width: 700px) { .itin-grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   PAIS — Información práctica
════════════════════════════════════════════════════════ */
.pais-info { background: var(--bg); }
.info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  border: 1px solid var(--border); border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--border);
}
.info-item {
  background: var(--white); padding: 24px 28px;
  display: flex; flex-direction: column; gap: 6px;
}
.info-item__label {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .72rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--amber);
}
.info-item__val {
  font-size: .95rem; color: var(--black); line-height: 1.5;
}
@media (max-width: 900px) { .info-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .info-grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   PAIS — Combinaciones con otros destinos
════════════════════════════════════════════════════════ */
.combo-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.combo-card {
  display: block;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: 32px 36px;
  transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
a.combo-card:hover {
  box-shadow: var(--shadow-md); transform: translateY(-2px); border-color: var(--green);
}
.combo-card__title {
  font-size: 1.15rem; font-weight: 700; color: var(--black);
  margin-bottom: 12px;
}
.combo-card__text  { font-size: .9rem; color: var(--text); line-height: 1.7; margin-bottom: 20px; }
.combo-card__cta {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .88rem; font-weight: 600; color: var(--green);
}
@media (max-width: 640px) { .combo-grid { grid-template-columns: 1fr; } }

/* ════════════════════════════════════════════════════════
   PAIS — FAQ (accordion)
════════════════════════════════════════════════════════ */
.pais-faq { background: var(--bg); }
.faq-list { display: flex; flex-direction: column; gap: 8px; max-width: 860px; }
.faq-item {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-md); overflow: hidden;
  transition: border-color var(--t), box-shadow var(--t);
}
.faq-item[open] { border-color: var(--green); box-shadow: var(--shadow-sm); }
.faq-item__q {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 22px 28px; cursor: pointer;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1rem; font-weight: 600; color: var(--black);
  list-style: none;
}
.faq-item__q::-webkit-details-marker { display: none; }
.faq-item__q::after {
  content: '+'; flex-shrink: 0;
  font-size: 1.4rem; font-weight: 400; color: var(--green);
  transition: transform var(--t), opacity var(--t);
}
.faq-item[open] .faq-item__q::after { content: '−'; }
.faq-item__q:hover { color: var(--green); }
.faq-item__a { padding: 0 28px 22px; }
.faq-item__a p { font-size: .93rem; color: var(--text); line-height: 1.75; }
@media (max-width: 640px) {
  .faq-item__q { padding: 18px 20px; }
  .faq-item__a { padding: 0 20px 18px; }
}

/* ════════════════════════════════════════════════════════
   BLOG — índice, tarjetas, artículo
   (v1.6.0 · coherente con tokens del tema)
════════════════════════════════════════════════════════ */

/* ── Índice: cabecera ── */
.blog-hero .wrap { max-width: var(--max); }
.blog-hero p { margin-top: 4px; }

/* ── Grid de artículos ── */
.blog-list { padding-block: 80px; }
.post-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* ── Meta (categoría + fecha) ── */
.post-meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
  margin-bottom: 14px;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .8rem; color: var(--text);
}
.post-meta time { letter-spacing: .01em; }
.post-pill {
  display: inline-flex; align-items: center;
  padding: 5px 12px; border-radius: var(--r-full);
  background: var(--green); color: #fff;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: .72rem; font-weight: 600; letter-spacing: .02em;
  transition: background var(--t);
}
a.post-pill:hover { background: var(--green-d); }
.post-pill--accent { background: var(--amber); }
a.post-pill--accent:hover { background: #b36830; }

/* ── Tarjeta de artículo ── */
.post-card {
  display: flex; flex-direction: column;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-lg); overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--t), transform var(--t), border-color var(--t);
}
.post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); border-color: #d8cfc0; }
.post-card__media { display: block; aspect-ratio: 3/2; overflow: hidden; background: var(--bg); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.post-card:hover .post-card__media img { transform: scale(1.05); }
.post-card__placeholder {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--bg) 0%, var(--border) 100%);
  color: var(--brown);
}
.post-card__placeholder svg { width: 38px; height: 38px; opacity: .5; }
.post-card__body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.post-card__title { font-size: 1.18rem; font-weight: 700; line-height: 1.25; margin-bottom: 10px; }
.post-card__title a { color: var(--black); transition: color var(--t); }
.post-card__title a:hover { color: var(--green); }
.post-card__excerpt {
  font-size: .92rem; color: var(--text); line-height: 1.65; margin-bottom: 18px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.post-card__more {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600; font-size: .9rem;
  color: var(--green);
}
.post-card__more svg { width: 17px; height: 17px; transition: transform var(--t); }
.post-card:hover .post-card__more svg { transform: translateX(4px); }

/* ── Artículo destacado (horizontal, ancho completo) ── */
.post-feature {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: 1.1fr 1fr;
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--t), border-color var(--t);
}
.post-feature:hover { box-shadow: var(--shadow-md); border-color: #d8cfc0; }
.post-feature__media { display: block; min-height: 320px; overflow: hidden; background: var(--bg); }
.post-feature__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.post-feature:hover .post-feature__media img { transform: scale(1.04); }
.post-feature__body { padding: clamp(28px, 4vw, 52px); display: flex; flex-direction: column; justify-content: center; }
.post-feature__title { font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1.15; margin-bottom: 16px; }
.post-feature__title a { color: var(--black); transition: color var(--t); }
.post-feature__title a:hover { color: var(--green); }
.post-feature__excerpt { font-size: 1.02rem; color: var(--text); line-height: 1.75; margin-bottom: 28px; }
.post-feature__body .btn { align-self: flex-start; }
.post-feature__body .btn svg { width: 18px; height: 18px; }

/* ── Paginación ── */
.blog-pagination { margin-top: 56px; }
.blog-pagination .nav-links {
  display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px;
}
.blog-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; height: 44px; padding: 0 14px;
  border: 1px solid var(--border); border-radius: var(--r-full);
  background: var(--white); color: var(--black);
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600; font-size: .92rem;
  transition: border-color var(--t), color var(--t), background var(--t);
}
.blog-pagination a.page-numbers:hover { border-color: var(--green); color: var(--green); }
.blog-pagination .page-numbers.current { background: var(--green); border-color: var(--green); color: #fff; }
.blog-pagination .page-numbers.dots { border-color: transparent; }

/* ── Estado vacío ── */
.blog-empty {
  text-align: center; max-width: 520px; margin: 40px auto;
  padding: 60px 24px;
}
.blog-empty h2 { margin-bottom: 14px; }
.blog-empty p { color: var(--text); margin-bottom: 28px; }

/* ════════════════════════════════════════════════════════
   BLOG — Artículo individual
════════════════════════════════════════════════════════ */
.single-post { background: var(--white); }

/* Cabecera sin imagen: tono cálido, texto oscuro */
.post-header {
  padding: 140px var(--px) 56px;
  background: var(--bg); border-bottom: 1px solid var(--border);
}
.post-header .container { position: relative; z-index: 2; }
.post-title {
  font-size: clamp(2rem, 4.2vw, 3.3rem); line-height: 1.08;
  letter-spacing: -.02em; color: var(--black); margin-top: 10px;
}

/* Cabecera con imagen: foto a sangre + overlay + texto blanco */
.post-header--media {
  position: relative; padding: 0; border-bottom: none;
  min-height: clamp(420px, 60vh, 600px);
  display: flex; align-items: flex-end;
  padding-bottom: 56px;
}
.post-header__media { position: absolute; inset: 0; z-index: 0; }
.post-header__media img { width: 100%; height: 100%; object-fit: cover; }
.post-header__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(17,17,16,.82) 0%, rgba(17,17,16,.35) 45%, rgba(17,17,16,.15) 100%);
}
.post-header--media .container { position: relative; z-index: 2; }
.post-header--media .post-title { color: #fff; }

/* Breadcrumb */
.post-breadcrumb {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  font-size: .82rem; margin-bottom: 18px; color: var(--text);
}
.post-breadcrumb a { color: var(--text); transition: color var(--t); }
.post-breadcrumb a:hover { color: var(--green); }
.post-breadcrumb [aria-current="page"] { color: var(--brown); }
.post-breadcrumb--over a,
.post-breadcrumb--over { color: rgba(255,255,255,.78); }
.post-breadcrumb--over a:hover { color: var(--amber); }
.post-breadcrumb--over [aria-current="page"] { color: rgba(255,255,255,.6); }
.post-breadcrumb--light a { color: var(--text); }

/* Meta de cabecera */
.post-meta--header { margin-bottom: 0; }
.post-header--media .post-meta { color: rgba(255,255,255,.85); }
.post-readtime { position: relative; padding-left: 18px; }
.post-readtime::before {
  content: ''; position: absolute; left: 4px; top: 50%; transform: translateY(-50%);
  width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .6;
}

/* Cuerpo del artículo */
.post-body { padding-block: clamp(48px, 6vw, 80px); }
.post-prose { font-size: 1.075rem; color: #4a4744; }
.post-prose > p:first-of-type { font-size: 1.2rem; line-height: 1.7; color: var(--brown-d); }
.post-prose h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-top: 2.6rem; margin-bottom: 1rem; }
.post-prose h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); margin-top: 2rem; margin-bottom: .7rem; }
.post-prose p { margin-bottom: 1.2rem; }
.post-prose img { border-radius: var(--r-lg); margin: 2rem 0; }
.post-prose figure { margin: 2rem 0; }
.post-prose figcaption { font-size: .85rem; color: var(--text); text-align: center; margin-top: 10px; }
.post-prose blockquote {
  margin: 2rem 0; padding: 6px 0 6px 28px;
  border-left: 3px solid var(--amber);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.25rem; line-height: 1.5; font-weight: 500; color: var(--black);
}
.post-prose ul li { list-style: none; position: relative; padding-left: 26px; }
.post-prose ul li::before {
  content: ''; position: absolute; left: 4px; top: .68em;
  width: 7px; height: 7px; border-radius: 50%; background: var(--green);
}
.post-prose ol { padding-left: 1.4rem; }
.post-prose ol li { list-style: decimal; }

/* Tags + footer del artículo */
.post-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 40px; }
.post-tag {
  font-size: .85rem; color: var(--green-d);
  padding: 6px 14px; border: 1px solid var(--border); border-radius: var(--r-full);
  transition: border-color var(--t), color var(--t);
}
.post-tag:hover { border-color: var(--green); color: var(--green); }
.post-footer { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--border); }
.post-back {
  font-family: 'Bricolage Grotesque', sans-serif; font-weight: 600;
  color: var(--green); transition: color var(--t);
}
.post-back:hover { color: var(--green-d); }

/* Relacionados */
.blog-related { background: var(--bg); border-top: 1px solid var(--border); }

/* ── Responsive blog ── */
@media (max-width: 980px) {
  .post-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 820px) {
  .post-feature { grid-template-columns: 1fr; }
  .post-feature__media { min-height: 240px; aspect-ratio: 16/9; }
}
@media (max-width: 560px) {
  .post-grid { grid-template-columns: 1fr; }
  .blog-list { padding-block: 48px; }
}


/* Ocultar checkbox del menu movil (fix franja blanca) */
.ww-nav-cb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;clip:rect(0 0 0 0);overflow:hidden;margin:-1px;}

/* Hero: video superpuesto al poster (fade-in al reproducir) */
.hero__media > .hero__bg,
.hero__media > .hero__video { position: absolute; inset: 0; }
.hero__media > .hero__video { z-index: 1; opacity: 0; transition: opacity 1.2s ease; }
.hero__media > .hero__video.is-playing { opacity: 1; }
/* El degradado va POR ENCIMA del video. Sin esto, al arrancar el video el overlay
   se queda debajo y el header blanco resulta ilegible sobre heros claros. */
.hero__media > .hero__overlay { z-index: 2; }

/* ── Parque: itinerarios que lo incluyen ───────────────────── */
.parque-itin-list { list-style: none; margin: 0 0 24px; padding: 0; max-width: 860px; display: flex; flex-direction: column; gap: 2px; }
.parque-itin-item { border-bottom: 1px solid var(--line); padding: 20px 0; }
.parque-itin-item:last-child { border-bottom: 0; }
.parque-itin-item__link { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 20px; text-decoration: none; color: inherit; }
.parque-itin-item__title { font-weight: 600; color: var(--green); }
.parque-itin-item__link:hover .parque-itin-item__title { text-decoration: underline; }
.parque-itin-item__meta { display: flex; gap: 14px; font-size: .9rem; color: var(--muted); white-space: nowrap; }
.parque-itin-item__precio { font-variant-numeric: tabular-nums; }
.parque-itin-item__text { margin: 6px 0 0; font-size: .95rem; color: var(--muted); }
.parque-itinerarios__nota { max-width: 860px; font-size: .9rem; color: var(--muted); margin: 0 0 20px; }
@media (max-width: 640px) {
  .parque-itin-item__link { flex-direction: column; }
  .parque-itin-item__meta { white-space: normal; }
}

/* ── País: destino destacado (bloque opcional por país) ─────
   Reutiliza el lenguaje de .media-card de los parques, en formato
   ancho: la imagen acompaña, el contenido manda. */
.media-card--wide {
  display: grid; grid-template-columns: minmax(0, 38%) 1fr;
  align-items: stretch; overflow: hidden;
}
.media-card--wide .media-card__img { height: 100%; aspect-ratio: auto; }
.media-card--wide .media-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.media-card--wide .media-card__body { padding: clamp(24px, 3vw, 40px); }
.media-card--wide .media-card__prose { max-width: 62ch; }
.media-card--wide .media-card__prose p { margin: 0 0 12px; }
.media-card--wide .media-card__prose p:last-child { margin-bottom: 0; }

.destacado-datos {
  display: flex; flex-wrap: wrap; gap: 14px 36px;
  margin: 24px 0 0; padding: 20px 0 0; border-top: 1px solid var(--border);
}
.destacado-datos__item { margin: 0; }
.destacado-datos__valor {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 1.3rem; font-weight: 600; color: var(--green);
  line-height: 1.2; font-variant-numeric: tabular-nums;
}
.destacado-datos__label { margin: 3px 0 0; font-size: .85rem; color: var(--muted); }

.destacado-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 26px; }
.destacado-ctas__link {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; color: var(--green); text-decoration: none;
}
.destacado-ctas__link svg { width: 17px; height: 17px; transition: transform .25s ease; }
.destacado-ctas__link:hover { text-decoration: underline; }
.destacado-ctas__link:hover svg { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) {
  .destacado-ctas__link svg { transition: none; }
  .destacado-ctas__link:hover svg { transform: none; }
}
@media (max-width: 820px) {
  .media-card--wide { grid-template-columns: 1fr; }
  .media-card--wide .media-card__img { aspect-ratio: 16 / 9; }
}

/* Ruta solicitada: aviso en /contacto/ cuando se llega desde una ficha de itinerario.
   Confirma a la persona que el formulario ya sabe qué ruta ha pedido. */
.form-ruta-aviso {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin: 0 0 24px;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: rgba(0, 0, 0, .02);
}
.form-ruta-aviso__label {
  font-size: .82rem;
  opacity: .7;
  flex-basis: 100%;
}
.form-ruta-aviso__ruta {
  font-size: .98rem;
  line-height: 1.35;
  color: var(--black);
}
.form-ruta-aviso__link {
  font-size: .85rem;
  color: var(--green);
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}
.form-ruta-aviso__link:hover { text-decoration: none; }

/* Ficha de itinerario · bloques v2 (promesa, encaje, ajustes, operativa, operador) */
.hero__claves {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
}
.hero__claves li {
  font-size: .86rem;
  line-height: 1.2;
  color: #fff;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, .45);
  border-radius: 999px;
  background: rgba(0, 0, 0, .18);
}
.itin-encaje {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 28px 40px;
}
.itin-encaje__col .section-title { margin-bottom: 12px; }
.itin-encaje__text p,
.itin-ajustes p,
.itin-operativa p,
.itin-operador p { margin: 0 0 14px; }
.itin-encaje__text p:last-child,
.itin-ajustes p:last-child,
.itin-operativa p:last-child { margin-bottom: 0; }
.itin-ajustes,
.itin-operativa,
.itin-operador { max-width: 72ch; }
.itin-operador__nota {
  font-size: .88rem;
  opacity: .75;
}
@media (max-width: 640px) {
  .hero__claves li { font-size: .8rem; padding: 5px 10px; }
  .itin-encaje { gap: 22px; }
}

/* Tipologia de safari: tabla de rutas reales */
.tipo-rutas__intro{max-width:72ch;margin:0 0 18px}
.tipo-rutas__wrap{overflow-x:auto}
.tipo-rutas{width:100%;border-collapse:collapse;font-size:.95rem}
.tipo-rutas th,.tipo-rutas td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--border)}
.tipo-rutas th{font-weight:600;white-space:nowrap}
.tipo-rutas td:nth-child(2),.tipo-rutas td:nth-child(3),.tipo-rutas th:nth-child(2),.tipo-rutas th:nth-child(3){text-align:center}
.tipo-rutas td:last-child{white-space:nowrap;font-weight:600}
@media(max-width:640px){.tipo-rutas{font-size:.88rem}.tipo-rutas th,.tipo-rutas td{padding:9px 8px}}

/* Home: rutas destacadas */
.home-rutas{padding:56px 0}
.home-rutas__intro{max-width:70ch;margin:0 0 26px}
.home-rutas__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.home-rutas__card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--border);border-radius:var(--r-md);text-decoration:none;color:inherit;transition:border-color .2s}
.home-rutas__card:hover{border-color:var(--green)}
.home-rutas__dias{font-size:.82rem;opacity:.7}
.home-rutas__nombre{font-weight:600;line-height:1.3}
.home-rutas__precio{font-size:.9rem;margin-top:4px}
.home-rutas__mas{margin:22px 0 0;font-size:.92rem}
@media(max-width:640px){.home-rutas{padding:40px 0}}
