@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Caveat:wght@600&display=swap');

:root{
  --cream: #F3EFE6;
  --cream-dark: #EAE3D3;
  --ink: #201E17;
  --green-dark: #263620;
  --green-mid: #33452C;
  --red: #B5372A;
  --tan: #D9A15D;
  --line: rgba(32,30,23,0.12);
  --font-head: 'Manrope', sans-serif;
  --font-hand: 'Caveat', cursive;
  --radius: 4px;
}

*{ box-sizing: border-box; }

body{
  margin:0;
  font-family: var(--font-head);
  background: var(--cream);
  color: var(--ink);
  line-height: 1.5;
}

img{ max-width:100%; display:block; }

.wrap{
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 32px;
}

.eyebrow{
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--green-mid);
}

.eyebrow.on-dark{ color: var(--tan); }
.eyebrow.on-photo{ color: var(--cream); }

h1,h2,h3{
  font-family: var(--font-head);
  font-weight: 800;
  line-height: 1.12;
  margin: 0 0 16px;
  letter-spacing: -0.01em;
}

h1{ font-size: clamp(32px, 4.4vw, 52px); }
h2{ font-size: clamp(26px, 3.2vw, 38px); }
h3{ font-size: 20px; }

p{ margin: 0 0 14px; color: #3B3928; max-width: 60ch; }

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 14px 24px;
  font-weight:700;
  font-size:14px;
  letter-spacing:0.03em;
  border-radius: var(--radius);
  border: none;
  cursor:pointer;
  text-decoration:none;
}

.btn-primary{ background: var(--green-dark); color: var(--cream); }
.btn-primary:hover{ background: var(--green-mid); }
.btn-outline{ background: transparent; color: var(--ink); border: 1.5px solid var(--ink); }

