/* =====================================================================
   Viajando Sin Afán — Sistema de diseño (prototipo)
   ===================================================================== */
:root {
  /* Marca: azul navy del logo + dorado de las estrellas */
  --azul: #16324F;
  --azul-2: #0F2438;
  --azul-claro: #2F5B86;
  --oro: #C9A24B;
  --oro-2: #B0863A;
  --oro-suave: #E7D2A0;

  /* Alias heredados (rebrand): "verde-bosque" = azul de marca */
  --verde-bosque: #16324F;
  --verde-bosque-2: #0F2438;
  --verde: #2E7D5B;          /* se conserva SOLO para semántica: incluido / disponible */
  --verde-claro: #6FB89A;
  --crema: #F4F0E8;
  --crema-2: #FCFAF5;
  --arena: #EAE1D0;
  --terracota: #C9A24B;      /* acentos/etiquetas ahora en dorado */
  --terracota-2: #B0863A;
  --dorado: #D9A23B;         /* amarillo del semáforo */
  --rojo: #C0473B;
  --tinta: #15212E;
  --gris: #66727E;
  --linea: #E5DECF;
  --sombra: 0 22px 60px -26px rgba(15, 36, 56, .5);
  --sombra-suave: 0 10px 34px -20px rgba(15, 36, 56, .4);
  --radio: 18px;
  --serif: "Fraunces", Georgia, serif;
  --sans: "Outfit", "Segoe UI", system-ui, sans-serif;
  --script: "Dancing Script", "Segoe Script", cursive;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sans);
  color: var(--tinta);
  background: var(--crema);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; line-height: 1.08; letter-spacing: -.01em; }

.wrap { width: min(1180px, 92vw); margin-inline: auto; }
.eyebrow {
  font-size: .78rem; letter-spacing: .22em; text-transform: uppercase;
  font-weight: 600; color: var(--terracota);
}
.muted { color: var(--gris); }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .55rem;
  padding: .85rem 1.5rem; border-radius: 999px; font-weight: 600;
  font-size: .95rem; cursor: pointer; border: 1.5px solid transparent;
  transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--azul); color: #fff; box-shadow: var(--sombra-suave); }
