/* ============================================================
   Altura Top Travel - CSS paginas interiores (blog, post)
   El index.php tiene su propio <style> embebido.
   ============================================================ */
/* :root con la paleta viene inyectado por PHP (theme.php) en el <head>.
   Este bloque queda como FALLBACK por si el inline no cargara. */
:root{
  --verde:#055D45;
  --verde-oscuro:#033628;
  --naranja:#EA4A05;
  --negro:#0a0a0a;
  --blanco:#ffffff;
  --linea:rgba(10,10,10,.08);
  --texto-sec:rgba(10,10,10,.55);
  --font-titulos:'Montserrat',sans-serif;
  --font-cuerpo:'Open Sans',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-cuerpo);
  background:var(--blanco);
  color:var(--negro);
  font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--naranja);color:var(--blanco)}

/* Badge "Foto referencial" sobre fotos placeholder */
.foto-ref{
  position:absolute;
  top:14px;right:14px;
  z-index:5;
  font-family:var(--font-titulos);
  font-weight:500;
  font-size:.58rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#fff;
  background:rgba(10,10,10,.62);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  padding:7px 12px;
  display:inline-flex;align-items:center;gap:8px;
  white-space:nowrap;
  pointer-events:none;
}
.foto-ref::before{
  content:"";
  display:inline-block;
  width:6px;height:6px;border-radius:50%;
  background:var(--naranja);
  box-shadow:0 0 0 2px rgba(234,74,5,.25);
  animation:pulseRef 2s infinite;
}
@keyframes pulseRef{
  0%,100%{box-shadow:0 0 0 2px rgba(234,74,5,.25)}
  50%{box-shadow:0 0 0 6px rgba(234,74,5,0)}
}
.post-detail-cover{position:relative}
.post-card-img{position:relative}
@media(max-width:700px){.foto-ref{font-size:.52rem;padding:6px 10px;letter-spacing:.18em}}

.container{max-width:1280px;margin:0 auto;padding:0 80px}
.container.narrow{max-width:780px}
@media(max-width:900px){.container{padding:0 24px}}

.eyebrow{
  font-family:var(--font-titulos);font-weight:500;font-size:.7rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--naranja);
  display:inline-block;margin-bottom:24px;
}
.eyebrow .b{display:inline-block;width:24px;height:1px;background:var(--naranja);vertical-align:middle;margin-right:14px}

/* HEADER */
.hdr{
  position:sticky;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 40px;background:var(--blanco);
  border-bottom:1px solid var(--linea);
}
.hdr-brand{line-height:0}
.hdr-brand img{height:34px;width:auto;display:block}
.hdr-brand .neg{display:none}
.hdr-actions{
  display:flex;gap:36px;align-items:center;
  font-family:var(--font-titulos);font-weight:500;font-size:.72rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--negro);
}
.hdr-actions a:hover{color:var(--naranja)}
.hdr-actions .cta{
  border:1px solid var(--negro);padding:10px 18px;font-weight:600;
  letter-spacing:.22em;font-size:.68rem;
}
.hdr-actions .cta:hover{background:var(--naranja);border-color:var(--naranja);color:var(--blanco)}
@media(max-width:900px){.hdr{padding:14px 24px}.hdr-actions a:not(.cta){display:none}}
@media(max-width:700px){.hdr-brand img{height:26px}}

/* PAGE HERO (interior) */
.page-hero{padding:90px 0 60px;border-bottom:1px solid var(--linea)}
.page-title{
  font-family:var(--font-titulos);font-weight:200;
  font-size:clamp(2.4rem,5vw,4rem);line-height:1.02;letter-spacing:-.03em;
  margin-bottom:20px;color:var(--negro);
}
.page-title strong{font-weight:600;color:var(--naranja)}
.page-sub{
  font-family:var(--font-cuerpo);font-size:1.1rem;line-height:1.7;
  color:var(--texto-sec);max-width:620px;
}

