/* Componentes visuales de Explora V2. Las imágenes y sus textos alternativos vienen de Tailor. */
.explora-device-frame {
    --device-bezel: #17243a;
    --device-highlight: rgba(255, 255, 255, .38);
    --device-shadow: rgba(20, 20, 20, .28);
    margin: 0 auto;
    max-width: min(100%, 22rem);
}

.explora-device-frame__bezel {
    position: relative;
    overflow: hidden;
    padding: .32rem;
    border: 1px solid var(--device-highlight);
    border-radius: 3.15rem;
    background: var(--device-bezel);
    box-shadow: 0 1.5rem 3.25rem var(--device-shadow), inset 0 0 0 1px rgba(0, 0, 0, .68);
}

.explora-device-frame__screen {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 2.84rem;
}

@media (max-width: 575px) {
    .explora-device-frame { max-width: min(100%, 18.75rem); }
    .explora-device-frame__bezel { border-radius: 2.7rem; }
    .explora-device-frame__screen { border-radius: 2.42rem; }
}

.explora-landing { --explora-primary: #167891; --explora-heading: #1c144e; --explora-ink: #17243a; --explora-surface: #f7fbfc; }
.explora-landing { color: var(--explora-ink); }
.explora-landing__hero { padding: 11rem 0 5.5rem; background: var(--explora-surface); }
.explora-template-hero { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(48rem, 56vw, 61rem); padding-top: clamp(4.5rem, 7vw, 7.5rem); background-color: var(--explora-ink); background-image: var(--explora-hero-image); background-position: center; background-size: cover; }
.explora-template-hero::before { position: absolute; z-index: -1; inset: 0; background: rgba(23, 36, 58, .72); content: ''; }
.explora-template-hero__composition { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr); align-items: end; min-height: inherit; gap: clamp(2rem, 6vw, 7.5rem); }
.explora-template-hero__copy { align-self: center; max-width: 43rem; padding: 9rem 0 8rem; color: #fff; }
.explora-template-hero__eyebrow { margin: 0 0 1.25rem; color: #7ee5eb; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.explora-template-hero h1 { max-width: 42rem; margin: 0; color: #fff; font-size: clamp(2.8rem, 5.1vw, 5.25rem); font-weight: 700; letter-spacing: -.045em; line-height: .98; }
.explora-template-hero__intro { max-width: 35rem; margin: 1.7rem 0 0; color: #fff; font-size: clamp(1rem, 1.25vw, 1.15rem); line-height: 1.7; }
.explora-template-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.3rem; }
.explora-template-hero__action { display: inline-flex; align-items: center; justify-content: center; min-height: 3.5rem; padding: .7rem 1.35rem; border: 1px solid #fff; border-radius: .35rem; font-weight: 700; line-height: 1.25; text-align: center; text-decoration: none; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.explora-template-hero__action--primary { border-color: #167891; color: #fff; background: #167891; }
.explora-template-hero__action--secondary { color: #fff; background: transparent; }
.explora-template-hero__action:hover, .explora-template-hero__action:focus-visible { border-color: #7ee5eb; color: #17243a; background: #7ee5eb; }
.explora-template-hero__screen { position: relative; align-self: end; width: min(100%, 25.5rem); margin: 8rem auto -7.75rem; }
.explora-template-hero__screen .explora-device-frame { max-width: 100%; }
.explora-template-explore { position: relative; overflow: hidden; padding: clamp(6rem, 10vw, 10.5rem) 0 clamp(6rem, 10vw, 9rem); background: #fff; }
.explora-template-explore__intro { max-width: 48rem; margin: 0 auto clamp(3rem, 6vw, 5.5rem); text-align: center; }
.explora-template-explore__eyebrow { margin: 0; color: #167891; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-align: center; text-transform: uppercase; }
.explora-template-explore h2 { max-width: 42rem; margin: 1rem auto 0; color: #1c144e; font-size: clamp(2.35rem, 4vw, 4.5rem); font-weight: 700; letter-spacing: -.045em; line-height: 1; text-align: center; }
.explora-template-explore__lead { max-width: 39rem; margin: 1.5rem auto 0; color: #17243a; font-size: clamp(1.05rem, 1.4vw, 1.22rem); line-height: 1.7; text-align: center; }
.explora-template-explore__dossier { width: 100%; overflow: hidden; background: #17243a; }
.explora-template-explore__dossier-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 22rem) minmax(0, 1fr); grid-template-rows: minmax(17rem, 1fr) minmax(17rem, 1fr); column-gap: clamp(2rem, 5vw, 6rem); min-height: clamp(38rem, 58vw, 48rem); max-width: 75rem; margin: 0 auto; padding: clamp(3.5rem, 6vw, 6rem) clamp(1.5rem, 5vw, 4rem); position: relative; }
.explora-template-explore__utilities { display: contents; }
.explora-template-explore__utility { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; max-width: 20rem; padding: 1.5rem 0; border-top: 1px solid rgba(255, 255, 255, .2); }
.explora-template-explore__utility:nth-child(1) { grid-column: 1; grid-row: 1; align-self: end; }
.explora-template-explore__utility:nth-child(2) { grid-column: 3; grid-row: 1; align-self: end; }
.explora-template-explore__utility:nth-child(3) { grid-column: 1; grid-row: 2; align-self: start; }
.explora-template-explore__utility:nth-child(4) { grid-column: 3; grid-row: 2; align-self: start; }
.explora-template-explore__utility:last-child { border-bottom: 1px solid rgba(255, 255, 255, .2); }
.explora-template-explore__number { padding-top: .25rem; color: #7ee5eb; font-size: .8rem; font-weight: 700; letter-spacing: .12em; }
.explora-template-explore__utility h3 { margin: 0; color: #fff; font-size: clamp(1.25rem, 1.8vw, 1.65rem); font-weight: 700; line-height: 1.15; }
.explora-template-explore__utility p { max-width: 29rem; margin: .55rem 0 0; color: #fff; font-size: 1rem; line-height: 1.65; }
.explora-template-explore__screen { position: relative; z-index: 1; grid-column: 2; grid-row: 1 / 3; align-self: start; width: min(100%, 21.5rem); margin: clamp(1rem, 3vw, 3rem) auto 0; }
.explora-template-explore__screen .explora-device-frame { max-width: 100%; }
@media (max-width: 991px) { .explora-template-hero { min-height: auto; } .explora-template-hero__composition { gap: 2rem; } .explora-template-hero__copy { padding: 8rem 0 7rem; } .explora-template-hero__screen { margin-bottom: -5.5rem; } .explora-template-explore__intro { max-width: 41rem; } .explora-template-explore__dossier-inner { grid-template-columns: minmax(0, 1fr) minmax(15.5rem, 18rem) minmax(0, 1fr); column-gap: 1.5rem; padding-right: 2rem; padding-left: 2rem; } .explora-template-explore__utility { grid-template-columns: 2.25rem minmax(0, 1fr); gap: .75rem; } }
@media (max-width: 767px) { .explora-template-hero { padding-top: 4.5rem; background-position: 64% center; } .explora-template-hero::before { background: rgba(23, 36, 58, .82); } .explora-template-hero__composition { grid-template-columns: 1fr; gap: 0; } .explora-template-hero__copy { padding: 5.25rem 0 3.5rem; } .explora-template-hero h1 { max-width: 34rem; } .explora-template-hero__intro { margin-top: 1.25rem; } .explora-template-hero__actions { margin-top: 1.8rem; } .explora-template-hero__action { width: 100%; } .explora-template-hero__screen { width: min(82vw, 22rem); margin: 1rem auto -5rem; } .explora-template-explore { padding: 6rem 0; } .explora-template-explore__intro { margin-bottom: 3rem; } .explora-template-explore__lead { max-width: 31rem; } .explora-template-explore__dossier-inner { grid-template-columns: 1fr; grid-template-rows: auto auto; min-height: 0; padding: 2.75rem 1.5rem 0; } .explora-template-explore__utilities { display: block; grid-column: 1; grid-row: 2; margin-top: 2.5rem; } .explora-template-explore__utility, .explora-template-explore__utility:nth-child(n) { grid-column: auto; grid-row: auto; align-self: auto; max-width: none; padding: 1.35rem 0; } .explora-template-explore__utility p { font-size: .97rem; } .explora-template-explore__screen { grid-column: 1; grid-row: 1; width: min(100%, 19rem); margin: 0 auto; } }
@media (prefers-reduced-motion: reduce) { .explora-template-hero__action { transition: none; } }

/* Lista + mapa: comparación editorial; ambas vistas dejan visible la misma decisión de viaje. */
.explora-template-map { position: relative; overflow: hidden; color: #17243a; background: #fff; }
.explora-template-map__layout { display: grid; grid-template-columns: minmax(10rem, .7fr) minmax(18rem, 1.1fr) minmax(10rem, .7fr); grid-template-areas: 'list copy map'; align-items: center; gap: clamp(1.25rem, 3.5vw, 4rem); }
.explora-template-map__copy { grid-area: copy; align-self: center; text-align: center; }
.explora-template-map__copy .subtitle { color: #167891; }
.explora-template-map__copy .section-title { text-align: center; }
.explora-template-map__copy .title { margin-top: 1rem; color: #1c144e; font-size: clamp(2.35rem, 4vw, 4.5rem); font-weight: 700; letter-spacing: -.045em; line-height: 1; }
.explora-template-map__copy p { max-width: 27rem; margin: 1.35rem auto 0; color: #17243a; font-size: 1.08rem; line-height: 1.7; }
.explora-template-map__visual { display: flex; min-width: 0; margin: 0; }
.explora-template-map__visual--list { grid-area: list; justify-content: flex-end; align-items: flex-end; }
.explora-template-map__visual--map { grid-area: map; justify-content: flex-start; align-items: flex-end; }
.explora-template-map__screen { width: 100%; }
.explora-template-map__screen--list, .explora-template-map__screen--map { max-width: clamp(12rem, 18vw, 18.5rem); }
.explora-template-map__screen .explora-device-frame { max-width: 100%; }
.explora-template-map__callouts { display: grid; gap: .85rem; margin: 2rem 0 0; padding: 0; list-style: none; text-align: left; }
.explora-template-map__callout { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); gap: .8rem; padding: 1.25rem 1.2rem; border: 1px solid rgba(23, 36, 58, .25); border-radius: .35rem; color: #17243a; background: #fff; box-shadow: 0 1.25rem 2.5rem rgba(23, 36, 58, .16); }
.explora-template-map__callout-number { padding-top: .2rem; color: #167891; font-size: .78rem; font-weight: 700; letter-spacing: .12em; }
.explora-template-map__callout h3 { margin: 0; color: #1c144e; font-size: 1.18rem; font-weight: 700; line-height: 1.2; }
.explora-template-map__callout p { margin: .45rem 0 0; color: #17243a; font-size: .92rem; line-height: 1.55; }
@media (max-width: 991px) { .explora-template-map__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: 'copy copy' 'list map'; gap: 2.5rem clamp(2rem, 8vw, 6rem); } .explora-template-map__copy { max-width: 38rem; margin: 0 auto; } .explora-template-map__visual--list { justify-content: flex-end; } .explora-template-map__visual--map { justify-content: flex-start; } .explora-template-map__screen--list, .explora-template-map__screen--map { max-width: 17rem; } .explora-template-map__callout { padding: 1rem; } .explora-template-map__callout h3 { font-size: 1.06rem; } .explora-template-map__callout p { font-size: .86rem; } }
@media (max-width: 767px) { .explora-template-map { padding-bottom: 5.5rem; } .explora-template-map__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: 'copy copy' 'list map'; gap: 2rem 1rem; } .explora-template-map__visual--list { justify-content: flex-end; } .explora-template-map__visual--map { justify-content: flex-start; } .explora-template-map__screen--list, .explora-template-map__screen--map { max-width: min(100%, 12rem); } .explora-template-map__callouts { gap: .8rem; margin-top: 1.75rem; } }
/* Mi viaje: el recorrido personal se explica como una secuencia, no como otra vista de catálogo. */
.explora-template-trip { overflow: hidden; color: #17243a; background: #e0f7fa; }
.explora-template-trip__layout { display: grid; grid-template-columns: minmax(15rem, .82fr) minmax(18rem, 1.18fr); grid-template-areas: 'visual copy' 'visual steps'; align-items: center; column-gap: clamp(3rem, 9vw, 10rem); row-gap: 2.25rem; }
.explora-template-trip__copy { grid-area: copy; max-width: 34rem; margin: 0; }
.explora-template-trip__copy .subtitle { color: #167891; }
.explora-template-trip__copy .title { margin-top: 1rem; color: #1c144e; font-size: clamp(2.35rem, 4vw, 4.5rem); font-weight: 700; letter-spacing: -.045em; line-height: 1; }
.explora-template-trip__copy p { max-width: 31rem; margin-top: 1.35rem; color: #17243a; font-size: 1.08rem; line-height: 1.7; }
.explora-template-trip__visual { grid-area: visual; align-self: center; width: min(100%, 21rem); margin: 0 auto 0 0; }
.explora-template-trip__visual .explora-device-frame { max-width: 100%; }
.explora-template-trip__steps { display: grid; grid-area: steps; max-width: 35rem; margin: 0; padding: 0; list-style: none; }
.explora-template-trip__step { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1rem; padding: 1.2rem 0; border-top: 1px solid rgba(23, 36, 58, .25); }
.explora-template-trip__step:last-child { border-bottom: 1px solid rgba(23, 36, 58, .25); }
.explora-template-trip__number { padding-top: .15rem; color: #167891; font-size: .82rem; font-weight: 700; letter-spacing: .14em; }
.explora-template-trip__step h3 { margin: 0; color: #1c144e; font-size: clamp(1.2rem, 1.7vw, 1.55rem); font-weight: 700; line-height: 1.2; }
.explora-template-trip__step p { margin: .45rem 0 0; color: #17243a; font-size: .98rem; line-height: 1.6; }
@media (max-width: 991px) { .explora-template-trip__layout { grid-template-columns: minmax(13rem, .8fr) minmax(17rem, 1.2fr); column-gap: 3rem; } .explora-template-trip__visual { width: min(100%, 18rem); } }
@media (max-width: 767px) { .explora-template-trip { padding-top: 6rem; padding-bottom: 6rem; } .explora-template-trip__layout { grid-template-columns: 1fr; grid-template-areas: 'copy' 'visual' 'steps'; gap: 2.5rem; } .explora-template-trip__copy, .explora-template-trip__steps { max-width: 34rem; } .explora-template-trip__visual { width: min(100%, 19rem); margin: 0 auto; } .explora-template-trip__step { grid-template-columns: 2.5rem minmax(0, 1fr); gap: .8rem; } }
.explora-template-landing + .footer-area.style-02 { padding-top: 0; }
.explora-landing__hero-device, .explora-landing__explore-device, .explora-landing__map-device, .explora-landing__trip-device { transform: translateY(var(--explora-parallax-offset, 0)); transition: transform .1s linear; will-change: transform; }
.explora-landing h1, .explora-landing h2 { color: var(--explora-heading); font-weight: 700; line-height: 1.08; }
.explora-landing h1 { font-size: clamp(2.5rem, 5vw, 4.65rem); }
.explora-landing h2 { font-size: clamp(2rem, 3vw, 3.1rem); }
.explora-landing__eyebrow { margin-bottom: .7rem; color: var(--explora-primary); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.explora-landing__intro { max-width: 38rem; font-size: 1.18rem; line-height: 1.7; }
.explora-landing__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.explora-landing__action { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .65rem 1.2rem; border: 1px solid var(--explora-primary); border-radius: .4rem; font-weight: 700; text-decoration: none; }
.explora-landing__action--primary { color: #fff; background: var(--explora-primary); }
.explora-landing__action--secondary { color: var(--explora-primary); background: transparent; }
.explora-landing__action:hover, .explora-landing__action:focus-visible { color: #fff; background: var(--explora-heading); border-color: var(--explora-heading); }
.explora-landing__explore-section, .explora-landing__trip-section, .explora-landing__faq { padding: 6rem 0; }
.explora-landing__explore { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); align-items: center; gap: 5rem; padding: 0 8%; }
.explora-landing__explore-copy { align-self: start; padding-top: 4rem; border-top: 4px solid var(--explora-primary); }
.explora-landing__explore-copy p, .explora-landing__map-copy p { max-width: 34rem; font-size: 1.08rem; line-height: 1.7; }
.explora-landing__explore-device { position: relative; }
.explora-landing__explore-device .explora-device-frame { max-width: 25rem; }
.explora-landing__explore-device::before { position: absolute; inset: 16% -22% 9% 18%; z-index: -1; background: #e0f7fa; content: ''; }
.explora-landing__map { display: grid; grid-template-columns: minmax(0, 1fr) minmax(17rem, 27rem); align-items: center; gap: 6rem; width: 100%; min-height: 42rem; overflow: hidden; padding: 6rem max(7vw, calc((100vw - 1140px) / 2)); color: #fff; background: var(--explora-ink); }
.explora-landing__map h2, .explora-landing__map .explora-landing__eyebrow { color: #7ee5eb; }
.explora-landing__map-device .explora-device-frame { margin-bottom: -11rem; }
.explora-landing__map-device .explora-device-frame { max-width: 26rem; }
.explora-landing__trip { display: grid; grid-template-columns: 1fr minmax(16rem, 22rem) 1fr; align-items: center; gap: 3rem; padding: 1.5rem 6% 0; }
.explora-landing__trip-heading { align-self: start; padding-top: 3rem; }
.explora-landing__trip-copy { align-self: end; margin: 0; padding-bottom: 4rem; font-size: 1.08rem; line-height: 1.7; }
@media (prefers-reduced-motion: reduce) { .explora-landing__hero-device, .explora-landing__explore-device, .explora-landing__map-device, .explora-landing__trip-device { transform: none; transition: none; } }
@media (max-width: 767px) { .explora-landing__explore, .explora-landing__map, .explora-landing__trip { grid-template-columns: 1fr; gap: 2rem; padding: 3.5rem 1.5rem; } .explora-landing__map { min-height: auto; } .explora-landing__map-device .explora-device-frame { margin-bottom: -5rem; } .explora-landing__trip-device { order: 2; } .explora-landing__trip-copy { order: 3; padding-bottom: 0; } }
.explora-landing__faq { background: #e0f7fa; }
.explora-landing__faq-list { max-width: 48rem; margin: 0 auto; }
.explora-landing__faq details { padding: 1.15rem 0; border-bottom: 1px solid #e9eef1; }
.explora-landing__faq summary { cursor: pointer; color: var(--explora-heading); font-weight: 700; }
.explora-landing__faq p { margin: .85rem 1.5rem 0 0; line-height: 1.65; }
@media (max-width: 991px) { .explora-landing__hero { padding-top: 8.5rem; } .explora-landing__hero .explora-device-frame { margin-top: 2.5rem; } }

/* Rutas: portada editorial + secuencia; no simula navegación GPS ni una tarjeta de destino. */
.routes-template-landing { color: #17243a; background: #fff; }
body:has(.routes-template-landing) .navbar-area.white .navbar-nav > li > a,
body:has(.routes-template-landing) .site-language-switcher { color: #fff !important; }
body:has(.routes-template-landing) .navbar-area.white .navbar-nav > li.current-menu-item > a,
body:has(.routes-template-landing) .navbar-area.white .navbar-nav > li > a:focus-visible,
body:has(.routes-template-landing) .site-language-switcher:hover,
body:has(.routes-template-landing) .site-language-switcher:focus-visible { color: #7ee5eb !important; }
body:has(.routes-template-landing) .navbar-area.white .navbar-nav > li.current-menu-item.menu-item-has-children::before { color: #7ee5eb; }
@media (hover: hover) {
    body:has(.routes-template-landing) .navbar-area.white .navbar-nav > li:hover > a,
    body:has(.routes-template-landing) .navbar-area.white .navbar-nav > li.menu-item-has-children:hover::before { color: #7ee5eb !important; }
}
body:has(.routes-template-landing) .navbar-area .navbar-toggler { border-color: #fff; }
body:has(.routes-template-landing) .navbar-area .navbar-toggler .navbar-toggler-icon::before,
body:has(.routes-template-landing) .navbar-area .navbar-toggler .navbar-toggler-icon::after { background: #fff; }
.routes-template-sequence__heading > p, .routes-template-passport p { margin: 0; color: #167891; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.routes-template-introduction { padding: clamp(4.5rem, 8vw, 7.5rem) 0; background: #fff; }
.routes-template-introduction__grid { display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(19rem, .86fr); gap: clamp(3rem, 11vw, 12rem); align-items: end; }
.routes-template-introduction__title { max-width: 40rem; }
.routes-template-introduction__title > p { margin: 0; color: #167891; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.routes-template-introduction__title h2 { margin: 1rem 0 0; color: #1c144e; font-size: clamp(2.35rem, 4.7vw, 4.75rem); font-weight: 700; letter-spacing: -.055em; line-height: .98; }
.routes-template-introduction__copy { max-width: 31rem; padding-bottom: .35rem; }
.routes-template-introduction__copy > p { margin: 0; color: #17243a; font-size: clamp(1.03rem, 1.4vw, 1.18rem); line-height: 1.7; }
.routes-template-introduction__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.routes-template-introduction__action { display: inline-flex; align-items: center; justify-content: center; min-height: 3.1rem; padding: .65rem 1.15rem; border: 1px solid #167891; border-radius: .35rem; font-weight: 700; text-align: center; text-decoration: none; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.routes-template-introduction__action--primary { color: #fff; background: #167891; }
.routes-template-introduction__action--secondary { color: #167891; background: #fff; }
.routes-template-introduction__action:hover, .routes-template-introduction__action:focus-visible { border-color: #1c144e; color: #fff; background: #1c144e; }
.routes-template-sequence { position: relative; overflow: hidden; padding: clamp(5.5rem, 10vw, 9rem) 0; background: #fff; }
.routes-template-sequence .container { display: grid; grid-template-columns: minmax(14rem, .72fr) minmax(13rem, .54fr) minmax(20rem, 1.12fr); align-items: start; gap: clamp(2.5rem, 5vw, 6rem); }
.routes-template-sequence__heading { position: sticky; top: 2rem; max-width: 23rem; }
.routes-template-sequence__heading h2 { margin: 1rem 0 0; color: #1c144e; font-size: clamp(2rem, 3.8vw, 3.8rem); font-weight: 700; letter-spacing: -.045em; line-height: 1; }
.routes-template-sequence__visual { position: sticky; top: 2rem; width: min(100%, 16.5rem); margin: 0; }
.routes-template-sequence__screen { width: 100%; }
.routes-template-sequence__screen .explora-device-frame { max-width: 100%; }
.routes-template-sequence__visual figcaption { margin-top: 1.25rem; color: #17243a; font-size: .94rem; line-height: 1.55; }
.routes-template-sequence__list { position: relative; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.routes-template-sequence__list::before { position: absolute; top: 1.7rem; bottom: 1.7rem; left: 1.05rem; border-left: 1px solid rgba(22, 120, 145, .4); content: ''; }
.routes-template-sequence__item { position: relative; display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); gap: 1.3rem; padding: 1.5rem 0; }
.routes-template-sequence__number { position: relative; z-index: 1; display: inline-flex; width: 2.1rem; height: 2.1rem; align-items: center; justify-content: center; border: 1px solid #167891; border-radius: 50%; color: #167891; background: #fff; font-size: .76rem; font-weight: 700; letter-spacing: .06em; }
.routes-template-sequence__item h3 { margin: .12rem 0 0; color: #1c144e; font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 700; line-height: 1.2; }
.routes-template-sequence__item p { max-width: 34rem; margin: .55rem 0 0; font-size: 1rem; line-height: 1.7; }
.routes-template-passport { padding: clamp(4rem, 8vw, 7rem) 0; color: #17243a; background: #e0f7fa; }
.routes-template-passport__inner { display: grid; grid-template-columns: minmax(17rem, 1fr) minmax(18rem, .82fr); gap: clamp(2.5rem, 10vw, 10rem); align-items: end; }
.routes-template-passport p { color: #167891; }
.routes-template-passport h2 { max-width: 34rem; margin: 1rem 0 0; color: #1c144e; font-size: clamp(2rem, 3.8vw, 3.8rem); font-weight: 700; letter-spacing: -.045em; line-height: 1; }
.routes-template-passport__copy > p { margin: 0; color: #17243a; font-size: 1.05rem; font-weight: 400; letter-spacing: normal; line-height: 1.7; text-transform: none; }
.routes-template-passport__action { display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.5rem; color: #1c144e; font-weight: 700; text-decoration: none; }
.routes-template-passport__action:hover, .routes-template-passport__action:focus-visible { color: #167891; text-decoration: underline; text-underline-offset: .3rem; }
.routes-template-landing + .footer-area.style-02 { padding-top: 0; }
@media (max-width: 991px) { .routes-template-sequence .container { grid-template-columns: minmax(14rem, .8fr) minmax(18rem, 1.2fr); } .routes-template-sequence__visual { grid-column: 1; position: static; margin-top: 1rem; } .routes-template-sequence__list { grid-column: 2; grid-row: 1 / span 2; } }
@media (max-width: 767px) { .routes-template-introduction__grid, .routes-template-sequence .container, .routes-template-passport__inner { grid-template-columns: 1fr; gap: 2.75rem; } .routes-template-introduction__copy { max-width: 35rem; } .routes-template-introduction__action { width: 100%; } .routes-template-sequence__heading, .routes-template-sequence__visual { position: static; max-width: 30rem; } .routes-template-sequence__visual { width: min(100%, 17rem); margin-top: -1.25rem; } .routes-template-sequence__list { grid-column: auto; grid-row: auto; } .routes-template-sequence__list::before { bottom: 1.7rem; } }
@media (prefers-reduced-motion: reduce) { .routes-template-introduction__action { transition: none; } }

/* Hero del Inicio: las etiquetas de tienda vienen de Site\Cta y son más largas que las heredadas,
   por lo que los dos botones se reparten en dos líneas. Solo se ajusta su separación y alineación. */
.header-area.style-11 .header-inner .btn-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.header-area.style-11 .header-inner .btn-wrapper .boxed-btn-02 + .boxed-btn-02 {
    margin-left: 0;
}

@media only screen and (max-width: 991px) {
    .header-area.style-11 .header-inner .btn-wrapper {
        justify-content: center;
    }
}

/* Bloque "Explora e infórmate": mismo caso que el hero. Las etiquetas de tienda administradas
   ocupan dos líneas en esta columna, así que los botones necesitan separación propia al envolver. */
.connect-area .right-content-area .btn-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.connect-area .right-content-area .btn-wrapper .boxed-btn-02 + .boxed-btn-02 {
    margin-left: 0;
}

/* Bloque "Guía inteligente" del Inicio. Conserva la composición heredada —una sola pieza visual anclada a la
   derecha que acompaña a la introducción y a la cuadrícula— pero con capturas reales V2 dentro del marco de
   dispositivo. A diferencia del montaje anterior, la pieza queda dentro del ancho de la ventana. */
/* El borde derecho de la pieza se alinea con el del contenedor del texto (1140 px), para que las capturas
   acompañen al párrafo en vez de irse contra el borde de la ventana. */
.customer-reply-area .right-image.home-guide-visual {
    right: max(1.5rem, calc((100vw - 71.25rem) / 2));
    width: min(46vw, 32rem);
    pointer-events: none;
}

/* Las dos capturas forman una sola pieza: se superponen como un par, con la misma inclinación
   y a la altura del texto, en vez de flotar como imágenes sueltas. */
.home-guide-devices {
    position: relative;
    height: min(50vw, 41rem);
}

.home-guide-devices__item {
    position: absolute;
    width: min(23vw, 18rem);
    transform: rotate(-3deg);
}

.home-guide-devices__item--back {
    top: -2rem;
    right: 0;
}

.home-guide-devices__item--front {
    z-index: 1;
    top: 0;
    right: 12rem;
}

@media (prefers-reduced-motion: reduce) {
    .home-guide-devices__item--back,
    .home-guide-devices__item--front {
        transform: none;
    }
}

/* Las etiquetas de tienda administradas son más largas que las fijas anteriores ("App Store"/"Play Store"),
   así que en pantallas pequeñas los dos botones se muestran uno por línea en vez de en dos columnas. */
@media (max-width: 575px) {
    .app-download-buttons {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Bloque de Eventos: la captura ocupa su columna como lo hacía el montaje anterior, no un marco pequeño centrado. */
.home-events-device .explora-device-frame {
    max-width: min(100%, 25rem);
}

/* CTA final de descarga: con las etiquetas administradas los dos botones se reparten en dos líneas.
   Se conserva el centrado y se les da separación propia, en vez del margen lateral heredado. */
.call-to-action-inner-style-02 .btn-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}

.call-to-action-inner-style-02 .btn-wrapper .boxed-btn-02 + .boxed-btn-02 {
    margin-left: 0;
}

/* Enlace hacia Pasaporte Quindiano en el Inicio. Es un enlace editorial, no un botón sólido, para que
   acompañe al párrafo sin competir con los botones de tienda; usa el mismo patrón ya aprobado en Rutas. */
.home-blog-cta {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    margin: 2.25rem 0 1rem;
    color: #1c144e;
    font-weight: 700;
    text-decoration: none;
}

.home-blog-cta:hover,
.home-blog-cta:focus-visible {
    color: #167891;
    text-decoration: underline;
    text-underline-offset: .3rem;
}

/* Hub de planificación internacional. Reutiliza los tokens y el ritmo del resto del sitio;
   la tarjeta de guía muestra siempre autoría y fecha de revisión, que son parte del contenido. */
.plan-trip-hub__eyebrow { display: inline-block; margin-bottom: .75rem; color: #167891; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.plan-trip-hub__title { margin: 0 0 1.25rem; color: #1c144e; font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 700; line-height: 1.1; }
.plan-trip-hub__lead { max-width: 44rem; margin: 0 auto; color: #17243a; font-size: 1.08rem; line-height: 1.75; }
.plan-trip-hub__section-title { margin: 0 0 .75rem; color: #1c144e; font-size: clamp(1.6rem, 2.4vw, 2.2rem); font-weight: 700; }
.plan-trip-hub__section-lead { margin: 0 0 2.5rem; color: #17243a; line-height: 1.7; }
.plan-trip-hub__list { row-gap: 2rem; }
.plan-trip-guide-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid rgba(22, 120, 145, .18); border-radius: .6rem; background: #fff; }
.plan-trip-guide-card__image img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 9; }
.plan-trip-guide-card__content { display: flex; flex-direction: column; flex: 1; padding: 1.75rem; }
.plan-trip-guide-card__content h3 { margin: 0 0 .75rem; font-size: 1.35rem; font-weight: 700; line-height: 1.25; }
.plan-trip-guide-card__content h3 a { color: #1c144e; text-decoration: none; }
.plan-trip-guide-card__content h3 a:hover { color: #167891; }
.plan-trip-guide-card__content p { margin: 0 0 1rem; color: #17243a; line-height: 1.7; }
.plan-trip-guide-card__meta { margin-top: auto; color: #5a6b80; font-size: .88rem; }
.plan-trip-guide-card__link { display: inline-flex; align-items: center; gap: .6rem; margin-top: 1rem; color: #1c144e; font-weight: 700; text-decoration: none; }
.plan-trip-guide-card__link:hover, .plan-trip-guide-card__link:focus-visible { color: #167891; text-decoration: underline; text-underline-offset: .3rem; }
.plan-trip-hub__closing { background: #e0f7fa; }
.plan-trip-hub__closing h2 { margin: 0 0 1rem; color: #1c144e; font-size: clamp(1.6rem, 2.4vw, 2.2rem); font-weight: 700; }
.plan-trip-hub__closing p { max-width: 40rem; margin: 0 auto 1.75rem; color: #17243a; line-height: 1.7; }
.plan-trip-guide__meta { margin-bottom: 1.5rem; color: #5a6b80; font-size: .92rem; }
.plan-trip-guide__cover img { width: 100%; height: auto; border-radius: .6rem; }
.plan-trip-guide__lead { margin: 1.75rem 0; color: #1c144e; font-size: 1.15rem; font-weight: 600; line-height: 1.6; }
.plan-trip-guide__content { color: #17243a; font-size: 1.05rem; line-height: 1.8; }
.plan-trip-guide__content h2 { margin: 2.25rem 0 .9rem; color: #1c144e; font-size: 1.5rem; font-weight: 700; }
/* Una guía puede dividir una sección en pasos o días; el segundo nivel necesita jerarquía propia. */
.plan-trip-guide__content h3 { margin: 1.75rem 0 .6rem; color: #1c144e; font-size: 1.15rem; font-weight: 700; }
.plan-trip-guide__content ul,
.plan-trip-guide__content ol { margin: 0 0 1.25rem 1.1rem; }
.plan-trip-guide__content li { margin-bottom: .6rem; }
/* Una guía puede ser un cuestionario. Se replica el acordeón nativo que ya usa la FAQ de
   Propietarios —sin JavaScript, con <details>— para que se vea igual dentro del cuerpo editorial. */
.plan-trip-guide__content details { border-bottom: 1px solid rgba(23, 36, 58, .14); }
.plan-trip-guide__content details:first-of-type,
.plan-trip-guide__content h2 + details { border-top: 1px solid rgba(23, 36, 58, .14); }
.plan-trip-guide__content summary { position: relative; padding: 1.15rem 2.6rem 1.15rem 0; color: #1c144e; font-weight: 700; line-height: 1.5; cursor: pointer; list-style: none; }
.plan-trip-guide__content summary::-webkit-details-marker { display: none; }
.plan-trip-guide__content summary::after { position: absolute; top: 1rem; right: .3rem; content: "+"; color: #167891; font-size: 1.6rem; font-weight: 400; line-height: 1; }
.plan-trip-guide__content details[open] summary::after { content: "−"; }
.plan-trip-guide__content details p { margin: -.2rem 2.6rem 1.3rem 0; }
.plan-trip-guide__content details p:last-child { margin-bottom: 1.3rem; }

.plan-trip-guide__sources { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(22, 120, 145, .25); }
.plan-trip-guide__sources h2 { margin: 0 0 .75rem; color: #1c144e; font-size: 1.15rem; font-weight: 700; }
.plan-trip-guide__sources ul { margin: 0; padding-left: 1.1rem; color: #17243a; }
.plan-trip-guide__cta { margin-top: 2.5rem; }

.plan-trip-hub__intro { padding-bottom: 2.5rem; }
.plan-trip-hub__guides .plan-trip-hub__section-title { margin-top: 0; }