.btn-primary:hover { background: var(--azul-2); }
.btn-gold { background: var(--oro); color: var(--azul-2); box-shadow: 0 12px 30px -14px rgba(201,162,75,.7); font-weight: 700; }
.btn-gold:hover { background: var(--oro-2); color: #fff; }
.btn-ghost { border-color: rgba(255,255,255,.6); color: #fff; }
.btn-ghost:hover { background: rgba(255,255,255,.14); border-color: #fff; }
.btn-dark { background: var(--verde-bosque); color: var(--crema-2); }
.btn-dark:hover { background: var(--verde-bosque-2); }
.btn-outline { border-color: var(--verde-bosque); color: var(--verde-bosque); }
.btn-outline:hover { background: var(--verde-bosque); color: var(--crema-2); }

/* ---------- Navbar ---------- */
.nav {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  padding: .65rem 0; backdrop-filter: blur(10px);
  background: rgba(246,241,231,.82); border-bottom: 1px solid var(--linea);
}
.nav .wrap { display: flex; align-items: center; justify-content: space-between; width: min(1180px, 92vw); }
.brand { display: flex; align-items: center; }
.brand img.logo { height: 58px; width: auto; }
.brand img.logo-white { height: 58px; width: auto; }
@media (max-width: 640px) {
  .brand img.logo, .brand img.logo-white { height: 46px; }
}
.nav-links { display: flex; align-items: center; gap: 1.6rem; font-weight: 500; font-size: .95rem; }
.nav-links a { position: relative; padding: .2rem 0; }
.nav-links a.active, .nav-links a:hover { color: var(--terracota); }
.nav-links a.active::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 2px; background: var(--terracota); border-radius: 2px; }
.nav-cta { display: flex; gap: .6rem; align-items: center; }
.menu-toggle { display: none; background: none; border: 0; font-size: 1.5rem; cursor: pointer; color: var(--verde-bosque); }

/* ---- Toggle de idioma ES / EN ---------------------------------- */
.lang-toggle { display: inline-flex; align-items: center; border: 1px solid var(--linea);
  border-radius: 999px; overflow: hidden; }
.lang-opt { border: 0; background: transparent; padding: .34rem .58rem; font-family: var(--sans);
  font-size: .76rem; font-weight: 700; letter-spacing: .03em; cursor: pointer; color: var(--azul);
  line-height: 1; transition: background .2s ease, color .2s ease; }
.lang-opt.active { background: var(--azul); color: #fff; }
.lang-opt:not(.active):hover { background: rgba(22,50,79,.08); }
/* Sobre el hero transparente del home */
.nav-home:not(.scrolled) .lang-toggle { border-color: rgba(255,255,255,.55); }
.nav-home:not(.scrolled) .lang-opt { color: #fff; }
.nav-home:not(.scrolled) .lang-opt.active { background: #fff; color: var(--azul); }
.nav-home:not(.scrolled) .lang-opt:not(.active):hover { background: rgba(255,255,255,.18); }

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: 90vh; display: flex; align-items: flex-end;
  color: #fff; overflow: hidden;
}
.hero { --hero-img: url("https://picsum.photos/seed/colombia-paisaje-verde/1600/1100"); }
.hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(20,52,43,.15), rgba(20,52,43,.85)),
    var(--hero-img) center/cover;
  transform: scale(1.05);
}
.hero-inner { position: relative; padding: 3rem 0 4rem; }
.hero h1 { font-size: clamp(2.6rem, 6vw, 5rem); max-width: 14ch; text-shadow: 0 2px 30px rgba(0,0,0,.3); }
.hero .lead { max-width: 46ch; font-size: 1.15rem; margin: 1.2rem 0 1.8rem; color: rgba(255,255,255,.92); }
.hero .eyebrow { color: var(--dorado); }
.hero-actions { display: flex; gap: .8rem; flex-wrap: wrap; }
.hero-stats { display: flex; gap: 2.4rem; margin-top: 2.6rem; flex-wrap: wrap; }
.hero-stats .n { font-family: var(--serif); font-size: 2rem; font-weight: 600; }
.hero-stats .l { font-size: .82rem; letter-spacing: .04em; color: rgba(255,255,255,.8); }

.fade-up { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s ease; }
.fade-up.in { opacity: 1; transform: none; }

/* ---------- Secciones ---------- */
section { padding: 5rem 0; }
.section-head { max-width: 60ch; margin-bottom: 2.6rem; }
.section-head h2 { font-size: clamp(1.9rem, 4vw, 2.9rem); margin: .5rem 0 .6rem; }
.section-head.center { margin-inline: auto; text-align: center; }

/* ---------- Franja de valor ---------- */
.values { background: var(--verde-bosque); color: var(--crema-2); }
.values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.value { padding: 1.4rem; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radio); background: rgba(255,255,255,.03); }
.value .ico { font-size: 1.6rem; }
.value h3 { font-size: 1.15rem; margin: .6rem 0 .35rem; color: #fff; }
.value p { font-size: .92rem; color: rgba(255,255,255,.78); }

/* ---------- Tarjetas de viaje — horizontal (home) ---------- */
.cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }

.card {
  background: #fff; border-radius: 16px; overflow: hidden;
  border: 1px solid var(--linea); display: grid;
  grid-template-columns: 185px 1fr;
  min-height: 168px;
  transition: box-shadow .28s ease, transform .28s ease;
  cursor: pointer; text-decoration: none; color: inherit;
}
.card:hover { transform: translateY(-3px); box-shadow: var(--sombra); border-color: var(--oro-suave); }

/* imagen izquierda */
.card .ph { position: relative; overflow: hidden; background: var(--arena); }
.card .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.card:hover .ph img { transform: scale(1.06); }
.card .tag {
  position: absolute; top: .7rem; left: .7rem;
  background: var(--azul); color: #fff; font-size: .68rem;
  padding: .28rem .65rem; border-radius: 999px; letter-spacing: .04em; font-weight: 500;
}

/* contenido derecha */
.card .body {
  padding: .85rem 1rem .85rem 1.1rem;
  display: flex; flex-direction: column; gap: .28rem; overflow: hidden;
}
.card .region { font-size: .68rem; color: var(--oro-2); font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.card h3 { font-size: .98rem; color: var(--azul); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card .meta { display: flex; gap: .7rem; font-size: .76rem; color: var(--gris); }
.card .foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: .4rem; border-top: 1px dashed var(--linea); }
.card .precio { display: flex; flex-direction: column; line-height: 1.15; }
.card .precio .precio-num { font-family: var(--serif); font-size: 1.1rem; font-weight: 600; color: var(--azul); }
.card .precio small { font-family: var(--sans); font-size: .66rem; color: var(--gris); display: block; font-weight: 400; }

/* ---- Código de moneda + conversión TRM (USD/EUR → COP) ---------- */
.precio-cur { font-family: var(--sans); font-size: .6rem; font-weight: 700; letter-spacing: .06em;
  color: var(--oro-2); vertical-align: middle; margin-left: .12rem; }
.trm-hint { display: block; font-family: var(--sans); font-size: .68rem; font-weight: 600;
  color: var(--azul-claro); margin-top: .08rem; }
.trm-hint:empty { display: none; }
.trm-hint-lg { font-size: .8rem; margin: .25rem 0 .1rem; }

/* ---- Indicador TRM del día (chip premium) ----------------------- */
.trm-indicador { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .55rem;
  background: linear-gradient(180deg, var(--crema-2), var(--crema));
  border: 1px solid var(--linea); border-radius: 999px;
  padding: .5rem .95rem; font-size: .82rem; color: var(--azul);
  box-shadow: var(--sombra-suave); }
.trm-indicador b { font-weight: 700; }
.trm-ico { font-size: .95rem; line-height: 1; }
.trm-par { display: inline-flex; align-items: center; gap: .3rem; font-weight: 600;
  padding-left: .55rem; border-left: 1px solid var(--linea); }
.trm-cur { font-size: .62rem; font-weight: 800; letter-spacing: .05em; color: var(--oro-2);
  background: rgba(201,162,75,.12); border-radius: 6px; padding: .1rem .3rem; }
.trm-loading { color: var(--gris); font-style: italic; }
.trm-indicador-mini { display: flex; justify-content: center; width: 100%;
  margin-top: .8rem; padding: .4rem .7rem; font-size: .74rem; gap: .4rem; }

/* ---------- Semáforo de cupos ---------- */
.estado { display: inline-flex; align-items: center; gap: .45rem; font-size: .8rem; font-weight: 600; padding: .28rem .6rem; border-radius: 999px; }
.estado .dot { width: 9px; height: 9px; border-radius: 50%; }
.estado.disponible { background: rgba(46,125,91,.12); color: #1f6347; }
.estado.disponible .dot { background: #2E7D5B; }
.estado.ultimos { background: rgba(217,162,59,.16); color: #9a6e12; }
.estado.ultimos .dot { background: var(--dorado); }
.estado.agotado { background: rgba(192,71,59,.12); color: #9c352b; }
.estado.agotado .dot { background: var(--rojo); }

/* ---------- Calendario ---------- */
.cal-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.6rem; flex-wrap: wrap; }
.cal-controls .filtros { display: flex; gap: .5rem; flex-wrap: wrap; }
.chip { padding: .5rem 1rem; border-radius: 999px; border: 1.5px solid var(--linea); background: var(--crema-2); cursor: pointer; font-weight: 500; font-size: .88rem; transition: all .2s ease; }
.chip.active { background: var(--verde-bosque); color: #fff; border-color: var(--verde-bosque); }
.leyenda { display: flex; gap: 1rem; flex-wrap: wrap; font-size: .82rem; color: var(--gris); }
.leyenda span { display: inline-flex; align-items: center; gap: .4rem; }
.leyenda .dot { width: 10px; height: 10px; border-radius: 50%; }

.mes-bloque { margin-bottom: 2.4rem; }
.mes-titulo { font-family: var(--serif); font-size: 1.5rem; color: var(--verde-bosque); margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 2px solid var(--arena); display: flex; align-items: baseline; gap: .6rem; }
.mes-titulo small { font-family: var(--sans); font-size: .8rem; color: var(--gris); font-weight: 400; }
.salida-row {
  display: grid; grid-template-columns: 76px 1fr auto auto; gap: 1.2rem; align-items: center;
  background: var(--crema-2); border: 1px solid var(--linea); border-radius: 14px;
  padding: .9rem 1.2rem; margin-bottom: .7rem; transition: border-color .2s ease, transform .2s ease;
}
.salida-row:hover { border-color: var(--verde-claro); transform: translateX(3px); }
.salida-fecha { text-align: center; }
.salida-fecha .d { font-family: var(--serif); font-size: 1.7rem; font-weight: 600; color: var(--verde-bosque); line-height: 1; }
.salida-fecha .m { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--gris); }
.salida-info h4 { font-family: var(--sans); font-size: 1.05rem; font-weight: 600; }
.salida-info p { font-size: .82rem; color: var(--gris); }
.salida-cupos { text-align: right; }
.salida-cupos .num { font-family: var(--serif); font-size: 1.1rem; color: var(--verde-bosque); }
.salida-cupos .num small { font-size: .7rem; color: var(--gris); font-family: var(--sans); }
.cal-empty { text-align: center; padding: 3rem; color: var(--gris); }

/* ---------- Itinerario / mapa ---------- */
.itin-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 2rem; align-items: start; }
#mapa { height: 560px; border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra-suave); border: 1px solid var(--linea); position: sticky; top: 90px; }
.timeline { position: relative; padding-left: 1.8rem; }
.timeline::before { content: ""; position: absolute; left: 8px; top: 6px; bottom: 6px; width: 2px; background: var(--arena); }
.tl-item { position: relative; padding: 0 0 1.4rem 0; cursor: pointer; }
.tl-item::before {
  content: attr(data-dia); position: absolute; left: -1.8rem; top: 0; transform: translateX(-2px);
  width: 20px; height: 20px; border-radius: 50%; background: var(--verde-bosque); color: #fff;
  font-size: .7rem; font-family: var(--sans); display: grid; place-items: center; font-weight: 700;
  box-shadow: 0 0 0 4px var(--crema);
}
.tl-item.active::before { background: var(--terracota); transform: translateX(-2px) scale(1.25); }
.tl-card { background: var(--crema-2); border: 1px solid var(--linea); border-radius: 14px; padding: .9rem 1.1rem; transition: border-color .2s, box-shadow .2s; }
.tl-item.active .tl-card { border-color: var(--terracota); box-shadow: var(--sombra-suave); }
.tl-card .ciudad { font-size: .72rem; color: var(--terracota); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.tl-card h4 { font-family: var(--serif); font-size: 1.18rem; font-weight: 600; color: var(--verde-bosque); margin: .15rem 0 .3rem; }
.tl-card p { font-size: .88rem; color: var(--gris); }
.itin-selector { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.6rem; flex-wrap: wrap; }
select.vsa-select { padding: .7rem 1rem; border-radius: 12px; border: 1.5px solid var(--linea); background: var(--crema-2); font-family: var(--sans); font-size: .95rem; font-weight: 500; cursor: pointer; min-width: 240px; }

/* ---------- Footer ---------- */
.footer { background: var(--verde-bosque); color: rgba(255,255,255,.82); padding: 3.5rem 0 2rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 2rem; }
.footer h4 { color: #fff; font-family: var(--sans); font-size: .95rem; letter-spacing: .04em; margin-bottom: .9rem; text-transform: uppercase; }
.footer a { display: block; padding: .25rem 0; font-size: .92rem; }
.footer a:hover { color: var(--dorado); }
.footer .brand { color: #fff; margin-bottom: .8rem; }
.footer .brand .mark { background: var(--terracota); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2.4rem; padding-top: 1.4rem; display: flex; justify-content: space-between; font-size: .82rem; flex-wrap: wrap; gap: .5rem; }

/* ---------- CTA banda ---------- */
.cta-band { background: linear-gradient(120deg, var(--terracota), var(--terracota-2)); color: #fff; text-align: center; border-radius: 24px; padding: 3.2rem 2rem; margin: 1rem 0; }
.cta-band h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: .8rem; }
.cta-band p { max-width: 50ch; margin: 0 auto 1.6rem; opacity: .95; }

/* =====================================================================
   Dashboard / Admin
   ===================================================================== */
.admin-body { background: #EEF2EE; }
.admin-shell { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.sidebar { background: var(--verde-bosque); color: var(--crema-2); padding: 1.6rem 1.2rem; }
.sidebar .brand { color: #fff; margin-bottom: 2rem; font-size: 1.05rem; }
.sidebar .brand .mark { background: var(--terracota); }
.side-link { display: flex; align-items: center; gap: .7rem; padding: .7rem .9rem; border-radius: 12px; font-weight: 500; font-size: .92rem; cursor: pointer; color: rgba(255,255,255,.78); margin-bottom: .25rem; }
.side-link:hover, .side-link.active { background: rgba(255,255,255,.1); color: #fff; }
.side-foot { margin-top: 2rem; font-size: .78rem; color: rgba(255,255,255,.5); }
.admin-main { padding: 2rem 2.4rem; }
.admin-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.8rem; flex-wrap: wrap; gap: 1rem; }
.admin-head h1 { font-size: 1.8rem; color: var(--verde-bosque); }
.admin-head p { color: var(--gris); font-size: .9rem; }

.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; margin-bottom: 2rem; }
.kpi { background: #fff; border-radius: 16px; padding: 1.2rem 1.3rem; box-shadow: var(--sombra-suave); border: 1px solid #E6EBE6; }
.kpi .l { font-size: .8rem; color: var(--gris); }
.kpi .n { font-family: var(--serif); font-size: 2rem; color: var(--verde-bosque); font-weight: 600; }
.kpi .n.alert { color: var(--terracota); }

.panel { background: #fff; border-radius: 16px; box-shadow: var(--sombra-suave); border: 1px solid #E6EBE6; overflow: hidden; }
.panel-head { padding: 1.1rem 1.4rem; border-bottom: 1px solid #EDF0ED; display: flex; align-items: center; justify-content: space-between; }
.panel-head h3 { font-family: var(--sans); font-size: 1.1rem; font-weight: 600; color: var(--verde-bosque); }
table.vsa { width: 100%; border-collapse: collapse; }
table.vsa th { text-align: left; font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--gris); padding: .8rem 1.4rem; background: #F7F9F7; }
table.vsa td { padding: .75rem 1.4rem; border-top: 1px solid #EDF0ED; font-size: .92rem; vertical-align: middle; }
table.vsa tr:hover td { background: #FAFCFA; }
.viaje-cell { display: flex; align-items: center; gap: .8rem; }
.viaje-cell img { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; }
.viaje-cell .r { font-size: .78rem; color: var(--gris); }
.stepper { display: inline-flex; align-items: center; gap: .4rem; }
.stepper button { width: 30px; height: 30px; border-radius: 8px; border: 1.5px solid var(--linea); background: #fff; cursor: pointer; font-size: 1.1rem; font-weight: 700; color: var(--verde-bosque); line-height: 1; }
.stepper button:hover { background: var(--crema); }
.stepper input { width: 48px; text-align: center; padding: .4rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); font-weight: 600; }
.cell-input { width: 130px; padding: .45rem .6rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); }
.toast { position: fixed; bottom: 24px; right: 24px; background: var(--verde-bosque); color: #fff; padding: .9rem 1.3rem; border-radius: 12px; box-shadow: var(--sombra); transform: translateY(120%); transition: transform .35s ease; z-index: 100; font-size: .9rem; }
.toast.show { transform: none; }
.barra-cupos { height: 6px; border-radius: 4px; background: #EAEEEA; overflow: hidden; width: 90px; }
.barra-cupos i { display: block; height: 100%; border-radius: 4px; }

/* ---------- Detalle del viaje (hero, sidebar, secciones) ---------- */
.trip-hero { --hero: url("https://picsum.photos/seed/portada/1600/900");
  position: relative; min-height: 56vh; display: flex; align-items: flex-end;
  color: #fff; overflow: hidden; }
.trip-hero::before { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,52,43,.05), rgba(20,52,43,.85)), var(--hero) center/cover; }
.trip-hero-inner { position: relative; padding: 3rem 0 3.5rem; z-index: 2; }
.trip-hero-text { max-width: 60ch; }
.trip-hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); margin-bottom: .8rem; }
.trip-hero p { font-size: 1.05rem; color: rgba(255,255,255,.92); margin-bottom: 1.3rem; }
.trip-cats { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.trip-cat { background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.3);
  color: #fff; padding: .35rem .85rem; border-radius: 999px; font-size: .82rem; font-weight: 500;
  backdrop-filter: blur(8px); }
.trip-meta { display: flex; gap: 1.6rem; flex-wrap: wrap; font-size: .95rem; }
.trip-meta b { font-family: var(--serif); font-weight: 600; }

.trip-layout { display: grid; grid-template-columns: 1fr 340px; gap: 2.4rem; align-items: start; margin-top: 2rem; }
/* min-width:0 permite que las columnas se achiquen bajo el ancho de su contenido
   (mapa/testimonios), evitando el desborde horizontal en celular */
.trip-layout > * { min-width: 0; }
.trip-content { min-width: 0; }
.trip-sidebar { position: sticky; top: 90px; min-width: 0; }
#mapa, .testimonios-wrap, .trip-content img { max-width: 100%; }
.reserva-card { background: var(--crema-2); border: 1px solid var(--linea); border-radius: 20px;
  padding: 1.6rem; box-shadow: var(--sombra-suave); }
.reserva-precio { text-align: center; padding-bottom: 1rem; border-bottom: 1px dashed var(--linea); margin-bottom: 1rem; }
.reserva-precio small { font-size: .78rem; color: var(--gris); letter-spacing: .04em; text-transform: uppercase; }
.precio-grande { font-family: var(--serif); font-size: 2rem; font-weight: 600; color: var(--verde-bosque); line-height: 1.1; }
.reserva-titulo { font-family: var(--sans); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; color: var(--gris); margin-bottom: .8rem; }
.fechas-list { display: flex; flex-direction: column; gap: .45rem; max-height: 240px; overflow-y: auto; }
.fecha-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .65rem .8rem; border-radius: 10px; border: 1.5px solid var(--linea); background: #fff;
  font-family: inherit; cursor: pointer; transition: border-color .2s, transform .15s; text-align: left; }
.fecha-row:hover:not([disabled]) { border-color: var(--verde); transform: translateX(2px); }
.fecha-row[disabled] { opacity: .55; cursor: not-allowed; }
.fecha-row-d { font-weight: 600; color: var(--verde-bosque); font-size: .9rem; }
.fecha-row-p { display: flex; flex-direction: column; align-items: flex-end; text-align: right;
  font-size: .78rem; color: var(--azul); font-weight: 600; }
.fecha-row-p .trm-hint { font-size: .64rem; font-weight: 600; margin-top: .05rem; }
.reserva-hint { font-size: .76rem; color: var(--gris); text-align: center; margin-top: .8rem; }
.reserva-acciones { display: flex; gap: .5rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linea); }
.reserva-acciones .btn { flex: 1; justify-content: center; padding-left: .6rem; padding-right: .6rem; font-size: .82rem; white-space: nowrap; }

/* Calculadora de plan de pago */
.cuotas-card .cuotas-lbl { display: block; font-size: .8rem; font-weight: 600; color: var(--azul); margin: .9rem 0 .35rem; }
.cuotas-card .cuotas-unafecha { font-size: .85rem; color: var(--gris); margin: .2rem 0 .6rem; }
.cuotas-fila { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; margin-top: .55rem; font-size: .9rem; }
.cuotas-fila span { color: var(--gris); }
.cuotas-fila strong { font-family: 'Fraunces', Georgia, serif; color: var(--azul); font-size: 1.05rem; }
.cuotas-copline { font-size: .72rem; color: var(--oro-2, #a9842f); text-align: right; min-height: 0; }
.cuotas-copline:empty { display: none; }
.cuotas-inst-wrap { margin-top: 1rem; }
.cuotas-n { font-family: 'Fraunces', serif; color: var(--oro-2, #a9842f); font-weight: 700; }
.cuotas-range { width: 100%; accent-color: var(--oro); margin-top: .2rem; cursor: pointer; }
.cuotas-range:disabled { opacity: .5; cursor: not-allowed; }
.cuotas-result { background: var(--crema, #FBF8F1); border: 1px solid var(--linea); border-radius: 14px; padding: .85rem 1rem; margin-top: .9rem; text-align: center; }
.cuotas-each-label { font-size: .78rem; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
.cuotas-each { font-family: 'Fraunces', serif; font-size: 1.6rem; font-weight: 700; color: var(--azul); line-height: 1.15; }
.cuotas-each .cuotas-mes { font-family: 'Outfit', sans-serif; font-size: .85rem; font-weight: 500; color: var(--gris); }
.cuotas-deadline { font-size: .78rem; color: var(--gris); margin-top: .35rem; }
.cuotas-cta { margin-top: 1rem; }

.block { background: #fff; border: 1px solid var(--linea); border-radius: 20px; padding: 2rem; margin-bottom: 1.5rem; }
.block-title { font-size: 1.55rem; color: var(--verde-bosque); margin-bottom: 1.3rem; }

/* Destacados */
.destacados { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.5rem; }
.destacados li { display: flex; gap: .7rem; align-items: flex-start; font-size: .95rem; }
.destacados .check { width: 22px; height: 22px; border-radius: 50%; background: rgba(46,125,91,.15); color: var(--verde); display: grid; place-items: center; font-weight: 700; flex-shrink: 0; font-size: .8rem; }

/* Día expandible — cabecera clickeable + detalle */
.tl-card { cursor: pointer; transition: border-color .25s, box-shadow .25s; }
.tl-card:hover { border-color: var(--verde-claro); }
.tl-head { display: flex; gap: .8rem; align-items: flex-start; }
.tl-head-text { flex: 1; }
.tl-toggle { color: var(--gris); font-size: 1.1rem; transition: transform .25s; flex-shrink: 0; padding-top: .2rem; }
.tl-item.open .tl-toggle { transform: rotate(180deg); color: var(--terracota); }
.tl-item.open .tl-card { border-color: var(--terracota); box-shadow: var(--sombra-suave); background: #fff; }
.day-detail { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .4s ease, opacity .3s ease, margin-top .3s ease; }
.tl-item.open .day-detail { max-height: 1400px; opacity: 1; margin-top: .9rem; }
.day-long { font-size: .92rem; line-height: 1.6; color: var(--tinta); margin-bottom: .9rem; }
.day-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: .9rem 0; }
.day-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 10px; border: 1px solid var(--linea); cursor: zoom-in; transition: transform .25s; }
.day-gallery img:hover { transform: scale(1.02); }
.meals-chips { display: flex; gap: .4rem; flex-wrap: wrap; margin: .9rem 0; }
.meal-chip { font-size: .78rem; padding: .25rem .65rem; border-radius: 999px; border: 1px solid var(--linea); font-weight: 600; }
.meal-chip.on { background: rgba(46,125,91,.15); color: #1f6347; border-color: rgba(46,125,91,.3); }
.meal-chip.off { color: var(--gris); }

/* Resumen pequeño de alimentación en el sidebar */
.meals-summary { display: flex; flex-direction: column; gap: .5rem; }
.meal-line { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; padding: .35rem .1rem; font-size: .9rem; border-bottom: 1px dashed var(--linea); }
.meal-line:last-child { border-bottom: 0; }
.meal-ico { font-size: 1.05rem; }
.meal-lbl { color: var(--tinta); }
.meal-n { font-family: var(--serif); font-weight: 600; color: var(--verde-bosque); font-size: 1.05rem; }

/* FAQ acordeón */
.faqs { display: flex; flex-direction: column; gap: .5rem; }
.faq-item { background: var(--crema-2); border: 1px solid var(--linea); border-radius: 12px; padding: .2rem .2rem; overflow: hidden; }
.faq-item summary { list-style: none; cursor: pointer; padding: .9rem 1.2rem; font-weight: 600; color: var(--verde-bosque); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-size: 1.4rem; color: var(--terracota); font-weight: 300; transition: transform .25s; line-height: 1; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-r { padding: 0 1.2rem 1rem; font-size: .92rem; color: var(--tinta); line-height: 1.55; }

/* Hospedaje */
.hospedajes { display: grid; gap: 1.2rem; }
.hosp { border: 1px solid var(--linea); border-radius: 16px; padding: 1.1rem 1.3rem; background: #fff; }
.hosp-head { display: flex; align-items: baseline; justify-content: space-between; gap: .8rem; flex-wrap: wrap; border-bottom: 1px solid var(--linea); padding-bottom: .55rem; margin-bottom: .7rem; }
.hosp-head h4 { font-family: var(--serif); font-size: 1.2rem; color: var(--verde-bosque); margin: 0; }
.hosp-desc { font-size: .9rem; margin: 0 0 .85rem; }
.hosp-dias { display: inline-block; background: var(--crema); padding: .25rem .7rem; border-radius: 999px; font-size: .75rem; color: var(--verde-bosque); font-weight: 600; white-space: nowrap; }
.hosp-fotos { display: flex; flex-wrap: wrap; gap: .5rem; }
.hosp-fotos img { width: 124px; height: 92px; object-fit: cover; border-radius: 10px; border: 1px solid var(--linea); cursor: zoom-in; transition: transform .2s ease, box-shadow .2s ease; }
.hosp-fotos img:hover { transform: translateY(-2px); box-shadow: var(--sombra-suave); }
.hosp-noimg { color: var(--gris); background: var(--crema); font-size: .85rem; padding: .55rem .9rem; border-radius: 10px; }

/* Testimonios */
.testimonios-wrap { position: relative; overflow: hidden; }
.testimonios-track { display: flex; transition: transform .5s ease; }
.test-card { flex: 0 0 100%; padding: 1.4rem 1.6rem; background: var(--crema-2); border-radius: 16px; }
.test-head { display: flex; align-items: center; gap: .8rem; margin-bottom: .6rem; }
.test-head img, .test-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: var(--verde-bosque); color: #fff; display: grid; place-items: center; font-weight: 700; flex-shrink: 0; }
.test-stars { color: var(--dorado); font-size: 1.1rem; letter-spacing: .1em; margin-bottom: .4rem; }
.test-card p { font-style: italic; color: var(--tinta); line-height: 1.55; }
.test-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: #fff; border: 1.5px solid var(--linea); width: 38px; height: 38px; border-radius: 50%; cursor: pointer; font-size: 1.1rem; color: var(--verde-bosque); box-shadow: var(--sombra-suave); }
.test-arrow:hover { background: var(--verde-bosque); color: #fff; }
.test-arrow.prev { left: -8px; }
.test-arrow.next { right: -8px; }

/* Lightbox de fotos */
.lightbox { position: fixed; inset: 0; background: rgba(20,32,28,.94); z-index: 240; display: grid; place-items: center; padding: 2rem; }
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 100%; max-height: 90vh; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.lightbox-close { position: absolute; top: 1rem; right: 1rem; background: rgba(255,255,255,.15); color: #fff; border: 0; width: 44px; height: 44px; border-radius: 50%; cursor: pointer; font-size: 1.2rem; }
.lightbox-close:hover { background: rgba(255,255,255,.3); }
.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.15); color: #fff; border: 0; width: 52px; height: 52px; border-radius: 50%; cursor: pointer; font-size: 2rem; line-height: 1; display: grid; place-items: center; transition: background .2s; }
.lightbox-nav:hover { background: rgba(255,255,255,.32); }
.lb-prev { left: 1.2rem; }
.lb-next { right: 1.2rem; }
.lightbox-count { position: absolute; bottom: 1.2rem; left: 0; right: 0; text-align: center; color: rgba(255,255,255,.85); font-size: .85rem; letter-spacing: .06em; }
@media (max-width: 600px) { .lightbox-nav { width: 44px; height: 44px; font-size: 1.6rem; } .lb-prev { left: .4rem; } .lb-next { right: .4rem; } }

/* Modal de llamada */
.modal-overlay { position: fixed; inset: 0; background: rgba(20,52,43,.6); z-index: 220; display: grid; place-items: center; padding: 1.5rem; }
.modal-overlay[hidden] { display: none; }
.modal-card { background: var(--crema-2); border-radius: 22px; padding: 2rem; width: min(440px, 100%); position: relative; box-shadow: var(--sombra); }
.modal-card h3 { font-size: 1.5rem; color: var(--verde-bosque); margin-bottom: .4rem; }
.modal-card input, .modal-card textarea { width: 100%; padding: .75rem 1rem; border-radius: 10px; border: 1.5px solid var(--linea); font-family: var(--sans); font-size: .95rem; margin-top: .8rem; }
.modal-card textarea { min-height: 80px; resize: vertical; }
.modal-card button[type=submit] { margin-top: 1.2rem; }
.modal-close { position: absolute; top: 1rem; right: 1rem; background: none; border: 0; font-size: 1.2rem; cursor: pointer; color: var(--gris); width: 32px; height: 32px; border-radius: 50%; }
.modal-close:hover { background: var(--linea); }

/* Editor admin: chips de categoría + listas de hospedaje/comidas/destacados */
.cat-toggle { display: inline-flex; align-items: center; gap: .4rem; background: var(--crema); border: 1.5px solid var(--linea); border-radius: 999px; padding: .35rem .85rem; cursor: pointer; font-size: .85rem; font-weight: 500; }
.cat-toggle.on { background: var(--verde-bosque); color: #fff; border-color: var(--verde-bosque); }
.hosp-edit { border: 1px solid var(--linea); border-radius: 12px; padding: 1rem; margin-bottom: .8rem; background: #FAFCFA; }
.hosp-edit .row { display: grid; grid-template-columns: 1fr 1fr auto; gap: .6rem; align-items: center; margin-bottom: .6rem; }
.hosp-edit textarea { width: 100%; padding: .55rem .7rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); min-height: 50px; }
.hosp-fotos-edit { display: flex; gap: .5rem; flex-wrap: wrap; }
.hosp-thumb { position: relative; width: 80px; height: 60px; border-radius: 8px; overflow: hidden; border: 1px solid var(--linea); }
.hosp-thumb img { width: 100%; height: 100%; object-fit: cover; }
.hosp-thumb button { position: absolute; top: 2px; right: 2px; background: rgba(192,71,59,.9); color: #fff; border: 0; width: 18px; height: 18px; border-radius: 50%; cursor: pointer; font-size: .65rem; line-height: 1; }
.test-edit { border: 1px solid var(--linea); border-radius: 12px; padding: 1rem; margin-bottom: .7rem; background: #FAFCFA; display: grid; grid-template-columns: 1fr 1fr auto auto; gap: .6rem; align-items: center; }
.test-edit textarea { grid-column: 1 / -1; padding: .55rem .7rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); min-height: 60px; }
.faq-edit { border: 1px solid var(--linea); border-radius: 12px; padding: 1rem; margin-bottom: .7rem; background: #FAFCFA; }
.faq-edit .row { display: grid; grid-template-columns: 1fr auto; gap: .6rem; margin-bottom: .55rem; }
.faq-edit input, .faq-edit textarea { padding: .55rem .7rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); width: 100%; }
.faq-edit textarea { min-height: 70px; }
textarea.p-desclarga { min-height: 90px; padding: .6rem .75rem; border-radius: 10px; border: 1.5px solid var(--linea); font-family: var(--sans); font-size: .92rem; line-height: 1.5; resize: vertical; }

@media (max-width: 960px) {
  .trip-layout { grid-template-columns: 1fr; }
  .trip-sidebar { position: relative; top: 0; order: -1; }
  .destacados { grid-template-columns: 1fr; }
  .day-gallery { grid-template-columns: repeat(2, 1fr); }
  .hosp-fotos img { width: 30%; height: 70px; flex: 1 1 28%; }
}

/* ---------- Login ---------- */
/* El atributo [hidden] debe ganarle a los display de estas clases */
.login-overlay[hidden], .admin-shell[hidden] { display: none !important; }
.login-overlay { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center;
  background: linear-gradient(150deg, var(--verde-bosque), #0d211a); padding: 1.5rem; }
.login-card { background: var(--crema-2); border-radius: 22px; padding: 2.4rem; width: min(420px, 100%);
  box-shadow: var(--sombra); text-align: center; }
.login-card .brand { margin-bottom: 1rem; }
.login-card h2 { font-size: 1.6rem; color: var(--verde-bosque); }
.login-card .muted { margin-bottom: 1.2rem; font-size: .92rem; }
.login-card input[type=password] { width: 100%; padding: .85rem 1rem; border-radius: 12px;
  border: 1.5px solid var(--linea); font-family: var(--sans); font-size: 1rem; margin-bottom: 1rem; }
.login-hint { font-size: .8rem; color: var(--gris); margin-top: .9rem; }
.login-hint.error { color: var(--rojo); font-weight: 600; }

/* ---------- Formularios del panel ---------- */
.field { display: block; margin-bottom: 1rem; }
.field > label { display: block; font-size: .82rem; font-weight: 600; color: var(--verde-bosque); margin-bottom: .35rem; }
.field input[type=text], .field input[type=number], .field input[type=date], .field textarea, .field select {
  width: 100%; padding: .65rem .8rem; border-radius: 10px; border: 1.5px solid var(--linea);
  font-family: var(--sans); font-size: .95rem; background: #fff; }
.field textarea { min-height: 90px; resize: vertical; line-height: 1.5; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; }
.form-grid .col-2 { grid-column: 1 / -1; }
.hint-inline { font-size: .78rem; color: var(--gris); margin-top: -.5rem; margin-bottom: 1rem; }

.btn-sm { padding: .5rem .9rem; font-size: .85rem; }
.btn-add { background: var(--verde); color: #fff; }
.btn-add:hover { background: #256a4c; }
.btn-danger { background: #fff; color: var(--rojo); border-color: rgba(192,71,59,.4); }
.btn-danger:hover { background: var(--rojo); color: #fff; }

/* CMS 2 columnas */
.cms-2col { display: grid; grid-template-columns: 300px 1fr; gap: 1.5rem; align-items: start; }
.trip-list { background: #fff; border-radius: 16px; box-shadow: var(--sombra-suave); border: 1px solid #E6EBE6; overflow: hidden; }
.trip-list-head { padding: .9rem 1.1rem; border-bottom: 1px solid #EDF0ED; font-weight: 600; color: var(--verde-bosque); display: flex; justify-content: space-between; align-items: center; }
.trip-item { display: flex; gap: .7rem; align-items: center; padding: .7rem 1.1rem; cursor: pointer; border-bottom: 1px solid #F1F4F1; }
.trip-item:hover { background: #FAFCFA; }
.trip-item.active { background: rgba(46,125,91,.1); box-shadow: inset 3px 0 0 var(--verde); }
.trip-item img { width: 44px; height: 44px; border-radius: 9px; object-fit: cover; flex-shrink: 0; }
.trip-item .n { font-weight: 600; font-size: .92rem; line-height: 1.2; }
.trip-item .r { font-size: .76rem; color: var(--gris); }

.editor-card { background: #fff; border-radius: 16px; box-shadow: var(--sombra-suave); border: 1px solid #E6EBE6; padding: 1.5rem; }
.editor-card h3 { font-family: var(--sans); font-size: 1.15rem; color: var(--verde-bosque); margin-bottom: 1.1rem; }
.editor-block { border-top: 1px solid #EDF0ED; margin-top: 1.4rem; padding-top: 1.3rem; }
.editor-block h4 { font-family: var(--sans); font-size: 1rem; color: var(--verde-bosque); margin-bottom: .8rem; display: flex; justify-content: space-between; align-items: center; }

/* Subir imagen */
.img-uploader { display: flex; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.img-uploader .preview { width: 110px; height: 82px; border-radius: 12px; object-fit: cover; background: var(--arena); border: 1px solid var(--linea); flex-shrink: 0; }
.img-uploader .controls { flex: 1; display: flex; flex-direction: column; gap: .5rem; }

/* Listas internas (salidas, paradas, incluye) */
.mini-row { display: grid; gap: .6rem; align-items: center; background: #F7F9F7; border: 1px solid #EAEEEA; border-radius: 10px; padding: .6rem .8rem; margin-bottom: .55rem; }
.mini-row.salida { grid-template-columns: 1fr 90px 90px auto; }
.mini-row.parada { grid-template-columns: 30px 1fr auto; }
.mini-row input { padding: .5rem .6rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); width: 100%; }
.mini-row .diabadge { width: 26px; height: 26px; border-radius: 50%; background: var(--verde-bosque); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: .82rem; }
.parada-fields { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: center; }
.parada-fields .col-2 { grid-column: 1 / -1; }
.parada-fields .p-locate { white-space: nowrap; }
.transp-field { display: flex; align-items: center; gap: .5rem; }
.transp-field span { font-size: .78rem; color: var(--gris); white-space: nowrap; }
.transp-field select { flex: 1; padding: .5rem .6rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); background: #fff; }
.transp-field { display: flex; align-items: center; gap: .5rem; }
.transp-field > span { font-size: .78rem; color: var(--gris); white-space: nowrap; }
.transp-field select { flex: 1; padding: .5rem .6rem; border-radius: 8px; border: 1.5px solid var(--linea); font-family: var(--sans); background: #fff; }
.transp-badge { display: inline-flex; align-items: center; gap: .35rem; margin-top: .6rem; background: var(--crema); border: 1px solid var(--arena); color: var(--verde-bosque); border-radius: 999px; padding: .25rem .7rem; font-size: .8rem; font-weight: 600; }
.geo-status { font-size: .78rem; color: var(--gris); padding-top: .1rem; }
.geo-status.ok { color: #1f6347; font-weight: 600; }
.geo-status.error { color: var(--rojo); }
.geo-status.buscando { color: var(--terracota); }
.icon-btn { width: 32px; height: 32px; border-radius: 8px; border: 1.5px solid var(--linea); background: #fff; cursor: pointer; color: var(--rojo); font-size: 1rem; line-height: 1; }
.icon-btn:hover { background: var(--rojo); color: #fff; border-color: var(--rojo); }
.chip-list { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .7rem; }
.chip-list .ch { display: inline-flex; align-items: center; gap: .4rem; background: var(--crema); border: 1px solid var(--linea); border-radius: 999px; padding: .35rem .8rem; font-size: .85rem; }
.chip-list .ch button { background: none; border: 0; cursor: pointer; color: var(--gris); font-weight: 700; }
.chip-list .ch button:hover { color: var(--rojo); }

#mapaEd { height: 300px; border-radius: 12px; overflow: hidden; border: 1px solid var(--linea); margin-bottom: 1rem; }
.respaldo-area { width: 100%; min-height: 220px; border-radius: 12px; border: 1.5px solid var(--linea); padding: 1rem; font-family: ui-monospace, "Cascadia Code", monospace; font-size: .8rem; background: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .values-grid { grid-template-columns: repeat(2, 1fr); }
  .cards { grid-template-columns: 1fr; }
  .card { grid-template-columns: 140px 1fr; min-height: 152px; }
  .itin-layout { grid-template-columns: 1fr; }
  #mapa { position: relative; top: 0; height: 380px; order: -1; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .admin-shell { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .cms-2col { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .nav-links { display: none; }
  .menu-toggle { display: block; }
  .cards { grid-template-columns: 1fr; }
  .card { grid-template-columns: 110px 1fr; min-height: 146px; }
  .values-grid { grid-template-columns: 1fr; }
  .salida-row { grid-template-columns: 60px 1fr; gap: .8rem; }
  .salida-cupos, .salida-row .estado { grid-column: 2; text-align: left; justify-self: start; }
  .footer-grid { grid-template-columns: 1fr; }
  .hero-stats { gap: 1.4rem; }
  /* Hero del detalle de viaje: más alto e inmersivo en celular (antes se veía apretado) */
  .trip-hero { min-height: 78vh; }
  .trip-hero-inner { padding: 2.4rem 0 2.8rem; }
  .trip-hero h1 { font-size: clamp(2.5rem, 9vw, 3.2rem); line-height: 1.04; margin-bottom: .7rem; }
  .trip-hero p { font-size: 1.02rem; line-height: 1.55; margin-bottom: 1.2rem; }
  .trip-cats { gap: .4rem; margin-bottom: 1rem; }
  .trip-meta { gap: .85rem 1.3rem; font-size: .9rem; }
}

/* =====================================================================
   HOME PREMIUM — Viajando Sin Afán (navy + dorado)
   ===================================================================== */
.nav-home { position: fixed; top: 0; left: 0; right: 0; z-index: 60; background: transparent;
  border-bottom: 1px solid transparent; backdrop-filter: none;
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease; }
.nav-home .nav-links a { color: #fff; }
.nav-home .brand .logo { display: none; }
.nav-home .brand .logo-white { display: block; }
.nav-home .nav-links a.active, .nav-home .nav-links a:hover { color: var(--oro-suave); }
.nav-home .nav-links a.active::after { background: var(--oro-suave); }
.nav-home .menu-toggle { color: #fff; }
.nav-home.scrolled { background: rgba(252,250,245,.95); backdrop-filter: blur(14px);
  border-bottom-color: var(--linea); box-shadow: 0 8px 30px -22px rgba(15,36,56,.5); }
.nav-home.scrolled .brand .logo { display: block; }
.nav-home.scrolled .brand .logo-white { display: none; }
.nav-home.scrolled .nav-links a { color: var(--azul); }
.nav-home.scrolled .nav-links a.active, .nav-home.scrolled .nav-links a:hover { color: var(--oro-2); }
.nav-home.scrolled .menu-toggle { color: var(--azul); }

.home-hero { position: relative; min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; color: #fff; overflow: hidden; isolation: isolate; }
.home-hero .bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.home-hero .bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.6s ease; }
.home-hero .bg img.active { opacity: 1; animation: heroZoom 9s ease-out forwards; }
@keyframes heroZoom { from { transform: scale(1.12); } to { transform: scale(1); } }
.home-hero::after { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(15,36,56,.55) 0%, rgba(15,36,56,.32) 35%, rgba(15,36,56,.86) 100%); }
.home-hero .wrap { padding: 7rem 0 3rem; }
.hero-overline { display: inline-flex; align-items: center; gap: .6rem; color: var(--oro-suave);
  font-size: .8rem; letter-spacing: .24em; text-transform: uppercase; font-weight: 600; margin-bottom: 1.2rem; }
.hero-overline::before, .hero-overline::after { content: "✦"; color: var(--oro); font-size: .7rem; }
.home-hero h1 { font-size: clamp(2.8rem, 6.5vw, 5.4rem); max-width: 16ch; line-height: 1.03;
  text-shadow: 0 4px 40px rgba(0,0,0,.35); margin-bottom: 1.3rem; }
.home-hero h1 em { font-style: normal; color: var(--oro-suave); font-family: var(--script); font-weight: 700; }
.home-hero .lead { max-width: 50ch; font-size: 1.18rem; color: rgba(255,255,255,.92); margin-bottom: 2rem; }
.hero-actions { display: flex; gap: .9rem; flex-wrap: wrap; align-items: center; }
.hero-trust { display: flex; align-items: center; gap: 1.4rem; margin-top: 2.4rem; flex-wrap: wrap; }
.hero-trust .stars { color: var(--oro); letter-spacing: .1em; font-size: 1.05rem; }
.hero-trust .t-txt { font-size: .9rem; color: rgba(255,255,255,.85); }
.hero-trust .t-sep { width: 1px; height: 30px; background: rgba(255,255,255,.25); }
.hero-scroll { position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
  color: rgba(255,255,255,.7); font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; z-index: 2; text-align: center; }
.hero-scroll span { display: block; font-size: 1.2rem; animation: bounce 2s infinite; }
@keyframes bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* Accesibilidad: respetar la preferencia de movimiento reducido del sistema */
@media (prefers-reduced-motion: reduce) {
  .home-hero .bg img.active { animation: none; }
  .home-hero .bg img { transition: none; }
  .hero-scroll span { animation: none; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

.hero-search { display: flex; gap: .6rem; flex-wrap: wrap; align-items: flex-end;
  background: rgba(255,255,255,.96); border-radius: 16px; padding: 1rem 1.1rem; margin-top: 2.4rem;
  box-shadow: var(--sombra); max-width: 720px; }
.hs-field { display: flex; flex-direction: column; gap: .25rem; flex: 1; min-width: 150px; }
.hs-field label { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); font-weight: 600; }
.hs-field select { padding: .65rem .7rem; border-radius: 10px; border: 1.5px solid var(--linea);
  font-family: var(--sans); font-size: .95rem; background: #fff; color: var(--tinta); cursor: pointer; }
.hero-search .btn { white-space: nowrap; }

.trust-bar { background: var(--azul); color: #fff; padding: 2.2rem 0; }
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center; }
.trust-item { display: flex; flex-direction: column; gap: .2rem; }
.trust-item .ti-n { font-family: var(--serif); font-size: 2rem; font-weight: 600; color: var(--oro-suave); }
.trust-item .ti-l { font-size: .85rem; color: rgba(255,255,255,.8); }
.trust-item + .trust-item { border-left: 1px solid rgba(255,255,255,.12); }

.sec { padding: 5.5rem 0; }
.sec.tint { background: var(--crema); }
.sec-head { max-width: 64ch; margin-bottom: 2.8rem; }
.sec-head.center { margin-inline: auto; text-align: center; }
.sec-head .eyebrow { display: inline-flex; align-items: center; gap: .5rem; }
.sec-head .eyebrow::before { content: "✦"; color: var(--oro); }
.sec-head h2 { font-size: clamp(2rem, 4.2vw, 3rem); margin: .6rem 0 .7rem; color: var(--azul); }
.sec-head p { font-size: 1.05rem; }
.sec-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; margin-bottom: 2.4rem; }
.sec-head-row .sec-head { margin-bottom: 0; }

.pasos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.paso { text-align: center; padding: 1.4rem 1rem; }
.paso .num { width: 60px; height: 60px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--serif); font-size: 1.5rem; font-weight: 600; background: var(--crema-2); color: var(--azul); border: 2px solid var(--oro); }
.paso h3 { font-size: 1.2rem; color: var(--azul); margin-bottom: .5rem; }
.paso p { font-size: .92rem; color: var(--gris); }

.destinos-mosaico { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: 220px 220px; gap: 1rem; }
.dest-tile { position: relative; border-radius: var(--radio); overflow: hidden; cursor: pointer; isolation: isolate; }
.dest-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.dest-tile:hover img { transform: scale(1.08); }
.dest-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(15,36,56,.85)); }
.dest-tile .lbl { position: absolute; left: 1.1rem; bottom: 1rem; z-index: 2; color: #fff; }
.dest-tile .lbl b { font-family: var(--serif); font-size: 1.3rem; font-weight: 600; display: block; }
.dest-tile .lbl span { font-size: .82rem; color: rgba(255,255,255,.85); }
.dest-tile.big { grid-column: span 2; grid-row: span 2; }
.dest-tile.big .lbl b { font-size: 1.8rem; }

.test-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.home-test-card { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio); padding: 1.6rem; box-shadow: var(--sombra-suave); display: flex; flex-direction: column; gap: .7rem; }
.home-test-card .stars { color: var(--oro); letter-spacing: .08em; }
.home-test-card p { font-style: italic; line-height: 1.55; flex: 1; }
.home-test-card .who { display: flex; align-items: center; gap: .7rem; }
.home-test-card .who .av { width: 42px; height: 42px; border-radius: 50%; background: var(--azul); color: #fff; display: grid; place-items: center; font-weight: 700; flex-shrink: 0; }
.home-test-card .who b { display: block; font-size: .95rem; }
.home-test-card .who span { font-size: .78rem; color: var(--gris); }
.google-badge { display: inline-flex; align-items: center; gap: .5rem; background: #fff; border: 1px solid var(--linea); border-radius: 999px; padding: .5rem 1.1rem; font-weight: 600; font-size: .9rem; box-shadow: var(--sombra-suave); }

.cta-final { position: relative; color: #fff; border-radius: 28px; overflow: hidden; padding: 4rem 2rem; text-align: center; isolation: isolate; }
.cta-final .bg { position: absolute; inset: 0; z-index: -2; }
.cta-final .bg img { width: 100%; height: 100%; object-fit: cover; }
.cta-final::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(120deg, rgba(15,36,56,.92), rgba(22,50,79,.78)); }
.cta-final h2 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: .8rem; }
.cta-final h2 em { font-family: var(--script); font-style: normal; color: var(--oro-suave); }
.cta-final p { max-width: 52ch; margin: 0 auto 1.8rem; color: rgba(255,255,255,.9); font-size: 1.08rem; }
.newsletter { display: flex; gap: .6rem; max-width: 460px; margin: 0 auto; flex-wrap: wrap; }
.newsletter input { flex: 1; min-width: 200px; padding: .9rem 1.2rem; border-radius: 999px; border: 0; font-family: var(--sans); font-size: .95rem; }

/* Páginas normales (no hero): solo logo navy */
.brand .logo-white { display: none; }
/* Footer: logo blanco */
.footer .brand .logo { display: none; }
.footer .brand .logo-white { display: block; }

@media (max-width: 960px) {
  .trust-grid { grid-template-columns: repeat(2, 1fr); gap: 1.6rem 0; }
  .trust-item:nth-child(3) { border-left: 0; }
  .pasos { grid-template-columns: repeat(2, 1fr); }
  .destinos-mosaico { grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 200px); }
  .dest-tile.big { grid-column: span 2; grid-row: span 1; }
  .test-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .trust-item { border-left: 0 !important; }
  .pasos { grid-template-columns: 1fr; }
  .home-hero .wrap { padding-top: 6rem; }
  .hero-trust .t-sep { display: none; }
}

/* =====================================================================
   PAQUETE DE CONFIANZA — garantías, medios de pago, footer legal, WhatsApp
   ===================================================================== */
.confianza { background: var(--crema-2); padding: 3.8rem 0; }
.confianza-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.confianza-card { background: #fff; border: 1px solid var(--linea); border-radius: var(--radio);
  padding: 1.7rem 1.4rem; text-align: center; box-shadow: var(--sombra-suave); transition: transform .25s ease, box-shadow .25s ease; }
.confianza-card:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.confianza-ico { width: 56px; height: 56px; margin: 0 auto 1rem; border-radius: 50%;
  display: grid; place-items: center; font-size: 1.55rem; background: var(--azul); color: var(--oro-suave); }
.confianza-card h3 { font-family: var(--serif); font-size: 1.14rem; color: var(--azul); margin-bottom: .45rem; }
.confianza-card p { font-size: .9rem; color: var(--gris); line-height: 1.5; }

.pagos { margin-top: 2.6rem; text-align: center; }
.pagos-label { font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); margin-bottom: .8rem; }
.pagos-row { display: flex; align-items: center; justify-content: center; gap: .6rem; flex-wrap: wrap; }
.pago-chip { background: #fff; border: 1px solid var(--linea); border-radius: 10px; padding: .5rem 1rem;
  font-size: .85rem; font-weight: 600; color: var(--azul); box-shadow: var(--sombra-suave); }

.footer-legal { border-top: 1px solid rgba(255,255,255,.12); margin-top: 1.6rem; padding-top: 1.3rem;
  display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: center; font-size: .82rem; color: rgba(255,255,255,.8); }
.fl-badge { display: inline-flex; align-items: center; gap: .4rem; background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.2); border-radius: 8px; padding: .35rem .75rem; color: #fff; font-weight: 600; }
.footer-legal a { display: inline; padding: 0; }
.footer-legal a:hover { color: var(--oro-suave); }
.fl-sep { opacity: .35; }

.wa-fab { position: fixed; right: 20px; bottom: 20px; z-index: 80; width: 58px; height: 58px; border-radius: 50%;
  background: #25D366; display: grid; place-items: center; box-shadow: 0 10px 26px -6px rgba(37,211,102,.6);
  transition: transform .2s ease, box-shadow .2s ease; }
.wa-fab:hover { transform: scale(1.08); box-shadow: 0 14px 32px -4px rgba(37,211,102,.78); }
.wa-fab svg { width: 32px; height: 32px; fill: #fff; position: relative; z-index: 1; }
.wa-fab::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #25D366;
  animation: waPulse 2.6s ease-out infinite; }
@keyframes waPulse { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.75); opacity: 0; } }

.legal-wrap { max-width: 820px; margin: 0 auto; padding: 7.5rem 1.3rem 4rem; }
.legal-doc h1 { font-family: var(--serif); color: var(--azul); font-size: 2.1rem; margin-bottom: .35rem; }
.legal-upd { color: var(--gris); font-size: .85rem; margin-bottom: 2.2rem; }
.legal-doc h2 { font-family: var(--serif); color: var(--azul); font-size: 1.32rem; margin: 2.1rem 0 .6rem; }
.legal-doc p, .legal-doc li { color: #3a4750; margin-bottom: .7rem; }
.legal-doc ul { padding-left: 1.3rem; }
.legal-doc .legal-note { background: var(--crema); border-left: 3px solid var(--oro); padding: 1rem 1.2rem; border-radius: 0 10px 10px 0; font-size: .9rem; }

@media (max-width: 860px) { .confianza-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .confianza-grid { grid-template-columns: 1fr; } .wa-fab { width: 52px; height: 52px; right: 16px; bottom: 16px; } }

/* =====================================================================
   CONFÍAN EN NOSOTROS (empresas) + EN LOS MEDIOS (podcasts)
   ===================================================================== */
.clientes { padding: 4.2rem 0; }
.clientes-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
  max-width: 980px; margin: 0 auto; }
.cliente-logo { display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 92px; background: #fff; border: 1px solid var(--linea); border-radius: 14px; padding: 1rem 1.2rem;
  box-shadow: var(--sombra-suave); transition: transform .2s ease, box-shadow .2s ease; }
.cliente-logo:hover { transform: translateY(-3px); box-shadow: var(--sombra); }
.cliente-img { max-height: 40px; max-width: 100%; width: auto; object-fit: contain;
  filter: grayscale(1); opacity: .72; transition: filter .25s ease, opacity .25s ease; }
.cliente-logo:hover .cliente-img { filter: grayscale(0); opacity: 1; }
.cliente-txt { font-family: var(--serif); font-weight: 600; font-size: .92rem; line-height: 1.25;
  color: var(--azul); letter-spacing: .01em; }
@media (max-width: 760px) { .clientes-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .cliente-logo { min-height: 80px; padding: .8rem; } }

/* ----- Blog ----- */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.blog-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--linea);
  border-radius: var(--radio); overflow: hidden; box-shadow: var(--sombra-suave);
  transition: transform .25s ease, box-shadow .25s ease; }
.blog-card:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.blog-thumb { aspect-ratio: 16 / 10; overflow: hidden; background: var(--crema-2); }
.blog-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.blog-card:hover .blog-thumb img { transform: scale(1.05); }
.blog-body { padding: 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.blog-date { font-size: .74rem; letter-spacing: .07em; text-transform: uppercase; font-weight: 600; color: var(--oro-oscuro, var(--gris)); }
.blog-card h3 { font-family: var(--serif); font-size: 1.12rem; color: var(--azul); line-height: 1.32; }
.blog-card p { font-size: .9rem; color: var(--gris); line-height: 1.5; flex: 1; }
.blog-more { font-size: .85rem; font-weight: 600; color: var(--azul); margin-top: .3rem; }
@media (max-width: 900px) { .blog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .blog-grid { grid-template-columns: 1fr; } }

/* ----- Qué incluye (itinerario) ----- */
.incluye-list { list-style: none; padding: 0; margin: 0; display: grid;
  grid-template-columns: 1fr 1fr; gap: .7rem 1.8rem; }
.incluye-list li { position: relative; padding-left: 2rem; color: var(--tinta);
  font-size: .97rem; line-height: 1.45; }
.inc-check { position: absolute; left: 0; top: .02rem; width: 1.35rem; height: 1.35rem;
  border-radius: 50%; background: rgba(201,162,75,.16); color: var(--oro-oscuro, var(--oro));
  display: grid; place-items: center; font-size: .8rem; font-weight: 700; }
.incluye-note { margin-top: 1.3rem; font-size: .9rem; }
@media (max-width: 640px) { .incluye-list { grid-template-columns: 1fr; } }

/* ----- Formulario de cotización ----- */
.cotiza-wrap { max-width: 840px; }
.cotiza-form { background: #fff; border: 1px solid var(--linea); border-radius: 20px;
  padding: 2.1rem; box-shadow: var(--sombra-suave); margin-top: .5rem; }
.cot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.4rem; }
.cot-field { display: flex; flex-direction: column; gap: .4rem; }
.cot-field.cot-full { grid-column: 1 / -1; }
.cot-field label { font-size: .85rem; font-weight: 600; color: var(--azul); }
.cot-field .req { color: #c0473b; }
.cot-field input, .cot-field select, .cot-field textarea { width: 100%; padding: .72rem .85rem;
  border: 1.5px solid var(--linea); border-radius: 10px; font-family: var(--sans); font-size: .95rem;
  color: var(--tinta); background: #fff; min-height: 46px; }
.cot-field textarea { min-height: auto; resize: vertical; line-height: 1.5; }
.cot-field input:focus, .cot-field select:focus, .cot-field textarea:focus { outline: none;
  border-color: var(--oro); box-shadow: 0 0 0 3px rgba(201,162,75,.18); }
.cot-error { background: #fdecea; color: #b23b3b; border-radius: 10px; padding: .75rem 1rem;
  font-size: .9rem; font-weight: 500; margin: 1.2rem 0 0; }
.cot-submit { width: 100%; justify-content: center; margin-top: 1.5rem; font-size: 1rem; }
.cot-legal { font-size: .8rem; text-align: center; margin-top: 1rem; }
.cot-legal a { color: var(--azul); text-decoration: underline; }
.cot-ok { text-align: center; padding: 1.5rem; }
.cot-ok-ic { width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%;
  background: rgba(46,125,91,.12); color: #2E7D5B; display: grid; place-items: center;
  font-size: 2rem; font-weight: 700; }
.cot-ok h3 { font-family: var(--serif); color: var(--azul); font-size: 1.4rem; margin-bottom: .5rem; }
.cot-ok p { color: var(--gris); max-width: 44ch; margin: 0 auto 1.4rem; }
@media (max-width: 640px) { .cot-grid { grid-template-columns: 1fr; } .cotiza-form { padding: 1.4rem; } }

/* ----- Artículo del blog ----- */
.art-hero { position: relative; isolation: isolate; color: #fff; display: flex;
  align-items: flex-end; min-height: 56vh; }
.art-hero-media { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: var(--azul); }
.art-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.art-hero::after { content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(15,36,56,.35) 0%, rgba(15,36,56,.55) 45%, rgba(15,36,56,.88) 100%); }
.art-hero-inner { width: min(820px, 92vw); margin: 0 auto; padding: 3rem 0 2.6rem; }
.art-back { display: inline-block; color: rgba(255,255,255,.85); font-size: .85rem; font-weight: 600; margin-bottom: 1rem; }
.art-back:hover { color: var(--oro-suave); }
.art-cat { display: inline-block; background: var(--oro); color: var(--azul); font-size: .72rem;
  font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .3rem .75rem; border-radius: 999px; margin-bottom: .9rem; }
.art-hero h1 { font-size: clamp(1.9rem, 4vw, 3rem); line-height: 1.12; max-width: 20ch;
  text-shadow: 0 2px 24px rgba(0,0,0,.4); }
.art-meta { color: rgba(255,255,255,.82); font-size: .85rem; margin-top: .9rem; }

.art-wrap { max-width: 768px; }
.art-body { font-size: 1.07rem; line-height: 1.78; color: #2c3a44; }
.art-body h2 { font-family: var(--serif); color: var(--azul); font-size: 1.55rem; margin: 2.3rem 0 .8rem; line-height: 1.25; }
.art-body h3 { font-family: var(--serif); color: var(--azul); font-size: 1.22rem; margin: 1.9rem 0 .6rem; }
.art-body p { margin-bottom: 1.15rem; }
.art-body ul, .art-body ol { margin: 0 0 1.3rem; padding-left: 1.4rem; }
.art-body li { margin-bottom: .55rem; }
.art-body ul ul, .art-body ol ol { margin: .5rem 0 .3rem; }
.art-body strong { color: var(--azul); }
.art-body .blog-aviso { background: var(--crema); border-left: 3px solid var(--oro);
  padding: .9rem 1.1rem; border-radius: 0 10px 10px 0; font-size: .95rem; margin: 0 0 1.3rem; }

.art-cta { margin: 2.8rem 0 2rem; background: var(--crema-2); border: 1px solid var(--linea);
  border-radius: 18px; padding: 2.1rem; text-align: center; }
.art-cta h3 { font-family: var(--serif); color: var(--azul); font-size: 1.4rem; margin-bottom: .5rem; }
.art-cta p { color: var(--gris); max-width: 48ch; margin: 0 auto 1.4rem; }
.art-cta-btns { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; }
.art-share { margin-top: 1.4rem; background: none; border: 0; color: var(--azul); font-weight: 600;
  font-size: .9rem; cursor: pointer; font-family: var(--sans); }
.art-share:hover { text-decoration: underline; }

.art-more { margin: 2.6rem 0 1rem; }
.art-more h3 { font-family: var(--serif); color: var(--azul); font-size: 1.45rem; margin-bottom: 1.3rem; text-align: center; }
.art-more .blog-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .art-more .blog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .art-hero { min-height: 46vh; } .art-cta { padding: 1.5rem; } .art-more .blog-grid { grid-template-columns: 1fr; } }

.medios-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.medio-card { display: flex; flex-direction: column; gap: .9rem; background: #fff; border: 1px solid var(--linea);
  border-radius: var(--radio); padding: 1.5rem 1.4rem; box-shadow: var(--sombra-suave);
  transition: transform .25s ease, box-shadow .25s ease; }
.medio-card:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.medio-badge { display: inline-flex; align-items: center; gap: .45rem; align-self: flex-start;
  font-size: .8rem; font-weight: 700; letter-spacing: .02em; padding: .35rem .7rem; border-radius: 999px; }
.medio-badge.spotify { color: #1DB954; background: rgba(29,185,84,.1); }
.medio-badge.youtube { color: #FF0000; background: rgba(255,0,0,.08); }
.medio-body { flex: 1; display: flex; flex-direction: column; gap: .3rem; }
.medio-card h3 { font-family: var(--serif); font-size: 1.06rem; color: var(--azul); line-height: 1.3; }
.medio-show { font-size: .82rem; font-weight: 500; color: var(--gris); }
.medio-cta { font-size: .88rem; font-weight: 600; color: var(--oro-oscuro, var(--azul)); }
.medio-card:hover .medio-cta { color: var(--azul); }

.footer-social { display: flex; gap: .6rem; margin-top: .9rem; }
.footer-social a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); color: #fff;
  padding: 0; transition: background .2s ease, color .2s ease, transform .2s ease; }
.footer-social a:hover { background: var(--oro); color: var(--azul); transform: translateY(-2px); }

@media (max-width: 860px) { .medios-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .medios-grid { grid-template-columns: 1fr; } }

/* =====================================================================
   SOBRE NOSOTROS
   ===================================================================== */
.about-hero { background: linear-gradient(135deg, var(--azul) 0%, var(--azul-2) 100%); color: #fff; padding: 8.5rem 0 4.5rem; text-align: center; position: relative; overflow: hidden; }
.about-hero::after { content: "✦"; position: absolute; font-size: 26rem; color: rgba(255,255,255,.03); right: -2rem; top: -3rem; line-height: 1; pointer-events: none; }
.about-hero .eyebrow { color: var(--oro-suave); }
.about-hero h1 { font-family: var(--serif); font-size: clamp(2rem, 5vw, 3.1rem); font-weight: 700; margin: .5rem 0 .8rem; line-height: 1.1; }
.about-hero .lema { font-family: var(--serif); font-style: italic; font-size: clamp(1.2rem, 3vw, 1.7rem); color: var(--oro-suave); margin-bottom: 1.3rem; }
.about-hero p { max-width: 720px; margin: 0 auto; color: rgba(255,255,255,.86); font-size: 1.06rem; position: relative; }

.about-sec { padding: 4rem 0; }
.about-sec.alt { background: var(--crema-2); }
.historia { max-width: 760px; margin: 2.5rem auto 0; }
.hito { position: relative; padding-left: 2.6rem; padding-bottom: 2.3rem; border-left: 2px solid var(--oro-suave); }
.hito:last-child { padding-bottom: 0; border-left-color: transparent; }
.hito::before { content: ""; position: absolute; left: -9px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--oro); border: 3px solid var(--crema-2); box-shadow: 0 0 0 2px var(--oro); }
.about-sec:not(.alt) .hito::before { border-color: #fff; }
.hito .anio { font-family: var(--serif); color: var(--oro-2); font-size: 1.25rem; font-weight: 700; }
.hito h3 { color: var(--azul); margin: .15rem 0 .4rem; font-size: 1.18rem; }
.hito p { color: #3a4750; }

.proposito { max-width: 820px; margin: 2rem auto 0; background: #fff; border: 1px solid var(--linea); border-left: 4px solid var(--oro); border-radius: var(--radio); padding: 2.4rem 2.6rem; text-align: center; box-shadow: var(--sombra-suave); }
.proposito .q { font-family: var(--serif); font-style: italic; font-size: 1.45rem; color: var(--azul); line-height: 1.4; }
.proposito .who { margin-top: 1rem; color: var(--oro-2); font-weight: 600; font-size: .92rem; }

.equipo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.6rem; margin-top: 2.4rem; }
.miembro { text-align: center; }
.avatar-mono { width: 86px; height: 86px; border-radius: 50%; margin: 0 auto .8rem; display: grid; place-items: center; font-family: var(--serif); font-weight: 700; font-size: 1.7rem; color: #fff; background: linear-gradient(135deg, var(--azul), var(--azul-claro)); box-shadow: var(--sombra-suave); }
.miembro h4 { color: var(--azul); font-size: 1.04rem; margin-bottom: .12rem; }
.miembro .rol { color: var(--oro-2); font-size: .85rem; font-weight: 600; }

.guias-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: 720px; margin: 2.2rem auto 0; }
.guia { display: flex; align-items: center; gap: .8rem; background: #fff; border: 1px solid var(--linea); border-radius: 14px; padding: .7rem 1rem; box-shadow: var(--sombra-suave); }
.guia .avatar-mono { width: 48px; height: 48px; font-size: 1.05rem; margin: 0; background: linear-gradient(135deg, var(--oro), var(--oro-2)); }
.guia span { font-weight: 600; color: var(--azul); font-size: .96rem; }

@media (max-width: 860px) { .equipo-grid { grid-template-columns: 1fr 1fr; } .guias-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .guias-grid { grid-template-columns: 1fr; } .proposito { padding: 1.8rem 1.4rem; } }

/* =====================================================================
   PANEL — CLIENTES (CRM prototipo)
   ===================================================================== */
.cli-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.4rem; }
.cli-toolbar { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1rem; }
.kpi-click { cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .1s; }
.kpi-click:hover { border-color: var(--verde-bosque); transform: translateY(-1px); }
.kpi-on { border-color: var(--verde-bosque); box-shadow: 0 0 0 2px var(--verde-bosque) inset; }
.cli-filters { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; margin-bottom: 1rem; }
.fchip { font: inherit; font-size: .82rem; padding: .4rem .8rem; border-radius: 999px; border: 1px solid var(--linea); background: #fff; color: var(--gris); cursor: pointer; transition: all .15s; }
.fchip:hover { border-color: var(--verde-bosque); color: var(--verde-bosque); }
.fchip.on { background: var(--verde-bosque); border-color: var(--verde-bosque); color: #fff; }
.fyear { font: inherit; font-size: .82rem; padding: .4rem .7rem; border-radius: 999px; border: 1px solid var(--linea); background: #fff; color: var(--gris); cursor: pointer; margin-left: auto; }
.cli-count { font-size: .78rem; color: var(--gris); margin-bottom: .5rem; font-weight: 500; }
/* Salidas programadas */
.sal-list { display: flex; flex-direction: column; gap: .4rem; max-height: 620px; overflow: auto; }
.sal-card { display: flex; gap: .65rem; align-items: flex-start; padding: .7rem; border-radius: 12px; cursor: pointer; border: 1px solid var(--linea); background: #fff; transition: all .12s; }
.sal-card:hover { border-color: var(--verde-bosque); }
.sal-card.active { border-color: var(--verde-bosque); box-shadow: 0 0 0 2px var(--verde-bosque) inset; }
.sal-card .sal-ico { font-size: 1.4rem; line-height: 1; }
.sal-card .nm { font-weight: 600; color: var(--verde-bosque); }
.sal-card .mt { font-size: .8rem; color: var(--gris); }
.sal-card .mt2 { font-size: .78rem; color: var(--verde-bosque); font-weight: 500; margin-top: .15rem; }
.sal-group { margin-bottom: .9rem; }
.sal-group-h { display: flex; flex-direction: column; gap: .1rem; font-weight: 700; color: var(--verde-bosque); font-size: .95rem; padding: .35rem .2rem .4rem; border-bottom: 1px solid var(--linea); margin-bottom: .35rem; }
.sal-group-meta { font-size: .72rem; font-weight: 500; color: var(--gris); }
.sal-sub-card { padding: .5rem .65rem; border-radius: 10px; cursor: pointer; border: 1px solid var(--linea); background: #fff; margin-bottom: .3rem; margin-left: .4rem; transition: all .12s; }
.sal-sub-card:hover { border-color: var(--verde-bosque); }
.sal-sub-card.active { border-color: var(--verde-bosque); box-shadow: 0 0 0 2px var(--verde-bosque) inset; }
.sal-sub-card .nm2 { font-weight: 600; color: var(--negro); font-size: .86rem; }
.sal-sub-card .mt { font-size: .76rem; color: var(--gris); }
.sal-head h3 { margin: 0 0 .2rem; font-family: var(--serif); color: var(--verde-bosque); }
.sal-sub { font-size: .82rem; color: var(--gris); margin-bottom: .9rem; }
.sal-tablewrap { overflow-x: auto; }
.sal-table { width: 100%; border-collapse: collapse; font-size: .84rem; }
.sal-table th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: var(--gris); border-bottom: 2px solid var(--linea); padding: .5rem .55rem; white-space: nowrap; }
.sal-table td { padding: .5rem .55rem; border-bottom: 1px solid var(--linea); vertical-align: top; }
.sal-link { color: var(--verde-bosque); font-weight: 600; text-decoration: none; border-bottom: 1px dashed var(--verde-bosque); }
.sal-link:hover { opacity: .75; }
.sal-obs { font-size: .73rem; color: var(--gris); margin-top: .15rem; max-width: 320px; }
.cli-layout { display: grid; grid-template-columns: 320px 1fr; gap: 1.2rem; align-items: start; }
.cli-side { background: #fff; border: 1px solid var(--linea); border-radius: 16px; padding: 1rem; }
.cli-search { width: 100%; padding: .6rem .8rem; border: 1px solid var(--linea); border-radius: 10px; margin-bottom: .7rem; font: inherit; }
.cli-list { max-height: 600px; overflow: auto; display: flex; flex-direction: column; gap: .25rem; }
.cli-item { display: flex; align-items: center; gap: .65rem; padding: .55rem .6rem; border-radius: 10px; cursor: pointer; border: 1px solid transparent; }
.cli-item:hover { background: var(--crema-2); }
.cli-item.active { background: var(--crema); border-color: var(--linea); }
.cli-ava { width: 38px; height: 38px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; color: #fff; font-weight: 700; font-family: var(--serif); font-size: .85rem; background: linear-gradient(135deg, var(--azul), var(--azul-claro)); }
.cli-item .nm { font-weight: 600; color: var(--azul); font-size: .88rem; line-height: 1.15; }
.cli-item .mt { font-size: .74rem; color: var(--gris); }
.cli-detail { background: #fff; border: 1px solid var(--linea); border-radius: 16px; padding: 1.6rem; min-height: 300px; }
.cli-empty { color: var(--gris); text-align: center; padding: 4rem 1rem; }
.cli-head { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: flex-start; }
.cli-name { font-family: var(--serif); font-size: 1.5rem; color: var(--azul); line-height: 1.1; }
.cli-meta { color: var(--gris); font-size: .9rem; margin-top: .25rem; line-height: 1.6; }
.cli-bday { display: inline-block; background: #fff4d6; color: #a9842f; border: 1px solid #e9d8a6; border-radius: 20px; padding: .22rem .7rem; font-size: .8rem; font-weight: 600; margin-top: .5rem; }
.nivel-card { background: linear-gradient(135deg, var(--azul), var(--azul-2)); color: #fff; border-radius: 14px; padding: 1.1rem 1.3rem; margin: 1.3rem 0; }
.nivel-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.nivel-badge { font-family: var(--serif); font-size: 1.2rem; font-weight: 700; }
.nivel-pts { text-align: right; }
.nivel-pts b { font-size: 1.6rem; font-family: var(--serif); color: var(--oro-suave); }
.nivel-pts small { display: block; font-size: .74rem; color: rgba(255,255,255,.7); }
.progreso { height: 8px; background: rgba(255,255,255,.18); border-radius: 6px; margin-top: .8rem; overflow: hidden; }
.progreso i { display: block; height: 100%; background: var(--oro); border-radius: 6px; }
.nivel-next { font-size: .78rem; color: rgba(255,255,255,.78); margin-top: .45rem; }
.cli-block { margin-top: 1.6rem; }
.cli-block h4 { color: var(--azul); font-size: 1.05rem; margin-bottom: .7rem; display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.cli-tabla { width: 100%; border-collapse: collapse; font-size: .88rem; }
.cli-tabla th { text-align: left; color: var(--gris); font-weight: 600; font-size: .74rem; text-transform: uppercase; letter-spacing: .03em; padding: .3rem .5rem; border-bottom: 1px solid var(--linea); }
.cli-tabla td { padding: .5rem .5rem; border-bottom: 1px solid var(--crema); }
.cli-fin { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-bottom: .9rem; }
.fin-box { background: var(--crema-2); border: 1px solid var(--linea); border-radius: 12px; padding: .8rem; text-align: center; }
.fin-box .l { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gris); }
.fin-box .v { font-family: var(--serif); font-size: 1.12rem; color: var(--azul); font-weight: 700; margin-top: .15rem; }
.fin-box.saldo .v { color: var(--rojo); }
.fin-box.caja { background: var(--azul); border-color: var(--azul); }
.fin-box.caja .l { color: var(--oro); }
.fin-box.caja .v { color: #fff; }
.est-chip { font-size: .72rem; font-weight: 600; border-radius: 20px; padding: .12rem .6rem; white-space: nowrap; }
.est-completado { background: #eaf5ee; color: #2f7d4c; }
.est-confirmado { background: #e7eef6; color: #2f5b86; }
.est-pendiente { background: #fdeede; color: #b9842f; }
.est-cancelado { background: #fbe7e7; color: #b23b3b; }
/* Registro de ventas y devoluciones */
.reg-cli { color: var(--azul); font-weight: 600; cursor: pointer; text-decoration: none; }
.reg-cli:hover { text-decoration: underline; }
.reg-table td { vertical-align: middle; }
.mini-btn { background: var(--azul); color: #fff; border: 0; border-radius: 8px; padding: .35rem .75rem; font: 600 .8rem var(--sans); cursor: pointer; }
.mini-btn:hover { background: var(--azul-2); }
.mini-btn.ghost { background: transparent; color: var(--azul); border: 1px solid var(--linea); }
.mini-btn.ghost:hover { background: var(--crema); }
.doc-item { display: flex; align-items: center; gap: .6rem; padding: .5rem .2rem; border-bottom: 1px solid var(--crema); font-size: .88rem; }
.doc-ico { width: 30px; height: 30px; border-radius: 8px; background: var(--crema); display: grid; place-items: center; }
@media (max-width: 960px) { .cli-layout { grid-template-columns: 1fr; } .cli-kpis { grid-template-columns: 1fr 1fr; } .cli-fin { grid-template-columns: 1fr; } }

/* Modal de formulario (abonos, etc.) */
.vsa-modal-ov { position: fixed; inset: 0; background: rgba(15,36,56,.55); display: grid; place-items: center; z-index: 120; padding: 1rem; backdrop-filter: blur(3px); animation: vsaFade .18s ease; }
@keyframes vsaFade { from { opacity: 0; } to { opacity: 1; } }
.vsa-modal { background: #fff; border-radius: 18px; padding: 1.6rem 1.7rem; width: 100%; max-width: 440px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); position: relative; max-height: 92vh; overflow: auto; animation: vsaPop .2s ease; }
@keyframes vsaPop { from { transform: translateY(10px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
.vsa-modal h3 { font-family: var(--serif); color: var(--azul); font-size: 1.3rem; margin-bottom: .15rem; }
.vsa-modal .muted { font-size: .85rem; margin-bottom: 1rem; color: var(--gris); }
.vsa-modal label { display: block; font-size: .74rem; font-weight: 700; color: var(--azul); margin: .8rem 0 .25rem; text-transform: uppercase; letter-spacing: .04em; }
.vsa-modal input, .vsa-modal select, .vsa-modal textarea { width: 100%; padding: .62rem .7rem; border: 1px solid var(--linea); border-radius: 10px; font: inherit; background: #fff; color: var(--tinta); resize: vertical; }
.vsa-modal input:focus, .vsa-modal select:focus, .vsa-modal textarea:focus { outline: 0; border-color: var(--oro); box-shadow: 0 0 0 3px rgba(201,162,75,.18); }
.vsa-row { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.abono-cop-hint { display: block; font-size: .9rem; color: var(--oro-2); font-weight: 700; margin-top: .3rem; min-height: 1.1em; font-family: var(--serif); }
.vsa-modal-x { position: absolute; top: .85rem; right: 1rem; background: 0; border: 0; font-size: 1.2rem; color: var(--gris); cursor: pointer; line-height: 1; }
.vsa-modal-x:hover { color: var(--azul); }
.vsa-modal-foot { display: flex; gap: .6rem; margin-top: 1.4rem; }
.vsa-modal-foot .btn { flex: 1; justify-content: center; }
@media (max-width: 480px) { .vsa-row { grid-template-columns: 1fr; } }

/* ============ COTIZADOR ============ */
.cot-layout { display: grid; grid-template-columns: 320px 1fr; gap: 1.4rem; align-items: start; }
@media (max-width: 980px) { .cot-layout { grid-template-columns: 1fr; } }
.cot-aside { display: flex; flex-direction: column; gap: .9rem; }
.cot-list { max-height: 560px; overflow: auto; display: flex; flex-direction: column; gap: .4rem; }
.cot-card { background: #fff; border: 1px solid var(--linea); border-radius: 12px; padding: .7rem .85rem; cursor: pointer; transition: .15s; }
.cot-card:hover { border-color: var(--oro); }
.cot-card.active { border-color: var(--oro); box-shadow: inset 3px 0 0 var(--oro); background: var(--crema-2); }
.cot-card .cc-top { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.cot-card .cc-cod { font-size: .72rem; font-weight: 700; color: var(--oro); letter-spacing: .03em; }
.cot-card .cc-tot { font-weight: 700; color: var(--azul); font-size: .9rem; white-space: nowrap; }
.cot-card .cc-tit { font-weight: 600; color: var(--azul); font-size: .92rem; line-height: 1.2; margin: .2rem 0; }
.cot-card .cc-sub { font-size: .76rem; color: var(--gris); }
.cot-empty { background: #fff; border: 1px dashed var(--linea); border-radius: 16px; padding: 3rem 1.5rem; text-align: center; color: var(--gris); }

.cot-editor { background: #fff; border: 1px solid var(--linea); border-radius: 16px; padding: 1.5rem; }
.cot-editor h2 { font-family: var(--serif); color: var(--azul); font-size: 1.4rem; margin: 0; }
.cot-sec { margin-top: 1.6rem; }
.cot-sec-h { display: flex; align-items: center; justify-content: space-between; gap: .6rem; border-bottom: 2px solid var(--crema); padding-bottom: .45rem; margin-bottom: .7rem; }
.cot-sec-h h3 { font-family: var(--serif); color: var(--azul); font-size: 1.08rem; margin: 0; }
.cot-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; }
@media (max-width: 640px) { .cot-grid { grid-template-columns: 1fr 1fr; } }
.cot-grid .field { margin-bottom: 0; }

.cot-table-wrap { overflow-x: auto; border: 1px solid var(--linea); border-radius: 12px; }
.cot-table { width: 100%; border-collapse: collapse; font-size: .82rem; min-width: 720px; }
.cot-table th { background: var(--crema); color: var(--azul); text-align: left; font-weight: 600; padding: .5rem .55rem; font-size: .74rem; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.cot-table td { padding: .35rem .45rem; border-top: 1px solid var(--crema); vertical-align: middle; }
.cot-table input, .cot-table select { width: 100%; min-width: 70px; padding: .4rem .5rem; border: 1px solid var(--linea); border-radius: 8px; font: inherit; font-size: .82rem; background: #fff; color: var(--tinta); }
.cot-table input:focus, .cot-table select:focus { outline: 0; border-color: var(--oro); box-shadow: 0 0 0 2px rgba(201,162,75,.18); }
.cot-table .cot-num { text-align: right; }
.cot-cop { font-weight: 700; color: var(--azul); white-space: nowrap; text-align: right; }
.cot-cop small { display: block; font-weight: 400; color: var(--gris); font-size: .68rem; }
.cot-del { background: 0; border: 0; color: var(--gris); cursor: pointer; font-size: 1rem; padding: .2rem .35rem; border-radius: 6px; }
.cot-del:hover { color: #C0392B; background: #FBECEA; }
.cot-add { margin-top: .6rem; }
.cot-empty-row td { color: var(--gris); text-align: center; padding: 1rem; font-style: italic; }

.cot-resumen { display: grid; grid-template-columns: 1fr 320px; gap: 1.4rem; margin-top: 1.8rem; align-items: start; }
@media (max-width: 760px) { .cot-resumen { grid-template-columns: 1fr; } }
.cot-tot-card { background: linear-gradient(135deg, var(--azul), var(--azul-2)); color: #fff; border-radius: 16px; padding: 1.3rem 1.4rem; }
.cot-tot-card h4 { font-family: var(--serif); margin: 0 0 .8rem; font-size: 1.1rem; color: #fff; }
.cot-tot-row { display: flex; justify-content: space-between; gap: 1rem; padding: .3rem 0; font-size: .9rem; }
.cot-tot-row.big { border-top: 1px solid rgba(255,255,255,.25); margin-top: .5rem; padding-top: .7rem; font-size: 1.25rem; font-weight: 700; }
.cot-tot-row .gold { color: var(--oro); }
.cot-tot-row b { color: #fff; }
.cot-tot-card .cop-eq { font-size: .78rem; color: rgba(255,255,255,.7); }
.cot-acciones { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.4rem; }
.cot-internas { background: var(--crema-2); border: 1px solid var(--linea); border-radius: 14px; padding: 1.1rem 1.2rem; }
.cot-internas h4 { color: var(--azul); margin: 0 0 .7rem; font-size: .95rem; }
.cot-chk { display: flex; align-items: center; gap: .5rem; font-size: .85rem; color: var(--tinta); margin-top: .7rem; cursor: pointer; }
.cot-chk input { width: auto; accent-color: var(--oro); }
.cot-estado-badge { font-size: .72rem; font-weight: 700; border-radius: 20px; padding: .15rem .7rem; }
.cot-est-borrador { background: #EEE; color: #666; }
.cot-est-enviada { background: #E3EDF6; color: #1E5A8E; }
.cot-est-aceptada { background: #E3F3E8; color: #1E7A45; }
.cot-est-rechazada { background: #FBECEA; color: #B23B3B; }
.cot-row-acc { white-space: nowrap; text-align: right; }
.cot-save { background: 0; border: 0; cursor: pointer; font-size: .95rem; padding: .2rem .35rem; border-radius: 6px; opacity: .65; }
.cot-save:hover { opacity: 1; background: #FBF4E2; }
.cot-add-row { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .6rem; }
.cot-add-row .cot-add { margin-top: 0; }
.cot-modo { display: inline-flex; border: 1px solid var(--linea); border-radius: 999px; overflow: hidden; background: #fff; }
.cot-modo-opt { background: 0; border: 0; padding: .5rem .9rem; font: inherit; font-size: .82rem; font-weight: 700; color: var(--azul); cursor: pointer; transition: .15s; }
.cot-modo-opt.active { background: var(--azul); color: #fff; }
.cot-modo-opt:not(.active):hover { background: var(--crema-2); }
.cot-table .cot-modal { font-weight: 600; color: var(--azul); }
.cot-modo-badge { font-size: .68rem; font-weight: 700; border-radius: 20px; padding: .1rem .5rem; margin-left: .3rem; }
.cot-modo-grupal { background: #E3EDF6; color: #1E5A8E; }
.cot-modo-privado { background: #F3E9D7; color: var(--oro-2); }
/* ---- costeo: histórico por año ---- */
.k-anio-wrap { display: flex; flex-direction: column; gap: .25rem; }
.k-anio-wrap label { font-size: .72rem; font-weight: 700; color: var(--azul); text-transform: uppercase; letter-spacing: .03em; }
.k-anio { padding: .55rem .7rem; border: 1px solid var(--linea); border-radius: 10px; font: inherit; font-size: .9rem; font-weight: 600; color: var(--azul); background: #fff; cursor: pointer; }
.k-anio:focus { outline: 0; border-color: var(--oro); box-shadow: 0 0 0 2px rgba(201,162,75,.18); }
.k-anio-badge { display: inline-block; background: var(--azul); color: #fff; font-size: .64rem; font-weight: 700; border-radius: 20px; padding: .05rem .45rem; margin-left: .4rem; }
/* ---- salidas de planeación (sin inscritos) ---- */
.sal-conf { background: #E3F3E8; color: #1E7A45; font-size: .62rem; font-weight: 700; border-radius: 20px; padding: .05rem .45rem; }
.sal-plan { background: var(--crema-2); border: 1px solid var(--linea); border-radius: 14px; padding: .6rem 1.2rem; display: flex; flex-direction: column; }
.sal-plan-row { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px dashed var(--linea); font-size: .92rem; }
.sal-plan-row:last-child { border-bottom: 0; }
.sal-plan-row span { color: var(--gris); }
.sal-plan-row b { color: var(--azul); }
/* ---- galería del viaje (itinerario) ---- */
.trip-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .7rem; }
.trip-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; cursor: zoom-in; display: block; transition: transform .2s ease, box-shadow .2s ease; }
.trip-gallery img:hover { transform: translateY(-3px); box-shadow: var(--sombra); }
@media (max-width: 520px) { .trip-gallery { grid-template-columns: repeat(2, 1fr); gap: .5rem; } }

/* ============ CATÁLOGO DE PRODUCTOS ============ */
.cat-intro { background: var(--crema-2); border: 1px solid var(--linea); border-left: 3px solid var(--oro); border-radius: 12px; padding: .9rem 1.1rem; font-size: .88rem; color: var(--tinta); line-height: 1.5; margin-bottom: 1.2rem; }
.cat-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.cat-tab { background: #fff; border: 1px solid var(--linea); border-radius: 999px; padding: .5rem 1rem; font: inherit; font-size: .85rem; font-weight: 600; color: var(--azul); cursor: pointer; transition: .15s; display: inline-flex; align-items: center; gap: .4rem; }
.cat-tab:hover { border-color: var(--oro); }
.cat-tab.active { background: var(--azul); color: #fff; border-color: var(--azul); }
.cat-count { background: rgba(0,0,0,.08); border-radius: 999px; font-size: .72rem; font-weight: 700; padding: .05rem .45rem; }
.cat-tab.active .cat-count { background: rgba(255,255,255,.22); color: #fff; }
.cat-toolbar { display: flex; gap: .7rem; align-items: center; margin-bottom: 1.1rem; flex-wrap: wrap; }
.cat-search { flex: 1; min-width: 200px; padding: .6rem .85rem; border: 1px solid var(--linea); border-radius: 10px; font: inherit; font-size: .9rem; color: var(--tinta); background: #fff; }
.cat-search:focus { outline: 0; border-color: var(--oro); box-shadow: 0 0 0 2px rgba(201,162,75,.18); }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .9rem; }
.cat-card { background: #fff; border: 1px solid var(--linea); border-radius: 14px; padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .35rem; transition: .15s; }
.cat-card:hover { border-color: var(--oro-suave); box-shadow: var(--sombra-suave); }
.cat-card-top { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; }
.cat-card-name { font-weight: 700; color: var(--azul); font-size: .98rem; line-height: 1.2; }
.cat-card-price { font-family: var(--serif); font-weight: 600; color: var(--oro-2); font-size: 1.05rem; white-space: nowrap; text-align: right; }
.cat-card-price small { display: block; font-family: var(--sans, inherit); font-weight: 400; color: var(--gris); font-size: .62rem; }
.cat-card-meta { font-size: .78rem; color: var(--oro-2); font-weight: 600; letter-spacing: .02em; }
.cat-card-sub { font-size: .82rem; color: var(--gris); line-height: 1.35; }
.cat-card-acc { display: flex; gap: .5rem; margin-top: .5rem; padding-top: .55rem; border-top: 1px dashed var(--linea); }
.cat-mini { background: 0; border: 1px solid var(--linea); border-radius: 8px; padding: .3rem .65rem; font: inherit; font-size: .76rem; font-weight: 600; color: var(--azul); cursor: pointer; transition: .15s; }
.cat-mini:hover { border-color: var(--oro); background: var(--crema); }
.cat-mini-del { color: #B23B3B; }
.cat-mini-del:hover { background: #FBECEA; border-color: #E7C9C4; }
.cat-empty { background: #fff; border: 1px dashed var(--linea); border-radius: 16px; padding: 2.6rem 1.5rem; text-align: center; color: var(--gris); line-height: 1.55; }
.cat-empty-ic { font-size: 2.2rem; margin-bottom: .5rem; }
.cat-pick-list { max-height: 50vh; overflow: auto; display: flex; flex-direction: column; gap: .45rem; }
.cat-pick-item { display: flex; justify-content: space-between; align-items: center; gap: .8rem; width: 100%; text-align: left; background: #fff; border: 1px solid var(--linea); border-radius: 12px; padding: .7rem .85rem; cursor: pointer; font: inherit; transition: .12s; }
.cat-pick-item:hover { border-color: var(--oro); background: var(--crema-2); }
.cat-pick-main { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.cat-pick-name { font-weight: 700; color: var(--azul); font-size: .92rem; }
.cat-pick-meta { font-size: .74rem; color: var(--oro-2); font-weight: 600; }
.cat-pick-sub { font-size: .78rem; color: var(--gris); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cat-pick-price { font-family: var(--serif); font-weight: 600; color: var(--oro-2); white-space: nowrap; }
.cat-pick-empty { text-align: center; color: var(--gris); padding: 1.8rem 1rem; line-height: 1.5; }
.pkg-item { display: flex; align-items: stretch; gap: .5rem; }
.pkg-use { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .12rem; text-align: left; background: #fff; border: 1px solid var(--linea); border-radius: 12px; padding: .7rem .85rem; cursor: pointer; font: inherit; transition: .12s; }
.pkg-use:hover { border-color: var(--oro); background: var(--crema-2); }
.pkg-del { background: 0; border: 1px solid var(--linea); border-radius: 10px; cursor: pointer; font-size: 1rem; padding: 0 .65rem; color: var(--gris); transition: .12s; }
.pkg-del:hover { color: #B23B3B; border-color: #E7C9C4; background: #FBECEA; }

/* ---- itinerario día por día en el cotizador ---- */
.cot-itin-list { display: flex; flex-direction: column; gap: .7rem; }
.cot-itin-vacio { color: var(--gris); font-style: italic; font-size: .88rem; padding: .8rem; background: var(--crema-2); border: 1px dashed var(--linea); border-radius: 10px; }
.cot-dia { background: var(--crema-2); border: 1px solid var(--linea); border-radius: 12px; padding: .8rem .9rem; }
.cot-dia-h { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.cot-dia-num { width: 64px; text-align: center; font-weight: 700; color: var(--azul); padding: .4rem .3rem; border: 1px solid var(--linea); border-radius: 8px; font: inherit; font-weight: 700; background: #fff; }
.cot-dia-ciudad { flex: 1; padding: .4rem .6rem; border: 1px solid var(--linea); border-radius: 8px; font: inherit; font-weight: 600; color: var(--oro-2); background: #fff; }
.cot-dia-titulo { width: 100%; padding: .45rem .6rem; border: 1px solid var(--linea); border-radius: 8px; font: inherit; color: var(--azul); background: #fff; margin-bottom: .4rem; }
.cot-dia-desc { width: 100%; min-height: 56px; padding: .5rem .6rem; border: 1px solid var(--linea); border-radius: 8px; font: inherit; font-size: .88rem; color: var(--tinta); background: #fff; resize: vertical; }
.cot-dia input:focus, .cot-dia textarea:focus { outline: 0; border-color: var(--oro); box-shadow: 0 0 0 2px rgba(201,162,75,.18); }
.cot-dia-h .cot-del { font-size: 1rem; }

/* ============================================================
   Mapa-catálogo de Colombia (colombia.html)
   ============================================================ */
.co-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1rem; margin: .2rem 0 1.4rem; }
.co-contador { margin: 0; font-weight: 600; color: var(--azul); }
.co-legend { display: flex; flex-wrap: wrap; gap: 1.1rem; font-size: .9rem; color: var(--tinta); }
.co-legend span { display: inline-flex; align-items: center; gap: .45rem; }
.co-swatch { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.co-swatch.conf { background: var(--azul); }
.co-swatch.cot  { background: var(--oro); }
.co-swatch.none { background: #e3ddcf; }

.co-layout { display: grid; grid-template-columns: 1.45fr 1fr; gap: 1.8rem; align-items: start; }

.co-map { position: relative; background: linear-gradient(180deg, #fbf9f4, #f1ece1);
  border: 1px solid rgba(15,36,56,.08); border-radius: var(--radio); padding: .6rem;
  box-shadow: var(--sombra-suave); }
.co-svg { width: 100%; height: auto; display: block; }

.co-svg path.depto { stroke: #fff; stroke-width: .7; transition: fill .18s ease, stroke .18s ease; }
.co-svg path.empty { fill: #e3ddcf; pointer-events: none; }
.co-svg path.has-trip { fill: var(--azul); cursor: pointer; }
.co-svg path.ally { fill: var(--oro); cursor: pointer; }
.co-svg path.has-trip:hover, .co-svg path.has-trip.on { fill: var(--oro); stroke: var(--azul-2); stroke-width: 1.2; }
.co-svg path.ally:hover, .co-svg path.ally.on { fill: var(--azul); stroke: var(--oro-2); stroke-width: 1.2; }
.co-svg path.depto:focus { outline: none; }
.co-svg path.depto:focus-visible { stroke: var(--azul-2); stroke-width: 1.4; }
.co-inset-box { fill: rgba(255,255,255,.55); stroke: rgba(15,36,56,.15); stroke-width: 1; }
.co-inset-label { font: 600 9px/1 Outfit, sans-serif; fill: var(--azul); }

/* Tooltip flotante */
.co-tip { position: absolute; z-index: 6; width: 230px; pointer-events: none;
  background: #fff; border-radius: 14px; overflow: hidden; box-shadow: var(--sombra);
  border: 1px solid rgba(15,36,56,.08); }
.co-tip-foto { height: 104px; background-size: cover; background-position: center; }
.co-tip-body { padding: .7rem .85rem .85rem; }
.co-tip-badge { display: inline-block; font-size: .68rem; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; padding: .2rem .5rem; border-radius: 999px; margin-bottom: .4rem; }
.co-tip-badge.conf { background: rgba(46,125,91,.14); color: #2E7D5B; }
.co-tip-badge.cot  { background: rgba(201,162,75,.18); color: var(--oro-2); }
.co-tip-nombre { font-family: Fraunces, serif; font-weight: 600; font-size: 1.02rem; color: var(--azul); line-height: 1.2; }
.co-tip-region { font-size: .82rem; color: #6b7682; margin-top: .15rem; }
.co-tip-precio { margin-top: .45rem; font-weight: 700; color: var(--tinta); }
.co-tip-cta { margin-top: .5rem; font-size: .82rem; font-weight: 600; color: var(--oro-2); }

/* Lista lateral */
.co-lista { display: flex; flex-direction: column; gap: .7rem; max-height: 760px; overflow-y: auto; padding-right: .3rem; }
.co-card { display: flex; align-items: center; gap: .8rem; background: #fff; cursor: pointer;
  border: 1px solid rgba(15,36,56,.08); border-radius: 14px; padding: .55rem; text-align: left;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.co-card:hover, .co-card.on { transform: translateY(-2px); box-shadow: var(--sombra-suave); border-color: var(--oro); }
.co-card-foto { width: 66px; height: 66px; border-radius: 10px; background-size: cover;
  background-position: center; flex: 0 0 auto; }
.co-card-foto-ph { background: linear-gradient(135deg, var(--azul-claro), var(--azul)); }
.co-card-info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.co-card-badge { font-size: .62rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.co-card-badge.conf { color: #2E7D5B; }
.co-card-badge.cot  { color: var(--oro-2); }
.co-card-nombre { font-family: Fraunces, serif; font-weight: 600; color: var(--azul); line-height: 1.2; margin-top: .12rem; }
.co-card-region { font-size: .8rem; color: #6b7682; }
.co-card-precio { font-size: .82rem; font-weight: 700; color: var(--tinta); margin-top: .2rem; }
.co-card-arrow { color: var(--oro); font-size: 1.2rem; flex: 0 0 auto; padding-right: .3rem; }

@media (max-width: 860px) {
  .co-layout { grid-template-columns: 1fr; }
  .co-lista { max-height: none; }
}

/* Indicador de sincronización con la nube (panel) */
.nube-ind { font-size: .82rem; font-weight: 600; color: var(--gris, #667); }
.nube-ind.ok   { color: #1c8a52; }
.nube-ind.warn { color: #b8860b; }
.nube-ind.err  { color: #c0392b; }

/* Rango de fechas (inicio → fin) en el calendario */
.salida-rango { font-size: .86rem; font-weight: 600; color: var(--azul, #16324F); margin: .1rem 0 .15rem; }