/* LISTADO POSTS */
.posts-list{padding:80px 0 120px}
.posts-list .empty{
  font-family:var(--font-titulos);font-weight:300;font-size:1.2rem;
  color:var(--texto-sec);text-align:center;padding:60px 0;
}
.post-card{margin-bottom:80px}
.post-card-link{
  display:grid;grid-template-columns:480px 1fr;gap:60px;
  align-items:center;
}
.post-card:nth-child(even) .post-card-link{
  grid-template-columns:1fr 480px;
}
.post-card:nth-child(even) .post-card-img{order:2}
.post-card:nth-child(even) .post-card-body{order:1}
.post-card-img{
  position:relative;overflow:hidden;aspect-ratio:5/4;background:#222;
}
.post-card-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .7s ease;filter:saturate(.95);
}
.post-card:hover .post-card-img img{transform:scale(1.04)}
.post-meta{
  font-family:var(--font-titulos);font-weight:500;font-size:.68rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--texto-sec);
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px;
}
.post-meta .tag{color:var(--naranja);font-weight:600}
.post-meta .sep{opacity:.4}
.post-title{
  font-family:var(--font-titulos);font-weight:500;
  font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.15;
  letter-spacing:-.015em;margin-bottom:18px;color:var(--negro);
}
.post-excerpt{
  font-family:var(--font-cuerpo);font-size:1.02rem;line-height:1.75;
  color:var(--texto-sec);margin-bottom:24px;max-width:520px;
}
.post-readmore{
  font-family:var(--font-titulos);font-weight:600;font-size:.72rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--negro);
  padding-bottom:6px;border-bottom:1px solid var(--negro);
}
.post-card:hover .post-readmore{color:var(--naranja);border-color:var(--naranja)}
@media(max-width:900px){
  .post-card{margin-bottom:50px}
  .post-card-link, .post-card:nth-child(even) .post-card-link{
    grid-template-columns:1fr;gap:24px;
  }
  .post-card:nth-child(even) .post-card-img{order:0}
  .post-card:nth-child(even) .post-card-body{order:0}
  .post-card-img{aspect-ratio:16/10}
}

/* DETALLE POST */
.post-detail-head{
  padding:60px 0 50px;background:var(--blanco);border-bottom:1px solid var(--linea);
}
.post-detail-head .back{
  display:inline-block;font-family:var(--font-titulos);
  font-size:.7rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;
  color:var(--texto-sec);margin-bottom:40px;transition:color .2s;
}
.post-detail-head .back:hover{color:var(--naranja)}
.post-detail-title{
  font-family:var(--font-titulos);font-weight:300;
  font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.1;
  letter-spacing:-.025em;margin:24px 0 28px;color:var(--negro);max-width:900px;
}
.post-detail-lead{
  font-family:var(--font-cuerpo);font-size:1.18rem;line-height:1.7;
  font-weight:300;color:var(--negro);max-width:760px;
}
.post-detail-cover{
  background:#000;
}
.post-detail-cover img{
  width:100%;max-height:540px;object-fit:cover;
}
.post-detail-body{padding:80px 0 60px}
.post-detail-body p{
  font-family:var(--font-cuerpo);font-size:1.1rem;line-height:1.85;
  color:var(--negro);margin-bottom:24px;
}
.post-detail-body h2,.post-detail-body h3{
  font-family:var(--font-titulos);font-weight:500;
  font-size:1.55rem;line-height:1.2;letter-spacing:-.01em;
  margin:50px 0 18px;color:var(--negro);
}
.post-detail-body h2 + p, .post-detail-body h3 + p{margin-top:0}
.post-detail-body strong{font-weight:600}
.post-detail-foot{
  margin-top:50px;padding-top:30px;border-top:1px solid var(--linea);
}
.post-detail-foot .firma{
  font-family:var(--font-titulos);font-size:.85rem;
  font-weight:500;color:var(--texto-sec);font-style:italic;
}

/* RELACIONADOS */
.post-rel{padding:80px 0;background:#fafafa;border-top:1px solid var(--linea)}
.rel-title{
  font-family:var(--font-titulos);font-weight:300;
  font-size:clamp(1.6rem,3vw,2.2rem);line-height:1;letter-spacing:-.02em;
  margin-bottom:50px;color:var(--negro);
}
.rel-title .mark{color:var(--naranja);font-weight:500}
.rel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px}
.rel-card{display:block;transition:transform .3s}
.rel-card:hover{transform:translateY(-4px)}
.rel-card-img{aspect-ratio:16/10;background-size:cover;background-position:center;margin-bottom:20px;filter:saturate(.95)}
.rel-card h4{
  font-family:var(--font-titulos);font-weight:500;font-size:1.2rem;
  line-height:1.3;color:var(--negro);margin-bottom:12px;
}
.rel-link{
  font-family:var(--font-titulos);font-weight:600;font-size:.7rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--negro);
}
.rel-card:hover .rel-link{color:var(--naranja)}
@media(max-width:700px){.rel-grid{grid-template-columns:1fr;gap:32px}}

