/* Viaje Conexión — sistema de contraste y marca 1.1 */
body {
  background: var(--vc-paper);
  color: var(--vc-ink);
  font-weight: 400;
  letter-spacing: .005em;
}

.vc-default-logo,
.custom-logo {
  display: block;
  width: clamp(175px, 15vw, 235px);
  height: auto;
  max-height: none;
  filter: drop-shadow(0 5px 16px rgba(0, 0, 0, .28));
}

.vc-header {
  background: linear-gradient(180deg, rgba(3, 13, 18, .94), rgba(3, 13, 18, .74) 76%, transparent);
}

.vc-menu a,
.vc-header-cta {
  color: #fff;
  font-weight: 700;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .55);
}

.vc-veil {
  background: linear-gradient(90deg, rgba(2, 11, 16, .88) 0%, rgba(2, 11, 16, .58) 48%, rgba(2, 11, 16, .28) 100%), linear-gradient(0deg, rgba(2, 11, 16, .70), transparent 52%);
}

h1,
h2,
h3,
.vc-hero h1,
.vc-inner-hero h1 {
  font-weight: 500;
}

.vc-hero h1,
.vc-inner-hero h1 {
  color: #fff;
  text-shadow: 0 4px 28px rgba(0, 0, 0, .62);
}

.vc-hero__copy > p:not(.vc-kicker),
.vc-inner-hero .vc-wrap > p:last-child {
  color: #f3f5f4;
  font-weight: 500;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .62);
}

.vc-kicker,
.vc-kicker.dark {
  color: var(--vc-gold);
  font-weight: 700;
}

.vc-promise,
.vc-routes-section {
  background: #0d2732;
}

.vc-intro p,
.vc-place p,
.vc-features p,
.vc-lines small,
.vc-contact-area p,
.vc-legal p,
.vc-route-mosaic small,
.vc-destinations small {
  color: var(--vc-muted);
}

.vc-place,
.vc-form-wrap {
  background: #0d2a35;
}

.vc-features p {
  background: #091e27;
}

.vc-planner {
  background: #f3eee5;
  color: #071820;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .30);
}

.vc-planner small {
  color: #4c6069;
}

.vc-form input,
.vc-form select,
.vc-form textarea {
  background: #f8faf9;
  border: 1px solid #9fb0b7;
  color: #071820;
}

.vc-form label {
  color: #edf3f4;
  font-weight: 600;
}

.vc-button {
  color: #071820;
  font-weight: 700;
}

.vc-footer {
  background: #030d12;
}

@media (max-width: 760px) {
  .vc-default-logo,
  .custom-logo {
    width: 170px;
  }
}

.vc-language-switcher {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 18px 0 0;
  color: #fff;
}

.vc-language-switcher a {
  padding: 5px 2px;
  color: rgba(255, 255, 255, .58);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
}

.vc-language-switcher a.active {
  color: var(--vc-gold);
}

.vc-language-switcher span {
  width: 18px;
  height: 1px;
  background: rgba(255, 255, 255, .35);
}

.vc-footer-bottom .vc-language-switcher {
  margin: 0;
}

@media (max-width: 760px) {
  .vc-header > .vc-language-switcher {
    margin-left: auto;
    margin-right: 4px;
  }
}
