/* Pasaporte de Experiencias: banda "Experiencia insignia" de cada ubicación
   (partials/pasaporte/experiencia-insignia.htm) y bloque del home
   (partials/pasaporte/home.htm).

   Se apoya en las piezas del sitio: secciones .contentLoc.newUbic, títulos
   .titleNewUbi .h2 y botón .btnCtaGen__link. Aquí sólo va lo propio del módulo,
   con la paleta del sitio (salvia #818C70, bosque #222919, naranja #EA7F26).
   Se sirve con caché de 1 año: al cambiarlo, subir el ?v= en los dos partials. */

.wIns,.wPas{--w-sage:#818C70;--w-forest:#222919;--w-orange:#EA7F26;--w-muted:#5b5f55;--w-line:rgba(34,41,25,.14)}
.wIns *,.wPas *{box-sizing:border-box}
.wIns__wrap,.wPas__wrap{max-width:1140px;margin:0 auto}

/* Botón secundario: mismas medidas y letra que .btnCtaGen__link, en contorno salvia */
.wBtnSec{display:inline-block;min-width:270px;height:40px;padding:0 20px;line-height:38px;border:1px solid var(--w-sage);color:var(--w-sage);background:transparent;text-transform:uppercase;text-align:center;font-family:"Oswald",sans-serif;font-weight:500;font-size:.875rem;letter-spacing:1px;text-decoration:none}
.wBtnSec:hover,.wBtnSec:focus{background:var(--w-sage);color:#fff;text-decoration:none}
.wIns a:focus-visible,.wPas a:focus-visible,.wPas button:focus-visible{outline:2px solid var(--w-orange);outline-offset:3px}

/* Sellos: dibujo de línea pintado en un solo color */
.wSello{object-fit:contain;filter:brightness(0);opacity:.3}

/* ---------- Experiencia insignia (ubicación) ---------- */
.wIns .titleNewUbi{margin-bottom:28px}
.wIns__eyebrow{margin:10px 0 0;text-align:center;font-family:"Oswald",sans-serif;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--w-orange)}
.wIns__top{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.wIns__fig{margin:0;position:relative;aspect-ratio:3/2;overflow:hidden;min-width:0}
.wIns__photo{width:100%;height:100%;object-fit:cover;display:block}
.wIns__stamp{position:absolute;right:14px;bottom:12px;height:84px;width:auto;max-width:42%;object-fit:contain;filter:brightness(0) invert(1) drop-shadow(0 1px 6px rgba(0,0,0,.45))}
.wIns__txt{font-size:17px;line-height:1.6;margin:0 0 20px;max-width:48ch;color:#000}
.wIns__facts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px;padding:0;list-style:none}
.wIns__facts li{font-size:13px;letter-spacing:.04em;border:1px solid var(--w-line);padding:6px 12px;border-radius:999px;color:var(--w-muted)}
.wIns__facts li:first-child{border-color:var(--w-sage);color:var(--w-forest);font-weight:700}
.wIns__ctas{display:flex;flex-wrap:wrap;gap:12px}
.wIns__ctas .btnCtaGen__link{text-decoration:none}
.wIns__pass{margin-top:44px;padding-top:24px;border-top:1px solid var(--w-line)}
.wIns__passhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 14px}
.wIns__passhead p{margin:0;font-family:"Oswald",sans-serif;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--w-sage)}
.wIns__passhead span{font-size:13px;color:var(--w-muted)}
/* Flex y no grid: una fila incompleta (p. ej. 3 de 4 en móvil) queda centrada. --c = sellos por fila. */
.wIns__stamps{--c:var(--n,8);list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.wIns__stamps li{min-width:0;flex:0 0 calc((100% - (var(--c) - 1) * 10px) / var(--c))}
.wIns__stamps a,.wIns__stamps .is-here{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;text-decoration:none;color:var(--w-muted);padding:10px 4px;border:1px solid transparent;height:100%}
.wIns__stamps a:hover{border-color:var(--w-line);color:var(--w-forest);text-decoration:none}
.wIns__stamps .wSello{height:46px;width:auto;max-width:100%}
.wIns__stamps a:hover .wSello{opacity:.6}
.wIns__stamps .is-here{border-color:var(--w-orange);color:var(--w-forest)}
.wIns__stamps .is-here .wSello{opacity:.85}
.wIns__stamps b{font-weight:700;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;line-height:1.25;color:var(--w-forest)}
.wIns__stamps small{font-size:11.5px;line-height:1.3}
@media (max-width:991px){.wIns__top{gap:28px}.wIns__stamps{--c:4}}
/* Foto y texto lado a lado hasta tablet; en una columna la foto a todo lo ancho quedaba enorme. */
@media (max-width:767px){.wIns__top{grid-template-columns:1fr;gap:26px}}
/* En móvil los dos botones van en una fila, mitad y mitad. */
@media (max-width:991px){.wIns__ctas{flex-wrap:nowrap;gap:10px}.wIns__ctas a{flex:1 1 0;min-width:0;padding:0 8px;white-space:nowrap}}
@media (max-width:480px){.wIns__txt{font-size:16px}.wIns__stamps{--c:2}.wIns__ctas a{font-size:.8rem;letter-spacing:.5px}.wIns__stamp{height:64px}}

/* ---------- Pasaporte (home) ---------- */
.wPas .titleNewUbi{margin-bottom:36px}
.wPas .titleNewUbi p{margin:10px 0 0;text-align:center;font-family:"Oswald",sans-serif;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--w-orange)}
.wPas__lead{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:center}
.wPas__claim{font-size:17px;line-height:1.65;margin:0 0 18px;max-width:46ch;color:#000}
.wPas__steps{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:12px;counter-reset:s}
.wPas__steps li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;gap:4px;align-items:baseline}
.wPas__steps li:before{content:"0" counter(s);font-family:"Oswald",sans-serif;font-size:14px;color:var(--w-orange)}
.wPas__steps b{font-family:"Oswald",sans-serif;font-weight:400;font-size:17px;text-transform:uppercase;letter-spacing:.04em;color:var(--w-forest)}
.wPas__steps span{display:block;font-size:15px;color:var(--w-muted)}
.wPas__ctas{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.wPas__ctas .btnCtaGen__link{text-decoration:none}
.wPas__link{color:var(--w-forest);text-decoration:underline;text-underline-offset:6px;font-size:15px}

/* El pasaporte y su animación */
.wPas__anim{min-width:0;perspective:1600px}
.wPas__stage{position:relative;transform-style:preserve-3d}
.wPas__book{margin:0;width:100%;aspect-ratio:1.45;display:flex;align-items:center;padding:30px 24px;background-size:154% 125%;background-position:center;background-repeat:no-repeat;border-radius:14px}
.wPas__stamps{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 14px;list-style:none;margin:0;padding:0}
.wPas__stamp{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;font-size:10px;line-height:1.3;color:var(--w-muted);cursor:pointer}
.wPas__ring{width:100%;max-width:92px;aspect-ratio:1;border:1px dashed rgba(102,104,88,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .2s,transform .2s}
.wPas__ring .wSello{width:64%;height:64%;opacity:.22}
.wPas__stamp small{font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.wPas__stamp.is-earned .wPas__ring,.wPas__stamp.is-lit .wPas__ring{border:2px solid var(--w-orange);outline:1px solid var(--w-orange);outline-offset:-6px;transform:rotate(-7deg)}
.wPas__stamp.is-earned .wSello,.wPas__stamp.is-lit .wSello{opacity:.85}
.wPas__stamp.is-earned small{color:var(--w-orange)}
.wPas__cover{display:none;position:absolute;top:0;bottom:0;left:50%;width:50%;background-size:205% 108%;background-position:center;background-repeat:no-repeat;border-radius:5px 15px 15px 5px;transform-origin:left center;backface-visibility:hidden;box-shadow:10px 12px 25px rgba(34,41,25,.2)}
.wPas__caption{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:12px;color:var(--w-muted)}
.wPas__caption p{margin:0}
.wPas__caption b{color:var(--w-forest)}
.wPas__replay{background:none;border:0;border-bottom:1px solid var(--w-muted);color:var(--w-muted);font:400 12px "Lato",sans-serif;padding:8px 0;min-height:40px;cursor:pointer}
.wPas__replay[hidden]{display:none}
.wPas__anim.motion-ready .wPas__stage{transform:translateX(-25%)}
.wPas__anim.motion-ready .wPas__book,.wPas__anim.motion-ready .wPas__stamp{opacity:0}
.wPas__anim.motion-ready .wPas__cover{display:block}
.wPas__anim.is-opening .wPas__stage{animation:wpCenter 2s ease-in-out forwards}
.wPas__anim.is-opening .wPas__cover{animation:wpUnfold 2.4s cubic-bezier(.22,1,.36,1) forwards}
.wPas__anim.is-opening .wPas__book{animation:wpShow 1.6s ease .5s forwards}
.wPas__anim.is-opening .wPas__stamp{animation:wpStamp .45s ease forwards;animation-delay:calc(1.65s + var(--i)*.12s)}
@keyframes wpCenter{to{transform:translateX(0)}}
@keyframes wpUnfold{0%,12%{transform:rotateY(0);opacity:1}85%{opacity:1}100%{transform:rotateY(-175deg);opacity:0}}
@keyframes wpShow{to{opacity:1}}
@keyframes wpStamp{from{opacity:0;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}

/* Carrusel de experiencias */
.wPas__rail{margin-top:56px;padding-top:28px;border-top:1px solid var(--w-line)}
.wPas__railhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.wPas__railhead p{margin:0;font-family:"Oswald",sans-serif;font-size:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--w-sage)}
.wPas__cards{list-style:none;margin:0;padding:0 0 6px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3*18px)/4);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.wPas__cards::-webkit-scrollbar{display:none}
.wPas__card{scroll-snap-align:start;min-width:0}
.wPas__card a{display:block;color:var(--w-forest);text-decoration:none}
.wPas__card figure{margin:0 0 12px;aspect-ratio:3/2;overflow:hidden;background:#E4E0D6}
.wPas__card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.wPas__card a:hover img{transform:scale(1.04)}
.wPas__meta{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--w-muted)}
.wPas__meta b{color:var(--w-orange);font-weight:700;margin-right:6px}
.wPas__card h3{font-family:"Oswald",sans-serif;font-weight:400;font-size:19px;line-height:1.2;text-transform:uppercase;margin:6px 0 8px;color:var(--w-forest)}
/* Flechas: círculo blanco con chevrón salvia, sobre el borde de las fotos; se ocultan en los extremos.
   El JS las centra en la altura de la foto (--wPasTop). */
.wPas__viewport{position:relative}
.wPas__arrow{position:absolute;z-index:2;top:var(--wPasTop,30%);transform:translateY(-50%);width:42px;height:42px;padding:0;border:1px solid var(--w-line);border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(34,41,25,.15);cursor:pointer}
.wPas__arrow:before{content:"";position:absolute;top:50%;left:50%;width:10px;height:10px;border-top:2px solid var(--w-sage);border-right:2px solid var(--w-sage);transform:translate(-65%,-50%) rotate(45deg)}
.wPas__arrow--prev{left:-21px}.wPas__arrow--prev:before{transform:translate(-35%,-50%) rotate(-135deg)}
.wPas__arrow--next{right:-21px}
.wPas__arrow:hover{border-color:var(--w-sage)}
.wPas__arrow[hidden]{display:none}
@media (max-width:991px){.wPas__arrow{width:36px;height:36px}.wPas__arrow--prev{left:6px}.wPas__arrow--next{right:6px}}
/* Puntos: mismo estilo que los slick-dots de Opiniones (borde salvia, activo relleno) */
.wPas__dots{list-style:none;margin:22px 0 0;padding:0;display:flex;justify-content:center;gap:10px}
.wPas__dots button{display:block;width:15px;height:15px;padding:0;border:0;background:transparent;cursor:pointer;position:relative}
.wPas__dots button:before{content:"";position:absolute;top:3px;left:3px;width:8px;height:8px;border-radius:50%;border:1px solid var(--w-sage);background:transparent}
.wPas__dots button.is-active:before{background:var(--w-sage)}
.wPas__go{font-size:14px;text-decoration:underline;text-underline-offset:5px;color:var(--w-sage)}
@media (max-width:991px){.wPas__lead{gap:28px}.wPas__cards{grid-auto-columns:calc((100% - 18px)/2.3)}}
/* Una columna sólo en móvil; el pasaporte no pasa de 520 px para no verse enorme. */
@media (max-width:767px){.wPas__lead{grid-template-columns:1fr;gap:34px}.wPas__anim{width:100%;max-width:520px;margin:0 auto}}
@media (max-width:480px){.wPas__book{padding:20px 12px}.wPas__stamps{gap:14px 8px}.wPas__stamp{font-size:9px}.wPas__cards{grid-auto-columns:78%}.wPas__claim{font-size:16px}.wPas__ctas .btnCtaGen__link{width:100%;min-width:0}}
@media (prefers-reduced-motion:reduce){.wPas__anim .wPas__stage{transform:none!important;animation:none!important}.wPas__anim .wPas__book,.wPas__anim .wPas__stamp{opacity:1!important;animation:none!important}.wPas__cover,.wPas__replay{display:none!important}.wPas__card img,.wPas__ring{transition:none}}