/* CTA al final del post */
.post-cta{
  background:var(--verde);color:var(--blanco);padding:90px 0;text-align:center;
}
.post-cta h2{
  font-family:var(--font-titulos);font-weight:300;
  font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1.1;
  letter-spacing:-.02em;margin-bottom:20px;
}
.post-cta p{
  font-family:var(--font-cuerpo);font-size:1.05rem;line-height:1.6;
  color:rgba(255,255,255,.85);max-width:560px;margin:0 auto 40px;
}
.btn-cta{
  display:inline-block;font-family:var(--font-titulos);font-weight:600;
  font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;
  padding:18px 32px;background:var(--naranja);color:var(--blanco);
  transition:background .25s;
}
.btn-cta:hover{background:#c43d04}

/* FOOTER */
footer.site{background:var(--negro);color:rgba(255,255,255,.6);padding:80px 0 32px;font-family:var(--font-titulos)}
.foot-top{
  display:flex;justify-content:space-between;align-items:flex-end;
  padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.1);
  gap:40px;flex-wrap:wrap;
}
.foot-brand{line-height:0}
.foot-brand img{height:54px;width:auto}
.foot-nav{display:flex;gap:42px;font-weight:500;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase}
.foot-nav a{color:rgba(255,255,255,.6);transition:color .2s}
.foot-nav a:hover{color:var(--naranja)}
.foot-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:28px;gap:20px;flex-wrap:wrap;
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.4);
}
.foot-bottom .socials{display:flex;gap:24px}
.foot-bottom .socials a{color:rgba(255,255,255,.6);transition:color .2s}
.foot-bottom .socials a:hover{color:var(--naranja)}
@media(max-width:900px){.foot-brand img{height:42px}.foot-nav{gap:24px;font-size:.68rem}}