/* ---------- Header ---------- */
header.site-header{
  background: var(--cream);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top:0;
  z-index: 50;
}
.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 16px 32px;
  max-width:1240px;
  margin:0 auto;
  gap: 24px;
}
.header-actions{ display:flex; align-items:center; gap:24px; }
.nav-divider{ display:none; }
.cross-brand-mobile{ display:none; }
.nav-cta-mobile{ display:none; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ width:44px; height:44px; border-radius:50%; object-fit:cover; }
.brand-text{ line-height:1.2; }
.brand-text b{ font-size:17px; }
.brand-text span{ display:block; font-size:12px; color:#5c5847; }

nav.main-nav{ display:flex; gap:28px; }
nav.main-nav a{
  color:var(--ink); text-decoration:none; font-size:14.5px; font-weight:600;
  padding-bottom: 4px;
}
nav.main-nav a.active{ border-bottom:2px solid var(--ink); }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height: 480px;
  background-size: cover;
  background-position: center;
  display:flex;
  align-items:center;
  color: var(--cream);
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(20,20,15,0.55) 0%, rgba(20,20,15,0.12) 55%, rgba(20,20,15,0) 75%);
}
.hero-inner{ position:relative; z-index:2; padding: 64px 32px; max-width:1240px; margin:0 auto; width:100%; }
.hero-content{ max-width: 560px; }
.hero .eyebrow{ color:var(--cream); margin-bottom:14px; }
.hero p{ color: #EDE9DC; }
.hero-note{
  font-family: var(--font-hand);
  font-size: 30px;
  position:absolute;
  right: 48px;
  bottom: 34px;
  color: var(--cream);
  transform: rotate(-3deg);
  z-index:2;
}

/* ---------- Proceso ---------- */
.proceso{ padding: 72px 0; text-align:center; }
.proceso h2{ margin-bottom:6px; }
.proceso .eyebrow{ display:block; margin-bottom:44px; }
.pasos{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  text-align:left;
}
.paso .num{
  width:40px; height:40px;
  border:1.5px solid var(--ink);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; margin-bottom:18px;
}
.paso h3{ margin-bottom:8px; }
.paso p{ font-size:14.5px; }

.step-num{
  width:40px; height:40px;
  border:1.5px solid var(--ink);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; margin-bottom:18px;
}
.ct-step-split .fp-split-text{ padding: 56px 48px; }
.ct-step-split + .ct-step-split{ border-top:1px solid var(--line); }
.ct-step-split .ct-step-extra{ font-size:13.5px; color:#6b674f; margin-top:8px; }

/* ---------- Forma diferente (split) ---------- */
.forma{
  display:grid;
  grid-template-columns: 1fr 1fr;
  align-items:stretch;
  background: var(--cream-dark);
}
.forma-text{ padding: 64px 48px; display:flex; flex-direction:column; justify-content:center; }
.forma-text .highlight{ font-weight:700; color:var(--ink); }
.forma-media{ position:relative; min-height: 360px; background-size:cover; background-position:center; }
.precio-card{
  position:absolute; right:24px; bottom:24px;
  background: var(--cream);
  padding: 22px 24px;
  border-radius: var(--radius);
  width: 260px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.18);
}
.precio-card h4{ margin:0 0 10px; font-size:16px; }
.precio-row{ display:flex; justify-content:space-between; font-size:13.5px; margin-bottom:4px; color:#4a4736; }
.precio-total{ display:flex; justify-content:space-between; font-weight:800; border-top:1px solid var(--line); margin-top:8px; padding-top:8px; font-size:15px; }
.precio-nota{ font-size:12px; color:#6b674f; margin-top:10px; }

/* ---------- Expediciones (dark) ---------- */
.expediciones{ background: var(--green-dark); color: var(--cream); padding: 56px 0 0; }
.expedi-top{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; padding-bottom:40px; }
.expedi-top p{ color:#D7D6C6; }
.expedi-grid{ display:grid; grid-template-columns: repeat(4,1fr); }
.expedi-card{ position:relative; aspect-ratio: 3/3.4; background-size:cover; background-position:center; }
.expedi-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.75) 100%); }
.expedi-card .cap{ position:absolute; left:18px; bottom:16px; right:18px; z-index:2; }
.expedi-card .cap b{ display:block; font-size:13px; letter-spacing:0.05em; }
.expedi-card .cap span{ font-size:12.5px; color:#E7E4D2; }

/* ---------- Filosofía (photo section) ---------- */
.filosofia{
  position:relative;
  min-height: 380px;
  color: var(--cream);
  display:flex;
  align-items:flex-end;
}
.filo-bg-layer{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:1; }
.filosofia::before{ content:""; position:absolute; inset:0; z-index:2; background: linear-gradient(0deg, rgba(15,14,10,0.55), rgba(15,14,10,0.15) 60%); }
.filo-inner{ position:relative; z-index:3; width:100%; padding: 40px 32px; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.filo-inner h2{ max-width: 480px; }
.filo-inner .highlight{ color: var(--tan); font-weight:800; font-size: clamp(20px,2.6vw,30px); display:block; margin-top:6px; }
.filo-caption{ font-size:12px; letter-spacing:0.12em; font-weight:700; margin-top:16px; color:#E9E6D6; }
.filo-brand{ text-align:right; }
.filo-brand-row{ display:flex; align-items:center; gap:10px; justify-content:flex-end; }
.filo-brand img{ width:38px; height:38px; border-radius:50%; }
.filo-hand{ font-family:var(--font-hand); font-size:20px; margin-top:6px; }

/* ---------- Footer ---------- */
footer{ background:#15140F; color:#D8D5C6; padding: 28px 0; }
.footer-row{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.footer-nav{ display:flex; gap:22px; flex-wrap:wrap; }
.footer-nav a{ color:#D8D5C6; text-decoration:none; font-size:13.5px; }
.footer-social{ display:flex; gap:14px; }
.footer-social a{ color:#D8D5C6; }
.footer-tagline{ font-size:13.5px; color:#B7B49F; }
.footer-legal{ border-top:1px solid rgba(216,213,198,0.14); margin-top:20px; padding-top:16px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }

/* ---------- Contacto ---------- */
.contacto{ background: var(--green-dark); color: var(--cream); padding: 76px 0; text-align:center; }
.contacto .eyebrow{ color: var(--tan); }
.contacto h2{ color: var(--cream); margin: 12px 0 14px; }
.contacto p{ color:#D7D6C6; max-width:600px; margin:0 auto 40px; }
.contacto-methods{ display:flex; justify-content:center; gap:20px; flex-wrap:wrap; }
.contacto-method{
  display:block;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--radius);
  padding: 20px 30px;
  min-width: 220px;
  text-decoration: none;
  color: var(--cream);
  transition: background 0.15s;
}
.contacto-method:hover{ background: rgba(255,255,255,0.12); }
.contacto-method b{
  display:block;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tan);
  margin-bottom: 6px;
}
.contacto-method span{ font-size: 17px; font-weight: 700; }
.contacto-whatsapp b{ color: #4FD07A; }

/* ---------- Footer contacto ---------- */
.footer-contact{ display:flex; gap:16px; flex-wrap:wrap; font-size:13px; }
.footer-contact a{ color:#D8D5C6; text-decoration:none; }
.footer-contact a:hover{ color: var(--tan); }
.footer-legal-links{ display:flex; gap:18px; flex-wrap:wrap; }
.footer-legal-links a{ color:#9A9784; text-decoration:none; font-size:12.5px; }
.footer-legal-links a:hover{ color:#D8D5C6; }
.footer-copy{ font-size:12.5px; color:#7D7A69; }

/* ---------- Páginas legales ---------- */
.legal-page{ padding: 64px 0 80px; }
.legal-page .wrap{ max-width: 760px; }
.legal-page h1{ margin-bottom:6px; }
.legal-page .updated{ font-size:13px; color:#8a8770; margin-bottom:40px; }
.legal-page h2{ font-size:21px; margin-top:38px; margin-bottom:14px; }
.legal-page p{ color:#3a3730; line-height:1.75; margin-bottom:14px; }
.legal-page ul{ padding-left:22px; margin-bottom:14px; }
.legal-page li{ color:#3a3730; line-height:1.75; margin-bottom:8px; }
.legal-page a{ color: var(--green-mid); }
.legal-page table{ width:100%; border-collapse:collapse; margin: 20px 0; font-size:14px; }
.legal-page th, .legal-page td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
.legal-page th{ font-size:12.5px; letter-spacing:0.04em; color:#6b674f; }

/* ---------- Banner de cookies ---------- */
.cookie-banner{
  display:none;
  position:fixed; left:0; right:0; bottom:0; z-index:999;
  background: var(--ink);
  color: var(--cream);
  padding: 20px 24px;
  box-shadow: 0 -8px 24px rgba(0,0,0,0.2);
}
.cookie-banner.show{ display:block; }
.cookie-banner-inner{ max-width:1240px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cookie-banner p{ font-size:13.5px; color:#D8D5C6; max-width:640px; margin:0; }
.cookie-banner a{ color: var(--tan); }
.cookie-banner-actions{ display:flex; gap:12px; flex-shrink:0; }
.cookie-banner .btn-outline{ border-color:#8a887a; color:var(--cream); }
.cookie-banner .btn-outline:hover{ background:rgba(255,255,255,0.08); }

@media (max-width: 900px){
  .cookie-banner-inner{ flex-direction:column; align-items:flex-start; }
  .footer-legal{ flex-direction:column; align-items:flex-start; }

  .filosofia{ display:block; min-height:0; background: var(--green-dark); }
  .filo-bg-layer{ position:static; width:100%; aspect-ratio: 4/3; background-position: 75% center; }
  .filosofia::before{ display:none; }
  .filo-inner{ padding: 28px 24px 32px; }
}

/* ---------- Página "Cómo trabajamos" ---------- */
.ct-hero{
  position:relative;
  min-height: 460px;
  background-size: cover;
  background-position: center 10%;
  display:flex;
  align-items:center;
  color: var(--cream);
}
.ct-hero::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(20,20,15,0.6) 0%, rgba(20,20,15,0.25) 60%, rgba(20,20,15,0.55) 100%);
}
.ct-hero-inner{ position:relative; z-index:2; width:100%; padding-top: 64px; padding-bottom: 64px; }
.ct-hero-content{ max-width: 620px; }
.ct-hero-content h1{ color: var(--cream); }
.ct-hero .eyebrow{ color:var(--tan); margin-bottom:14px; }
.ct-hero-content p{ color:#EDE9DC; }

.ct-steps{ padding: 72px 0 40px; }
.ct-steps .pasos{ margin-bottom: 48px; }
.ct-step-extra{ font-size:13.5px; color:#6b674f; margin-top:8px; }

.ct-gallery{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  padding-bottom: 72px;
}
.ct-gallery-item{ aspect-ratio: 1/1; background-size:cover; background-position:center; border-radius: var(--radius); }

.ct-cta{
  background: var(--green-dark);
  color: var(--cream);
  text-align:center;
  padding: 64px 32px;
}
.ct-cta h2{ color:var(--cream); max-width: 700px; margin:0 auto 28px; }
.ct-cta .btn{ background: var(--tan); color: var(--ink); }
.ct-cta .btn:hover{ background:#c88f4a; }

.ct-quote-section{
  position:relative;
  min-height: 420px;
  background-size:cover;
  background-position:center;
  color: var(--cream);
  display:flex;
  align-items:flex-end;
}
.ct-quote-section::before{ content:""; position:absolute; inset:0; background: linear-gradient(0deg, rgba(15,14,10,0.6), rgba(15,14,10,0.1) 60%); }
.ct-quote-inner{ position:relative; z-index:2; padding: 48px 32px; max-width: 560px; }
.ct-quote-inner q{ font-size: clamp(22px, 2.6vw, 30px); font-weight:700; line-height:1.25; display:block; margin-bottom:16px; }
.ct-quote-author{ font-size:13px; letter-spacing:0.1em; font-weight:700; color:var(--tan); }

.nav-toggle{
  display:none;
  background:none;
  border:1.5px solid var(--ink);
  border-radius: var(--radius);
  width:44px; height:44px;
  font-size:20px;
  cursor:pointer;
  color:var(--ink);
  align-items:center;
  justify-content:center;
}

/* ---------- Página "Filosofía" ---------- */
.fp-hero{
  position:relative;
  min-height: 440px;
  color: var(--cream);
  display:flex;
  align-items:center;
}
.fp-hero-bg-layer{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:1; }
.fp-hero::before{ content:""; position:absolute; inset:0; z-index:2; background: linear-gradient(90deg, rgba(15,14,10,0.75), rgba(15,14,10,0.25) 62%); }
.fp-hero-inner{ position:relative; z-index:3; max-width:640px; padding: 80px 0; }
.fp-hero .eyebrow{ color:var(--tan); margin-bottom:14px; }
.fp-hero h1{ color:var(--cream); margin-bottom:16px; }
.fp-hero p{ color:#EDE9DC; margin-bottom:14px; }
.fp-hero .btn{ margin-top:10px; background:var(--tan); color:var(--ink); }
.fp-hero .btn:hover{ background:#c88f4a; }

.fp-split{ display:grid; grid-template-columns: 1fr 1fr; align-items:stretch; }
.fp-split.reverse .fp-split-text{ order:2; }
.fp-split.reverse .fp-split-media{ order:1; }
.fp-split-text{ padding: 72px 48px; display:flex; flex-direction:column; justify-content:center; }
.fp-split-text h2{ margin-bottom:16px; }
.fp-split-text p{ margin-bottom:14px; color:#4a4736; }
.fp-split-media{ min-height: 380px; background-size:cover; background-position:center; }
.fp-lead{ font-family:var(--font-hand); font-size:21px; color: var(--green-mid); margin-top:8px; }

.fp-values-band{ background: var(--cream-dark); padding: 72px 0; text-align:center; }
.fp-values-band .intro{ max-width:640px; margin:0 auto 44px; color:#4a4736; }
.fp-value-cards{ display:grid; grid-template-columns: repeat(3,1fr); gap:32px; text-align:left; }
.fp-value-card h3{ font-size:18px; margin-bottom:8px; }
.fp-value-card p{ font-size:14.5px; color:#6b674f; }

.fp-dark{ background: var(--green-dark); color: var(--cream); padding: 80px 0; text-align:center; }
.fp-dark p{ margin-left:auto; margin-right:auto; }
.fp-dark .wrap{ max-width:720px; }
.fp-dark .eyebrow{ color:var(--tan); }
.fp-dark h2{ color:var(--cream); margin-bottom:20px; }
.fp-dark p{ color:#D7D6C6; margin-bottom:14px; }
.fp-dark .fp-lead{ color:var(--tan); font-size:23px; margin-top:18px; }

.fp-defend{ padding: 76px 0; text-align:center; }
.fp-defend .intro{ max-width:640px; margin:0 auto 48px; }
.fp-values-grid{ display:grid; grid-template-columns: repeat(5,1fr); gap:24px; text-align:left; }
.fp-val b{ display:block; font-size:19px; color:var(--ink); margin-bottom:8px; }
.fp-val p{ font-size:13.5px; color:#6b674f; }

.fp-cta{ background: var(--green-dark); color: var(--cream); padding: 76px 0; text-align:center; }
.fp-cta .eyebrow{ color:var(--tan); }
.fp-cta h2{ color:var(--cream); max-width:700px; margin:0 auto 20px; }
.fp-cta p{ color:#D7D6C6; max-width:600px; margin:0 auto 28px; }
.fp-cta-buttons{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.fp-cta .btn-primary{ background:var(--tan); color:var(--ink); }
.fp-cta .btn-primary:hover{ background:#c88f4a; }
.fp-cta .btn-outline-light{ background:transparent; color:var(--cream); border:1.5px solid var(--cream); }
.fp-cta .btn-outline-light:hover{ background:rgba(255,255,255,0.08); }

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

@media (max-width: 900px){
  .header-actions{ display:contents; }
  .header-row{ position:relative; flex-wrap:wrap; }
  .nav-toggle{ display:flex; order:2; }
  .header-actions > .btn-primary{ display:none; }
  nav.main-nav{
    display:none;
    order:4;
    width:100%;
    flex-direction:column;
    gap:0;
    background:var(--cream);
    border-top:1px solid var(--line);
    margin-top:16px;
  }
  nav.main-nav.open{ display:flex; }
  nav.main-nav a{
    padding:14px 4px;
    border-bottom:1px solid var(--line);
  }
  nav.main-nav a.active{ border-bottom:1px solid var(--line); }
  .nav-cta-mobile{
    display:block;
    text-align:center;
    margin:16px 4px 4px;
    padding:14px 4px;
  }
  .pasos{ grid-template-columns: 1fr 1fr; }
  .forma{ grid-template-columns: 1fr; }
  .precio-card{ position:static; margin:20px; width:auto; }
  .expedi-grid{ grid-template-columns: 1fr 1fr; }
  .filo-inner{ flex-direction:column; align-items:flex-start; }
  .filo-brand{ text-align:left; }
  .filo-brand-row{ justify-content:flex-start; }
  .fp-split, .fp-split.reverse{ grid-template-columns: 1fr; }
  .fp-split.reverse .fp-split-text{ order:1; }
  .fp-split.reverse .fp-split-media{ order:2; }
  .fp-split-media{ min-height:260px; }
  .fp-value-cards{ grid-template-columns: 1fr; }
  .fp-values-grid{ grid-template-columns: 1fr 1fr; }

  .fp-hero{ display:block; min-height:0; background: var(--green-dark); }
  .fp-hero-bg-layer{ position:static; width:100%; aspect-ratio: 4/3; background-position: 75% center; }
  .fp-hero::before{ display:none; }
  .fp-hero-inner{ max-width:none; padding: 28px 0 36px; }

  .cross-brand{ display:none; }
  .nav-divider{ display:block; height:1px; background:var(--line); margin:10px 4px; }
  .cross-brand-mobile{
    display:block;
    padding:14px 4px;
    font-size:14px;
    color:#6b674f;
    text-decoration:none;
  }
  .cross-brand-mobile b{ color:var(--ink); }
  .cross-brand-mobile .arrow{ color:var(--red); margin:0 4px; }
}

/* ---------- Enlace cruzado entre marcas (Omniterra / The Free Travel) ---------- */
.cross-brand{
  font-size: 12px;
  color: #6b674f;
  text-decoration: none;
  background: transparent;
  border: 1px solid rgba(32,30,23,0.10);
  border-radius: var(--radius);
  padding: 5px 12px;
  white-space: nowrap;
  transition: background 0.15s;
}
.cross-brand:hover{ background: var(--cream-dark); }
.cross-brand b{ color: var(--ink); }
.cross-brand .arrow{ color: var(--red); margin: 0 2px; }

.footer-crossbrand{
  border-top: 1px solid rgba(216,213,198,0.14);
  margin-top: 16px;
  padding-top: 16px;
  text-align: center;
  font-size: 13.5px;
  color: #9A9784;
}
.footer-crossbrand a{ color: var(--tan); text-decoration: none; font-weight: 700; }
.footer-crossbrand a:hover{ text-decoration: underline; }

/* ---------- Página Viajes (listado) ---------- */
.viajes-grid{ display:flex; flex-direction:column; gap:32px; padding: 64px 0; }
.viaje-card-big{ display:grid; grid-template-columns: 1fr 1fr; background:var(--cream-dark); border-radius: var(--radius); overflow:hidden; }
.viaje-card-media{ min-height:360px; background-size:cover; background-position:center; }
.viaje-card-body{ padding:44px; display:flex; flex-direction:column; justify-content:center; }
.viaje-card-body h3{ font-size:30px; margin:6px 0 14px; }
.viaje-card-body p{ margin-bottom:22px; color:#4a4736; }
.viaje-facts{ display:flex; flex-wrap:wrap; gap:8px 18px; font-size:13.5px; color:#6b674f; margin-bottom:24px; }
.viaje-facts b{ color:var(--ink); }
.viaje-price{ font-size:15px; color:#4a4736; margin-bottom:22px; }
.viaje-price strong{ font-size:24px; color:var(--red); }

/* ---------- Página de detalle de viaje ---------- */
.viaje-facts-line{ font-size:14.5px; color:#EDE9DC; margin-top:10px; letter-spacing:0.02em; }

.viaje-specs{ padding: 60px 0; }
.viaje-specs-grid{ display:grid; grid-template-columns: repeat(5,1fr); gap:20px; text-align:center; }
.spec-item b{ display:block; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:#8a8770; margin-bottom:8px; }
.spec-item span{ font-size:18px; font-weight:700; color:var(--ink); }

.itinerario{ background: var(--cream-dark); padding: 64px 0; }
.itinerario-day{ display:grid; grid-template-columns: 90px 1fr; gap:24px; padding:26px 0; border-bottom:1px solid var(--line); }
.itinerario-day:last-child{ border-bottom:none; }
.itinerario-day .day-num{ font-size:13px; font-weight:800; letter-spacing:0.04em; color:var(--red); padding-top:2px; }
.itinerario-day h3{ font-size:19px; margin-bottom:8px; }
.itinerario-day p{ font-size:14.5px; color:#4a4736; }

/* ---------- Pestañas (La ruta / El viaje) ---------- */
.tabs-seccion{ padding: 64px 0; }
.tabs-nav{
  display:flex; gap:6px; flex-wrap:wrap;
  border-bottom:1px solid var(--line);
  margin-bottom:34px;
}
.tab-btn{
  background:none; border:none; cursor:pointer;
  font-family:var(--font-head); font-size:15px; font-weight:700;
  color:#8a8770; padding:12px 20px;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
}
.tab-btn:hover{ color:var(--ink); }
.tab-btn.active{ color:var(--ink); border-bottom-color:var(--red); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }
.tab-panel .fp-split{ background:var(--cream-dark); border-radius:var(--radius); overflow:hidden; }
.tab-panel .fp-split-text{ padding:44px 40px; }
.tab-panel .fp-split-text h2{ font-size: clamp(19px, 2vw, 25px); line-height:1.25; }
.tab-panel .fp-split-media{ min-height:340px; }
.tab-panel .viaje-specs-grid{ margin-top:8px; }
.tab-panel .viaje-specs-grid .spec-item{ padding:18px 10px; background:var(--cream-dark); border-radius:var(--radius); }

@media (max-width: 900px){
  .tabs-nav{ flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .tabs-nav::-webkit-scrollbar{ display:none; }
  .tab-btn{ padding:12px 14px; font-size:14px; white-space:nowrap; }
  .tab-panel .fp-split-text{ padding:32px 24px; }
  .viaje-specs-grid{ grid-template-columns: repeat(2,1fr); }
}

/* Itinerario en carrusel */
.itin-hint{ font-size:13.5px; color:#8a8770; margin-bottom:30px; }
.itinerario-carousel{ position:relative; }
.itinerario-track{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:4px 4px 14px;
  margin:0 -4px;
  -webkit-overflow-scrolling:touch;
}
.itinerario-track::-webkit-scrollbar{ height:6px; }
.itinerario-track::-webkit-scrollbar-thumb{ background:rgba(32,30,23,0.18); border-radius:4px; }
.itinerario-card{
  flex:0 0 310px;
  scroll-snap-align:start;
  background:var(--cream);
  border-radius:var(--radius);
  padding:28px 26px;
  display:flex;
  flex-direction:column;
}
.itinerario-card .day-num{
  font-size:12px; font-weight:800; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--red); margin-bottom:12px;
}
.itinerario-card h3{ font-size:19px; margin-bottom:10px; }
.itinerario-card p{ font-size:14.5px; color:#4a4736; margin:0; }

@media (max-width: 900px){
  .itinerario-card{ flex-basis: 82%; }
}

.precio-section{ padding: 64px 0; }
.precio-incluye{ columns: 2; column-gap:32px; margin: 20px 0 36px; max-width:760px; }
.precio-incluye li{ font-size:14.5px; color:#4a4736; margin-bottom:8px; break-inside:avoid; }
.precio-tiers{ display:grid; grid-template-columns: repeat(4,1fr); gap:14px; margin:28px 0 36px; }
.precio-tier{ background:var(--cream-dark); border-radius: var(--radius); padding:20px 14px; text-align:center; }
.precio-tier b{ display:block; font-size:22px; color:var(--red); margin-bottom:4px; }
.precio-tier span{ font-size:12.5px; color:#6b674f; }
.precio-nota{ font-size:14px; color:#6b674f; margin-bottom:14px; }
.precio-total-box{ background: var(--green-dark); color: var(--cream); border-radius: var(--radius); padding:34px; margin-top:20px; }
.precio-total-box .fila{ display:flex; justify-content:space-between; padding:6px 0; font-size:14.5px; color:#D7D6C6; border-bottom:1px solid rgba(255,255,255,0.12); }
.precio-total-box .fila:last-of-type{ border-bottom:none; }
.precio-total-box .total{ margin-top:14px; font-size:22px; font-weight:800; color:var(--tan); text-align:right; }

.poema-cierre{ position:relative; min-height:520px; display:flex; align-items:center; color:var(--cream); text-align:center; }
.poema-bg-layer{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:1; }
.poema-cierre::before{ content:""; position:absolute; inset:0; z-index:2; background: rgba(15,14,10,0.5); }
.poema-inner{ position:relative; z-index:3; max-width:640px; margin:0 auto; padding:60px 32px; }
.poema-inner p{ font-size:19px; margin:0 0 6px; color:#EDE9DC; }
.poema-ruta{ font-family: var(--font-head); font-weight:800; letter-spacing:0.03em; margin-top:28px; font-size:15px; color:var(--tan); }

/* ---------- Testimonios ---------- */
.testimonios{ background: var(--cream-dark); padding: 76px 0; }
.testimonios .eyebrow{ display:block; text-align:center; margin-bottom:8px; }
.testimonios h2{ text-align:center; max-width:700px; margin:0 auto 48px; }

.testimonios-carousel{ position:relative; }
.testimonios-track{
  display:flex;
  gap:24px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:4px 4px 14px;
  margin:0 -4px;
  -webkit-overflow-scrolling:touch;
}
.testimonios-track::-webkit-scrollbar{ height:6px; }
.testimonios-track::-webkit-scrollbar-thumb{ background:var(--line); border-radius:4px; }
.testimonio-card{
  flex:0 0 360px;
  scroll-snap-align:start;
  background:var(--cream);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.testimonio-foto{
  aspect-ratio:3/2;
  background-color:var(--cream-dark);
  background-size:cover;
  background-position:center;
}
.testimonio-cuerpo{ padding:26px 26px 24px; display:flex; flex-direction:column; flex-grow:1; }
.testimonio-quote{
  font-size:15.5px; color:#3B3928; line-height:1.55; margin:0 0 10px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.testimonio-card.abierto .testimonio-quote{ -webkit-line-clamp:unset; overflow:visible; }
.testimonio-cuerpo::before{
  content:"\201C";
  font-family:var(--font-head); font-weight:800; font-size:46px; color:var(--tan);
  display:block; line-height:0.62; margin-bottom:10px;
}
.testimonio-mas{
  align-self:flex-start;
  background:none; border:none; padding:0; cursor:pointer;
  font-family:var(--font-head); font-size:14.5px; font-weight:700; color:var(--tan);
  margin-bottom:18px;
}
.testimonio-mas:hover{ color:#c08a3e; }
.testimonio-footer{
  margin-top:auto; padding-top:16px; border-top:1px solid var(--line);
}
.testimonio-autor{ font-weight:700; font-size:15px; color:var(--ink); }
.testimonio-viaje{ font-size:13px; color:#8a8770; margin-top:2px; }

/* puntos de paginación */
.carousel-dots{ display:flex; justify-content:center; gap:8px; margin-top:20px; }
.carousel-dots button{
  width:34px; height:5px; border:none; border-radius:3px; padding:0; cursor:pointer;
  background:rgba(32,30,23,0.14);
  transition:background .2s;
}
.carousel-dots button.active{ background:var(--tan); }

.carousel-btn{
  position:absolute; top:45%; transform:translateY(-50%);
  width:40px; height:40px; border-radius:50%;
  border:1.5px solid var(--ink); background:var(--cream);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:16px; color:var(--ink);
  box-shadow:0 4px 12px rgba(0,0,0,0.1);
}
.carousel-btn:hover{ background:var(--cream-dark); }
.carousel-btn.prev{ left:-26px; }
.carousel-btn.next{ right:-26px; }

@media (max-width: 900px){
  .testimonio-card{ flex-basis: 86%; }
  .carousel-btn{ display:none; }
}

@media (max-width: 900px){
  .viaje-card-big{ grid-template-columns: 1fr; }
  .viaje-card-media{ min-height:240px; }
  .viaje-card-body{ padding:28px 24px; }
  .viaje-specs-grid{ grid-template-columns: 1fr 1fr; }
  .itinerario-day{ grid-template-columns: 1fr; gap:6px; }
  .precio-incluye{ columns: 1; }
  .precio-tiers{ grid-template-columns: 1fr 1fr; }
  .poema-cierre{ min-height:0; }
  .poema-bg-layer{ position:static; width:100%; aspect-ratio: 4/3; }
  .poema-cierre::before{ display:none; }
  .poema-inner{ background: rgba(15,14,10,0.82); margin-top:-6px; padding:36px 24px; }
}

/* Mapa de la ruta (pestaña) */
.mapa-figura{ margin:0; }
.mapa-figura img{ width:100%; max-width:820px; height:auto; display:block; margin:0 auto; border-radius:var(--radius); }
.mapa-figura svg{ width:100%; height:auto; display:block; border-radius:var(--radius); }
.mapa-nota{ margin-top:14px; font-size:13px; color:#6b674f; text-align:center; }

@media (max-width: 760px){
  .mapa-figura svg{ min-width:720px; }
}

/* ---------- Vídeo con carga diferida ---------- */
.video-facade{
  position:relative; aspect-ratio:16/9; max-width:960px; margin:0 auto;
  border-radius:var(--radius); overflow:hidden; background:var(--cream-dark); cursor:pointer;
}
.video-poster{ position:absolute; inset:0; background-size:cover; background-position:center; }
.video-facade::after{
  content:""; position:absolute; inset:0; background:rgba(15,14,10,0.28); transition:background .2s;
}
.video-facade:hover::after{ background:rgba(15,14,10,0.14); }
.video-facade.cargado{ cursor:default; }
.video-facade.cargado::after{ display:none; }
.video-play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2;
  width:84px; height:84px; border-radius:50%; border:none;
  background:var(--red); color:var(--cream); font-size:28px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding-left:5px;
  box-shadow:0 10px 30px rgba(0,0,0,0.3); transition:background .2s, transform .2s;
}
.video-facade:hover .video-play{ background:#9d2f24; transform:translate(-50%,-50%) scale(1.06); }
.video-facade iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-nota{ margin:14px auto 0; max-width:620px; font-size:12.5px; color:#8a8770; text-align:center; }

@media (max-width: 900px){
  .video-play{ width:64px; height:64px; font-size:22px; }
}

.viaje-salidas{
  font-size:13.5px; color:#6b674f; margin: 4px 0 10px;
}
.viaje-salidas b{
  font-size:11.5px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--green-mid); margin-right:6px;
}

/* ---------- Próximas salidas ---------- */
.salidas-section{ padding: 64px 0; background: var(--cream-dark); }
.salidas-intro{ font-size:15.5px; color:#4a4736; max-width:620px; margin:0 0 32px; }
.salidas-grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap:18px; }
.salida-card{
  background: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 24px 24px;
  display:flex; flex-direction:column; align-items:flex-start;
}
.salida-temporada{
  font-size:12.5px; font-weight:700; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--green-mid); margin-bottom:10px;
}
.salida-fecha{
  font-family:var(--font-head); font-weight:800; font-size:25px;
  line-height:1.15; color:var(--ink); margin-bottom:8px;
}
.salida-detalle{ font-size:13.5px; color:#6b674f; margin-bottom:20px; }
.salida-card .btn{ margin-top:auto; font-size:13px; padding:12px 20px; }
.salidas-nota{ font-size:14px; color:#6b674f; margin:24px 0 0; }

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

/* ---------- Página de gracias ---------- */
.gracias{
  background: var(--green-dark);
  color: var(--cream);
  padding: 110px 0 120px;
  text-align:center;
}
.gracias .eyebrow{ color: var(--tan); }
.gracias h1{
  color: var(--cream);
  font-size: clamp(30px, 5vw, 46px);
  line-height:1.15;
  margin: 14px 0 18px;
}
.gracias p{
  color:#D7D6C6; max-width:560px; margin:0 auto 12px; font-size:16px;
}
.gracias-botones{
  display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-top:34px;
}
.gracias .btn-primary{ background:var(--tan); color:var(--ink); }
.gracias .btn-primary:hover{ background:#c88f4a; }
.gracias .btn-outline-light{
  background:transparent; color:var(--cream); border:1.5px solid rgba(255,255,255,0.45);
}
.gracias .btn-outline-light:hover{ background:rgba(255,255,255,0.08); }

/* ---------- Formulario de contacto ---------- */
.form-contacto{
  max-width: 820px;
  margin: 44px auto 0;
  text-align: left;
}
.contacto .form-intro{
  color:#D7D6C6; text-align:center; max-width:620px; margin:0 auto 28px; font-size:15px;
}
.form-fila{ display:flex; gap:18px; flex-wrap:wrap; margin-bottom:18px; }
.form-fila > label{ flex:1 1 220px; }
.form-contacto label{ display:block; }
.form-contacto label > span{
  display:block; font-size:13px; font-weight:700; letter-spacing:0.04em;
  color:#C9C7B6; margin-bottom:7px;
}
.form-contacto label > span em{ color:var(--tan); font-style:normal; }
.form-contacto input[type="text"],
.form-contacto input[type="email"],
.form-contacto input[type="tel"],
.form-contacto input[type="number"],
.form-contacto select,
.form-contacto textarea{
  width:100%;
  font-family:var(--font-head); font-size:15px; color:var(--cream);
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:var(--radius);
  padding:12px 14px;
}
.form-contacto textarea{ resize:vertical; }
.form-contacto input:focus,
.form-contacto select:focus,
.form-contacto textarea:focus{
  outline:none; border-color:var(--tan); background:rgba(255,255,255,0.1);
}
.form-contacto input::placeholder,
.form-contacto textarea::placeholder{ color:#9A9784; }
.form-contacto select option{ color:var(--ink); }
.form-ancho{ margin-bottom:20px; }

.form-contacto label.form-check{
  display:flex; align-items:flex-start; gap:10px; margin-bottom:24px;
}
.form-contacto .form-check input{
  margin-top:3px; width:17px; height:17px; flex-shrink:0; accent-color:var(--tan);
}
.form-contacto .form-check > span{
  font-size:14px; color:#D7D6C6; font-weight:500;
  letter-spacing:0; margin-bottom:0; line-height:1.5;
}
.form-contacto .form-check a{ color:var(--tan); }

.form-contacto .btn-primary{ background:var(--tan); color:var(--ink); }
.form-contacto .btn-primary:hover{ background:#c88f4a; }
.contacto .form-nota{
  font-size:13px; color:#9A9784; margin:16px 0 0; max-width:560px;
}
.form-trampa{ position:absolute; left:-9999px; height:0; overflow:hidden; }

.contacto .form-aviso{
  max-width:820px; margin:34px auto 0; padding:16px 20px;
  border-radius:var(--radius); background:rgba(181,55,42,0.18);
  border:1px solid rgba(181,55,42,0.5); color:#F3D9D5; font-size:14.5px;
}

@media (max-width: 700px){
  .form-fila{ gap:14px; }
  .form-fila > label{ flex:1 1 100%; }
}