/* === TAG-BAR (filtro por etiqueta en /blog) === */
.tag-bar{padding:0 24px 32px;background:#fff}
.tag-bar .container{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  padding-top:18px;border-top:1px solid #ececec;
}
.tag-bar-lbl{
  font-family:var(--font-titulos);font-weight:600;
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:#777;
}
.tag-bar-pills{display:flex;gap:10px;flex-wrap:wrap}
.tag-pill{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-titulos);font-weight:500;
  font-size:.78rem;letter-spacing:.05em;
  padding:8px 16px;
  color:#222;
  background:#f5f5f3;
  border:1px solid #e6e6e2;
  border-radius:999px;
  transition:all .18s ease;
  text-decoration:none;
}
.tag-pill:hover{background:#eee;border-color:#d0d0c8}
.tag-pill.is-active{
  background:var(--verde,#055D45);
  border-color:var(--verde,#055D45);
  color:#fff;
}
.tag-pill .n{
  display:inline-block;
  font-size:.66rem;font-weight:600;
  background:rgba(0,0,0,.08);
  padding:2px 7px;border-radius:999px;
  min-width:18px;text-align:center;
}
.tag-pill.is-active .n{background:rgba(255,255,255,.22)}
.clear-filter{
  display:inline-block;margin-left:8px;
  font-size:.85rem;color:var(--naranja,#EA4A05);
  text-decoration:none;border-bottom:1px solid transparent;
  transition:border-color .15s;
}
.clear-filter:hover{border-color:var(--naranja,#EA4A05)}
.tag-link{
  text-decoration:none;
  transition:opacity .15s;
}
.tag-link:hover{opacity:.75}

/* === COMPARTIR (en detalle de post) === */
.post-share{
  margin:48px 0 24px;
  padding:24px 0;
  border-top:1px solid #ececec;
  border-bottom:1px solid #ececec;
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;
}
.share-lbl{
  font-family:var(--font-titulos);font-weight:600;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:#666;
}
.share-btns{display:flex;gap:10px;flex-wrap:wrap}
.share-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-titulos);font-weight:500;
  font-size:.82rem;
  padding:9px 16px;
  background:#fff;
  border:1.5px solid #e6e6e2;
  color:#222;
  border-radius:8px;
  cursor:pointer;
  transition:all .18s ease;
  text-decoration:none;
}
.share-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.07)}
.share-btn svg{flex-shrink:0}
.share-wa:hover{background:#25D366;color:#fff;border-color:#25D366}
.share-fb:hover{background:#1877F2;color:#fff;border-color:#1877F2}
.share-x:hover{background:#000;color:#fff;border-color:#000}
.share-copy:hover{background:var(--verde,#055D45);color:#fff;border-color:var(--verde,#055D45)}

@media(max-width:700px){
  .post-share{flex-direction:column;align-items:flex-start;gap:14px}
  .share-btns{width:100%}
  .share-btn{font-size:.78rem;padding:8px 12px}
}

/* === SELECTOR DE IDIOMA (header interior) === */
.lang-switch{display:inline-flex;gap:2px;align-items:center;margin-left:8px;
  border:1px solid currentColor;border-radius:4px;overflow:hidden;opacity:.85}
.lang-switch a{padding:6px 9px;font-size:.64rem;letter-spacing:.12em;line-height:1;
  color:inherit;transition:background .2s,color .2s;text-decoration:none}
.lang-switch a.is-active{background:var(--naranja);color:#fff;opacity:1}
.lang-switch a:not(.is-active):hover{color:var(--naranja)}
@media(max-width:760px){.lang-switch{margin-left:0}}

/* ============================================================
   PAGINA DE TOUR  +  CARRUSEL
   ============================================================ */
.tour-head{padding:56px 0 44px;border-bottom:1px solid var(--linea)}
.tour-head .back{
  display:inline-block;font-family:var(--font-titulos);font-size:.7rem;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;color:var(--texto-sec);
  margin-bottom:34px;transition:color .2s;
}
.tour-head .back:hover{color:var(--naranja)}
.tour-head-grid{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
.tour-title{
  font-family:var(--font-titulos);font-weight:300;
  font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.05;letter-spacing:-.03em;
  margin:14px 0 18px;color:var(--negro);max-width:820px;
}
.tour-lead{
  font-family:var(--font-cuerpo);font-size:1.12rem;line-height:1.7;font-weight:300;
  color:var(--negro);max-width:680px;
}
.tour-alt{text-align:right;line-height:1;flex-shrink:0}
.tour-alt .n{
  display:block;font-family:var(--font-titulos);font-weight:200;
  font-size:clamp(2.4rem,6vw,4.2rem);letter-spacing:-.04em;color:var(--naranja);
}
.tour-alt .u{
  font-family:var(--font-titulos);font-size:.66rem;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;color:var(--texto-sec);
}

/* --- carrusel --- */
.carrusel{position:relative;background:#0e1512;overflow:hidden}
.car-track{
  display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;
}
.car-track::-webkit-scrollbar{display:none}
.car-slide{
  flex:0 0 100%;scroll-snap-align:center;position:relative;margin:0;
}
.car-slide img{width:100%;height:clamp(280px,58vh,620px);object-fit:cover;display:block}
.car-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:46px;height:46px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.9);color:#0e1512;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,transform .2s;z-index:3;
}
.car-nav:hover{background:#fff;transform:translateY(-50%) scale(1.06)}
.car-prev{left:20px}
.car-next{right:20px}
.car-dots{
  position:absolute;left:0;right:0;bottom:18px;z-index:3;
  display:flex;justify-content:center;gap:8px;
}
.car-dot{
  width:8px;height:8px;border-radius:50%;border:0;cursor:pointer;padding:0;
  background:rgba(255,255,255,.45);transition:all .25s;
}
.car-dot.is-active{background:var(--naranja);width:26px;border-radius:5px}
.car-count{
  position:absolute;top:18px;right:20px;z-index:3;
  font-family:var(--font-titulos);font-size:.7rem;font-weight:500;letter-spacing:.16em;
  color:#fff;background:rgba(10,10,10,.55);padding:6px 12px;border-radius:20px;
  backdrop-filter:blur(6px);
}
@media(max-width:700px){
  .car-nav{width:38px;height:38px;font-size:.95rem}
  .car-prev{left:10px}.car-next{right:10px}
}

/* --- cuerpo del tour --- */
.tour-body{padding:60px 0 40px}
.tour-cols{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start}
.tour-specs{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:22px;
  padding-bottom:34px;border-bottom:1px solid var(--linea);margin-bottom:34px;
}
.tour-specs .spec{display:flex;flex-direction:column;gap:6px}
.tour-specs .l{
  font-family:var(--font-titulos);font-size:.64rem;font-weight:500;
  letter-spacing:.26em;text-transform:uppercase;color:var(--texto-sec);
}
.tour-specs .v{font-family:var(--font-titulos);font-size:1.05rem;font-weight:500;color:var(--negro)}
.tour-inc{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.inc-block h2{
  font-family:var(--font-titulos);font-weight:600;font-size:.74rem;
  letter-spacing:.26em;text-transform:uppercase;color:var(--negro);margin-bottom:16px;
}
.inc-list{list-style:none;padding:0;margin:0}
.inc-list li{
  position:relative;padding-left:26px;margin-bottom:11px;
  font-family:var(--font-cuerpo);font-size:1rem;line-height:1.6;color:var(--negro);
}
.inc-list li::before{
  position:absolute;left:0;top:0;font-weight:700;
}
.inc-list.si li::before{content:"✓";color:var(--verde)}
.inc-list.no li{color:var(--texto-sec)}
.inc-list.no li::before{content:"×";color:#c0392b}

/* --- tarjeta de reserva --- */
.tour-side{position:sticky;top:90px}
.reserva{
  border:1.5px solid var(--linea);border-radius:14px;padding:26px 24px;background:var(--blanco);
}
.reserva .r-lbl{
  font-family:var(--font-titulos);font-size:.64rem;font-weight:500;
  letter-spacing:.26em;text-transform:uppercase;color:var(--texto-sec);
}
.r-precio{
  font-family:var(--font-titulos);font-weight:300;font-size:2rem;
  letter-spacing:-.02em;color:var(--negro);margin:4px 0 16px;line-height:1.1;
}
.r-precio.r-consultar{font-size:1.25rem;color:var(--verde)}
.r-txt{
  font-family:var(--font-cuerpo);font-size:.94rem;line-height:1.6;
  color:var(--texto-sec);margin-bottom:20px;
}
.r-btn{
  display:block;text-align:center;background:var(--naranja);color:#fff;
  font-family:var(--font-titulos);font-weight:600;font-size:.8rem;
  letter-spacing:.16em;text-transform:uppercase;padding:15px 18px;border-radius:9px;
  transition:background .2s,transform .2s;
}
.r-btn:hover{background:#c93f04;transform:translateY(-1px)}
.r-alt{
  display:block;text-align:center;margin-top:14px;
  font-family:var(--font-titulos);font-size:.72rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--texto-sec);
}
.r-alt:hover{color:var(--naranja)}

/* --- otros circuitos --- */
.tour-otros{padding:20px 0 100px}
.otros-title{
  font-family:var(--font-titulos);font-weight:500;font-size:.74rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--negro);
  margin-bottom:26px;padding-top:40px;border-top:1px solid var(--linea);
}
.otros-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px}
.otro-card{display:block}
.otro-img{
  height:170px;background-size:cover;background-position:center;position:relative;
  margin-bottom:14px;transition:transform .5s;
}
.otro-card:hover .otro-img{transform:scale(1.02)}
.otro-alt{
  position:absolute;left:12px;bottom:12px;
  font-family:var(--font-titulos);font-size:.66rem;font-weight:600;letter-spacing:.16em;
  color:#fff;background:rgba(10,10,10,.6);padding:5px 11px;backdrop-filter:blur(4px);
}
.otro-card h3{
  font-family:var(--font-titulos);font-weight:500;font-size:1.1rem;
  color:var(--negro);margin-bottom:8px;
}
.otro-link{
  font-family:var(--font-titulos);font-size:.68rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--texto-sec);
}
.otro-card:hover .otro-link{color:var(--naranja)}

@media(max-width:900px){
  .tour-cols{grid-template-columns:1fr;gap:34px}
  .tour-side{position:static}
  .tour-inc{grid-template-columns:1fr;gap:28px}
  .tour-head-grid{align-items:flex-start}
  .tour-alt{text-align:left}
}

/* Si el tour solo tiene una de las dos listas, se reparte en 2 columnas
   para no dejar media pagina vacia. */
.tour-inc.una-sola{grid-template-columns:1fr}
.tour-inc.una-sola .inc-list{columns:2;column-gap:44px}
.tour-inc.una-sola .inc-list li{break-inside:avoid;-webkit-column-break-inside:avoid}
@media(max-width:820px){.tour-inc.una-sola .inc-list{columns:1}}
