:root{
  --ink:#f6f2e9;
  --dark:#11110f;
  --line:rgba(255,255,255,.34);
  --header-h:96px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#11110f;color:var(--ink);font-family:"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit}
.hero{position:relative;height:100svh;min-height:650px;overflow:hidden;background:#11110f}
.hero__slides,.slide{position:absolute;inset:0}
.slide{opacity:0;visibility:visible;pointer-events:none;transition:opacity 1.8s cubic-bezier(.4,0,.2,1);z-index:1;will-change:opacity}
.slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:2}
.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.045);filter:none;transition:transform 8s cubic-bezier(.2,.55,.25,1)}
.slide.is-active img{transform:scale(1)}
.slide__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,9,8,.625) 0%,rgba(9,9,8,.54) 10%,rgba(9,9,8,.42) 17%,rgba(9,9,8,.28) 24%,rgba(9,9,8,.18) 32%,rgba(9,9,8,.15) 100%),linear-gradient(180deg,rgba(0,0,0,1) 0%,rgba(0,0,0,.90) 8%,rgba(0,0,0,.70) 14%,rgba(0,0,0,.42) 18.5%,rgba(0,0,0,.18) 22%,transparent 26%,transparent 66%,rgba(0,0,0,.42) 74%,rgba(0,0,0,.82) 82%,#050505 91%,#050505 100%)}
.slide__copy{position:absolute;left:clamp(24px,4vw,70px);top:clamp(275px,39vh,395px);transform:none;width:min(760px,58vw);z-index:3}
.eyebrow{display:none}
.slide h1,.slide h2{position:relative;top:92px;margin:0 0 26px;font-family:"Times New Roman",Georgia,serif;font-size:clamp(29px,3.13vw,50px);font-weight:400;line-height:.92;letter-spacing:-.035em;text-wrap:balance}
.text-link{position:relative;top:78px;display:inline-flex;gap:18px;align-items:center;padding:8px 0 11px;border-bottom:1px solid rgba(255,255,255,.65);font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:gap .25s ease,border-color .25s ease}
.text-link:hover{gap:26px;border-color:#fff}

.topbar{position:absolute;left:0;right:0;top:0;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,70px);z-index:8;border-bottom:none;transition:background .35s ease,backdrop-filter .35s ease}
.topbar.is-solid{position:fixed;background:rgba(17,17,15,.9);backdrop-filter:blur(12px);border-bottom:none}
.menu-button,.language{appearance:none;border:0;background:transparent;color:#fff;cursor:pointer;text-transform:uppercase;font-size:11px;letter-spacing:.15em;display:inline-flex;align-items:center;gap:12px;padding:10px 0;justify-self:start}
.menu-icon{display:grid;gap:5px;width:21px}.menu-icon i{display:block;height:1px;background:#fff;width:100%}
.topbar__left{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.brand-seal{display:flex;align-items:center;flex:0 0 auto}
.brand-seal img{display:block;width:clamp(58px,4.61vw,74px);height:auto;object-fit:contain;transform:translateY(12px)}
.brand-logo{display:flex;align-items:center;flex:0 0 auto}.brand-logo img{display:block;width:clamp(162px,13.6vw,230px);height:auto;max-height:49px;object-fit:contain;transform:translateY(12px)}
.topbar__right{margin-left:auto;display:flex;align-items:center;gap:22px}.language{justify-self:auto}.topbar__right .menu-button{justify-self:auto}
.primary-action{
  position:relative;
  overflow:hidden;
  border:1px solid;
  border-image:linear-gradient(110deg,#e5a08f 0%,#efb19f 42%,#8ecff0 100%) 1;
  padding:13px 20px;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#fff;
  background:rgba(17,17,15,.18);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.primary-action::after{content:none}
.primary-action:hover{
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(0,0,0,.24);
}
#lima-citypass-passes{scroll-margin-top:90px}
html{scroll-behavior:smooth}
.hero__controls{position:absolute;left:clamp(22px,2.8vw,48px);right:clamp(22px,2.8vw,48px);bottom:20px;z-index:7;display:block;color:#fff}
.fs-controls{min-height:205px;padding-top:18px}
.fs-controls__topline{position:relative;height:6px;margin:0 0 31px}
.fs-controls__track{position:absolute;left:0;right:0;top:2px;height:1px;background:rgba(255,255,255,.62)}
.fs-controls__active{--fs-index:0;--fs-count:5;position:absolute;left:0;top:0;height:5px;width:calc(100% / var(--fs-count));background:#fff;transform:translateX(calc(var(--fs-index) * 100%));transition:transform .65s cubic-bezier(.22,.61,.36,1);will-change:transform}
.hero-pause{position:absolute;right:2px;top:-37px;width:22px;height:22px;border:1.5px solid rgba(255,255,255,.95);border-radius:50%;background:rgba(0,0,0,.06);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0;transition:background .2s,color .2s,transform .2s}
.hero-pause:hover{background:#fff;color:#111;transform:scale(1.04)}
.hero-pause__pause{display:flex;gap:3px;align-items:center;justify-content:center}.hero-pause__pause i{display:block;width:2px;height:8px;background:currentColor}.hero-pause__play{display:none;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid currentColor;margin-left:2px}.hero-pause.is-paused .hero-pause__pause{display:none}.hero-pause.is-paused .hero-pause__play{display:block}
.hero__tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;width:100%;gap:0}
.hero-tab{position:relative;min-width:0;border:0;background:transparent;color:rgba(255,255,255,.82);text-align:center;padding:0 10px 8px;cursor:pointer;transition:color .28s ease,transform .28s ease,opacity .28s ease}
.hero-tab::before{content:"";position:absolute;inset:-18px 0 -14px;z-index:-1;background:rgba(255,255,255,0);transition:background .28s ease}
.hero-tab:hover,.hero-tab:focus-visible,.hero-tab.is-active{color:#fff;transform:translateY(-2px)}
.hero-tab__icon{display:flex;align-items:center;justify-content:center;height:42px;margin:0 0 13px;opacity:.9;transition:opacity .25s,transform .25s}
.hero-tab__icon svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hero-tab b{display:block;font-size:10px;font-weight:600;letter-spacing:.16em;line-height:1.28;text-transform:uppercase;white-space:normal;overflow:visible;text-overflow:clip}
.hero-tab:hover .hero-tab__icon,.hero-tab.is-active .hero-tab__icon{opacity:1;transform:translateY(-1px)}
.fs-scroll-cue{position:absolute;left:2px;bottom:0;display:flex;align-items:center;gap:14px;font-size:9px;font-weight:600;letter-spacing:.25em;white-space:nowrap}.fs-scroll-cue i{display:block;width:2px;height:28px;background:#fff}
.hero__nav,.scroll-cue{display:none!important}
@keyframes progress{to{width:100%}}
.menu-panel{position:fixed;inset:0;z-index:20;pointer-events:none;visibility:hidden}.menu-panel.is-open{pointer-events:auto;visibility:visible}.menu-panel__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);opacity:0;transition:opacity .45s}.menu-panel.is-open .menu-panel__backdrop{opacity:1}.menu-panel__sheet{position:absolute;inset:0 auto 0 0;width:min(690px,100%);background:#f0ece3;color:#171714;padding:48px clamp(28px,6vw,84px);transform:translateX(-101%);transition:transform .6s cubic-bezier(.76,0,.24,1);display:flex;flex-direction:column}.menu-panel.is-open .menu-panel__sheet{transform:none}.menu-close{position:absolute;top:31px;right:34px;border:0;background:none;font-size:34px;font-weight:200;cursor:pointer}.menu-panel__label{margin:74px 0 34px;font-size:10px;letter-spacing:.24em}.menu-panel__nav{border-top:1px solid rgba(0,0,0,.25)}.menu-panel__nav a{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.2);font:400 clamp(27px,3vw,44px)/1.15 Georgia,serif;transition:padding-left .25s}.menu-panel__nav a:hover{padding-left:10px}.menu-panel__nav span{font:400 9px/1 Arial,sans-serif;letter-spacing:.12em}.menu-panel__footer{margin-top:auto;display:flex;justify-content:space-between;gap:20px;padding-top:30px;font-size:9px;letter-spacing:.13em;text-transform:uppercase}
.discover{background:#efeae0;color:#171714;padding:110px max(7vw,28px) 140px}.eyebrow--dark{color:#6d6a62}.discover h2{max-width:900px;margin:0 0 24px;font:400 clamp(38px,5vw,74px)/1.02 Georgia,serif;letter-spacing:-.03em}.discover>p:last-child{max-width:620px;font-size:17px;line-height:1.7;color:#5c5952}
@media (max-width:900px){
  :root{--header-h:78px}.hero{min-height:620px}.topbar{padding:0 18px}.language{display:none}.topbar__left{gap:10px}.brand-seal img{width:clamp(43px,11.52vw,52px);transform:translateY(8px)}.brand-logo img{width:clamp(128px,34vw,170px);max-height:37px;transform:translateY(8px)}.topbar__right{gap:9px}.primary-action{padding:10px 10px;font-size:8px}.menu-button{gap:7px}.menu-button>span:last-child{display:none}.slide__copy{left:18px;top:235px;width:calc(100vw - 36px)}.slide h1,.slide h2{position:relative;top:68px;font-size:clamp(30px,8.98vw,47px)}.text-link{top:56px}.hero__controls{left:18px;right:18px;bottom:14px;min-height:174px}.hero__tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.hero-tab{padding:0 2px 8px}.hero-tab b{font-size:7px;letter-spacing:.08em}.hero-tab__icon{height:32px;margin-bottom:8px}.hero-tab__icon svg{width:26px;height:26px}.fs-controls__topline{margin-bottom:22px}.hero-pause{top:-31px}.fs-scroll-cue{font-size:7px;letter-spacing:.16em}.hero__nav{display:none}.scroll-cue{display:none}.menu-panel__sheet{padding:28px}.menu-panel__label{margin-top:85px}.menu-panel__footer{flex-direction:column}.slide__shade{background:linear-gradient(90deg,rgba(9,9,8,.625) 0%,rgba(9,9,8,.54) 10%,rgba(9,9,8,.42) 17%,rgba(9,9,8,.28) 24%,rgba(9,9,8,.18) 32%,rgba(9,9,8,.15) 100%),linear-gradient(180deg,rgba(0,0,0,1) 0%,rgba(0,0,0,.90) 8%,rgba(0,0,0,.70) 14%,rgba(0,0,0,.42) 18.5%,rgba(0,0,0,.18) 22%,transparent 26%,transparent 62%,rgba(0,0,0,.44) 71%,rgba(0,0,0,.84) 80%,#050505 90.5%,#050505 100%)}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.slide,.slide img,.menu-panel__sheet,.menu-panel__backdrop{transition:none!important}.hero-tab.is-active::before{animation:none;width:100%}}

/* Lima City Pass — selector REAL de la primera imagen */
.slide[data-index="0"] > img{
  transform-origin:50% 50% !important;
  will-change:transform;
}


/* =========================================================
   Lima CityPass — mano + tarjeta como PNG INDEPENDIENTE
   Ajuste de realismo: la mano aparece después de cargar,
   sale más natural desde el borde inferior y no flota.
   ========================================================= */
.slide[data-index="0"] .hero-card-hand{
  position:absolute;
  right:clamp(8px,1.2vw,22px);
  bottom:clamp(-52px,-4.2vh,-28px);
  width:clamp(305px,27vw,425px);
  height:auto !important;
  object-fit:contain !important;
  object-position:center !important;
  opacity:0;
  visibility:hidden;
  transform:translate3d(0,12px,0) !important;
  transform-origin:72% 78%;
  transition:opacity .45s ease, transform .6s cubic-bezier(.22,.61,.36,1), filter .35s ease !important;
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.18)) !important;
  pointer-events:none;
  user-select:none;
  will-change:transform,opacity;
}
body.is-hero-hand-ready .slide[data-index="0"] .hero-card-hand{
  opacity:1;
  visibility:visible;
  transform:translate3d(0,0,0) !important;
}
@media (max-width:900px){
  .slide[data-index="0"] .hero-card-hand{
    width:clamp(240px,40vw,318px);
    right:-8px;
    bottom:-38px;
  }
}


/* =========================================================
   Selector de idioma: Español / English / Quechua
   ========================================================= */
.language-switcher{position:relative;display:flex;align-items:center}
.language{display:inline-flex!important;align-items:center;gap:7px}
.language img{width:18px;height:12px;display:block;object-fit:cover;border-radius:1px;box-shadow:0 0 0 1px rgba(255,255,255,.22)}
.language-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:158px;padding:7px;background:rgba(12,12,11,.94);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:30}
.language-menu.is-open{opacity:1;visibility:visible;transform:none}
.language-menu button{width:100%;border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:10px;padding:9px 10px;cursor:pointer;text-align:left;font-size:10px;letter-spacing:.11em;text-transform:uppercase}
.language-menu button:hover,.language-menu button.is-active{background:rgba(255,255,255,.09)}
.language-menu img{width:20px;height:13px;object-fit:cover;border-radius:1px;box-shadow:0 0 0 1px rgba(255,255,255,.18)}

@media(max-width:900px){
  .language-switcher{display:flex}
  .language{display:inline-flex!important}
  .language span#languageCode{display:inline}
  .language-menu{right:-8px}
}

/* =========================================================
   FOUR SEASONS-STYLE SCROLL HANDOFF — PORTADA -> CEVICHE
   Solo llega hasta la primera imagen de la siguiente sección.
   ========================================================= */
.hero{
  isolation:isolate;
}
.hero__slides{
  transform:scale(var(--hero-scroll-scale,1));
  transform-origin:50% 50%;
  will-change:transform,opacity;
  opacity:var(--hero-scroll-opacity,1);
}

.fs-feature-section{
  position:relative;
  z-index:3;
  min-height:104svh;
  margin:0;
  padding:clamp(88px,10.5vh,118px) 0 clamp(120px,17vh,175px);
  background:#000;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  overflow:hidden;
}
.fs-feature-frame{
  position:relative;
  width:min(84.5vw,1420px);
  aspect-ratio:2.86 / 1;
  overflow:hidden;
  background:#171717;
  transform:translate3d(0,var(--feature-rise,42px),0);
  opacity:var(--feature-opacity,.9);
  will-change:transform,opacity;
}
.fs-feature-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 57%;
  transform:scale(var(--feature-image-scale,1.035));
  transform-origin:50% 58%;
  filter:saturate(.98) contrast(1.015);
  will-change:transform;
}

@media (max-width:900px){
  .fs-feature-section{
    min-height:92svh;
    padding:72px 0 120px;
  }
  .fs-feature-frame{
    width:88vw;
    aspect-ratio:1.58 / 1;
  }
  .fs-feature-image{
    object-position:50% 54%;
  }
}

@media (prefers-reduced-motion:reduce){
  .hero__slides,.fs-feature-frame,.fs-feature-image{transform:none!important;opacity:1!important}
}

/* =========================================================
   ETAPA FOUR SEASONS 02 — handoff portada -> ceviche
   1) Ceviche entra desde el primer scroll y se acomoda sutilmente.
   2) Hero hace zoom-in durante el descenso.
   3) Menú inferior se desvanece.
   4) Mismo menú reaparece como cinta negra superior.
   5) Ceviche incluye copy + botón blanco.
   6) Todo se revierte al subir.
   ========================================================= */

.hero__slides{
  transform:scale(var(--hero-scroll-scale,1));
  opacity:1;
}

.hero__controls{
  opacity:var(--hero-controls-opacity,1);
  transform:translate3d(0,var(--hero-controls-shift,0px),0);
  will-change:opacity,transform;
  pointer-events:var(--hero-controls-events,auto);
}

.scroll-icon-ribbon{
  position:fixed;
  left:0;
  right:0;
  top:0;
  z-index:12;
  height:92px;
  padding:10px clamp(22px,2.8vw,48px) 8px;
  background:rgba(5,5,5,.82);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.12);
  opacity:var(--ribbon-opacity,0);
  transform:translate3d(0,var(--ribbon-y,-96px),0);
  pointer-events:var(--ribbon-events,none);
  visibility:var(--ribbon-visibility,hidden);
  will-change:transform,opacity;
}
.scroll-icon-ribbon__inner{
  width:100%;
  height:100%;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  align-items:center;
}
.scroll-icon-ribbon .ribbon-tab{
  appearance:none;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.82);
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer;
  text-align:center;
  transition:color .2s ease,opacity .2s ease;
}
.scroll-icon-ribbon .ribbon-tab:hover,
.scroll-icon-ribbon .ribbon-tab.is-active{color:#fff}
.scroll-icon-ribbon .hero-tab__icon{height:31px;margin:0;opacity:.92}
.scroll-icon-ribbon .hero-tab__icon svg{width:28px;height:28px}
.scroll-icon-ribbon b{font-size:9px;font-weight:600;letter-spacing:.15em;line-height:1.2;text-transform:uppercase}

.fs-feature-section{
  min-height:110svh;
  padding:0 0 clamp(120px,17vh,175px);
  margin-top:-2px;
  overflow:visible;
}
.fs-feature-frame{
  width:min(84.5vw,1420px);
  aspect-ratio:2.86 / 1;
  transform:translate3d(0,calc(var(--feature-rise,0px) + var(--feature-scroll-lift,0px)),0);
  opacity:1;
  will-change:transform;
}
.fs-feature-image{
  object-position:50% 57%;
  transform:scale(var(--feature-image-scale,1.025));
  will-change:transform;
}
.fs-feature-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,rgba(5,5,5,.68) 0%,rgba(5,5,5,.54) 18%,rgba(5,5,5,.25) 37%,rgba(5,5,5,.05) 58%,rgba(5,5,5,.02) 100%);
  pointer-events:none;
}
.fs-feature-copy{
  position:absolute;
  z-index:2;
  left:clamp(44px,6.1vw,102px);
  top:50%;
  transform:translateY(-50%);
  width:min(430px,34vw);
  color:#fff;
}
.fs-feature-eyebrow{
  margin:0 0 18px;
  font-size:11px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.22em;
}
.fs-feature-copy h2{
  margin:0 0 19px;
  font-family:"Times New Roman",Georgia,serif;
  font-size:clamp(34px,3.25vw,54px);
  line-height:.96;
  font-weight:400;
  letter-spacing:-.035em;
}
.fs-feature-description{
  max-width:420px;
  margin:0 0 26px;
  font-family:"Times New Roman",Georgia,serif;
  font-size:clamp(15px,1.05vw,18px);
  line-height:1.55;
}
.fs-feature-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 24px;
  background:#fff;
  color:#111;
  font-size:10px;
  font-weight:600;
  letter-spacing:.19em;
  text-transform:uppercase;
  transition:background .22s ease,color .22s ease;
}
.fs-feature-button:hover{background:#111;color:#fff}

@media(max-width:900px){
  .scroll-icon-ribbon{height:76px;padding:6px 10px 4px}
  .scroll-icon-ribbon .hero-tab__icon{height:26px}
  .scroll-icon-ribbon .hero-tab__icon svg{width:23px;height:23px}
  .scroll-icon-ribbon b{font-size:6.8px;letter-spacing:.08em}
  .fs-feature-section{padding:40px 0 100px;min-height:96svh}
  .fs-feature-frame{width:90vw;aspect-ratio:1.58 / 1}
  .fs-feature-copy{left:28px;width:min(68vw,360px)}
  .fs-feature-copy h2{font-size:clamp(28px,7vw,42px)}
  .fs-feature-description{font-size:14px;line-height:1.45}
  .fs-feature-eyebrow{font-size:9px}
  .fs-feature-button{min-height:40px;padding:0 18px;font-size:8px}
}

@media(prefers-reduced-motion:reduce){
  .hero__controls,.scroll-icon-ribbon{transform:none!important}
}

/* =========================================================
   ETAPA 06 — FIX CEVICHE SIN DISTORSION DURANTE SCROLL
   La fotografía queda geométricamente fija. El movimiento del
   handoff se hace solamente con el frame/contenedor completo.
   ========================================================= */
.fs-feature-image{
  transform:none !important;
  transform-origin:50% 50% !important;
  will-change:auto !important;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* =========================================================
   ETAPA 13 — TONO DE FONDO + MARCO SUTIL TIPO FOUR SEASONS
   Solo ajuste visual de la seccion del ceviche.
   ========================================================= */
.fs-feature-section{
  background:#050505 !important;
}
.fs-feature-frame{
  border:1px solid #2d2d2d;
  background:#111;
}

/* =========================================================
   ETAPA 15 — HEADER SECUNDARIO + COPY TIPO FOUR SEASONS
   Solo cambios visuales. No modifica el comportamiento scroll.
   ========================================================= */

/* Cinta superior: marca a la izquierda y opciones desplazadas a la derecha. */
.scroll-icon-ribbon{
  display:flex;
  align-items:center;
  gap:clamp(18px,2.2vw,38px);
  padding:9px clamp(24px,3vw,52px) 7px;
  border-top:0;
  border-bottom:2px solid rgba(255,255,255,.28);
}
.scroll-icon-ribbon__brand{
  flex:0 0 clamp(220px,17vw,300px);
  height:100%;
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  min-width:0;
}
.scroll-icon-ribbon__seal{
  display:block;
  width:50px;
  height:50px;
  object-fit:contain;
  flex:0 0 50px;
}
.scroll-icon-ribbon__wordmark{
  display:block;
  width:min(178px,11.8vw);
  height:auto;
  object-fit:contain;
}
.scroll-icon-ribbon__inner{
  flex:1 1 auto;
  width:auto;
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.scroll-icon-ribbon .ribbon-tab{
  gap:5px;
}
.scroll-icon-ribbon .hero-tab__icon{
  height:27px;
}
.scroll-icon-ribbon .hero-tab__icon svg{
  width:25px;
  height:25px;
}
.scroll-icon-ribbon b{
  font-size:8.5px;
  letter-spacing:.14em;
}

/* Bloque de texto sobre ceviche: escala/jerarquía del promo de Four Seasons. */
.fs-feature-copy{
  left:clamp(52px,6.2vw,104px);
  width:min(390px,31vw);
}
.fs-feature-eyebrow{
  display:none;
}
.fs-feature-copy h2{
  margin:0 0 18px;
  font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:clamp(14px,1.05vw,17px);
  line-height:1.28;
  font-weight:650;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.fs-feature-description{
  max-width:370px;
  margin:0 0 25px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(15px,1.02vw,17px);
  line-height:1.55;
  font-weight:400;
}
.fs-feature-button{
  width:176px;
  min-height:38px;
  padding:0 16px;
  font-size:9px;
  font-weight:650;
  letter-spacing:.22em;
  white-space:nowrap;
}

@media(max-width:900px){
  .scroll-icon-ribbon{
    gap:8px;
    padding:5px 10px 4px;
    border-bottom-width:1px;
  }
  .scroll-icon-ribbon__brand{
    flex-basis:118px;
    gap:6px;
  }
  .scroll-icon-ribbon__seal{
    width:31px;
    height:31px;
    flex-basis:31px;
  }
  .scroll-icon-ribbon__wordmark{
    width:78px;
  }
  .scroll-icon-ribbon .hero-tab__icon{
    height:22px;
  }
  .scroll-icon-ribbon .hero-tab__icon svg{
    width:20px;
    height:20px;
  }
  .scroll-icon-ribbon b{
    font-size:5.8px;
    letter-spacing:.06em;
  }
  .fs-feature-copy{
    left:28px;
    width:min(66vw,350px);
  }
  .fs-feature-copy h2{
    font-size:12px;
    letter-spacing:.17em;
    line-height:1.35;
  }
  .fs-feature-description{
    font-size:14px;
    line-height:1.45;
  }
  .fs-feature-button{
    width:158px;
    min-height:38px;
    font-size:8px;
  }
}


/* =========================================================
   ETAPA 16 — COPY MAS COMPACTO + CONTINUIDAD DEL NEGRO
   Solo visual. No modifica scroll, zoom ni posiciones.
   ========================================================= */

/* La portada termina exactamente en el tono del fondo del ceviche. */
.hero,
.fs-feature-section{
  background:#050505;
}

/* Escala del copy más próxima al promo de referencia Four Seasons. */
.fs-feature-copy{
  width:min(355px,29vw);
}
.fs-feature-copy h2{
  margin-bottom:15px;
  font-size:clamp(12px,.86vw,14.5px);
  line-height:1.30;
  letter-spacing:.205em;
  font-weight:650;
}
.fs-feature-description{
  max-width:345px;
  margin-bottom:22px;
  font-size:clamp(13px,.88vw,14.5px);
  line-height:1.52;
}
.fs-feature-button{
  width:164px;
  min-height:36px;
  padding:0 14px;
  font-size:8px;
  letter-spacing:.21em;
}

@media(max-width:900px){
  .fs-feature-copy{width:min(64vw,330px)}
  .fs-feature-copy h2{font-size:11px;line-height:1.34;letter-spacing:.16em}
  .fs-feature-description{font-size:13px;line-height:1.44}
  .fs-feature-button{width:150px;min-height:36px;font-size:7.5px}
}

/* =========================================================
   ETAPA 17 — ENCUADRE DEL PLATO + SOMBREADO LATERAL
   Solo visual. Mantiene exactamente el mismo lienzo y scroll.
   ========================================================= */

/* El ancho/alto del frame NO cambia. Solo desplazamos la foto
   dentro del recorte para que el plato quede centrado verticalmente. */
.fs-feature-image{
  object-position:50% 100% !important;
}

/* Oscurecimiento progresivo como la referencia: izquierda más oscura,
   transición larga hasta ~3/4 y último cuarto prácticamente original. */
.fs-feature-shade{
  background:linear-gradient(
    90deg,
    rgba(5,5,5,.68) 0%,
    rgba(5,5,5,.58) 18%,
    rgba(5,5,5,.43) 38%,
    rgba(5,5,5,.28) 56%,
    rgba(5,5,5,.14) 68%,
    rgba(5,5,5,.05) 75%,
    rgba(5,5,5,0) 82%,
    rgba(5,5,5,0) 100%
  ) !important;
}

@media(max-width:900px){
  .fs-feature-image{
    object-position:50% 100% !important;
  }
}

/* =========================================================
   ETAPA 18 — FIRMA / VERSION AL PIE DE LAS DOS PRIMERAS AREAS
   ========================================================= */
.hero::after,
.fs-feature-section::after{
  content:"Created by NelsonSQC © V.2.9";
  position:absolute;
  right:clamp(22px,2.8vw,48px);
  z-index:11;
  color:rgba(255,255,255,.62);
  font-family:Arial,Helvetica,sans-serif;
  font-size:8px;
  font-weight:400;
  line-height:1;
  letter-spacing:.12em;
  white-space:nowrap;
  pointer-events:none;
  text-transform:none;
}
.hero::after{
  bottom:13px;
}
.fs-feature-section::after{
  bottom:18px;
}

@media(max-width:900px){
  .hero::after,
  .fs-feature-section::after{
    right:18px;
    font-size:7px;
    letter-spacing:.08em;
  }
  .hero::after{bottom:9px}
  .fs-feature-section::after{bottom:12px}
}

/* =========================================================
   ETAPA 19 — FIRMA DE PORTADA SE DESVANECE CON EL SCROLL
   Sigue exactamente la misma opacidad del bloque inferior del hero,
   donde se encuentra “Desliza para descubrir más”.
   ========================================================= */
.hero::after{
  opacity:var(--hero-controls-opacity,1);
  transition:opacity .28s ease;
  will-change:opacity;
}


/* =========================================================
   ETAPA 20 — TERCERA AREA: ¿QUE ES LIMA CITYPASS?
   Inspirada conceptualmente en una matriz de beneficios,
   reinterpretada con el lenguaje visual premium del sitio.
   ========================================================= */
.what-pass-section{
  position:relative;
  z-index:4;
  background:#0a0a09;
  color:#f4f1ea;
  padding:clamp(92px,11vh,132px) clamp(28px,5.4vw,92px) clamp(112px,14vh,160px);
  border-top:1px solid rgba(255,255,255,.11);
}
.what-pass-inner{
  width:min(1460px,100%);
  margin:0 auto;
}
.what-pass-heading{
  max-width:760px;
  margin:0 auto clamp(56px,7vh,82px);
  text-align:center;
}
.what-pass-kicker{
  margin:0 0 19px;
  color:rgba(255,255,255,.56);
  font-family:Arial,Helvetica,sans-serif;
  font-size:9px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.28em;
}
.what-pass-heading h2{
  margin:0;
  font-family:"Times New Roman",Georgia,serif;
  font-size:clamp(34px,3.25vw,56px);
  line-height:1;
  font-weight:400;
  letter-spacing:-.025em;
}
.what-pass-intro{
  max-width:690px;
  margin:24px auto 0;
  color:rgba(255,255,255,.68);
  font-family:"Times New Roman",Georgia,serif;
  font-size:clamp(15px,1.05vw,18px);
  line-height:1.65;
}
.what-pass-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.14);
  border-left:1px solid rgba(255,255,255,.14);
}
.what-pass-card{
  position:relative;
  min-height:335px;
  padding:clamp(32px,3.2vw,52px);
  border-right:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
  background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,0));
  overflow:hidden;
  transition:background .35s ease,transform .35s ease;
}
.what-pass-card::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:2px;
  background:linear-gradient(90deg,#18a5ba,#f2a214,#5aa6ff);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s ease;
}
.what-pass-card:hover{
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
}
.what-pass-card:hover::after{transform:scaleX(1)}
.what-pass-number{
  position:absolute;
  right:28px;
  top:24px;
  color:rgba(255,255,255,.18);
  font-family:Arial,Helvetica,sans-serif;
  font-size:10px;
  letter-spacing:.22em;
}
.what-pass-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:50px;
  height:50px;
  margin-bottom:34px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:50%;
  color:#f4f1ea;
}
.what-pass-icon svg{
  width:27px;
  height:27px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.what-pass-card h3{
  margin:0 0 17px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:11px;
  font-weight:650;
  line-height:1.35;
  letter-spacing:.20em;
}
.what-pass-card p{
  max-width:345px;
  margin:0 0 30px;
  color:rgba(255,255,255,.64);
  font-family:"Times New Roman",Georgia,serif;
  font-size:15px;
  line-height:1.65;
}
.what-pass-link{
  position:absolute;
  left:clamp(32px,3.2vw,52px);
  bottom:38px;
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
  font-size:8px;
  font-weight:600;
  line-height:1;
  letter-spacing:.22em;
  text-decoration:none;
  text-transform:uppercase;
}
.what-pass-link span{
  display:inline-block;
  margin-left:10px;
  transition:transform .25s ease;
}
.what-pass-link:hover span{transform:translateX(5px)}

@media(max-width:1000px){
  .what-pass-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .what-pass-section{padding:76px 20px 100px}
  .what-pass-heading{margin-bottom:44px}
  .what-pass-heading h2{font-size:32px}
  .what-pass-intro{font-size:14px;line-height:1.55}
  .what-pass-grid{grid-template-columns:1fr}
  .what-pass-card{min-height:290px;padding:30px 28px}
  .what-pass-link{left:28px;bottom:30px}
}


/* =========================================================
   ETAPA 21 — TERCERA SECCION INMEDIATA + FONDO CLARO
   Reduce solo el espacio de salida del bloque ceviche y cambia
   la tercera zona a un marfil cálido. No altera el scroll JS.
   ========================================================= */

/* El bloque oscuro termina poco después del lienzo del ceviche.
   Se elimina el gran vacío negro que dejaba el min-height anterior. */
.fs-feature-section{
  min-height:0 !important;
  height:auto !important;
  padding-bottom:clamp(56px,7vh,78px) !important;
}

/* La firma sigue perteneciendo al cierre de la segunda sección. */
.fs-feature-section::after{
  bottom:18px !important;
}

/* Nueva zona clara, cálida y editorial. */
.what-pass-section{
  background:#f1eee7 !important;
  color:#171714 !important;
  border-top:1px solid #d4cec3 !important;
  padding-top:clamp(72px,8.5vh,104px) !important;
}
.what-pass-kicker{
  color:rgba(23,23,20,.54) !important;
}
.what-pass-heading h2{
  color:#171714 !important;
  text-transform:none !important;
  letter-spacing:-.03em !important;
}
.what-pass-intro{
  color:rgba(23,23,20,.67) !important;
}

/* Retícula clara con líneas finas, sin perder el carácter premium. */
.what-pass-grid{
  border-top:1px solid rgba(23,23,20,.18) !important;
  border-left:1px solid rgba(23,23,20,.18) !important;
}
.what-pass-card{
  border-right:1px solid rgba(23,23,20,.18) !important;
  border-bottom:1px solid rgba(23,23,20,.18) !important;
  background:linear-gradient(145deg,rgba(255,255,255,.48),rgba(255,255,255,.10)) !important;
}
.what-pass-card:hover{
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,255,255,.30)) !important;
}
.what-pass-number{
  color:rgba(23,23,20,.27) !important;
}
.what-pass-icon{
  color:#171714 !important;
  border-color:rgba(23,23,20,.27) !important;
}
.what-pass-card h3{
  color:#171714 !important;
}
.what-pass-card p{
  color:rgba(23,23,20,.66) !important;
}
.what-pass-link{
  color:#171714 !important;
}

@media(max-width:900px){
  .fs-feature-section{
    min-height:0 !important;
    padding-bottom:56px !important;
  }
  .what-pass-section{
    padding-top:66px !important;
  }
}

/* =========================================================
   ETAPA 22 — CENTRADO VISUAL DEL CEVICHE + TIPOGRAFIA MAYOR
   Solo estilos. No modifica scroll, JS ni dimensiones del frame.
   ========================================================= */

/* Baja el inicio de la zona clara para equilibrar el aire oscuro
   arriba y abajo del lienzo del ceviche. */
.fs-feature-section{
  padding-bottom:clamp(108px,12vh,132px) !important;
}

/* Menú superior secundario: etiquetas más legibles. */
.scroll-icon-ribbon b{
  font-size:14px !important;
  letter-spacing:.12em !important;
  line-height:1.15 !important;
}

/* Tercera zona clara: escala general de texto un poco mayor. */
.what-pass-kicker{
  font-size:11px !important;
}
.what-pass-intro{
  font-size:clamp(17px,1.15vw,19px) !important;
  line-height:1.62 !important;
}
.what-pass-card h3{
  font-size:14px !important;
  line-height:1.35 !important;
}
.what-pass-card p{
  font-size:16px !important;
  line-height:1.62 !important;
}
.what-pass-link{
  font-size:10px !important;
}

@media(max-width:900px){
  .fs-feature-section{
    padding-bottom:88px !important;
  }
  .scroll-icon-ribbon b{
    font-size:9px !important;
    letter-spacing:.08em !important;
  }
  .what-pass-kicker{font-size:10px !important}
  .what-pass-intro{font-size:16px !important}
  .what-pass-card h3{font-size:13px !important}
  .what-pass-card p{font-size:15px !important}
  .what-pass-link{font-size:9px !important}
}


/* =========================================================
   ETAPA 23 — CARRUSEL 3 + 3 EN ¿QUE ES LIMA CITYPASS?
   ========================================================= */
.what-pass-carousel{
  position:relative;
  overflow:hidden;
}
.what-pass-track{
  position:relative;
  min-height:420px;
}
.what-pass-page{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(23,23,20,.18);
  border-left:1px solid rgba(23,23,20,.18);
  opacity:0;
  visibility:hidden;
  transform:translateX(34px);
  transition:opacity .42s ease,transform .52s cubic-bezier(.22,.61,.36,1),visibility 0s linear .52s;
  position:absolute;
  inset:0 0 auto 0;
}
.what-pass-page.is-active{
  opacity:1;
  visibility:visible;
  transform:translateX(0);
  position:relative;
  transition-delay:0s;
}
.what-pass-grid{display:none !important}
.what-pass-card{min-height:390px}
.what-pass-media{
  height:142px;
  margin:2px 0 22px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
}
.what-pass-media img{
  display:block;
  width:min(224px,88%);
  height:138px;
  object-fit:cover;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.16));
}
.what-pass-dots{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  padding-top:28px;
}
.what-pass-dot{
  width:10px;
  height:10px;
  padding:0;
  border:1px solid rgba(23,23,20,.30);
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease;
}
.what-pass-dot.is-active{
  background:#171714;
  border-color:#171714;
  transform:scale(1.12);
}
@media(max-width:1000px){
  .what-pass-track{min-height:680px}
  .what-pass-page{grid-template-columns:1fr}
  .what-pass-page .what-pass-card{min-height:320px}
}
@media(max-width:650px){
  .what-pass-track{min-height:860px}
  .what-pass-media{height:125px}
  .what-pass-media img{max-height:120px;width:min(190px,84%)}
}

/* =========================================================
   ETAPA 24 — PRIMERA TARJETA: IMAGEN Y TEXTO CENTRADOS
   No modifica la imagen fuente ni el carrusel.
   ========================================================= */
.what-pass-card--image .what-pass-media{
  justify-content:center !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.what-pass-card--image .what-pass-media img{
  margin-left:auto !important;
  margin-right:auto !important;
}

/* El contenido ocupa un ancho menor y queda centrado como bloque. */
.what-pass-card--image h3,
.what-pass-card--image p{
  width:min(100%,345px) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.what-pass-card--image h3{
  text-align:center !important;
}
.what-pass-card--image p{
  text-align:justify !important;
  text-justify:inter-word;
}

/* El enlace queda alineado con el borde izquierdo del bloque de texto centrado. */
.what-pass-card--image .what-pass-link{
  left:50% !important;
  width:min(100% - 64px,345px) !important;
  transform:translateX(-50%) !important;
  text-align:left !important;
}


/* =========================================================
   ETAPA 25 — PASSES 2 / 3 / 4 DIAS + OPCION ESPECIAL 1 DIA
   Fondo provisional: se reemplaza luego por la imagen final.
   ========================================================= */
.passes-section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:920px;
  padding:clamp(90px,10vw,150px) clamp(28px,5vw,84px) clamp(88px,9vw,130px);
  background:#10100f;
  color:#f4f0e8;
}
.passes-bg{
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:url('assets/lima-citypass-card-about.png');
  background-size:cover;
  background-position:center 46%;
  transform:scale(1.55);
  filter:blur(10px) saturate(.72) brightness(.48);
  opacity:.42;
}
.passes-overlay{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(circle at 50% 38%,rgba(255,255,255,.05),transparent 42%),
    linear-gradient(180deg,rgba(8,8,7,.72),rgba(12,12,11,.87) 52%,rgba(8,8,7,.96));
}
.passes-inner{
  width:min(1480px,100%);
  margin:0 auto;
}
.passes-heading{
  max-width:850px;
  margin:0 auto clamp(58px,6vw,82px);
  text-align:center;
}
.passes-kicker{
  margin:0 0 17px;
  font-size:11px;
  letter-spacing:.26em;
  font-weight:600;
  color:rgba(244,240,232,.66);
}
.passes-heading h2{
  margin:0;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(42px,4.25vw,70px);
  line-height:1.02;
  font-weight:400;
  letter-spacing:-.035em;
}
.passes-intro{
  max-width:690px;
  margin:24px auto 0;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(16px,1.2vw,19px);
  line-height:1.65;
  color:rgba(244,240,232,.72);
}
.passes-main-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:center;
  gap:clamp(18px,2.2vw,34px);
}
.pass-option{
  position:relative;
  min-height:560px;
  padding:38px 34px 34px;
  border:1px solid rgba(255,255,255,.20);
  background:linear-gradient(180deg,rgba(19,19,18,.74),rgba(11,11,10,.88));
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  box-shadow:0 24px 70px rgba(0,0,0,.18);
  display:flex;
  flex-direction:column;
  transition:transform .3s ease,border-color .3s ease,background-color .3s ease;
}
.pass-option:hover{transform:translateY(-7px);border-color:rgba(255,255,255,.42)}
.pass-option--featured{
  min-height:610px;
  transform:translateY(-18px);
  border-color:rgba(226,160,39,.78);
  background:linear-gradient(180deg,rgba(28,25,18,.90),rgba(10,10,9,.94));
  box-shadow:0 30px 85px rgba(0,0,0,.34),0 0 0 1px rgba(226,160,39,.08) inset;
}
.pass-option--featured:hover{transform:translateY(-25px)}
.pass-bestseller{
  position:absolute;
  top:0;
  left:50%;
  transform:translate(-50%,-50%);
  padding:9px 18px 8px;
  background:#d99218;
  color:#11110f;
  font-size:10px;
  font-weight:800;
  letter-spacing:.20em;
  white-space:nowrap;
}
.pass-duration{
  display:block;
  font-size:12px;
  letter-spacing:.25em;
  font-weight:700;
  color:rgba(244,240,232,.70);
}
.pass-option--featured .pass-duration{color:#e5a126}
.pass-card-visual{
  height:215px;
  margin:24px 0 28px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pass-card-visual img{
  width:min(310px,94%);
  max-height:205px;
  object-fit:contain;
  border-radius:8px;
  box-shadow:0 20px 38px rgba(0,0,0,.34);
  transform:perspective(900px) rotateX(2deg) rotateY(-3deg);
}
.pass-option--featured .pass-card-visual img{
  width:min(335px,98%);
  transform:perspective(900px) rotateX(1deg) rotateY(0deg) scale(1.04);
  box-shadow:0 28px 48px rgba(0,0,0,.44),0 0 30px rgba(217,146,24,.10);
}
.pass-option h3{
  margin:0 0 14px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(25px,2vw,31px);
  font-weight:400;
}
.pass-option p{
  margin:0 0 34px;
  font-family:Georgia,'Times New Roman',serif;
  font-size:16px;
  line-height:1.6;
  color:rgba(244,240,232,.68);
}
.pass-cta{
  margin-top:auto;
  width:100%;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.42);
  color:#fff;
  text-decoration:none;
  font-size:11px;
  letter-spacing:.20em;
  font-weight:700;
  transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.pass-cta:hover{background:#f4f0e8;color:#11110f;border-color:#f4f0e8}
.pass-option--featured .pass-cta{background:#f4f0e8;color:#11110f;border-color:#f4f0e8}
.pass-option--featured .pass-cta:hover{background:#d99218;border-color:#d99218}
.pass-one-day{
  width:min(860px,86%);
  margin:44px auto 0;
  padding:24px 30px;
  border-top:1px solid rgba(255,255,255,.20);
  border-bottom:1px solid rgba(255,255,255,.20);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  background:rgba(8,8,7,.30);
}
.pass-one-day__label{display:block;margin-bottom:7px;font-size:9px;letter-spacing:.22em;color:rgba(244,240,232,.55)}
.pass-one-day strong{font-family:Georgia,'Times New Roman',serif;font-size:28px;font-weight:400}
.pass-one-day p{display:inline;margin-left:18px;font-family:Georgia,'Times New Roman',serif;font-size:14px;line-height:1.5;color:rgba(244,240,232,.62)}
.pass-one-day__cta{flex:0 0 auto;color:#f4f0e8;text-decoration:none;font-size:10px;letter-spacing:.18em;font-weight:700;white-space:nowrap}
.pass-one-day__cta span{margin-left:10px}

@media(max-width:980px){
  .passes-section{min-height:0;padding-left:24px;padding-right:24px}
  .passes-main-grid{grid-template-columns:1fr;max-width:650px;margin:0 auto}
  .pass-option,.pass-option--featured{min-height:0;transform:none}
  .pass-option--featured:hover,.pass-option:hover{transform:none}
  .pass-card-visual{height:190px}
  .pass-one-day{width:min(650px,100%);flex-direction:column;align-items:flex-start}
}
@media(max-width:600px){
  .passes-section{padding:72px 18px}
  .passes-heading{margin-bottom:46px}
  .passes-heading h2{font-size:39px}
  .pass-option{padding:30px 24px}
  .pass-card-visual{height:160px}
  .pass-card-visual img{max-height:154px}
  .pass-one-day{padding:22px 22px}
  .pass-one-day p{display:block;margin:10px 0 0}
}


/* =========================================================
   ETAPA 26 — ATRACTIVOS DESTACADOS DE LIMA
   Transferido después del bloque especial de 1 día.
   ========================================================= */
.attractions-section{
  background:#f2efe8;
  color:#171714;
  padding:clamp(88px,9vw,138px) clamp(28px,5vw,84px) clamp(100px,10vw,150px);
}
.attractions-inner{width:min(1480px,100%);margin:0 auto}
.attractions-heading{
  display:flex;align-items:flex-end;justify-content:space-between;gap:48px;
  padding-bottom:38px;border-bottom:1px solid rgba(23,23,20,.20);
}
.attractions-kicker{margin:0 0 14px;font-size:11px;letter-spacing:.25em;font-weight:700;color:rgba(23,23,20,.57)}
.attractions-heading h2{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(43px,4vw,66px);line-height:1.02;font-weight:400;letter-spacing:-.035em}
.attractions-intro{max-width:720px;margin:20px 0 0;font-family:Georgia,'Times New Roman',serif;font-size:17px;line-height:1.6;color:rgba(23,23,20,.68)}
.attractions-explore{flex:0 0 auto;margin-bottom:6px;color:#171714;text-decoration:none;text-transform:uppercase;font-size:11px;letter-spacing:.18em;font-weight:700}
.attractions-explore span{margin-left:10px}
.attractions-filters{display:flex;flex-wrap:wrap;gap:10px;margin:34px 0 42px}
.attractions-filter{
  min-height:42px;padding:0 19px;border:1px solid rgba(23,23,20,.28);background:transparent;color:#171714;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:.22s ease;
}
.attractions-filter:hover,.attractions-filter.is-active{background:#171714;color:#f2efe8;border-color:#171714}
.attractions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.attraction-card{background:#f8f6f1;border:1px solid rgba(23,23,20,.18);min-height:530px;display:flex;flex-direction:column;transition:transform .28s ease,box-shadow .28s ease,opacity .2s ease}
.attraction-card:hover{transform:translateY(-6px);box-shadow:0 22px 55px rgba(24,20,14,.10)}
.attraction-card.is-hidden{display:none}
.attraction-card__media{height:245px;overflow:hidden;background:#ddd8ce}
.attraction-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease}
.attraction-card:hover .attraction-card__media img{transform:scale(1.035)}
.attraction-card__body{padding:29px 30px 31px;display:flex;flex-direction:column;flex:1}
.attraction-card__zone{display:block;margin-bottom:13px;font-size:9px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:#b37411}
.attraction-card h3{margin:0 0 14px;font-family:Georgia,'Times New Roman',serif;font-size:28px;line-height:1.12;font-weight:400}
.attraction-card p{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:15px;line-height:1.62;color:rgba(23,23,20,.70)}
.attraction-card ul{list-style:none;padding:20px 0 0;margin:auto 0 0;border-top:1px solid rgba(23,23,20,.13)}
.attraction-card li{position:relative;padding-left:17px;margin:7px 0;font-size:11px;letter-spacing:.045em;color:rgba(23,23,20,.72)}
.attraction-card li::before{content:'✓';position:absolute;left:0;top:0;color:#b37411;font-weight:700}
@media(max-width:1050px){.attractions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attractions-heading{align-items:flex-start;flex-direction:column}.attractions-explore{margin:0}}
@media(max-width:680px){.attractions-section{padding:72px 18px 84px}.attractions-grid{grid-template-columns:1fr}.attractions-filters{overflow:auto;flex-wrap:nowrap;padding-bottom:5px}.attractions-filter{white-space:nowrap}.attraction-card{min-height:0}.attraction-card__media{height:225px}}

/* =========================================================
   ETAPA 27 — QUIÉNES SOMOS / GARANTÍA / FOOTER SOBRE SUNSET
   ========================================================= */
.trust-footer{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:680px;
  padding:clamp(92px,8vw,135px) clamp(32px,5vw,90px) 48px;
  color:#f5f2eb;
  background:#111820 url('assets/lima-sunset-footer.jpg') center 47%/cover no-repeat;
}
.trust-footer__shade{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(7,11,14,.77) 0%,rgba(8,13,17,.72) 42%,rgba(7,12,16,.86) 100%),
    linear-gradient(90deg,rgba(6,10,13,.38),rgba(6,10,13,.16) 55%,rgba(6,10,13,.36));
  backdrop-filter:saturate(.8);
}
.trust-footer__inner{width:min(1560px,100%);margin:0 auto}
.trust-footer__cards{
  display:grid;
  grid-template-columns:1.08fr .98fr;
  gap:24px;
}
.trust-footer__panel{
  min-height:300px;
  padding:38px 36px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:26px;
  background:rgba(15,21,26,.43);
  box-shadow:0 20px 60px rgba(0,0,0,.18);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.trust-footer__eyebrow{
  margin:0 0 21px;
  font-size:12px;
  line-height:1;
  letter-spacing:.23em;
  font-weight:700;
  color:rgba(255,255,255,.94);
}
.trust-footer__about h2{
  margin:0 0 22px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:clamp(35px,3vw,48px);
  line-height:1.05;
  font-weight:700;
  letter-spacing:-.025em;
}
.trust-footer__about>p:last-child{
  max-width:780px;
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  font-size:17px;
  line-height:1.75;
  color:rgba(245,242,235,.82);
}
.trust-footer__benefits{display:grid;gap:14px}
.trust-footer__benefit{
  min-height:56px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 20px;
  border:1px solid rgba(255,255,255,.035);
  border-radius:15px;
  background:rgba(255,255,255,.075);
}
.trust-footer__benefit span{font-size:16px;filter:saturate(.75)}
.trust-footer__benefit strong{
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  font-weight:600;
  color:rgba(245,242,235,.86);
}
.trust-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  margin-top:118px;
  padding-top:24px;
}
.trust-footer__brand{display:flex;align-items:center;gap:16px;text-decoration:none}
.trust-footer__seal{width:48px;height:48px;object-fit:contain}
.trust-footer__wordmark{width:220px;max-height:45px;object-fit:contain}
.trust-footer__bottom p{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  font-size:13px;
  color:rgba(245,242,235,.76);
  white-space:nowrap;
}
@media(max-width:900px){
  .trust-footer{min-height:0;padding:78px 24px 36px}
  .trust-footer__cards{grid-template-columns:1fr}
  .trust-footer__panel{min-height:0}
  .trust-footer__bottom{margin-top:74px}
}
@media(max-width:620px){
  .trust-footer{padding:66px 18px 30px;background-position:58% center}
  .trust-footer__panel{padding:30px 24px;border-radius:20px}
  .trust-footer__about>p:last-child{font-size:15px}
  .trust-footer__benefit strong{font-size:14px}
  .trust-footer__bottom{align-items:flex-start;flex-direction:column;margin-top:58px}
  .trust-footer__wordmark{width:180px}
  .trust-footer__bottom p{font-size:11px;white-space:normal}
}


/* =========================================================
   ETAPA 29 — TRATAMIENTO GLOBAL DEL NOMBRE LIMA CITYPASS
   Conserva tipografía/tamaño heredados: solo cambia el color.
   ========================================================= */
.lcp-brand-text {
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  white-space: nowrap;
}

.lcp-brand-lima {
  color: #fff;
  font: inherit;
}

.lcp-brand-citypass {
  display: inline-block;
  font: inherit;
  color: #f39a00;
  background: linear-gradient(90deg, #f39a00 0%, #f39a00 34%, #69b9ef 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}


/* =========================================================
   ETAPA 30 — LIMA EN MARRON SOBRE FONDOS CLAROS
   Mantiene tipografia/tamano; solo cambia el color de "Lima".
   ========================================================= */
.lcp-brand-text.lcp-brand-on-light .lcp-brand-lima {
  color:#6f5842 !important;
}

/* Respaldo directo para las zonas claras actuales. */
.what-pass-section .lcp-brand-lima,
.attractions-section .lcp-brand-lima,
.menu-panel__sheet .lcp-brand-lima {
  color:#6f5842 !important;
}


/* =========================================================
   ETAPA 31 — MENU 12PX + CARRUSEL DE IMAGENES EN CEVICHE
   Mantiene exactamente las dimensiones del frame.
   ========================================================= */

/* Solo las cinco etiquetas del menu que aparece al hacer scroll. */
.scroll-icon-ribbon b{
  font-size:12px !important;
}

/* El frame conserva su ancho, alto, aspect-ratio y posicion actuales. */
.fs-feature-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}

.fs-feature-media .fs-feature-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .6s ease, visibility .6s ease;
}

.fs-feature-media .fs-feature-slide.is-active{
  opacity:1;
  visibility:visible;
}

/* Flechas laterales discretas, sin alterar el lienzo. */
.fs-feature-arrow{
  position:absolute;
  top:50%;
  z-index:4;
  width:44px;
  height:72px;
  padding:0;
  border:0;
  background:rgba(0,0,0,.10);
  color:rgba(255,255,255,.72);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transform:translateY(-50%);
  transition:background .25s ease,color .25s ease,opacity .25s ease;
  opacity:.72;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.fs-feature-arrow:hover{
  background:rgba(0,0,0,.24);
  color:#fff;
  opacity:1;
}
.fs-feature-arrow span{
  display:block;
  font:300 42px/1 Georgia,serif;
  transform:translateY(-2px);
}
.fs-feature-arrow--prev{left:10px}
.fs-feature-arrow--next{right:10px}

/* Shade y copy siguen por encima como antes. */
.fs-feature-shade{z-index:1}
.fs-feature-copy{z-index:2}

@media(max-width:900px){
  .scroll-icon-ribbon b{font-size:9px !important}
  .fs-feature-arrow{
    width:36px;
    height:58px;
  }
  .fs-feature-arrow span{font-size:34px}
  .fs-feature-arrow--prev{left:6px}
  .fs-feature-arrow--next{right:6px}
}

@media(prefers-reduced-motion:reduce){
  .fs-feature-media .fs-feature-slide{transition:none!important}
}

/* ETAPA 32 — zona clicable de las flechas a todo el alto del carrusel.
   El glifo blanco conserva su tamano; solo crece el boton transparente. */
.fs-feature-arrow{
  top:0 !important;
  bottom:0 !important;
  width:56px !important;
  height:100% !important;
  transform:none !important;
  background:rgba(0,0,0,.06) !important;
  opacity:.72;
}
.fs-feature-arrow:hover{
  background:rgba(0,0,0,.18) !important;
  color:#fff;
  opacity:1;
}
.fs-feature-arrow--prev{left:0 !important}
.fs-feature-arrow--next{right:0 !important}

@media(max-width:900px){
  .fs-feature-arrow{
    width:44px !important;
    height:100% !important;
  }
  .fs-feature-arrow--prev{left:0 !important}
  .fs-feature-arrow--next{right:0 !important}
}

/* ETAPA 33 — menú lateral: tipografía más legible sin cambiar diseño ni fuente. */
.menu-panel__label{
  font-size:13px !important;
}
.menu-panel__nav a > span:first-child{
  font-family:Arial,sans-serif !important;
  font-size:14px !important;
  line-height:1.35 !important;
  letter-spacing:.06em !important;
}
.menu-panel__nav a > span:last-child{
  font-family:Arial,sans-serif !important;
  font-size:11px !important;
  line-height:1 !important;
  letter-spacing:.12em !important;
}
.menu-panel__footer{
  font-size:11px !important;
}
@media(max-width:700px){
  .menu-panel__label{font-size:12px !important}
  .menu-panel__nav a > span:first-child{font-size:14px !important}
  .menu-panel__nav a > span:last-child{font-size:11px !important}
  .menu-panel__footer{font-size:10px !important}
}

/* ETAPA 34 — portada con 6 opciones */
@media(min-width:901px){.hero__tabs .hero-tab b{white-space:nowrap}}


/* =========================================================
   ETAPA 40 — Mano/tarjeta interactiva
   Interacción más sobria y creíble para una página de venta.
   ========================================================= */
.slide[data-index="0"] .hero-card-hand{
  pointer-events:auto !important;
  cursor:pointer;
}
.slide[data-index="0"] .hero-card-hand:hover{
  transform:translate3d(-1px,-2px,0) !important;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.20)) !important;
}
.slide[data-index="0"] .hero-card-hand:active,
.slide[data-index="0"] .hero-card-hand.is-hand-clicked{
  transform:translate3d(0,-1px,0) scale(.996) !important;
  transition-duration:.14s !important;
}
.slide[data-index="0"] .hero-card-hand:focus-visible{
  outline:1px solid rgba(255,255,255,.82);
  outline-offset:6px;
}
@media (max-width:900px){
  .slide[data-index="0"] .hero-card-hand:hover,
  .slide[data-index="0"] .hero-card-hand:active,
  .slide[data-index="0"] .hero-card-hand.is-hand-clicked{
    transform:none !important;
    filter:drop-shadow(0 10px 20px rgba(0,0,0,.18)) !important;
  }
}
@media (prefers-reduced-motion:reduce){
  .slide[data-index="0"] .hero-card-hand{
    transition:none !important;
  }
  .slide[data-index="0"] .hero-card-hand:hover,
  .slide[data-index="0"] .hero-card-hand:active,
  .slide[data-index="0"] .hero-card-hand.is-hand-clicked{
    transform:none !important;
  }
}

/* =========================================================
   ETAPA 41 — FIX interacción real mano/tarjeta
   La capa de sombreado estaba encima de la mano e interceptaba
   el mouse. La mano queda por encima y recibe hover/click.
   ========================================================= */
.slide__shade{
  pointer-events:none !important;
}
.slide[data-index="0"] .hero-card-hand{
  z-index:2 !important;
  pointer-events:auto !important;
  cursor:pointer !important;
}
.slide[data-index="0"] .hero-card-hand:hover{
  transform:translate3d(-1px,-2px,0) !important;
}
.slide[data-index="0"] .hero-card-hand:active,
.slide[data-index="0"] .hero-card-hand.is-hand-clicked{
  transform:translate3d(0,-1px,0) scale(.996) !important;
}


/* =========================================================
   ETAPA 42 — segundo bloque / Locales
   ========================================================= */

/* Etiqueta centrada en la linea imaginaria debajo del contenedor.
   No altera el tamano ni la posicion del frame de imagenes. */
.fs-feature-section-label{
  width:min(84.5vw,1420px);
  margin:clamp(22px,3vh,34px) auto 0;
  text-align:center;
  color:rgba(255,255,255,.82);
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:.16em;
}

/* Botones laterales inactivos: aprox. 20% mas oscuros que antes.
   La flecha blanca y el alto completo se mantienen. */
.fs-feature-arrow{
  background:rgba(0,0,0,.08) !important;
}
.fs-feature-arrow:hover,
.fs-feature-arrow:focus-visible{
  background:rgba(0,0,0,.18) !important;
}

/* El menu de Locales comunica que es un destino dentro de la misma pagina. */
.menu-panel__nav a.menu-locales-link{
  cursor:pointer;
}

@media(max-width:900px){
  .fs-feature-section-label{
    width:90vw;
    margin-top:18px;
    font-size:12px;
  }
}


/* =========================================================
   ETAPA 43 — Restaurar segundo bloque en una sola columna
   Frame centrado + "Locales" debajo.
   ========================================================= */
.fs-feature-section{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  min-height:auto !important;
  height:auto !important;
  padding-bottom:clamp(118px,13vh,150px) !important;
}

/* Mantiene exactamente el ancho/aspect-ratio ya definido para el frame. */
.fs-feature-frame{
  flex:0 0 auto !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* "Locales" pertenece a la misma columna y queda centrado bajo la imagen. */
.fs-feature-section-label{
  display:block !important;
  flex:0 0 auto !important;
  width:min(84.5vw,1420px) !important;
  margin:clamp(24px,3vh,36px) auto 0 !important;
  text-align:center !important;
}

@media(max-width:900px){
  .fs-feature-section{
    padding-bottom:96px !important;
  }
  .fs-feature-section-label{
    width:90vw !important;
    margin-top:18px !important;
  }
}


/* =========================================================
   ETAPA 44 — Locales Afiliados + interacciones de la portada
   ========================================================= */

/* Titulo bajo el contenedor: misma familia editorial del hero,
   pero fijo en 14px como solicitado. */
.fs-feature-section-label{
  font-family:"Times New Roman", Georgia, serif !important;
  font-size:14px !important;
  line-height:1.2 !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  color:rgba(255,255,255,.90) !important;
}

/* La misma animacion de la mano se puede disparar desde otros controles. */
.slide[data-index="0"] .hero-card-hand.is-hand-hovered{
  transform:none !important;
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.18)) !important;
}

/* El texto "Desliza..." ahora es interactivo sin cambiar su apariencia. */
.fs-scroll-cue{
  cursor:pointer;
}
.fs-scroll-cue:focus-visible{
  outline:1px solid rgba(255,255,255,.68);
  outline-offset:6px;
}

@media (prefers-reduced-motion:reduce){
  .slide[data-index="0"] .hero-card-hand.is-hand-hovered{
    transform:none !important;
    filter:drop-shadow(0 10px 20px rgba(0,0,0,.18)) !important;
  }
}

/* ETAPA 45 — "LOCALES AFILIADOS" bajo el contenedor
   Tipografía de "LIMA, EN UNA SOLA EXPERIENCIA" + color del título hero. */
.fs-feature-section-label{
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  letter-spacing:.28em !important;
  text-transform:uppercase !important;
  color:var(--ink) !important;
  white-space:nowrap !important;
}


/* =========================================================
   ETAPA 46 — Gastronomía en Lima + nueva área Locales Afiliados
   Inspiración editorial: carrusel horizontal con rail lateral.
   ========================================================= */

.affiliate-venues-section{
  position:relative;
  isolation:isolate;
  background:#11100f;
  color:#f6f2e9;
  padding:clamp(76px,9vw,138px) 0 clamp(88px,10vw,150px);
  overflow:hidden;
}

.affiliate-venues-section::before{
  content:"";
  position:absolute;
  inset:-32px;
  z-index:-2;
  background:url("assets/affiliate-restaurant.jpg") center 48% / cover no-repeat;
  filter:blur(13px);
  transform:scale(1.08);
  opacity:.72;
}

.affiliate-venues-section::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(8,8,8,.88) 0%,rgba(10,10,10,.76) 34%,rgba(10,10,10,.72) 100%);
}

.affiliate-venues-inner{
  position:relative;
  z-index:1;
  width:min(94vw,1560px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr);
  gap:clamp(34px,4.5vw,74px);
  align-items:start;
}

.affiliate-venues-rail{
  padding-top:4px;
}

.affiliate-venues-kicker{
  margin:0 0 18px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:11px;
  line-height:1;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(246,242,233,.72);
}

.affiliate-venues-rail h2{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  font-size:clamp(18px,1.6vw,25px);
  line-height:1.15;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.affiliate-venues-intro{
  margin:22px 0 0;
  max-width:260px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:13px;
  line-height:1.65;
  color:rgba(246,242,233,.78);
}

.affiliate-venues-arrows{
  display:flex;
  gap:14px;
  margin-top:34px;
}

.affiliate-venues-arrow{
  width:54px;
  height:54px;
  border-radius:50%;
  border:1px solid rgba(246,242,233,.46);
  background:rgba(0,0,0,.12);
  color:#f6f2e9;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}

.affiliate-venues-arrow:hover{
  background:rgba(246,242,233,.12);
  border-color:rgba(246,242,233,.78);
  transform:translateY(-1px);
}

.affiliate-venues-viewport{
  overflow:hidden;
}

.affiliate-venues-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding-bottom:8px;
}

.affiliate-venues-track::-webkit-scrollbar{
  display:none;
}

.affiliate-venue-card{
  flex:0 0 clamp(250px,26vw,340px);
  scroll-snap-align:start;
  min-width:0;
}

.affiliate-venue-card img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}

.affiliate-venue-card h3{
  margin:15px 0 0;
  font-family:Arial,Helvetica,sans-serif;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.015em;
}

.affiliate-venue-card p{
  min-height:42px;
  margin:9px 0 16px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:12px;
  line-height:1.5;
  color:rgba(246,242,233,.76);
}

.affiliate-venue-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:106px;
  height:34px;
  padding:0 20px;
  border:1px solid rgba(246,242,233,.58);
  border-radius:999px;
  color:#f6f2e9;
  text-decoration:none;
  font-family:Arial,Helvetica,sans-serif;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  transition:background .22s ease,color .22s ease;
}

.affiliate-venue-action:hover{
  background:rgba(246,242,233,.14);
  color:#fff;
}

@media(max-width:900px){
  .affiliate-venues-inner{
    width:90vw;
    grid-template-columns:1fr;
    gap:34px;
  }
  .affiliate-venues-intro{
    max-width:600px;
  }
  .affiliate-venues-arrows{
    margin-top:24px;
  }
  .affiliate-venue-card{
    flex-basis:min(78vw,310px);
  }
}

/* =========================================================
   ETAPA 49 — AJUSTES EXCLUSIVOS MÓVIL
   Header en una línea + iconos inferiores alineados.
   Escritorio no se modifica.
   ========================================================= */
@media (max-width:900px){
  /* Header: todo horizontal y compacto */
  .topbar{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    flex-wrap:nowrap !important;
    gap:6px !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }

  .topbar__left{
    display:flex !important;
    align-items:center !important;
    flex:0 1 auto !important;
    min-width:0 !important;
    gap:6px !important;
  }

  .brand-seal img{
    width:clamp(38px,9.8vw,46px) !important;
  }

  .brand-logo img{
    width:clamp(105px,28vw,142px) !important;
    max-width:100% !important;
  }

  .topbar__right{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex:0 0 auto !important;
    flex-wrap:nowrap !important;
    gap:8px !important;
    margin-left:auto !important;
  }

  /* Idioma: solo bandera, sin ES / EN / QU */
  .language-switcher{
    display:flex !important;
    align-items:center !important;
    flex:0 0 auto !important;
  }

  .language{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:28px !important;
    min-width:28px !important;
    height:32px !important;
    padding:0 !important;
    gap:0 !important;
  }

  .language span#languageCode{
    display:none !important;
  }

  .language img{
    width:20px !important;
    height:13px !important;
    flex:0 0 auto !important;
  }

  /* Comprar Pass siempre en una sola línea */
  .primary-action{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
    flex:0 0 auto !important;
    padding:9px 8px !important;
    font-size:7.5px !important;
    letter-spacing:.10em !important;
    line-height:1 !important;
  }

  .menu-button{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 auto !important;
    width:26px !important;
    min-width:26px !important;
    padding:8px 0 !important;
    gap:0 !important;
  }

  .menu-icon{
    width:20px !important;
  }

  /* Menú inferior de la portada: iconos perfectamente alineados */
  .hero__tabs{
    display:grid !important;
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
    align-items:start !important;
  }

  .hero-tab{
    display:grid !important;
    grid-template-rows:32px minmax(18px,auto) !important;
    align-items:start !important;
    justify-items:center !important;
    min-height:58px !important;
    padding:0 1px 8px !important;
  }

  .hero-tab__icon{
    width:100% !important;
    height:32px !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    align-self:start !important;
  }

  .hero-tab__icon svg{
    width:25px !important;
    height:25px !important;
  }

  .hero-tab b{
    margin-top:6px !important;
    line-height:1.15 !important;
    min-height:18px !important;
    display:flex !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:center !important;
  }
}

/* Teléfonos especialmente angostos */
@media (max-width:390px){
  .topbar{gap:4px !important;padding-left:7px !important;padding-right:7px !important}
  .topbar__right{gap:5px !important}
  .brand-logo img{width:clamp(96px,26vw,118px) !important}
  .brand-seal img{width:36px !important}
  .primary-action{padding:8px 6px !important;font-size:7px !important;letter-spacing:.07em !important}
  .language{width:25px !important;min-width:25px !important}
  .language img{width:18px !important;height:12px !important}
  .menu-button{width:23px !important;min-width:23px !important}
  .menu-icon{width:18px !important}
  .hero-tab b{font-size:6.4px !important;letter-spacing:.045em !important}
  .hero-tab__icon svg{width:23px !important;height:23px !important}
}

/* =========================================================
   ETAPA 50 — MÓVIL: bajar controles derechos al eje del logo
   Solo bandera + Comprar Pass + menú. Escritorio intacto.
   ========================================================= */
@media (max-width:900px){
  .topbar__right{
    transform:translateY(7px) !important;
  }
}

/* =========================================================
   ETAPA 52 — Cinta superior ordenada SOLO EN MÓVIL
   ========================================================= */
@media (max-width: 767px){

  /* La cinta que aparece al hacer scroll */
  #scrollRibbon,
  .scroll-ribbon{
    min-height: 62px !important;
    height: 62px !important;
    overflow: hidden !important;
  }

  #scrollRibbon .ribbon-inner,
  .scroll-ribbon__inner{
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 0 12px !important;
  }

  /* Logo a la izquierda, sin deformarse */
  #scrollRibbon .ribbon-brand,
  #scrollRibbon .brand,
  .scroll-ribbon .brand,
  .scroll-ribbon__brand{
    flex: 0 0 auto !important;
    align-self: center !important;
  }

  /* Opciones en una sola línea horizontal desplazable */
  #scrollRibbonTabs,
  .ribbon-tabs{
    display: flex !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 0 4px !important;
  }

  #scrollRibbonTabs::-webkit-scrollbar,
  .ribbon-tabs::-webkit-scrollbar{
    display: none !important;
  }

  #scrollRibbonTabs .ribbon-tab,
  .ribbon-tabs .ribbon-tab{
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 54px !important;
    height: 50px !important;
    padding: 3px 2px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }

  #scrollRibbonTabs .ribbon-tab svg,
  #scrollRibbonTabs .ribbon-tab img,
  .ribbon-tabs .ribbon-tab svg,
  .ribbon-tabs .ribbon-tab img{
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px !important;
    margin: 0 !important;
  }

  #scrollRibbonTabs .ribbon-tab span,
  #scrollRibbonTabs .ribbon-tab .label,
  .ribbon-tabs .ribbon-tab span,
  .ribbon-tabs .ribbon-tab .label{
    display: block !important;
    font-size: 8px !important;
    line-height: 1.05 !important;
    letter-spacing: .5px !important;
    white-space: nowrap !important;
    margin: 0 !important;
  }

  /* Evitar que cualquier regla desktop fuerce columnas o solapamientos */
  #scrollRibbonTabs .ribbon-tab *,
  .ribbon-tabs .ribbon-tab *{
    position: static !important;
    transform: none !important;
  }
}


/* =========================================================
   SOLO slide 3 / Gastronomía:
   subir ligeramente la fotografía sin tocar ningún degradado.
   ========================================================= */
.slide[data-index="2"] > img{
  transform:translateY(-68px) scale(1.045) !important;
}

.slide[data-index="2"].is-active > img{
  transform:translateY(-68px) scale(1) !important;
}

@media (max-width:900px){
  .slide[data-index="2"] > img{
    transform:translateY(-48px) scale(1.045) !important;
  }

  .slide[data-index="2"].is-active > img{
    transform:translateY(-48px) scale(1) !important;
  }
}

/* =========================================================
   ETAPA 51 — PORTADA MAS COMPACTA + VISTA PREVIA SECCION 2
   La portada deja ver el inicio de la siguiente sección sin scroll.
   Se elimina únicamente el menú de iconos inferior de la portada;
   la cinta superior al hacer scroll sigue funcionando.
   ========================================================= */
@media (min-width:901px){
  .hero{
    height:88svh !important;
    min-height:620px !important;
  }
}

/* Ocultar los seis iconos inferiores, conservándolos en el DOM para
   que el JavaScript pueda seguir construyendo la cinta superior. */
.hero__tabs{
  display:none !important;
}

/* Compactar la zona inferior: permanece la línea de progreso,
   pausa y la indicación de seguir bajando. */
.fs-controls{
  min-height:64px !important;
  padding-top:10px !important;
}
.fs-controls__topline{
  margin-bottom:0 !important;
}
.hero-pause{
  top:-30px !important;
}

@media (max-width:900px){
  .hero__tabs{
    display:none !important;
  }
  .hero__controls{
    min-height:58px !important;
  }
  .fs-controls{
    min-height:58px !important;
    padding-top:8px !important;
  }
}

/* =========================================================
   ETAPA 52 — MENU SUPERIOR VISIBLE DESDE EL INICIO
   La barra principal queda siempre visible y la cinta de iconos
   se ubica debajo, evitando tapar Idioma / Comprar Pass / Menú.
   ========================================================= */
@media (min-width:901px){
  /* Fila 1: logo + controles principales siempre visibles */
  .topbar{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    height:82px !important;
    z-index:14 !important;
    padding:0 clamp(26px,3.5vw,58px) !important;
    background:linear-gradient(180deg,rgba(5,5,5,.88) 0%,rgba(5,5,5,.66) 72%,rgba(5,5,5,.42) 100%) !important;
    -webkit-backdrop-filter:blur(7px);
    backdrop-filter:blur(7px);
  }

  .topbar__right{
    margin-left:auto !important;
    gap:26px !important;
    flex-wrap:nowrap !important;
    white-space:nowrap !important;
  }

  .language-switcher,
  .primary-action,
  .topbar__right .menu-button{
    position:relative;
    z-index:2;
    flex:0 0 auto;
  }

  /* Fila 2: menú de iconos visible desde que carga la página */
  .scroll-icon-ribbon{
    top:82px !important;
    height:70px !important;
    padding:4px clamp(34px,5vw,86px) 5px !important;
    z-index:13 !important;
    opacity:1 !important;
    transform:none !important;
    visibility:visible !important;
    pointer-events:auto !important;
    background:rgba(5,5,5,.62) !important;
    -webkit-backdrop-filter:blur(9px);
    backdrop-filter:blur(9px);
    border-top:1px solid rgba(255,255,255,.05) !important;
    border-bottom:1px solid rgba(255,255,255,.12) !important;
  }

  .scroll-icon-ribbon__inner{
    max-width:1180px;
    margin:0 auto;
  }

  .scroll-icon-ribbon .ribbon-tab{
    gap:3px !important;
  }

  .scroll-icon-ribbon .hero-tab__icon{
    height:25px !important;
    margin:0 !important;
  }

  .scroll-icon-ribbon .hero-tab__icon svg{
    width:23px !important;
    height:23px !important;
  }

  .scroll-icon-ribbon b{
    font-size:9px !important;
    letter-spacing:.13em !important;
  }
}

/* =========================================================
   ETAPA 53 — CINTA DE MENU ARRIBA / CONTROLES DEBAJO
   Orden solicitado: primero la cinta de iconos y, debajo,
   la fila con logo + idioma + Comprar Pass + Menú.
   ========================================================= */
@media (min-width:901px){
  .scroll-icon-ribbon{
    top:0 !important;
    height:70px !important;
    z-index:15 !important;
  }

  .topbar{
    top:70px !important;
    height:82px !important;
    z-index:14 !important;
    background:linear-gradient(180deg,rgba(5,5,5,.72) 0%,rgba(5,5,5,.50) 68%,rgba(5,5,5,.24) 100%) !important;
  }
}

/* =========================================================
   ETAPA 54 — SEGUNDA CINTA ELIMINADA
   Se conserva la cinta superior de navegación. Debajo quedan
   únicamente Idioma / Comprar Pass / Menú, flotando sin fondo.
   El logo de esta segunda fila se oculta para evitar duplicarlo.
   ========================================================= */
@media (min-width:901px){
  /* Quitar el logo duplicado de la segunda fila */
  .topbar__left{
    display:none !important;
  }

  /* La segunda fila deja de ser una cinta: sin fondo, blur ni borde */
  .topbar,
  .topbar.is-solid{
    top:70px !important;
    height:72px !important;
    background:transparent !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    border:0 !important;
    box-shadow:none !important;
    pointer-events:none;
  }

  /* Solo los tres controles permanecen activos y visibles */
  .topbar__right{
    margin-left:auto !important;
    pointer-events:auto;
    gap:26px !important;
  }
}

/* ETAPA 2026-08-19 — fotos hero con color original */
.slide img{filter:none!important}
.slide__shade{display:none!important;background:none!important}

/* =========================================================
   ETAPA 46 — Mano/tarjeta: entrada y movimiento más naturales
   - permanece oculta mientras carga la foto principal
   - entra desde el borde derecho, nunca desde abajo
   - menor escala y movimiento de hover casi imperceptible
   ========================================================= */
.slide[data-index="0"] .hero-card-hand{
  right:clamp(-24px,-1.3vw,-10px) !important;
  bottom:clamp(18px,2.4vh,34px) !important;
  width:clamp(270px,25.5vw,405px) !important;
  opacity:0 !important;
  transform:translate3d(72px,3px,0) rotate(-1.15deg) scale(.992) !important;
  transform-origin:74% 68% !important;
  filter:brightness(.86) saturate(.84) contrast(1.035) drop-shadow(0 16px 22px rgba(0,0,0,.22)) !important;
  transition:
    opacity .48s ease-out,
    transform .82s cubic-bezier(.16,.84,.30,1),
    filter .30s ease !important;
  will-change:transform,opacity;
}
.slide[data-index="0"] .hero-card-hand.is-hand-ready{
  opacity:1 !important;
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992) !important;
}
.slide[data-index="0"] .hero-card-hand.is-hand-ready:hover,
.slide[data-index="0"] .hero-card-hand.is-hand-ready.is-hand-hovered{
  transform:translate3d(-1.5px,-2px,0) rotate(-1.25deg) scale(.994) !important;
  filter:brightness(.88) saturate(.86) contrast(1.035) drop-shadow(0 18px 24px rgba(0,0,0,.24)) !important;
}
.slide[data-index="0"] .hero-card-hand.is-hand-ready:active,
.slide[data-index="0"] .hero-card-hand.is-hand-ready.is-hand-clicked{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.986) !important;
  transition-duration:.12s !important;
}
@media (max-width:900px){
  .slide[data-index="0"] .hero-card-hand{
    right:clamp(-18px,-2vw,-6px) !important;
    bottom:16px !important;
    width:clamp(225px,42vw,320px) !important;
    transform:translate3d(58px,2px,0) rotate(-1deg) scale(.992) !important;
  }
  .slide[data-index="0"] .hero-card-hand.is-hand-ready{
    transform:translate3d(0,0,0) rotate(-1deg) scale(.992) !important;
  }
}
@media (prefers-reduced-motion:reduce){
  .slide[data-index="0"] .hero-card-hand{
    transition:opacity .18s linear !important;
    transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992) !important;
  }
}

/* ETAPA 47 — Fix visibilidad mano después de carga */
.slide[data-index="0"] .hero-card-hand.is-hand-ready{
  visibility:visible !important;
  pointer-events:auto !important;
}

/* ETAPA 48 — cerrar vacío del antebrazo sin perder visibilidad */
@media (min-width:901px){
  .slide[data-index="0"] .hero-card-hand{
    right:-38px !important;
    bottom:-22px !important;
    width:clamp(282px,26.3vw,418px) !important;
  }
  .slide[data-index="0"] .hero-card-hand.is-hand-ready{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992) !important;
  }
}

/* ETAPA 49 — cierre fino del último hueco del antebrazo */
@media (min-width:901px){
  .slide[data-index="0"] .hero-card-hand{
    right:-44px !important;
    bottom:-30px !important;
  }
  .slide[data-index="0"] .hero-card-hand.is-hand-ready{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
}


/* =========================================================
   ETAPA 50 — CTA + mano persistentes en TODO el hero
   - Comprar Pass centrado en el contenedor principal.
   - Mano/tarjeta visible en las 6 imágenes del carrusel.
   ========================================================= */
.hero-buy-pass{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  right:auto !important;
  bottom:auto !important;
  z-index:7 !important;
  transform:translate(-50%,-50%) !important;
  white-space:nowrap;
}
.hero-buy-pass:hover{
  transform:translate(-50%,calc(-50% - 1px)) !important;
}

.hero__slides > .hero-card-hand{
  position:absolute;
  z-index:6;
  right:-44px;
  bottom:-30px;
  width:clamp(282px,26.3vw,418px);
  height:auto;
  object-fit:contain;
  object-position:center;
  opacity:0;
  visibility:hidden;
  transform:translate3d(72px,3px,0) rotate(-1.15deg) scale(.992);
  transform-origin:74% 68%;
  filter:brightness(.86) saturate(.84) contrast(1.035) drop-shadow(0 16px 22px rgba(0,0,0,.22));
  transition:opacity .48s ease-out, transform .82s cubic-bezier(.16,.84,.30,1), filter .30s ease;
  pointer-events:none;
  user-select:none;
  cursor:pointer;
  will-change:transform,opacity;
}
.hero__slides > .hero-card-hand.is-hand-ready{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992);
}
.hero__slides > .hero-card-hand.is-hand-ready:hover,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered{
  transform:translate3d(-1.5px,-2px,0) rotate(-1.25deg) scale(.994);
  filter:brightness(.88) saturate(.86) contrast(1.035) drop-shadow(0 18px 24px rgba(0,0,0,.24));
}
.hero__slides > .hero-card-hand.is-hand-ready:active,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.986);
  transition-duration:.12s;
}
.hero__slides > .hero-card-hand:focus-visible{
  outline:2px solid rgba(255,255,255,.95);
  outline-offset:4px;
}

@media (max-width:900px){
  .hero-buy-pass{
    top:48% !important;
    padding:10px 12px !important;
    font-size:8px !important;
  }
  .hero__slides > .hero-card-hand{
    right:clamp(-18px,-2vw,-6px);
    bottom:16px;
    width:clamp(225px,42vw,320px);
    transform:translate3d(58px,2px,0) rotate(-1deg) scale(.992);
  }
  .hero__slides > .hero-card-hand.is-hand-ready{
    transform:translate3d(0,0,0) rotate(-1deg) scale(.992);
  }
}
@media (prefers-reduced-motion:reduce){
  .hero__slides > .hero-card-hand{
    transition:opacity .18s linear;
    transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992);
  }
}

/* =========================================================
   ETAPA 51 — ajuste fino CTA central
   Más abajo + caja ligeramente mayor; tipografía intacta.
   ========================================================= */
@media (min-width:901px){
  .hero-buy-pass{
    top:64% !important;
    padding:16px 30px !important;
  }
}

/* =========================================================
   ETAPA 52 — CTA Comprar Pass con fondo oscuro translúcido
   Mejora contraste sobre todas las imágenes sin perder elegancia.
   ========================================================= */
.hero-buy-pass{
  background:rgba(17,17,15,.58) !important;
  -webkit-backdrop-filter:blur(6px) saturate(105%);
  backdrop-filter:blur(6px) saturate(105%);
  box-shadow:0 8px 24px rgba(0,0,0,.20) !important;
}
.hero-buy-pass:hover{
  background:rgba(17,17,15,.68) !important;
}

/* =========================================================
   ETAPA 53 — CTA comercial + acceso “¿Qué incluye?”
   ========================================================= */
.hero-cta-cluster{
  position:absolute;
  left:50%;
  top:64%;
  z-index:7;
  display:flex;
  align-items:center;
  gap:22px;
  transform:translate(-50%,-50%);
  white-space:nowrap;
}
.hero-cta-cluster .hero-buy-pass{
  position:relative !important;
  left:auto !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  padding:16px 30px !important;
}
.hero-cta-cluster .hero-buy-pass:hover{
  transform:translateY(-1px) !important;
}
.hero-whats-included{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-shadow:0 2px 14px rgba(0,0,0,.58);
  border-bottom:1px solid rgba(255,255,255,.62);
  padding:9px 0 7px;
  transition:gap .25s ease,border-color .25s ease,opacity .25s ease;
}
.hero-whats-included:hover{gap:15px;border-color:#fff;opacity:.96}

/* =========================================================
   ETAPA 54 — “Qué incluye Lima CityPass” dentro de About
   ========================================================= */
.what-pass-includes{
  max-width:900px;
  margin:34px auto 0;
  padding-top:30px;
  border-top:1px solid rgba(25,25,23,.16);
}
.what-pass-includes h3{
  margin:0 0 23px;
  font-family:"Times New Roman",Georgia,serif;
  font-size:clamp(24px,2.1vw,36px);
  line-height:1.08;
  font-weight:400;
  letter-spacing:-.02em;
  color:#1b1b18;
}
.what-pass-includes-list{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0 auto 25px;
  padding:0;
}
.what-pass-includes-list li{
  position:relative;
  padding:13px 14px 13px 28px;
  border:1px solid rgba(25,25,23,.12);
  background:rgba(255,255,255,.36);
  color:#36342f;
  font-family:Arial,Helvetica,sans-serif;
  font-size:10px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:.045em;
}
.what-pass-includes-list li::before{
  content:"";
  position:absolute;
  left:13px;
  top:18px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:linear-gradient(135deg,#f0a000,#55b9d4);
}
.what-pass-includes-note,
.what-pass-includes-detail{
  max-width:810px;
  margin:0 auto;
  color:#666158;
  font-family:"Times New Roman",Georgia,serif;
  font-size:clamp(14px,.98vw,17px);
  line-height:1.6;
}
.what-pass-includes-detail{
  margin-top:12px;
  color:#4f4b44;
}
#what-is-lima-citypass{scroll-margin-top:88px}

@media (max-width:900px){
  .hero-cta-cluster{top:57%;gap:14px;flex-direction:column}
  .hero-cta-cluster .hero-buy-pass{padding:11px 16px !important;font-size:8px !important}
  .hero-whats-included{font-size:9px}
  .what-pass-includes{margin-top:28px;padding-top:24px}
  .what-pass-includes-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  .what-pass-includes-list{grid-template-columns:1fr}
}

/* =========================================================
   ETAPA 54 — legibilidad de textos secundarios del hero (+15%)
   No modifica los títulos grandes de cada imagen.
   ========================================================= */
@media (min-width:901px){
  .topbar .menu-button,
  .topbar .language{font-size:12.65px !important;}
  .topbar .primary-action{font-size:11.5px !important;}
  .slide .text-link{font-size:13.8px !important;}
  .hero__tabs .hero-tab b{font-size:11.5px !important;}
  .fs-scroll-cue{font-size:10.35px !important;}
  .hero-cta-cluster .hero-buy-pass{font-size:11.5px !important;}
  .hero-whats-included{font-size:12.65px !important;}
}

@media (max-width:900px){
  .topbar .primary-action{font-size:9.2px !important;}
  .slide .text-link{font-size:13.8px !important;}
  .hero__tabs .hero-tab b{font-size:8.05px !important;}
  .fs-scroll-cue{font-size:8.05px !important;}
  .hero-cta-cluster .hero-buy-pass{font-size:9.2px !important;}
  .hero-whats-included{font-size:12.65px !important;}
}

/* =========================================================
   ETAPA 53 — reflejo SFD refinado / ida y vuelta
   Misma cadencia visual del logo SFD negro: barrido fino,
   pausa, regreso y descanso. La tarjeta usa una máscara
   blanca de SOLO la tarjeta; nunca ilumina la mano.
   ========================================================= */
:root{ --lcp-reflection-duration:9.4s; }

.brand-logo,
.trust-footer__wordmark-host{
  position:relative !important;
  isolation:isolate !important;
  overflow:visible !important;
}
.trust-footer__wordmark-host{
  display:inline-flex;
  align-items:center;
  line-height:0;
}

.lcp-reflection-copy{
  position:absolute !important;
  pointer-events:none !important;
  z-index:999 !important;
  display:block !important;
  object-fit:contain !important;
  object-position:center !important;
  opacity:0;
  mix-blend-mode:screen;
  backface-visibility:hidden;
  will-change:clip-path,opacity;
  animation:lcp-sfd-reflection-pingpong var(--lcp-reflection-duration) cubic-bezier(.42,0,.18,1) infinite !important;
  animation-delay:.62s !important;
}

/* Menu ribbon wordmark — aligned exactly over the visible PNG. */
.brand-logo > .lcp-reflection-copy--header{
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:100% !important;
  transform:translateY(12px) !important;
  filter:grayscale(1) brightness(2.75) contrast(1.08) saturate(.20)
         drop-shadow(0 0 1px rgba(255,255,255,.42)) !important;
}

/* Footer wordmark — much softer than P10. */
.trust-footer__wordmark-host > .lcp-reflection-copy--footer{
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  filter:grayscale(1) brightness(2.65) contrast(1.06) saturate(.18)
         drop-shadow(0 0 1px rgba(255,255,255,.38)) !important;
}

/* Card only. Source PNG is now a white alpha silhouette of the visible card,
   with the thumb/hand removed. No photo details are multiplied or blown out. */
.hero__slides > .lcp-reflection-copy--card{
  z-index:7 !important;
  right:-44px !important;
  bottom:-30px !important;
  left:auto !important;
  top:auto !important;
  width:clamp(282px,26.3vw,418px) !important;
  height:auto !important;
  visibility:hidden;
  transform:translate3d(72px,3px,0) rotate(-1.15deg) scale(.992);
  transform-origin:74% 68%;
  mix-blend-mode:soft-light !important;
  filter:blur(.35px) drop-shadow(0 0 1px rgba(255,255,255,.20)) !important;
  transition:transform .82s cubic-bezier(.16,.84,.30,1), visibility 0s linear .48s;
}
.hero__slides > .hero-card-hand.is-hand-ready + .lcp-reflection-copy--card{
  visibility:visible;
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992);
  transition-delay:0s;
}
.hero__slides > .hero-card-hand.is-hand-ready:hover + .lcp-reflection-copy--card,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered + .lcp-reflection-copy--card{
  transform:translate3d(-1.5px,-2px,0) rotate(-1.25deg) scale(.994);
}
.hero__slides > .hero-card-hand.is-hand-ready:active + .lcp-reflection-copy--card,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked + .lcp-reflection-copy--card{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.986);
  transition-duration:.12s;
}

/* SFD-style narrow reflection: left → right, short pause, right → left, long rest. */
@keyframes lcp-sfd-reflection-pingpong{
  0%   {opacity:0;   clip-path:polygon(-18% -12%,-7% -12%,4% 112%,-7% 112%);}
  5%   {opacity:.04; clip-path:polygon(-8% -12%,3% -12%,14% 112%,3% 112%);}
  10%  {opacity:.28; clip-path:polygon(8% -12%,19% -12%,30% 112%,19% 112%);}
  16%  {opacity:.48; clip-path:polygon(39% -12%,50% -12%,61% 112%,50% 112%);}
  22%  {opacity:.30; clip-path:polygon(72% -12%,83% -12%,94% 112%,83% 112%);}
  27%  {opacity:.04; clip-path:polygon(101% -12%,112% -12%,123% 112%,112% 112%);}
  31%  {opacity:0;   clip-path:polygon(112% -12%,123% -12%,134% 112%,123% 112%);}
  40%  {opacity:0;   clip-path:polygon(112% -12%,123% -12%,134% 112%,123% 112%);}
  45%  {opacity:.04; clip-path:polygon(101% -12%,112% -12%,123% 112%,112% 112%);}
  50%  {opacity:.30; clip-path:polygon(72% -12%,83% -12%,94% 112%,83% 112%);}
  56%  {opacity:.48; clip-path:polygon(39% -12%,50% -12%,61% 112%,50% 112%);}
  62%  {opacity:.28; clip-path:polygon(8% -12%,19% -12%,30% 112%,19% 112%);}
  67%  {opacity:.04; clip-path:polygon(-8% -12%,3% -12%,14% 112%,3% 112%);}
  71%  {opacity:0;   clip-path:polygon(-18% -12%,-7% -12%,4% 112%,-7% 112%);}
  100% {opacity:0;   clip-path:polygon(-18% -12%,-7% -12%,4% 112%,-7% 112%);}
}

/* Card is even more restrained: same travel/timing, lower peak. */
.hero__slides > .lcp-reflection-copy--card{
  animation-name:lcp-sfd-card-reflection-pingpong !important;
}
@keyframes lcp-sfd-card-reflection-pingpong{
  0%   {opacity:0;   clip-path:polygon(-18% -12%,-8% -12%,2% 112%,-8% 112%);}
  5%   {opacity:.02; clip-path:polygon(-8% -12%,2% -12%,12% 112%,2% 112%);}
  10%  {opacity:.10; clip-path:polygon(8% -12%,18% -12%,28% 112%,18% 112%);}
  16%  {opacity:.19; clip-path:polygon(40% -12%,50% -12%,60% 112%,50% 112%);}
  22%  {opacity:.11; clip-path:polygon(72% -12%,82% -12%,92% 112%,82% 112%);}
  27%  {opacity:.02; clip-path:polygon(101% -12%,111% -12%,121% 112%,111% 112%);}
  31%,40% {opacity:0;clip-path:polygon(112% -12%,122% -12%,132% 112%,122% 112%);}
  45%  {opacity:.02; clip-path:polygon(101% -12%,111% -12%,121% 112%,111% 112%);}
  50%  {opacity:.11; clip-path:polygon(72% -12%,82% -12%,92% 112%,82% 112%);}
  56%  {opacity:.19; clip-path:polygon(40% -12%,50% -12%,60% 112%,50% 112%);}
  62%  {opacity:.10; clip-path:polygon(8% -12%,18% -12%,28% 112%,18% 112%);}
  67%  {opacity:.02; clip-path:polygon(-8% -12%,2% -12%,12% 112%,2% 112%);}
  71%,100% {opacity:0;clip-path:polygon(-18% -12%,-8% -12%,2% 112%,-8% 112%);}
}

.lcp-reflection-mouse-restart{ animation:none !important; }

@media (max-width:900px){
  .brand-logo > .lcp-reflection-copy--header{ transform:translateY(8px) !important; }
  .hero__slides > .lcp-reflection-copy--card{
    right:clamp(-18px,-2vw,-6px) !important;
    bottom:16px !important;
    width:clamp(225px,42vw,320px) !important;
    transform:translate3d(58px,2px,0) rotate(-1deg) scale(.992);
  }
  .hero__slides > .hero-card-hand.is-hand-ready + .lcp-reflection-copy--card{
    transform:translate3d(0,0,0) rotate(-1deg) scale(.992);
  }
}

@media (prefers-reduced-motion:reduce){
  .lcp-reflection-copy{animation:none !important;opacity:0 !important;}
}

/* =========================================================
   ETAPA 54 — pulido reflejo tarjeta + cinta
   - Tarjeta: banda paralela a la división diagonal real de la tarjeta.
   - Cinta superior: exactamente el mismo tratamiento visible del footer.
   ========================================================= */

/* La cinta usa el footer como referencia visual maestra: misma intensidad,
   misma cadencia y mismo barrido. Solo cambia la traslación vertical necesaria
   para superponerse al wordmark del header. */
.brand-logo{
  line-height:0 !important;
}
.brand-logo > .lcp-reflection-copy--header{
  inset:0 !important;
  left:0 !important;
  top:0 !important;
  right:auto !important;
  bottom:auto !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:translateY(12px) !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(2.65) contrast(1.06) saturate(.18)
         drop-shadow(0 0 1px rgba(255,255,255,.38)) !important;
  animation-name:lcp-sfd-reflection-pingpong !important;
  animation-duration:var(--lcp-reflection-duration) !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
  animation-delay:1.05s !important;
}

/* Tarjeta: la división negro/foto cae en diagonal con la parte inferior
   desplazada hacia la izquierda. El brillo sigue esa MISMA inclinación.
   Banda estrecha para que parezca un reflejo sobre plástico, no una franja. */
@keyframes lcp-sfd-card-reflection-pingpong{
  0%   {opacity:0;   clip-path:polygon(-10% -12%,-3% -12%,-15% 112%,-22% 112%);}
  5%   {opacity:.02; clip-path:polygon(0% -12%,7% -12%,-5% 112%,-12% 112%);}
  10%  {opacity:.10; clip-path:polygon(16% -12%,23% -12%,11% 112%,4% 112%);}
  16%  {opacity:.19; clip-path:polygon(48% -12%,55% -12%,43% 112%,36% 112%);}
  22%  {opacity:.11; clip-path:polygon(80% -12%,87% -12%,75% 112%,68% 112%);}
  27%  {opacity:.02; clip-path:polygon(109% -12%,116% -12%,104% 112%,97% 112%);}
  31%,40% {opacity:0;clip-path:polygon(120% -12%,127% -12%,115% 112%,108% 112%);}
  45%  {opacity:.02; clip-path:polygon(109% -12%,116% -12%,104% 112%,97% 112%);}
  50%  {opacity:.11; clip-path:polygon(80% -12%,87% -12%,75% 112%,68% 112%);}
  56%  {opacity:.19; clip-path:polygon(48% -12%,55% -12%,43% 112%,36% 112%);}
  62%  {opacity:.10; clip-path:polygon(16% -12%,23% -12%,11% 112%,4% 112%);}
  67%  {opacity:.02; clip-path:polygon(0% -12%,7% -12%,-5% 112%,-12% 112%);}
  71%,100% {opacity:0;clip-path:polygon(-10% -12%,-3% -12%,-15% 112%,-22% 112%);}
}

@media (max-width:900px){
  .brand-logo > .lcp-reflection-copy--header{
    transform:translateY(8px) !important;
  }
}

/* =========================================================
   ETAPA 55 — reflejo óptico más natural + corrección de capa del header
   - Tarjeta: dos streaks suaves (uno ancho/fino + uno angosto), sin bordes rectos.
   - Header: la copia luminosa queda exactamente sobre el PNG visible y por encima
     de cualquier capa de la cinta, con la misma cadencia ida/vuelta del footer.
   ========================================================= */

/* --- TARJETA: eliminar la sensación de rectángulo sólido. --- */
.hero__slides > .lcp-reflection-copy--card{
  /* El PNG sigue limitando el efecto SOLO a la tarjeta. Esta máscara secundaria
     convierte la luz en dos reflejos ópticos con bordes graduales. */
  -webkit-mask-image:linear-gradient(84deg,
    transparent 0%,
    transparent 35%,
    rgba(0,0,0,.05) 38%,
    rgba(0,0,0,.24) 41%,
    rgba(0,0,0,.42) 44%,
    rgba(0,0,0,.24) 47%,
    rgba(0,0,0,.06) 50%,
    transparent 53%,
    transparent 56%,
    rgba(0,0,0,.10) 57.3%,
    rgba(0,0,0,.58) 59.0%,
    rgba(0,0,0,.90) 60.0%,
    rgba(0,0,0,.48) 61.0%,
    rgba(0,0,0,.08) 62.7%,
    transparent 64.2%,
    transparent 100%) !important;
  mask-image:linear-gradient(84deg,
    transparent 0%,
    transparent 35%,
    rgba(0,0,0,.05) 38%,
    rgba(0,0,0,.24) 41%,
    rgba(0,0,0,.42) 44%,
    rgba(0,0,0,.24) 47%,
    rgba(0,0,0,.06) 50%,
    transparent 53%,
    transparent 56%,
    rgba(0,0,0,.10) 57.3%,
    rgba(0,0,0,.58) 59.0%,
    rgba(0,0,0,.90) 60.0%,
    rgba(0,0,0,.48) 61.0%,
    rgba(0,0,0,.08) 62.7%,
    transparent 64.2%,
    transparent 100%) !important;
  -webkit-mask-size:320% 100% !important;
  mask-size:320% 100% !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  mix-blend-mode:soft-light !important;
  filter:blur(.75px) drop-shadow(0 0 2px rgba(255,255,255,.12)) !important;
  animation-name:lcp-card-soft-double-reflection !important;
  animation-duration:var(--lcp-reflection-duration) !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
  animation-delay:.62s !important;
}

@keyframes lcp-card-soft-double-reflection{
  0%   {opacity:0;   -webkit-mask-position:145% 0; mask-position:145% 0;}
  5%   {opacity:.025;-webkit-mask-position:134% 0; mask-position:134% 0;}
  10%  {opacity:.10; -webkit-mask-position:112% 0; mask-position:112% 0;}
  16%  {opacity:.18; -webkit-mask-position:72% 0;  mask-position:72% 0;}
  22%  {opacity:.11; -webkit-mask-position:30% 0;  mask-position:30% 0;}
  27%  {opacity:.025;-webkit-mask-position:-8% 0;  mask-position:-8% 0;}
  31%,40% {opacity:0;-webkit-mask-position:-24% 0; mask-position:-24% 0;}
  45%  {opacity:.025;-webkit-mask-position:-8% 0;  mask-position:-8% 0;}
  50%  {opacity:.11; -webkit-mask-position:30% 0;  mask-position:30% 0;}
  56%  {opacity:.18; -webkit-mask-position:72% 0;  mask-position:72% 0;}
  62%  {opacity:.10; -webkit-mask-position:112% 0; mask-position:112% 0;}
  67%  {opacity:.025;-webkit-mask-position:134% 0; mask-position:134% 0;}
  71%,100% {opacity:0;-webkit-mask-position:145% 0; mask-position:145% 0;}
}

/* --- CINTA SUPERIOR: corregir stacking/alineación. --- */
.topbar,
.topbar__left,
.brand-logo{
  overflow:visible !important;
}
.brand-logo{
  position:relative !important;
  z-index:40 !important;
  isolation:isolate !important;
}
.brand-logo > img:not(.lcp-reflection-copy--header){
  position:relative !important;
  z-index:1 !important;
}
.brand-logo > .lcp-reflection-copy--header{
  display:block !important;
  position:absolute !important;
  z-index:50 !important;
  left:0 !important;
  top:0 !important;
  right:auto !important;
  bottom:auto !important;
  width:100% !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:translateY(12px) translateZ(0) !important;
  opacity:0;
  visibility:visible !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(3.05) contrast(1.08) saturate(.18)
         drop-shadow(0 0 1px rgba(255,255,255,.50)) !important;
  animation-name:lcp-sfd-reflection-pingpong !important;
  animation-duration:var(--lcp-reflection-duration) !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
  animation-delay:1.05s !important;
}

@media (max-width:900px){
  .brand-logo > .lcp-reflection-copy--header{
    transform:translateY(8px) translateZ(0) !important;
  }
}

/* =========================================================
   ETAPA 56 — SOLO rotación tarjeta + reflejo visible en cinta
   - No cambia sutileza, anchura, forma ni timing de la tarjeta.
   - El reflejo de la cinta se dibuja en una capa propia sobre el wordmark,
     recortado por el alfa real del PNG para que no pueda quedar oculto.
   ========================================================= */

/* TARJETA: conservar exactamente el doble streak aprobado de ETAPA 55;
   únicamente invertir unos grados la inclinación para seguir en paralelo
   la división negro/foto de la tarjeta. */
.hero__slides > .lcp-reflection-copy--card{
  -webkit-mask-image:linear-gradient(96deg,
    transparent 0%,
    transparent 35%,
    rgba(0,0,0,.05) 38%,
    rgba(0,0,0,.24) 41%,
    rgba(0,0,0,.42) 44%,
    rgba(0,0,0,.24) 47%,
    rgba(0,0,0,.06) 50%,
    transparent 53%,
    transparent 56%,
    rgba(0,0,0,.10) 57.3%,
    rgba(0,0,0,.58) 59.0%,
    rgba(0,0,0,.90) 60.0%,
    rgba(0,0,0,.48) 61.0%,
    rgba(0,0,0,.08) 62.7%,
    transparent 64.2%,
    transparent 100%) !important;
  mask-image:linear-gradient(96deg,
    transparent 0%,
    transparent 35%,
    rgba(0,0,0,.05) 38%,
    rgba(0,0,0,.24) 41%,
    rgba(0,0,0,.42) 44%,
    rgba(0,0,0,.24) 47%,
    rgba(0,0,0,.06) 50%,
    transparent 53%,
    transparent 56%,
    rgba(0,0,0,.10) 57.3%,
    rgba(0,0,0,.58) 59.0%,
    rgba(0,0,0,.90) 60.0%,
    rgba(0,0,0,.48) 61.0%,
    rgba(0,0,0,.08) 62.7%,
    transparent 64.2%,
    transparent 100%) !important;
}

/* HEADER: capa luminosa independiente, por encima de la cinta y del PNG.
   Usa el alfa del MISMO logo como máscara: el brillo sólo existe sobre las letras. */
.brand-logo::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:clamp(162px,13.6vw,230px) !important;
  height:49px !important;
  z-index:200 !important;
  pointer-events:none !important;
  transform:translateY(12px) translateZ(0) !important;
  background:rgba(255,255,255,.98) !important;
  -webkit-mask-image:url('assets/limacitypass-logo.png') !important;
  mask-image:url('assets/limacitypass-logo.png') !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  -webkit-mask-position:left center !important;
  mask-position:left center !important;
  -webkit-mask-size:contain !important;
  mask-size:contain !important;
  opacity:0;
  mix-blend-mode:screen !important;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.55)) drop-shadow(0 0 3px rgba(220,238,255,.22)) !important;
  will-change:clip-path,opacity;
  animation:lcp-header-footer-reflection var(--lcp-reflection-duration) cubic-bezier(.42,0,.18,1) 1.05s infinite !important;
}

/* Misma ida/vuelta y descanso del reflejo inferior, pero en una capa que
   no depende del stacking de la imagen duplicada del header. */
@keyframes lcp-header-footer-reflection{
  0%   {opacity:0;   clip-path:polygon(-18% -12%,-7% -12%,4% 112%,-7% 112%);}
  5%   {opacity:.04; clip-path:polygon(-8% -12%,3% -12%,14% 112%,3% 112%);}
  10%  {opacity:.28; clip-path:polygon(8% -12%,19% -12%,30% 112%,19% 112%);}
  16%  {opacity:.48; clip-path:polygon(39% -12%,50% -12%,61% 112%,50% 112%);}
  22%  {opacity:.30; clip-path:polygon(72% -12%,83% -12%,94% 112%,83% 112%);}
  27%  {opacity:.04; clip-path:polygon(101% -12%,112% -12%,123% 112%,112% 112%);}
  31%  {opacity:0;   clip-path:polygon(112% -12%,123% -12%,134% 112%,123% 112%);}
  40%  {opacity:0;   clip-path:polygon(112% -12%,123% -12%,134% 112%,123% 112%);}
  45%  {opacity:.04; clip-path:polygon(101% -12%,112% -12%,123% 112%,112% 112%);}
  50%  {opacity:.30; clip-path:polygon(72% -12%,83% -12%,94% 112%,83% 112%);}
  56%  {opacity:.48; clip-path:polygon(39% -12%,50% -12%,61% 112%,50% 112%);}
  62%  {opacity:.28; clip-path:polygon(8% -12%,19% -12%,30% 112%,19% 112%);}
  67%  {opacity:.04; clip-path:polygon(-8% -12%,3% -12%,14% 112%,3% 112%);}
  71%  {opacity:0;   clip-path:polygon(-18% -12%,-7% -12%,4% 112%,-7% 112%);}
  100% {opacity:0;   clip-path:polygon(-18% -12%,-7% -12%,4% 112%,-7% 112%);}
}

/* Evitar dos reflejos simultáneos en el header. La copia antigua queda anulada;
   el footer y la tarjeta conservan sus sistemas actuales. */
.brand-logo > .lcp-reflection-copy--header{
  display:none !important;
  animation:none !important;
}

@media (max-width:900px){
  .brand-logo::after{
    transform:translateY(8px) translateZ(0) !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .brand-logo::after{animation:none !important;opacity:0 !important;}
}

/* =========================================================
   ETAPA 57 — reflejo de cinta fuera del stacking del header
   El logo inferior ya estaba correcto. Para la cinta se usa una copia fija
   sincronizada con el PNG visible, dibujada directamente sobre el viewport.
   Así ninguna capa/overflow/backdrop de la cinta puede ocultarla.
   ========================================================= */
.brand-logo::after,
.brand-logo > .lcp-reflection-copy--header{
  display:none !important;
  animation:none !important;
  opacity:0 !important;
}

.lcp-reflection-copy--header-fixed{
  position:fixed !important;
  display:block !important;
  pointer-events:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  opacity:0;
  visibility:visible !important;
  z-index:2147483000 !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(2.65) contrast(1.06) saturate(.18)
         drop-shadow(0 0 1px rgba(255,255,255,.38)) !important;
  transform:none !important;
  backface-visibility:hidden;
  will-change:clip-path,opacity,left,top,width,height;
  animation:lcp-sfd-reflection-pingpong var(--lcp-reflection-duration) cubic-bezier(.42,0,.18,1) 1.05s infinite !important;
}

@media (prefers-reduced-motion:reduce){
  .lcp-reflection-copy--header-fixed{animation:none !important;opacity:0 !important;}
}


/* =========================================================
   ETAPA 58 — HEADER REFLECTION: misma arquitectura del footer
   El portal JS queda eliminado. Se reutiliza la copia PNG que ya existe
   dentro de .brand-logo, igual que el wordmark inferior aprobado.
   ========================================================= */
.topbar,
.topbar__left,
.brand-logo{
  overflow:visible !important;
}
.brand-logo{
  position:relative !important;
  z-index:40 !important;
  isolation:isolate !important;
  line-height:0 !important;
}
.brand-logo > img:not(.lcp-reflection-copy--header){
  position:relative !important;
  z-index:1 !important;
}

/* Desactiva únicamente el experimento pseudo-elemento; el reflejo real es el PNG duplicado. */
.brand-logo::after{
  content:none !important;
  display:none !important;
  animation:none !important;
  opacity:0 !important;
}

/* Exactamente el mismo principio del footer: una copia idéntica del PNG,
   recortada por clip-path y superpuesta sobre el logo original. */
.brand-logo > .lcp-reflection-copy--header{
  display:block !important;
  visibility:visible !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  right:auto !important;
  bottom:auto !important;
  width:100% !important;
  height:auto !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:translateY(12px) translateZ(0) !important;
  transform-origin:center center !important;
  z-index:60 !important;
  pointer-events:none !important;
  opacity:0;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(2.65) contrast(1.06) saturate(.18)
         drop-shadow(0 0 1px rgba(255,255,255,.38)) !important;
  backface-visibility:hidden !important;
  will-change:clip-path,opacity !important;
  animation-name:lcp-sfd-reflection-pingpong !important;
  animation-duration:var(--lcp-reflection-duration) !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
  animation-delay:1.05s !important;
  animation-fill-mode:none !important;
}

@media (max-width:900px){
  .brand-logo > .lcp-reflection-copy--header{
    transform:translateY(8px) translateZ(0) !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .brand-logo > .lcp-reflection-copy--header{
    animation:none !important;
    opacity:0 !important;
  }
}


/* =========================================================
   ETAPA 59 — HEADER REFLECTION COPIADO DEL SFD REAL
   Copia el mecanismo que funciona en /SFD/: una segunda imagen PNG
   sincronizada en píxeles sobre el logo visible y recortada por clip-path.
   Se usa una clase nueva para quedar aislada de todos los experimentos previos.
   ========================================================= */
:root{ --lcp-sfd-header-reflection-duration:7.6s; }

.topbar,
.topbar__left,
.brand-logo{
  overflow:visible !important;
}
.brand-logo{
  position:relative !important;
  isolation:isolate !important;
  z-index:40 !important;
}
.brand-logo > img:not(.lcp-sfd-reflection-copy--header){
  position:relative !important;
  z-index:1 !important;
}

/* Neutraliza todos los sistemas anteriores SOLO para el reflejo del header. */
.brand-logo::after,
.brand-logo > .lcp-reflection-copy--header,
.lcp-reflection-copy--header-fixed{
  content:none !important;
  display:none !important;
  animation:none !important;
  opacity:0 !important;
}

/* Copia exacta del tratamiento SFD v255/v257 para el wordmark del header. */
.lcp-sfd-reflection-copy--header{
  position:absolute !important;
  pointer-events:none !important;
  z-index:999 !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  opacity:0;
  visibility:visible !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(4.2) contrast(1.25) saturate(.45)
         drop-shadow(0 0 2px rgba(255,255,255,.95))
         drop-shadow(0 0 5px rgba(215,235,255,.62)) !important;
  transform:translateZ(0) !important;
  backface-visibility:hidden !important;
  will-change:clip-path,opacity !important;
  animation:lcp-sfd-header-clean-reflection var(--lcp-sfd-header-reflection-duration) cubic-bezier(.42,0,.18,1) infinite !important;
  animation-delay:.10s !important;
}

@keyframes lcp-sfd-header-clean-reflection{
  0%,63%,100%{opacity:0;clip-path:polygon(-20% -10%,-5% -10%,7% 110%,-8% 110%);}
  8%{opacity:.08;clip-path:polygon(-8% -10%,7% -10%,19% 110%,4% 110%);}
  11%{opacity:.62;clip-path:polygon(4% -10%,19% -10%,31% 110%,16% 110%);}
  14%{opacity:.88;clip-path:polygon(21% -10%,36% -10%,48% 110%,33% 110%);}
  17%{opacity:1;clip-path:polygon(39% -10%,54% -10%,66% 110%,51% 110%);}
  20%{opacity:.86;clip-path:polygon(57% -10%,72% -10%,84% 110%,69% 110%);}
  23%{opacity:.58;clip-path:polygon(75% -10%,90% -10%,102% 110%,87% 110%);}
  26%{opacity:.16;clip-path:polygon(93% -10%,108% -10%,120% 110%,105% 110%);}
  29%{opacity:0;clip-path:polygon(111% -10%,126% -10%,138% 110%,123% 110%);}
}

.lcp-sfd-reflection-mouse-restart{ animation:none !important; }

@media (prefers-reduced-motion:reduce){
  .lcp-sfd-reflection-copy--header{animation:none !important;opacity:0 !important;}
}

/* ETAPA 60 — reflejo header directo, sin portal JS */
.brand-logo{position:relative!important;isolation:isolate!important;overflow:visible!important}.brand-logo>.brand-logo__base{position:relative!important;z-index:1!important}.brand-logo::after,.brand-logo>.lcp-reflection-copy--header,.lcp-reflection-copy--header-fixed,.lcp-sfd-reflection-copy--header{content:none!important;display:none!important;animation:none!important;opacity:0!important}.brand-logo>.lcp-header-reflection-direct{position:absolute!important;left:0!important;top:0!important;width:clamp(162px,13.6vw,230px)!important;height:auto!important;max-height:49px!important;margin:0!important;padding:0!important;border:0!important;z-index:999!important;pointer-events:none!important;object-fit:contain!important;object-position:center!important;transform:translateY(12px)!important;opacity:0;visibility:visible!important;mix-blend-mode:screen!important;filter:grayscale(1) brightness(4.2) contrast(1.25) saturate(.45) drop-shadow(0 0 2px rgba(255,255,255,.95)) drop-shadow(0 0 5px rgba(215,235,255,.62))!important;backface-visibility:hidden!important;will-change:clip-path,opacity!important;animation:lcp-header-direct-sfd-shine 7.6s cubic-bezier(.42,0,.18,1) .10s infinite!important}@keyframes lcp-header-direct-sfd-shine{0%,63%,100%{opacity:0;clip-path:polygon(-20% -10%,-5% -10%,7% 110%,-8% 110%)}8%{opacity:.08;clip-path:polygon(-8% -10%,7% -10%,19% 110%,4% 110%)}11%{opacity:.62;clip-path:polygon(4% -10%,19% -10%,31% 110%,16% 110%)}14%{opacity:.88;clip-path:polygon(21% -10%,36% -10%,48% 110%,33% 110%)}17%{opacity:1;clip-path:polygon(39% -10%,54% -10%,66% 110%,51% 110%)}20%{opacity:.86;clip-path:polygon(57% -10%,72% -10%,84% 110%,69% 110%)}23%{opacity:.58;clip-path:polygon(75% -10%,90% -10%,102% 110%,87% 110%)}26%{opacity:.16;clip-path:polygon(93% -10%,108% -10%,120% 110%,105% 110%)}29%{opacity:0;clip-path:polygon(111% -10%,126% -10%,138% 110%,123% 110%)}}@media(max-width:700px){.brand-logo>.lcp-header-reflection-direct{width:clamp(128px,34vw,170px)!important;max-height:37px!important;transform:translateY(8px)!important}}@media(max-width:430px){.brand-logo>.lcp-header-reflection-direct{width:clamp(96px,26vw,118px)!important}}

/* ETAPA 61: header reflection is now handled by unique inline SFD mechanism in index.html. */


/* =========================================================
   ETAPA 62 — HEADER SHINE ROBUSTO, STATIC HOST
   La copia de brillo ya existe en HTML dentro de un <span>, NO como img hijo directo.
   Esto evita las reglas históricas `.brand-logo > img:not(...)` que anulaban
   position/z-index/transform de los intentos anteriores.
   ========================================================= */
.brand-logo{
  position:relative !important;
  overflow:visible !important;
  isolation:isolate !important;
}
.brand-logo > .brand-logo__base{
  position:relative !important;
  z-index:2 !important;
}
.brand-logo > .lcp-header-shine-host{
  position:absolute !important;
  inset:0 !important;
  z-index:5000 !important;
  display:block !important;
  overflow:visible !important;
  pointer-events:none !important;
  line-height:0 !important;
}
.brand-logo > .lcp-header-shine-host > .lcp-header-shine-img{
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:clamp(162px,13.6vw,230px) !important;
  height:auto !important;
  max-width:none !important;
  max-height:49px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  display:block !important;
  visibility:visible !important;
  pointer-events:none !important;
  object-fit:contain !important;
  object-position:left center !important;
  transform:translateY(12px) translateZ(0) !important;
  opacity:0;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(4.2) contrast(1.25) saturate(.45)
         drop-shadow(0 0 2px rgba(255,255,255,.95))
         drop-shadow(0 0 5px rgba(215,235,255,.62)) !important;
  backface-visibility:hidden !important;
  will-change:clip-path,opacity !important;
  animation:lcp-header-shine-sfd 7.6s cubic-bezier(.42,0,.18,1) .10s infinite !important;
}
@keyframes lcp-header-shine-sfd{
  0%,63%,100%{opacity:0;clip-path:polygon(-20% -10%,-5% -10%,7% 110%,-8% 110%)}
  8%{opacity:.08;clip-path:polygon(-8% -10%,7% -10%,19% 110%,4% 110%)}
  11%{opacity:.62;clip-path:polygon(4% -10%,19% -10%,31% 110%,16% 110%)}
  14%{opacity:.88;clip-path:polygon(21% -10%,36% -10%,48% 110%,33% 110%)}
  17%{opacity:1;clip-path:polygon(39% -10%,54% -10%,66% 110%,51% 110%)}
  20%{opacity:.86;clip-path:polygon(57% -10%,72% -10%,84% 110%,69% 110%)}
  23%{opacity:.58;clip-path:polygon(75% -10%,90% -10%,102% 110%,87% 110%)}
  26%{opacity:.16;clip-path:polygon(93% -10%,108% -10%,120% 110%,105% 110%)}
  29%{opacity:0;clip-path:polygon(111% -10%,126% -10%,138% 110%,123% 110%)}
}
@media(max-width:900px){
  .brand-logo > .lcp-header-shine-host > .lcp-header-shine-img{
    width:clamp(128px,34vw,170px) !important;
    max-height:37px !important;
    transform:translateY(8px) translateZ(0) !important;
  }
}
@media(max-width:430px){
  .brand-logo > .lcp-header-shine-host > .lcp-header-shine-img{
    width:clamp(96px,26vw,118px) !important;
  }
}
/* Intentionally do NOT disable this with prefers-reduced-motion: the SFD reference
   remains animated and this must behave identically on the same machine/browser. */
.lcp-header-shine-restart{animation:none !important;}

/* TARJETA: exactamente la misma forma/rotación/máscara aprobada, solo +25% énfasis. */
@keyframes lcp-sfd-card-reflection-pingpong{
  0%   {opacity:0;      clip-path:polygon(-10% -12%,-3% -12%,-15% 112%,-22% 112%)}
  5%   {opacity:.025;   clip-path:polygon(0% -12%,7% -12%,-5% 112%,-12% 112%)}
  10%  {opacity:.125;   clip-path:polygon(16% -12%,23% -12%,11% 112%,4% 112%)}
  16%  {opacity:.2375;  clip-path:polygon(48% -12%,55% -12%,43% 112%,36% 112%)}
  22%  {opacity:.1375;  clip-path:polygon(80% -12%,87% -12%,75% 112%,68% 112%)}
  27%  {opacity:.025;   clip-path:polygon(109% -12%,116% -12%,104% 112%,97% 112%)}
  31%,40% {opacity:0;clip-path:polygon(120% -12%,127% -12%,115% 112%,108% 112%)}
  45%  {opacity:.025;   clip-path:polygon(109% -12%,116% -12%,104% 112%,97% 112%)}
  50%  {opacity:.1375;  clip-path:polygon(80% -12%,87% -12%,75% 112%,68% 112%)}
  56%  {opacity:.2375;  clip-path:polygon(48% -12%,55% -12%,43% 112%,36% 112%)}
  62%  {opacity:.125;   clip-path:polygon(16% -12%,23% -12%,11% 112%,4% 112%)}
  67%  {opacity:.025;   clip-path:polygon(0% -12%,7% -12%,-5% 112%,-12% 112%)}
  71%,100% {opacity:0;clip-path:polygon(-10% -12%,-3% -12%,-15% 112%,-22% 112%)}
}

/* =========================================================
   ETAPA 63 — LIMPIEZA DEFINITIVA HEADER + SHINE POR MÁSCARA
   Un solo mecanismo. No usa IMG duplicado, portal ni stacking externo.
   ========================================================= */

/* Apagar TODOS los intentos históricos del header. */
.brand-logo::after,
.brand-logo > .lcp-reflection-copy--header,
.lcp-reflection-copy--header-fixed,
.lcp-sfd-reflection-copy--header,
.brand-logo > .lcp-header-reflection-direct,
.brand-logo > .lcp-header-shine-host{
  content:none !important;
  display:none !important;
  animation:none !important;
  opacity:0 !important;
}

.brand-logo{
  position:relative !important;
  overflow:visible !important;
  isolation:isolate !important;
  z-index:60 !important;
}
.brand-logo > .brand-logo__base{
  position:relative !important;
  z-index:2 !important;
}

/* El brillo existe como una banda luminosa enmascarada por la transparencia
   del PNG de Lima CityPass. Por eso jamás puede iluminar el fondo de la cinta. */
.brand-logo::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:30 !important;
  display:block !important;
  pointer-events:none !important;
  transform:translateY(12px) translateZ(0) !important;
  opacity:0;

  background:linear-gradient(102deg,
    transparent 0%,
    transparent 39%,
    rgba(255,255,255,.06) 43%,
    rgba(235,248,255,.46) 47.3%,
    rgba(255,255,255,.98) 50%,
    rgba(225,243,255,.54) 52.7%,
    rgba(255,255,255,.08) 57%,
    transparent 61%,
    transparent 100%) !important;
  background-size:320% 100% !important;
  background-repeat:no-repeat !important;

  -webkit-mask-image:url('assets/limacitypass-logo.png') !important;
  mask-image:url('assets/limacitypass-logo.png') !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  -webkit-mask-position:left center !important;
  mask-position:left center !important;
  -webkit-mask-size:100% 100% !important;
  mask-size:100% 100% !important;

  mix-blend-mode:screen !important;
  filter:drop-shadow(0 0 1px rgba(255,255,255,.68)) drop-shadow(0 0 4px rgba(215,237,255,.28)) !important;
  will-change:background-position,opacity !important;
  animation:lcp-header-mask-sfd-pingpong 9.4s cubic-bezier(.42,0,.18,1) .35s infinite !important;
}

/* SFD feel: ida, breve pausa, vuelta y descanso. */
@keyframes lcp-header-mask-sfd-pingpong{
  0%   {opacity:0;   background-position:142% 0;}
  5%   {opacity:.12; background-position:126% 0;}
  10%  {opacity:.62; background-position:100% 0;}
  16%  {opacity:.94; background-position:56% 0;}
  22%  {opacity:.66; background-position:12% 0;}
  27%  {opacity:.12; background-position:-20% 0;}
  31%  {opacity:0;   background-position:-28% 0;}
  40%  {opacity:0;   background-position:-28% 0;}
  45%  {opacity:.12; background-position:-20% 0;}
  50%  {opacity:.66; background-position:12% 0;}
  56%  {opacity:.94; background-position:56% 0;}
  62%  {opacity:.62; background-position:100% 0;}
  67%  {opacity:.12; background-position:126% 0;}
  71%  {opacity:0;   background-position:142% 0;}
  100% {opacity:0;   background-position:142% 0;}
}
.brand-logo.lcp-header-mask-shine-restart::before{
  animation:none !important;
}

@media(max-width:900px){
  .brand-logo::before{ transform:translateY(8px) translateZ(0) !important; }
}

/* TARJETA — misma forma, misma rotación y misma sutileza; +25% VISUAL REAL.
   El mecanismo activo es lcp-card-soft-double-reflection, no el keyframe antiguo. */
.hero__slides > .lcp-reflection-copy--card{
  filter:blur(.75px) brightness(1.25) drop-shadow(0 0 2px rgba(255,255,255,.17)) !important;
}
@keyframes lcp-card-soft-double-reflection{
  0%   {opacity:0;     -webkit-mask-position:145% 0; mask-position:145% 0;}
  5%   {opacity:.035;  -webkit-mask-position:134% 0; mask-position:134% 0;}
  10%  {opacity:.145;  -webkit-mask-position:112% 0; mask-position:112% 0;}
  16%  {opacity:.265;  -webkit-mask-position:72% 0;  mask-position:72% 0;}
  22%  {opacity:.160;  -webkit-mask-position:30% 0;  mask-position:30% 0;}
  27%  {opacity:.035;  -webkit-mask-position:-8% 0;  mask-position:-8% 0;}
  31%,40% {opacity:0;  -webkit-mask-position:-24% 0; mask-position:-24% 0;}
  45%  {opacity:.035;  -webkit-mask-position:-8% 0;  mask-position:-8% 0;}
  50%  {opacity:.160;  -webkit-mask-position:30% 0;  mask-position:30% 0;}
  56%  {opacity:.265;  -webkit-mask-position:72% 0;  mask-position:72% 0;}
  62%  {opacity:.145;  -webkit-mask-position:112% 0; mask-position:112% 0;}
  67%  {opacity:.035;  -webkit-mask-position:134% 0; mask-position:134% 0;}
  71%,100% {opacity:0; -webkit-mask-position:145% 0; mask-position:145% 0;}
}

/* =========================================================
   ETAPA 64 — REFLEJO REAL EN LA CINTA FIJA (TARGET CORRECTO)
   La marca visible al navegar NO es .brand-logo: es
   .scroll-icon-ribbon__wordmark. Replica el mecanismo SFD/footer.
   ========================================================= */
.scroll-icon-ribbon__brand{
  position:relative !important;
  isolation:isolate !important;
  overflow:visible !important;
}
.scroll-icon-ribbon__wordmark{
  position:relative !important;
  z-index:2 !important;
}
.lcp-ribbon-sfd-reflection{
  position:absolute !important;
  display:block !important;
  pointer-events:none !important;
  z-index:50 !important;
  object-fit:contain !important;
  object-position:center !important;
  opacity:0;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(4.2) contrast(1.25) saturate(.45)
         drop-shadow(0 0 2px rgba(255,255,255,.95))
         drop-shadow(0 0 5px rgba(215,235,255,.62)) !important;
  transform:none !important;
  backface-visibility:hidden !important;
  will-change:clip-path,opacity !important;
  animation:lcp-ribbon-sfd-reflection 7.6s cubic-bezier(.42,0,.18,1) 1.05s infinite !important;
}
@keyframes lcp-ribbon-sfd-reflection{
  0%,63%,100%{opacity:0;clip-path:polygon(-20% -10%,-5% -10%,7% 110%,-8% 110%)}
  8%{opacity:.08;clip-path:polygon(-8% -10%,7% -10%,19% 110%,4% 110%)}
  11%{opacity:.62;clip-path:polygon(4% -10%,19% -10%,31% 110%,16% 110%)}
  14%{opacity:.88;clip-path:polygon(21% -10%,36% -10%,48% 110%,33% 110%)}
  17%{opacity:1;clip-path:polygon(39% -10%,54% -10%,66% 110%,51% 110%)}
  20%{opacity:.86;clip-path:polygon(57% -10%,72% -10%,84% 110%,69% 110%)}
  23%{opacity:.58;clip-path:polygon(75% -10%,90% -10%,102% 110%,87% 110%)}
  26%{opacity:.16;clip-path:polygon(93% -10%,108% -10%,120% 110%,105% 110%)}
  29%{opacity:0;clip-path:polygon(111% -10%,126% -10%,138% 110%,123% 110%)}
}
.lcp-ribbon-sfd-reflection-restart{ animation:none !important; }

/* Tarjeta: refuerzo perceptible manteniendo exactamente la geometría aprobada. */
.hero__slides > .lcp-reflection-copy--card{
  filter:blur(.75px) brightness(1.48) drop-shadow(0 0 2px rgba(255,255,255,.24)) !important;
}
@keyframes lcp-card-soft-double-reflection{
  0%   {opacity:0;     -webkit-mask-position:145% 0; mask-position:145% 0;}
  5%   {opacity:.045;  -webkit-mask-position:134% 0; mask-position:134% 0;}
  10%  {opacity:.185;  -webkit-mask-position:112% 0; mask-position:112% 0;}
  16%  {opacity:.335;  -webkit-mask-position:72% 0;  mask-position:72% 0;}
  22%  {opacity:.205;  -webkit-mask-position:30% 0;  mask-position:30% 0;}
  27%  {opacity:.045;  -webkit-mask-position:-8% 0;  mask-position:-8% 0;}
  31%,40% {opacity:0;  -webkit-mask-position:-24% 0; mask-position:-24% 0;}
  45%  {opacity:.045;  -webkit-mask-position:-8% 0;  mask-position:-8% 0;}
  50%  {opacity:.205;  -webkit-mask-position:30% 0;  mask-position:30% 0;}
  56%  {opacity:.335;  -webkit-mask-position:72% 0;  mask-position:72% 0;}
  62%  {opacity:.185;  -webkit-mask-position:112% 0; mask-position:112% 0;}
  67%  {opacity:.045;  -webkit-mask-position:134% 0; mask-position:134% 0;}
  71%,100% {opacity:0; -webkit-mask-position:145% 0; mask-position:145% 0;}
}
/*__TEMP_TEST_RIBBON__*/

/* =========================================================
   FINAL CLEAN REFLECTION OVERRIDES — p24
   One simple CSS-only reflection for the top hero logo and ribbon logo,
   plus a visibly stronger card reflection without changing its shape.
   ========================================================= */

:root{
  --lcp-logo-reflect-duration: 7.6s;
}

/* Disable all historical header/ribbon reflection artifacts so only the clean system remains. */
.brand-logo::after,
.brand-logo > .lcp-reflection-copy--header,
.lcp-reflection-copy--header-fixed,
.lcp-sfd-reflection-copy--header,
.brand-logo > .lcp-header-reflection-direct,
.brand-logo > .lcp-header-shine-host,
.brand-logo > .lcp-header-reflection-direct,
.lcp-ribbon-sfd-reflection,
.lcp-sfd-reflection-copy--header,
.lcp-header-mask-shine-restart::before{
  display:none !important;
  content:none !important;
  animation:none !important;
  opacity:0 !important;
}

/* HERO TOP LOGO — exact visible logo in the top hero bar */
.brand-logo{
  position:relative !important;
  isolation:isolate !important;
  overflow:visible !important;
}
.brand-logo__host{
  position:relative !important;
  display:block !important;
  width:clamp(162px,13.6vw,230px) !important;
  max-height:49px !important;
  transform:translateY(12px) !important;
}
.brand-logo > .brand-logo__host > .brand-logo__base{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:49px !important;
  object-fit:contain !important;
  transform:none !important;
  position:relative !important;
  z-index:1 !important;
}
.lcp-topbar-shine,
.lcp-ribbon-shine{
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  z-index:3 !important;
  opacity:0 !important;
  mix-blend-mode:screen !important;
  background-image:
    linear-gradient(104deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 39%,
      rgba(255,255,255,.07) 44%,
      rgba(255,255,255,.86) 49.5%,
      rgba(255,255,255,.18) 54%,
      rgba(255,255,255,0) 59%,
      rgba(255,255,255,0) 100%),
    linear-gradient(104deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 46%,
      rgba(255,255,255,.92) 50%,
      rgba(255,255,255,0) 54%,
      rgba(255,255,255,0) 100%);
  background-size:240% 100%, 240% 100% !important;
  background-position:-180% 0, -184% 0 !important;
  filter:brightness(1.02) blur(.45px) drop-shadow(0 0 1px rgba(255,255,255,.9)) drop-shadow(0 0 4px rgba(214,232,255,.46)) !important;
  backface-visibility:hidden !important;
  will-change:background-position,opacity !important;
  -webkit-mask-image:url('assets/limacitypass-logo.png') !important;
  mask-image:url('assets/limacitypass-logo.png') !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  -webkit-mask-position:center !important;
  mask-position:center !important;
  -webkit-mask-size:contain !important;
  mask-size:contain !important;
  animation:lcp-clean-logo-reflection var(--lcp-logo-reflect-duration) cubic-bezier(.42,0,.18,1) 1.05s infinite !important;
}

@keyframes lcp-clean-logo-reflection{
  0%,63%,100%{opacity:0;background-position:-180% 0,-184% 0;}
  8% {opacity:.05;background-position:-134% 0,-138% 0;}
  11%{opacity:.32;background-position:-96% 0,-100% 0;}
  14%{opacity:.55;background-position:-52% 0,-57% 0;}
  17%{opacity:.72;background-position:-10% 0,-15% 0;}
  20%{opacity:.50;background-position:32% 0,28% 0;}
  23%{opacity:.23;background-position:72% 0,68% 0;}
  26%{opacity:.08;background-position:108% 0,104% 0;}
  29%{opacity:0;background-position:146% 0,142% 0;}
}

.brand-logo.lcp-reflection-mouse-restart-clean .lcp-topbar-shine,
.scroll-icon-ribbon__brand.lcp-reflection-mouse-restart-clean .lcp-ribbon-shine{
  animation:none !important;
}

/* FIXED RIBBON LOGO — same subtle reflection as footer/SFD feel */
.scroll-icon-ribbon__brand{
  position:relative !important;
  overflow:visible !important;
  isolation:isolate !important;
}
.scroll-icon-ribbon__wordmark-host{
  position:relative !important;
  display:block !important;
  width:min(178px,11.8vw) !important;
  flex:0 0 auto !important;
}
.scroll-icon-ribbon__wordmark{
  width:100% !important;
  height:auto !important;
  display:block !important;
  position:relative !important;
  z-index:1 !important;
}

/* CARD — same shape, but with a visibly stronger emphasis. */
.hero__slides > .lcp-reflection-copy--card{
  filter:grayscale(1) brightness(5.55) contrast(1.42) saturate(.5)
         drop-shadow(0 0 4px rgba(255,255,255,.95))
         drop-shadow(0 0 13px rgba(221,239,255,.78)) !important;
  animation-name:lcp-card-soft-double-reflection-v24 !important;
  animation-duration:9.4s !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
}
@keyframes lcp-card-soft-double-reflection-v24{
  0%,31%,100%{opacity:0;clip-path:polygon(-22% -10%,-2% -10%,16% 110%,-10% 110%);} 
  4% {opacity:.14;clip-path:polygon(-8% -10%,12% -10%,30% 110%,4% 110%);} 
  8% {opacity:.68;clip-path:polygon(4% -10%,24% -10%,42% 110%,16% 110%);} 
  12%{opacity:1;clip-path:polygon(17% -10%,38% -10%,56% 110%,30% 110%);} 
  16%{opacity:.66;clip-path:polygon(31% -10%,48% -10%,66% 110%,44% 110%);} 
  20%{opacity:.20;clip-path:polygon(44% -10%,58% -10%,76% 110%,56% 110%);} 
  24%{opacity:.72;clip-path:polygon(32% -10%,44% -10%,58% 110%,42% 110%);} 
  27%{opacity:.22;clip-path:polygon(39% -10%,50% -10%,64% 110%,48% 110%);} 
  31%{opacity:0;clip-path:polygon(48% -10%,58% -10%,70% 110%,56% 110%);} 
  100%{opacity:0;clip-path:polygon(48% -10%,58% -10%,70% 110%,56% 110%);} 
}

/* Mobile sizing alignment */
@media(max-width:700px){
  .brand-logo__host{width:clamp(128px,34vw,170px) !important;max-height:37px !important;transform:translateY(8px) !important;}
  .brand-logo > .brand-logo__host > .brand-logo__base{max-height:37px !important;}
}
@media(max-width:430px){
  .brand-logo__host{width:clamp(96px,26vw,118px) !important;}
}
@media(max-width:900px){
  .scroll-icon-ribbon__wordmark-host{width:78px !important;}
}

@media (prefers-reduced-motion: reduce){
  .lcp-topbar-shine,
  .lcp-ribbon-shine,
  .hero__slides > .lcp-reflection-copy--card{
    animation:none !important;
    opacity:0 !important;
  }
}

.brand-logo::before{display:none !important;content:none !important;animation:none !important;opacity:0 !important;}

/* =========================================================
   p25 — restore both reflections with lightweight DOM overlays.
   Keeps the smooth slide zoom because nothing is synchronized on scroll anymore.
   ========================================================= */

/* hide the temporary CSS-mask spans from p24 */
.lcp-topbar-shine,
.lcp-ribbon-shine{
  display:none !important;
}

/* shared exact-logo overlay used as reflection */
.lcp-topbar-shine-img,
.lcp-ribbon-shine-img{
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  display:block !important;
  pointer-events:none !important;
  z-index:4 !important;
  opacity:0 !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(4.6) contrast(1.18) saturate(.35)
         drop-shadow(0 0 1px rgba(255,255,255,.82))
         drop-shadow(0 0 4px rgba(214,232,255,.42)) !important;
  clip-path:polygon(-16% -10%,-6% -10%,1% 110%,-9% 110%);
  backface-visibility:hidden !important;
  will-change:clip-path,opacity !important;
  animation:lcp-logo-reflection-slim 7.6s cubic-bezier(.42,0,.18,1) 1.05s infinite !important;
}

/* topbar host */
.brand-logo__host{
  overflow:visible !important;
  isolation:isolate !important;
}

/* ribbon host */
.scroll-icon-ribbon__wordmark-host{
  overflow:visible !important;
  isolation:isolate !important;
}

/* slightly subtler on the ribbon because it is smaller */
.lcp-ribbon-shine-img{
  filter:grayscale(1) brightness(4.3) contrast(1.16) saturate(.32)
         drop-shadow(0 0 1px rgba(255,255,255,.74))
         drop-shadow(0 0 3px rgba(214,232,255,.34)) !important;
  animation-delay:1.12s !important;
}

@keyframes lcp-logo-reflection-slim{
  0%,63%,100%{opacity:0;clip-path:polygon(-16% -10%,-6% -10%,1% 110%,-9% 110%);} 
  8% {opacity:.05;clip-path:polygon(-7% -10%,3% -10%,10% 110%,0% 110%);} 
  11%{opacity:.24;clip-path:polygon(4% -10%,14% -10%,21% 110%,11% 110%);} 
  14%{opacity:.50;clip-path:polygon(16% -10%,27% -10%,34% 110%,23% 110%);} 
  17%{opacity:.72;clip-path:polygon(29% -10%,40% -10%,47% 110%,36% 110%);} 
  20%{opacity:.48;clip-path:polygon(43% -10%,54% -10%,61% 110%,50% 110%);} 
  23%{opacity:.20;clip-path:polygon(57% -10%,68% -10%,75% 110%,64% 110%);} 
  26%{opacity:.06;clip-path:polygon(71% -10%,82% -10%,89% 110%,78% 110%);} 
  29%{opacity:0;clip-path:polygon(85% -10%,96% -10%,103% 110%,92% 110%);} 
}

/* stronger, clearly visible card reflection while keeping approved angle/shape */
.hero__slides > .lcp-reflection-copy--card{
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(6.4) contrast(1.55) saturate(.52)
         drop-shadow(0 0 5px rgba(255,255,255,.98))
         drop-shadow(0 0 16px rgba(221,239,255,.84)) !important;
  opacity:0 !important;
  animation-name:lcp-card-soft-double-reflection-v25 !important;
  animation-duration:9.4s !important;
}
@keyframes lcp-card-soft-double-reflection-v25{
  0%,32%,100%{opacity:0;clip-path:polygon(-22% -10%,-1% -10%,17% 110%,-9% 110%);} 
  4% {opacity:.18;clip-path:polygon(-9% -10%,11% -10%,29% 110%,3% 110%);} 
  8% {opacity:.82;clip-path:polygon(4% -10%,24% -10%,42% 110%,16% 110%);} 
  12%{opacity:1;clip-path:polygon(17% -10%,38% -10%,56% 110%,30% 110%);} 
  16%{opacity:.76;clip-path:polygon(31% -10%,48% -10%,66% 110%,44% 110%);} 
  20%{opacity:.28;clip-path:polygon(44% -10%,58% -10%,76% 110%,56% 110%);} 
  24%{opacity:.86;clip-path:polygon(32% -10%,44% -10%,58% 110%,42% 110%);} 
  27%{opacity:.30;clip-path:polygon(39% -10%,50% -10%,64% 110%,48% 110%);} 
  32%{opacity:0;clip-path:polygon(48% -10%,58% -10%,70% 110%,56% 110%);} 
}

@media(max-width:900px){
  .scroll-icon-ribbon__wordmark-host{width:78px !important;}
}

/* =========================================================
   p26 — stronger guaranteed-visible reflections while keeping smooth zoom.
   ========================================================= */

/* TOP LOGO + RIBBON LOGO: make the overlay definitely visible and properly aligned */
.lcp-topbar-shine-img,
.lcp-ribbon-shine-img{
  transform:none !important;
  visibility:visible !important;
  opacity:0 !important;
  display:block !important;
  clip-path:polygon(-18% -10%, -7% -10%, 2% 110%, -9% 110%) !important;
  filter:grayscale(1) brightness(5.4) contrast(1.28) saturate(.40)
         drop-shadow(0 0 2px rgba(255,255,255,.92))
         drop-shadow(0 0 7px rgba(228,241,255,.54)) !important;
  animation:lcp-logo-reflection-visible 6.8s cubic-bezier(.42,0,.18,1) .9s infinite !important;
}
.lcp-ribbon-shine-img{
  filter:grayscale(1) brightness(5.0) contrast(1.24) saturate(.38)
         drop-shadow(0 0 1px rgba(255,255,255,.86))
         drop-shadow(0 0 5px rgba(228,241,255,.42)) !important;
  animation-delay:1s !important;
}
@keyframes lcp-logo-reflection-visible{
  0%,56%,100%{opacity:0;clip-path:polygon(-18% -10%, -7% -10%, 2% 110%, -9% 110%);} 
  7% {opacity:.10;clip-path:polygon(-8% -10%, 3% -10%, 12% 110%, 1% 110%);} 
  11%{opacity:.40;clip-path:polygon(4% -10%, 15% -10%, 24% 110%, 13% 110%);} 
  15%{opacity:.76;clip-path:polygon(17% -10%, 29% -10%, 38% 110%, 26% 110%);} 
  19%{opacity:1;clip-path:polygon(31% -10%, 43% -10%, 52% 110%, 40% 110%);} 
  23%{opacity:.74;clip-path:polygon(46% -10%, 58% -10%, 67% 110%, 55% 110%);} 
  27%{opacity:.38;clip-path:polygon(61% -10%, 73% -10%, 82% 110%, 70% 110%);} 
  31%{opacity:.12;clip-path:polygon(76% -10%, 88% -10%, 97% 110%, 85% 110%);} 
  35%{opacity:0;clip-path:polygon(92% -10%, 104% -10%, 113% 110%, 101% 110%);} 
}

/* CARD reflection: force visibility and stronger emphasis */
.hero__slides > .lcp-reflection-copy--card{
  z-index:9 !important;
  visibility:visible !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(7.2) contrast(1.62) saturate(.56)
         drop-shadow(0 0 6px rgba(255,255,255,.99))
         drop-shadow(0 0 18px rgba(226,241,255,.88)) !important;
  animation-name:lcp-card-reflection-visible !important;
  animation-duration:8.8s !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
}
.hero__slides > .hero-card-hand.is-hand-ready + .lcp-reflection-copy--card{
  visibility:visible !important;
  opacity:1 !important;
}
@keyframes lcp-card-reflection-visible{
  0%,30%,100%{opacity:0;clip-path:polygon(-22% -10%,-1% -10%,17% 110%,-9% 110%);} 
  4% {opacity:.22;clip-path:polygon(-10% -10%,11% -10%,29% 110%,3% 110%);} 
  8% {opacity:.90;clip-path:polygon(4% -10%,24% -10%,42% 110%,16% 110%);} 
  12%{opacity:1;clip-path:polygon(17% -10%,38% -10%,56% 110%,30% 110%);} 
  16%{opacity:.86;clip-path:polygon(31% -10%,48% -10%,66% 110%,44% 110%);} 
  20%{opacity:.34;clip-path:polygon(44% -10%,58% -10%,76% 110%,56% 110%);} 
  24%{opacity:.95;clip-path:polygon(32% -10%,44% -10%,58% 110%,42% 110%);} 
  27%{opacity:.38;clip-path:polygon(39% -10%,50% -10%,64% 110%,48% 110%);} 
  30%{opacity:0;clip-path:polygon(48% -10%,58% -10%,70% 110%,56% 110%);} 
}


/* =========================================================
   p27 — restore aligned card reflection and recover top logo reflection.
   ========================================================= */

/* Make the top logo reflection definitely render on top of the visible logo. */
.brand-logo img.lcp-topbar-shine-img,
.scroll-icon-ribbon__wordmark-host > img.lcp-ribbon-shine-img{
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:100% !important;
  max-height:none !important;
  transform:none !important;
  margin:0 !important;
  padding:0 !important;
  display:block !important;
  opacity:0 !important;
  visibility:visible !important;
  z-index:6 !important;
  pointer-events:none !important;
  object-fit:contain !important;
  object-position:center !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(5.9) contrast(1.36) saturate(.44)
         drop-shadow(0 0 2px rgba(255,255,255,.94))
         drop-shadow(0 0 6px rgba(219,236,255,.54)) !important;
  clip-path:polygon(-14% -10%,-5% -10%,2% 110%,-7% 110%) !important;
  will-change:clip-path,opacity !important;
  animation:lcp-top-logo-recover 7.2s cubic-bezier(.42,0,.18,1) .9s infinite !important;
}
.scroll-icon-ribbon__wordmark-host > img.lcp-ribbon-shine-img{
  filter:grayscale(1) brightness(5.4) contrast(1.30) saturate(.42)
         drop-shadow(0 0 1px rgba(255,255,255,.88))
         drop-shadow(0 0 5px rgba(219,236,255,.42)) !important;
  animation-delay:1.02s !important;
}
@keyframes lcp-top-logo-recover{
  0%,60%,100%{opacity:0;clip-path:polygon(-14% -10%,-5% -10%,2% 110%,-7% 110%);} 
  8% {opacity:.08;clip-path:polygon(-5% -10%,4% -10%,11% 110%,2% 110%);} 
  11%{opacity:.34;clip-path:polygon(5% -10%,14% -10%,21% 110%,12% 110%);} 
  14%{opacity:.62;clip-path:polygon(15% -10%,25% -10%,32% 110%,22% 110%);} 
  17%{opacity:.90;clip-path:polygon(27% -10%,37% -10%,44% 110%,34% 110%);} 
  20%{opacity:.68;clip-path:polygon(39% -10%,49% -10%,56% 110%,46% 110%);} 
  23%{opacity:.34;clip-path:polygon(51% -10%,61% -10%,68% 110%,58% 110%);} 
  26%{opacity:.10;clip-path:polygon(63% -10%,73% -10%,80% 110%,70% 110%);} 
  29%{opacity:0;clip-path:polygon(75% -10%,85% -10%,92% 110%,82% 110%);} 
}

/* Restore the card reflection to the correctly aligned source and keep it stronger. */
.hero__slides > .lcp-reflection-copy--card{
  right:-44px !important;
  bottom:-30px !important;
  width:clamp(282px,26.3vw,418px) !important;
  height:auto !important;
  left:auto !important;
  top:auto !important;
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992) !important;
  transform-origin:74% 68% !important;
  visibility:hidden;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(6.35) contrast(1.5) saturate(.48)
         drop-shadow(0 0 4px rgba(255,255,255,.96))
         drop-shadow(0 0 13px rgba(226,241,255,.82)) !important;
  animation-name:lcp-card-reflection-align27 !important;
  animation-duration:9s !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
}
.hero__slides > .hero-card-hand.is-hand-ready + .lcp-reflection-copy--card{
  visibility:visible !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:hover + .lcp-reflection-copy--card,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered + .lcp-reflection-copy--card{
  transform:translate3d(-1.5px,-2px,0) rotate(-1.25deg) scale(.994) !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:active + .lcp-reflection-copy--card,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked + .lcp-reflection-copy--card{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.986) !important;
}
@keyframes lcp-card-reflection-align27{
  0%,31%,100%{opacity:0;clip-path:polygon(-22% -10%,-2% -10%,16% 110%,-10% 110%);} 
  4% {opacity:.18;clip-path:polygon(-8% -10%,12% -10%,30% 110%,4% 110%);} 
  8% {opacity:.82;clip-path:polygon(4% -10%,24% -10%,42% 110%,16% 110%);} 
  12%{opacity:1;clip-path:polygon(17% -10%,38% -10%,56% 110%,30% 110%);} 
  16%{opacity:.74;clip-path:polygon(31% -10%,48% -10%,66% 110%,44% 110%);} 
  20%{opacity:.26;clip-path:polygon(44% -10%,58% -10%,76% 110%,56% 110%);} 
  24%{opacity:.86;clip-path:polygon(32% -10%,44% -10%,58% 110%,42% 110%);} 
  27%{opacity:.30;clip-path:polygon(39% -10%,50% -10%,64% 110%,48% 110%);} 
  31%{opacity:0;clip-path:polygon(48% -10%,58% -10%,70% 110%,56% 110%);} 
}

/* =========================================================
   p28 — top logo reflection visible + card reflection constrained to the card.
   ========================================================= */

/* TOPBAR + RIBBON logo reflections: use the cloned logo image itself, not the hidden span. */
.brand-logo__host,
.scroll-icon-ribbon__wordmark-host{
  position:relative !important;
  display:block !important;
  line-height:0 !important;
  overflow:visible !important;
  isolation:isolate !important;
}
.brand-logo img.lcp-topbar-shine-img,
.scroll-icon-ribbon__wordmark-host img.lcp-ribbon-shine-img{
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:auto !important;
  display:block !important;
  max-height:none !important;
  opacity:0 !important;
  visibility:visible !important;
  pointer-events:none !important;
  z-index:7 !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:none !important;
  mix-blend-mode:screen !important;
  filter:grayscale(1) brightness(6.8) contrast(1.42) saturate(.48)
         drop-shadow(0 0 2px rgba(255,255,255,.97))
         drop-shadow(0 0 8px rgba(221,238,255,.58)) !important;
  clip-path:polygon(-14% -10%,-4% -10%,3% 110%,-7% 110%) !important;
  animation:lcp-logo-reflection-p28 7.2s cubic-bezier(.42,0,.18,1) 1s infinite !important;
}
.scroll-icon-ribbon__wordmark-host img.lcp-ribbon-shine-img{
  filter:grayscale(1) brightness(6.1) contrast(1.34) saturate(.42)
         drop-shadow(0 0 1px rgba(255,255,255,.90))
         drop-shadow(0 0 6px rgba(221,238,255,.46)) !important;
}
@keyframes lcp-logo-reflection-p28{
  0%,60%,100%{opacity:0;clip-path:polygon(-14% -10%,-4% -10%,3% 110%,-7% 110%);} 
  8% {opacity:.10;clip-path:polygon(-5% -10%,5% -10%,12% 110%,2% 110%);} 
  11%{opacity:.38;clip-path:polygon(6% -10%,16% -10%,23% 110%,13% 110%);} 
  14%{opacity:.68;clip-path:polygon(17% -10%,28% -10%,35% 110%,24% 110%);} 
  17%{opacity:1;clip-path:polygon(30% -10%,41% -10%,48% 110%,37% 110%);} 
  20%{opacity:.72;clip-path:polygon(43% -10%,54% -10%,61% 110%,50% 110%);} 
  23%{opacity:.34;clip-path:polygon(56% -10%,67% -10%,74% 110%,63% 110%);} 
  26%{opacity:.12;clip-path:polygon(69% -10%,80% -10%,87% 110%,76% 110%);} 
  29%{opacity:0;clip-path:polygon(82% -10%,93% -10%,100% 110%,89% 110%);} 
}

/* Hide the old image-based card reflection and replace it with a constrained shine overlay. */
.hero__slides > .lcp-reflection-copy--card{
  display:none !important;
  opacity:0 !important;
  animation:none !important;
}
.hero__slides > .lcp-card-shine{
  position:absolute;
  z-index:8;
  right:-44px;
  bottom:-30px;
  width:clamp(282px,26.3vw,418px);
  height:clamp(282px,26.3vw,418px);
  pointer-events:none;
  visibility:hidden;
  opacity:0;
  transform:translate3d(72px,3px,0) rotate(-1.15deg) scale(.992);
  transform-origin:74% 68%;
  transition:opacity .48s ease-out, transform .82s cubic-bezier(.16,.84,.30,1), visibility 0s linear .48s;
  will-change:transform,opacity,background-position;
  /* approximate the real card silhouette so the shine cannot spill outside */
  clip-path:polygon(8% 18%, 66% 9%, 82% 53%, 18% 62%);
  mix-blend-mode:screen;
  background-image:
    linear-gradient(92deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 41%,
      rgba(255,255,255,.16) 45%,
      rgba(255,255,255,1) 49.5%,
      rgba(255,255,255,.28) 53%,
      rgba(255,255,255,0) 57%,
      rgba(255,255,255,0) 100%),
    linear-gradient(92deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 48%,
      rgba(255,255,255,.82) 50%,
      rgba(255,255,255,0) 52%,
      rgba(255,255,255,0) 100%);
  background-size:220% 100%, 220% 100%;
  background-position:-170% 0, -176% 0;
  filter:blur(.25px) drop-shadow(0 0 4px rgba(255,255,255,.98)) drop-shadow(0 0 12px rgba(226,241,255,.76));
  animation:lcp-card-shine-p28 8.8s cubic-bezier(.42,0,.18,1) 1s infinite;
}
.hero__slides > .hero-card-hand.is-hand-ready + .lcp-card-shine{
  visibility:visible;
  opacity:1;
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992);
  transition-delay:0s;
}
.hero__slides > .hero-card-hand.is-hand-ready:hover + .lcp-card-shine,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered + .lcp-card-shine{
  transform:translate3d(-1.5px,-2px,0) rotate(-1.25deg) scale(.994);
}
.hero__slides > .hero-card-hand.is-hand-ready:active + .lcp-card-shine,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked + .lcp-card-shine{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.986);
}
@keyframes lcp-card-shine-p28{
  0%,32%,100%{background-position:-170% 0,-176% 0;opacity:0;} 
  4% {opacity:.18;background-position:-122% 0,-128% 0;} 
  8% {opacity:.88;background-position:-75% 0,-81% 0;} 
  12%{opacity:1;background-position:-32% 0,-38% 0;} 
  16%{opacity:.76;background-position:9% 0,3% 0;} 
  20%{opacity:.30;background-position:45% 0,39% 0;} 
  24%{opacity:.94;background-position:-2% 0,-8% 0;} 
  27%{opacity:.34;background-position:28% 0,22% 0;} 
  32%{opacity:0;background-position:70% 0,64% 0;} 
}

@media(max-width:900px){
  .hero__slides > .lcp-card-shine{
    right:-34px;
    bottom:-24px;
  }
}

/* =========================================================
   p29 CLEAN — only two reflection systems remain active:
   1) exact-card alpha reflection on the same 1254x1254 canvas as the hand
   2) masked white glint for topbar/ribbon Lima CityPass wordmarks
   No scroll listeners, so hero zoom remains smooth.
   ========================================================= */

/* Kill every historical header/ribbon/card reflection artifact. */
.lcp-topbar-shine,
.lcp-topbar-shine-img,
.lcp-ribbon-shine,
.lcp-ribbon-shine-img,
.lcp-ribbon-sfd-reflection,
.lcp-reflection-copy--header,
.lcp-reflection-copy--header-fixed,
.lcp-sfd-reflection-copy--header,
.lcp-header-reflection-direct,
.lcp-header-shine-host,
.hero__slides > .lcp-card-shine,
.hero__slides > .lcp-reflection-copy--card{
  display:none !important;
  animation:none !important;
  opacity:0 !important;
}

/* ---------- CARD: exact same canvas/position/transform as the hand image ---------- */
.hero__slides > .lcp-card-reflection-v29{
  position:absolute;
  z-index:7;
  right:-44px;
  bottom:-30px;
  left:auto;
  top:auto;
  width:clamp(282px,26.3vw,418px);
  height:auto;
  object-fit:contain;
  object-position:center;
  pointer-events:none;
  user-select:none;
  visibility:hidden;
  opacity:0;
  transform:translate3d(72px,3px,0) rotate(-1.15deg) scale(.992);
  transform-origin:74% 68%;
  mix-blend-mode:screen;
  filter:grayscale(1) brightness(5.9) contrast(1.42) saturate(.42)
         drop-shadow(0 0 3px rgba(255,255,255,.86))
         drop-shadow(0 0 10px rgba(224,240,255,.62));
  transition:transform .82s cubic-bezier(.16,.84,.30,1), visibility 0s linear .48s;
  will-change:transform,opacity,clip-path;
  animation:lcp-card-reflection-v29 9.2s cubic-bezier(.42,0,.18,1) 1s infinite;
}
.hero__slides > .hero-card-hand.is-hand-ready + .lcp-card-reflection-v29{
  visibility:visible;
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.992);
  transition-delay:0s;
}
.hero__slides > .hero-card-hand.is-hand-ready:hover + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered + .lcp-card-reflection-v29{
  transform:translate3d(-1.5px,-2px,0) rotate(-1.25deg) scale(.994);
}
.hero__slides > .hero-card-hand.is-hand-ready:active + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked + .lcp-card-reflection-v29{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.986);
}

/* Narrow/slightly feathered pass. The PNG alpha itself restricts light to the card only. */
@keyframes lcp-card-reflection-v29{
  0%,34%,100%{opacity:0;clip-path:polygon(-18% -12%,-5% -12%,5% 112%,-8% 112%);} 
  5% {opacity:.10;clip-path:polygon(-7% -12%,6% -12%,16% 112%,3% 112%);} 
  9% {opacity:.50;clip-path:polygon(5% -12%,18% -12%,28% 112%,15% 112%);} 
  13%{opacity:.78;clip-path:polygon(18% -12%,31% -12%,41% 112%,28% 112%);} 
  17%{opacity:.62;clip-path:polygon(31% -12%,44% -12%,54% 112%,41% 112%);} 
  21%{opacity:.28;clip-path:polygon(44% -12%,57% -12%,67% 112%,54% 112%);} 
  25%{opacity:.58;clip-path:polygon(32% -12%,43% -12%,52% 112%,41% 112%);} 
  29%{opacity:.22;clip-path:polygon(43% -12%,54% -12%,63% 112%,52% 112%);} 
  34%{opacity:0;clip-path:polygon(56% -12%,67% -12%,76% 112%,65% 112%);} 
}

/* ---------- LOGOS: unique classes, no old selector can cancel these animations ---------- */
.brand-logo__host,
.scroll-icon-ribbon__wordmark-host{
  position:relative !important;
  display:block !important;
  overflow:visible !important;
  isolation:isolate !important;
}

.lcp-topbar-reflection-v29,
.lcp-ribbon-reflection-v29{
  position:absolute;
  inset:0;
  z-index:20;
  pointer-events:none;
  opacity:0;
  mix-blend-mode:screen;
  background:
    linear-gradient(106deg,
      transparent 0%,
      transparent 43%,
      rgba(255,255,255,.08) 46%,
      rgba(255,255,255,.68) 49%,
      rgba(255,255,255,.98) 50.5%,
      rgba(255,255,255,.30) 53%,
      transparent 57%,
      transparent 100%);
  background-size:250% 100%;
  background-position:-190% 0;
  filter:blur(.35px) drop-shadow(0 0 2px rgba(255,255,255,.74)) drop-shadow(0 0 5px rgba(218,235,255,.38));
  -webkit-mask-image:url('assets/limacitypass-logo.png');
  mask-image:url('assets/limacitypass-logo.png');
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-size:contain;
  -webkit-mask-position:center;
  mask-position:center;
  will-change:background-position,opacity;
  animation:lcp-wordmark-reflection-v29 7.6s cubic-bezier(.42,0,.18,1) 1s infinite;
}
.lcp-ribbon-reflection-v29{
  filter:blur(.30px) drop-shadow(0 0 1px rgba(255,255,255,.70)) drop-shadow(0 0 4px rgba(218,235,255,.32));
  animation-delay:1.05s;
}

@keyframes lcp-wordmark-reflection-v29{
  0%,63%,100%{opacity:0;background-position:-190% 0;} 
  8% {opacity:.06;background-position:-145% 0;} 
  11%{opacity:.28;background-position:-104% 0;} 
  14%{opacity:.52;background-position:-62% 0;} 
  17%{opacity:.76;background-position:-18% 0;} 
  20%{opacity:.54;background-position:24% 0;} 
  23%{opacity:.25;background-position:66% 0;} 
  26%{opacity:.08;background-position:106% 0;} 
  29%{opacity:0;background-position:148% 0;} 
}

@media(max-width:900px){
  .hero__slides > .lcp-card-reflection-v29{right:-34px;bottom:-24px;}
}

@media(prefers-reduced-motion:reduce){
  .lcp-topbar-reflection-v29,
  .lcp-ribbon-reflection-v29,
  .hero__slides > .lcp-card-reflection-v29{
    animation:none !important;
    opacity:0 !important;
  }
}

/* =========================================================
   p30 — card reflection only: thinner, subtler, and angled parallel to the card split.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  filter:grayscale(1) brightness(4.95) contrast(1.24) saturate(.34)
         drop-shadow(0 0 2px rgba(255,255,255,.62))
         drop-shadow(0 0 7px rgba(224,240,255,.34)) !important;
  animation-name:lcp-card-reflection-v30 !important;
  animation-duration:9.2s !important;
}

@keyframes lcp-card-reflection-v30{
  0%,34%,100%{opacity:0;clip-path:polygon(-10% -12%,-3% -12%,-14% 112%,-21% 112%);} 
  5% {opacity:.06;clip-path:polygon(8% -12%,15% -12%,4% 112%,-3% 112%);} 
  9% {opacity:.26;clip-path:polygon(18% -12%,25% -12%,14% 112%,7% 112%);} 
  13%{opacity:.46;clip-path:polygon(28% -12%,35% -12%,24% 112%,17% 112%);} 
  17%{opacity:.34;clip-path:polygon(38% -12%,45% -12%,34% 112%,27% 112%);} 
  21%{opacity:.14;clip-path:polygon(48% -12%,55% -12%,44% 112%,37% 112%);} 
  25%{opacity:.30;clip-path:polygon(34% -12%,40% -12%,29% 112%,23% 112%);} 
  29%{opacity:.12;clip-path:polygon(43% -12%,49% -12%,38% 112%,32% 112%);} 
  34%{opacity:0;clip-path:polygon(54% -12%,60% -12%,49% 112%,43% 112%);} 
}

/* =========================================================
   p31 — card reflection only: thinner and more parallel to the card split.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  filter:grayscale(1) brightness(4.7) contrast(1.2) saturate(.32)
         drop-shadow(0 0 1px rgba(255,255,255,.56))
         drop-shadow(0 0 5px rgba(224,240,255,.28)) !important;
  animation-name:lcp-card-reflection-v31 !important;
}

@keyframes lcp-card-reflection-v31{
  0%,34%,100%{opacity:0;clip-path:polygon(-6% -12%,-1.5% -12%,-10% 112%,-14.5% 112%);} 
  5% {opacity:.05;clip-path:polygon(12% -12%,16.5% -12%,8% 112%,3.5% 112%);} 
  9% {opacity:.22;clip-path:polygon(22% -12%,26.5% -12%,18% 112%,13.5% 112%);} 
  13%{opacity:.42;clip-path:polygon(32% -12%,36.5% -12%,28% 112%,23.5% 112%);} 
  17%{opacity:.30;clip-path:polygon(42% -12%,46.5% -12%,38% 112%,33.5% 112%);} 
  21%{opacity:.12;clip-path:polygon(52% -12%,56.5% -12%,48% 112%,43.5% 112%);} 
  25%{opacity:.26;clip-path:polygon(36% -12%,40% -12%,32% 112%,28% 112%);} 
  29%{opacity:.10;clip-path:polygon(45% -12%,49% -12%,41% 112%,37% 112%);} 
  34%{opacity:0;clip-path:polygon(56% -12%,60% -12%,52% 112%,48% 112%);} 
}

/* =========================================================
   AJUSTE FINAL SOLO REFLEJO CARD — rotación + bordes suaves
   No modifica ningún otro comportamiento.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  /* mantenemos exactamente el mismo elemento/posición/escala; solo afinamos el reflejo */
  clip-path:none !important;
  -webkit-mask-image:linear-gradient(
    102deg,
    transparent 0%,
    transparent 39.0%,
    rgba(0,0,0,.10) 40.0%,
    rgba(0,0,0,.58) 40.8%,
    #000 41.45%,
    rgba(0,0,0,.58) 42.10%,
    rgba(0,0,0,.10) 42.90%,
    transparent 43.9%,

    transparent 45.1%,
    rgba(0,0,0,.08) 46.0%,
    rgba(0,0,0,.46) 46.7%,
    #000 47.25%,
    rgba(0,0,0,.46) 47.80%,
    rgba(0,0,0,.08) 48.5%,
    transparent 49.4%,

    transparent 50.7%,
    rgba(0,0,0,.08) 51.5%,
    rgba(0,0,0,.40) 52.15%,
    #000 52.65%,
    rgba(0,0,0,.40) 53.15%,
    rgba(0,0,0,.08) 53.8%,
    transparent 54.7%,
    transparent 100%
  ) !important;
  mask-image:linear-gradient(
    102deg,
    transparent 0%,
    transparent 39.0%,
    rgba(0,0,0,.10) 40.0%,
    rgba(0,0,0,.58) 40.8%,
    #000 41.45%,
    rgba(0,0,0,.58) 42.10%,
    rgba(0,0,0,.10) 42.90%,
    transparent 43.9%,

    transparent 45.1%,
    rgba(0,0,0,.08) 46.0%,
    rgba(0,0,0,.46) 46.7%,
    #000 47.25%,
    rgba(0,0,0,.46) 47.80%,
    rgba(0,0,0,.08) 48.5%,
    transparent 49.4%,

    transparent 50.7%,
    rgba(0,0,0,.08) 51.5%,
    rgba(0,0,0,.40) 52.15%,
    #000 52.65%,
    rgba(0,0,0,.40) 53.15%,
    rgba(0,0,0,.08) 53.8%,
    transparent 54.7%,
    transparent 100%
  ) !important;
  -webkit-mask-size:220% 100% !important;
  mask-size:220% 100% !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  animation-name:lcp-card-reflection-soft-parallel !important;
  animation-duration:9.2s !important;
}

@keyframes lcp-card-reflection-soft-parallel{
  0%,34%,100%{
    opacity:0;
    -webkit-mask-position:-150% 0;
    mask-position:-150% 0;
  }
  5%{
    opacity:.05;
    -webkit-mask-position:-118% 0;
    mask-position:-118% 0;
  }
  9%{
    opacity:.22;
    -webkit-mask-position:-84% 0;
    mask-position:-84% 0;
  }
  13%{
    opacity:.42;
    -webkit-mask-position:-50% 0;
    mask-position:-50% 0;
  }
  17%{
    opacity:.30;
    -webkit-mask-position:-16% 0;
    mask-position:-16% 0;
  }
  21%{
    opacity:.12;
    -webkit-mask-position:18% 0;
    mask-position:18% 0;
  }
  25%{
    opacity:.26;
    -webkit-mask-position:-10% 0;
    mask-position:-10% 0;
  }
  29%{
    opacity:.10;
    -webkit-mask-position:20% 0;
    mask-position:20% 0;
  }
  34%{
    opacity:0;
    -webkit-mask-position:52% 0;
    mask-position:52% 0;
  }
}

/* +40% de énfasis visual SOLO en el reflejo del card. Mantiene forma, rotación y suavidad. */
.hero__slides > .lcp-card-reflection-v29{
  filter:grayscale(1) brightness(5.45) contrast(1.28) saturate(.36)
         drop-shadow(0 0 1.4px rgba(255,255,255,.78))
         drop-shadow(0 0 7px rgba(224,240,255,.39)) !important;
  animation-name:lcp-card-reflection-soft-parallel-40 !important;
}

@keyframes lcp-card-reflection-soft-parallel-40{
  0%,34%,100%{
    opacity:0;
    -webkit-mask-position:-150% 0;
    mask-position:-150% 0;
  }
  5%{
    opacity:.07;
    -webkit-mask-position:-118% 0;
    mask-position:-118% 0;
  }
  9%{
    opacity:.308;
    -webkit-mask-position:-84% 0;
    mask-position:-84% 0;
  }
  13%{
    opacity:.588;
    -webkit-mask-position:-50% 0;
    mask-position:-50% 0;
  }
  17%{
    opacity:.42;
    -webkit-mask-position:-16% 0;
    mask-position:-16% 0;
  }
  21%{
    opacity:.168;
    -webkit-mask-position:18% 0;
    mask-position:18% 0;
  }
  25%{
    opacity:.364;
    -webkit-mask-position:-10% 0;
    mask-position:-10% 0;
  }
  29%{
    opacity:.14;
    -webkit-mask-position:20% 0;
    mask-position:20% 0;
  }
  34%{
    opacity:0;
    -webkit-mask-position:52% 0;
    mask-position:52% 0;
  }
}

/* =========================================================
   AJUSTE SOLO REFLEJO CARD — 40% MENOS SUTIL
   Mantiene exactamente forma, rotación, ancho, 3 líneas y movimiento.
   Solo aumenta presencia visual.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  filter:grayscale(1) brightness(6.35) contrast(1.34) saturate(.40)
         drop-shadow(0 0 1.8px rgba(255,255,255,.92))
         drop-shadow(0 0 8px rgba(224,240,255,.52)) !important;
  animation-name:lcp-card-reflection-soft-parallel-strong40 !important;
}

@keyframes lcp-card-reflection-soft-parallel-strong40{
  0%,34%,100%{
    opacity:0;
    -webkit-mask-position:-150% 0;
    mask-position:-150% 0;
  }
  5%{
    opacity:.10;
    -webkit-mask-position:-118% 0;
    mask-position:-118% 0;
  }
  9%{
    opacity:.43;
    -webkit-mask-position:-84% 0;
    mask-position:-84% 0;
  }
  13%{
    opacity:.82;
    -webkit-mask-position:-50% 0;
    mask-position:-50% 0;
  }
  17%{
    opacity:.59;
    -webkit-mask-position:-16% 0;
    mask-position:-16% 0;
  }
  21%{
    opacity:.24;
    -webkit-mask-position:18% 0;
    mask-position:18% 0;
  }
  25%{
    opacity:.51;
    -webkit-mask-position:-10% 0;
    mask-position:-10% 0;
  }
  29%{
    opacity:.20;
    -webkit-mask-position:20% 0;
    mask-position:20% 0;
  }
  34%{
    opacity:0;
    -webkit-mask-position:52% 0;
    mask-position:52% 0;
  }
}

/* =========================================================
   AJUSTE SOLO REFLEJO CARD — recorrido por TODA la tarjeta
   Mantiene la misma idea y el mismo look; solo extiende el travel
   para que cruce desde el lado negro hasta el lado foto.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  animation-name:lcp-card-reflection-soft-parallel-fulltravel !important;
}

@keyframes lcp-card-reflection-soft-parallel-fulltravel{
  0%,34%,100%{
    opacity:0;
    -webkit-mask-position:-145% 0;
    mask-position:-145% 0;
  }
  5%{
    opacity:.10;
    -webkit-mask-position:-108% 0;
    mask-position:-108% 0;
  }
  9%{
    opacity:.43;
    -webkit-mask-position:-68% 0;
    mask-position:-68% 0;
  }
  13%{
    opacity:.82;
    -webkit-mask-position:-28% 0;
    mask-position:-28% 0;
  }
  17%{
    opacity:.59;
    -webkit-mask-position:12% 0;
    mask-position:12% 0;
  }
  21%{
    opacity:.24;
    -webkit-mask-position:50% 0;
    mask-position:50% 0;
  }
  25%{
    opacity:.51;
    -webkit-mask-position:28% 0;
    mask-position:28% 0;
  }
  29%{
    opacity:.20;
    -webkit-mask-position:74% 0;
    mask-position:74% 0;
  }
  34%{
    opacity:0;
    -webkit-mask-position:116% 0;
    mask-position:116% 0;
  }
}

/* =========================================================
   AJUSTE SOLO REFLEJO CARD — más pequeño, 20% más sutil y ciclo 7.5s
   - Reduce un poco el tamaño del reflejo para que no sobresalga de la tarjeta.
   - Mantiene la misma idea y el recorrido completo.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  filter:grayscale(1) brightness(5.08) contrast(1.22) saturate(.34)
         drop-shadow(0 0 1.2px rgba(255,255,255,.74))
         drop-shadow(0 0 6px rgba(224,240,255,.42)) !important;
  animation-name:lcp-card-reflection-soft-parallel-fulltravel-v2 !important;
  animation-duration:7.5s !important;
}

.hero__slides > .hero-card-hand.is-hand-ready + .lcp-card-reflection-v29{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.948) !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:hover + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered + .lcp-card-reflection-v29{
  transform:translate3d(-1.5px,-2px,0) rotate(-1.25deg) scale(.950) !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:active + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked + .lcp-card-reflection-v29{
  transform:translate3d(0,0,0) rotate(-1.15deg) scale(.944) !important;
}

@keyframes lcp-card-reflection-soft-parallel-fulltravel-v2{
  0%,34%,100%{
    opacity:0;
    -webkit-mask-position:-138% 0;
    mask-position:-138% 0;
  }
  5%{
    opacity:.08;
    -webkit-mask-position:-103% 0;
    mask-position:-103% 0;
  }
  9%{
    opacity:.34;
    -webkit-mask-position:-65% 0;
    mask-position:-65% 0;
  }
  13%{
    opacity:.66;
    -webkit-mask-position:-27% 0;
    mask-position:-27% 0;
  }
  17%{
    opacity:.47;
    -webkit-mask-position:10% 0;
    mask-position:10% 0;
  }
  21%{
    opacity:.19;
    -webkit-mask-position:46% 0;
    mask-position:46% 0;
  }
  25%{
    opacity:.41;
    -webkit-mask-position:24% 0;
    mask-position:24% 0;
  }
  29%{
    opacity:.16;
    -webkit-mask-position:68% 0;
    mask-position:68% 0;
  }
  34%{
    opacity:0;
    -webkit-mask-position:106% 0;
    mask-position:106% 0;
  }
}

/* =========================================================
   AJUSTE SOLO REFLEJO CARD — corrección fina de encaje vertical
   El reflejo sube ligeramente para quedar exactamente sobre la card.
   ========================================================= */
.hero__slides > .hero-card-hand.is-hand-ready + .lcp-card-reflection-v29{
  transform:translate3d(0,-5px,0) rotate(-1.15deg) scale(.948) !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:hover + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered + .lcp-card-reflection-v29{
  transform:translate3d(-1.5px,-7px,0) rotate(-1.25deg) scale(.950) !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:active + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked + .lcp-card-reflection-v29{
  transform:translate3d(0,-5px,0) rotate(-1.15deg) scale(.944) !important;
}

/* =========================================================
   AJUSTE SOLO REFLEJO CARD — subir más + 30% más sutil
   Mantiene recorrido, forma, rotación y ciclo de 7.5s.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  filter:grayscale(1) brightness(4.45) contrast(1.16) saturate(.30)
         drop-shadow(0 0 1px rgba(255,255,255,.52))
         drop-shadow(0 0 5px rgba(224,240,255,.29)) !important;
  animation-name:lcp-card-reflection-soft-parallel-fulltravel-v3 !important;
  animation-duration:7.5s !important;
}

.hero__slides > .hero-card-hand.is-hand-ready + .lcp-card-reflection-v29{
  transform:translate3d(0,-9px,0) rotate(-1.15deg) scale(.948) !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:hover + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-hovered + .lcp-card-reflection-v29{
  transform:translate3d(-1.5px,-11px,0) rotate(-1.25deg) scale(.950) !important;
}
.hero__slides > .hero-card-hand.is-hand-ready:active + .lcp-card-reflection-v29,
.hero__slides > .hero-card-hand.is-hand-ready.is-hand-clicked + .lcp-card-reflection-v29{
  transform:translate3d(0,-9px,0) rotate(-1.15deg) scale(.944) !important;
}

@keyframes lcp-card-reflection-soft-parallel-fulltravel-v3{
  0%,34%,100%{opacity:0;-webkit-mask-position:-138% 0;mask-position:-138% 0;}
  5%{opacity:.056;-webkit-mask-position:-103% 0;mask-position:-103% 0;}
  9%{opacity:.238;-webkit-mask-position:-65% 0;mask-position:-65% 0;}
  13%{opacity:.462;-webkit-mask-position:-27% 0;mask-position:-27% 0;}
  17%{opacity:.329;-webkit-mask-position:10% 0;mask-position:10% 0;}
  21%{opacity:.133;-webkit-mask-position:46% 0;mask-position:46% 0;}
  25%{opacity:.287;-webkit-mask-position:24% 0;mask-position:24% 0;}
  29%{opacity:.112;-webkit-mask-position:68% 0;mask-position:68% 0;}
  34%{opacity:0;-webkit-mask-position:106% 0;mask-position:106% 0;}
}

/* =========================================================
   AJUSTE SOLO REFLEJO CARD — realismo/sutileza final
   No cambia posición, tamaño, rotación, recorrido ni funcionamiento.
   Mantiene 3 destellos: 1 principal + 2 secundarios más débiles,
   con bordes más desvanecidos para evitar apariencia de barras sólidas.
   ========================================================= */
.hero__slides > .lcp-card-reflection-v29{
  clip-path:none !important;
  -webkit-mask-image:linear-gradient(
    102deg,
    transparent 0%,
    transparent 39.65%,
    rgba(0,0,0,.025) 40.05%,
    rgba(0,0,0,.10) 40.38%,
    rgba(0,0,0,.34) 40.67%,
    rgba(0,0,0,.76) 40.91%,
    rgba(0,0,0,.94) 41.08%,
    rgba(0,0,0,.76) 41.25%,
    rgba(0,0,0,.34) 41.49%,
    rgba(0,0,0,.10) 41.78%,
    rgba(0,0,0,.025) 42.11%,
    transparent 42.52%,

    transparent 45.45%,
    rgba(0,0,0,.018) 45.82%,
    rgba(0,0,0,.07) 46.10%,
    rgba(0,0,0,.20) 46.34%,
    rgba(0,0,0,.40) 46.53%,
    rgba(0,0,0,.52) 46.68%,
    rgba(0,0,0,.40) 46.83%,
    rgba(0,0,0,.20) 47.02%,
    rgba(0,0,0,.07) 47.26%,
    rgba(0,0,0,.018) 47.54%,
    transparent 47.92%,

    transparent 50.42%,
    rgba(0,0,0,.015) 50.78%,
    rgba(0,0,0,.055) 51.05%,
    rgba(0,0,0,.16) 51.27%,
    rgba(0,0,0,.31) 51.45%,
    rgba(0,0,0,.40) 51.59%,
    rgba(0,0,0,.31) 51.73%,
    rgba(0,0,0,.16) 51.91%,
    rgba(0,0,0,.055) 52.13%,
    rgba(0,0,0,.015) 52.40%,
    transparent 52.77%,
    transparent 100%
  ) !important;
  mask-image:linear-gradient(
    102deg,
    transparent 0%,
    transparent 39.65%,
    rgba(0,0,0,.025) 40.05%,
    rgba(0,0,0,.10) 40.38%,
    rgba(0,0,0,.34) 40.67%,
    rgba(0,0,0,.76) 40.91%,
    rgba(0,0,0,.94) 41.08%,
    rgba(0,0,0,.76) 41.25%,
    rgba(0,0,0,.34) 41.49%,
    rgba(0,0,0,.10) 41.78%,
    rgba(0,0,0,.025) 42.11%,
    transparent 42.52%,

    transparent 45.45%,
    rgba(0,0,0,.018) 45.82%,
    rgba(0,0,0,.07) 46.10%,
    rgba(0,0,0,.20) 46.34%,
    rgba(0,0,0,.40) 46.53%,
    rgba(0,0,0,.52) 46.68%,
    rgba(0,0,0,.40) 46.83%,
    rgba(0,0,0,.20) 47.02%,
    rgba(0,0,0,.07) 47.26%,
    rgba(0,0,0,.018) 47.54%,
    transparent 47.92%,

    transparent 50.42%,
    rgba(0,0,0,.015) 50.78%,
    rgba(0,0,0,.055) 51.05%,
    rgba(0,0,0,.16) 51.27%,
    rgba(0,0,0,.31) 51.45%,
    rgba(0,0,0,.40) 51.59%,
    rgba(0,0,0,.31) 51.73%,
    rgba(0,0,0,.16) 51.91%,
    rgba(0,0,0,.055) 52.13%,
    rgba(0,0,0,.015) 52.40%,
    transparent 52.77%,
    transparent 100%
  ) !important;
  -webkit-mask-size:220% 100% !important;
  mask-size:220% 100% !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  filter:grayscale(1) brightness(4.12) contrast(1.12) saturate(.26)
         blur(.18px)
         drop-shadow(0 0 .8px rgba(255,255,255,.42))
         drop-shadow(0 0 3.8px rgba(224,240,255,.20)) !important;
  animation-name:lcp-card-reflection-realistic-final !important;
  animation-duration:7.5s !important;
  animation-timing-function:cubic-bezier(.42,0,.18,1) !important;
  animation-iteration-count:infinite !important;
}

@keyframes lcp-card-reflection-realistic-final{
  0%,34%,100%{opacity:0;-webkit-mask-position:-138% 0;mask-position:-138% 0;}
  5%{opacity:.040;-webkit-mask-position:-103% 0;mask-position:-103% 0;}
  9%{opacity:.170;-webkit-mask-position:-65% 0;mask-position:-65% 0;}
  13%{opacity:.330;-webkit-mask-position:-27% 0;mask-position:-27% 0;}
  17%{opacity:.235;-webkit-mask-position:10% 0;mask-position:10% 0;}
  21%{opacity:.095;-webkit-mask-position:46% 0;mask-position:46% 0;}
  25%{opacity:.205;-webkit-mask-position:24% 0;mask-position:24% 0;}
  29%{opacity:.080;-webkit-mask-position:68% 0;mask-position:68% 0;}
  34%{opacity:0;-webkit-mask-position:106% 0;mask-position:106% 0;}
}

/* =========================================================
   LOCALES AFILIADOS — filtros por distrito + mapa de ubicaciones
   Añadido sin alterar el comportamiento de las imágenes/hero.
   ========================================================= */
.affiliate-venues-filterbar{
  width:min(1680px,94vw);
  margin:0 auto 30px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.affiliate-venue-filter{
  min-height:42px;
  padding:0 22px;
  border:1px solid rgba(246,242,233,.34);
  background:transparent;
  color:rgba(246,242,233,.88);
  font-family:Arial,Helvetica,sans-serif;
  font-size:10px;
  line-height:1;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.affiliate-venue-filter:hover{
  border-color:rgba(246,242,233,.70);
  background:rgba(246,242,233,.06);
}
.affiliate-venue-filter.is-active{
  background:#f6f2e9;
  color:#11110f;
  border-color:#f6f2e9;
}
.affiliate-venue-card.is-filtered-out{
  display:none !important;
}

.affiliate-more-locations{
  margin-top:28px;
  padding:0;
  display:inline-flex;
  align-items:center;
  gap:11px;
  border:0;
  background:transparent;
  color:rgba(246,242,233,.88);
  font-family:Arial,Helvetica,sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.17em;
  text-transform:uppercase;
  cursor:pointer;
  transition:color .22s ease,transform .22s ease;
}
.affiliate-more-locations:hover{
  color:#fff;
  transform:translateY(-1px);
}
.affiliate-more-locations__pin{
  position:relative;
  width:24px;
  height:30px;
  display:block;
  flex:0 0 24px;
}
.affiliate-more-locations__pin::before{
  content:'';
  position:absolute;
  left:4px;
  top:1px;
  width:15px;
  height:15px;
  border:1.5px solid currentColor;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
}
.affiliate-more-locations__pin::after{
  content:'';
  position:absolute;
  left:10px;
  top:7px;
  width:4px;
  height:4px;
  border:1.5px solid currentColor;
  border-radius:50%;
}

.affiliate-map-modal{
  position:fixed;
  inset:0;
  z-index:10020;
  display:none;
  align-items:center;
  justify-content:center;
  padding:32px;
}
.affiliate-map-modal.is-open{
  display:flex;
}
.affiliate-map-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(7px);
}
.affiliate-map-modal__dialog{
  position:relative;
  width:min(1040px,92vw);
  max-height:90vh;
  overflow:auto;
  background:#11110f;
  border:1px solid rgba(246,242,233,.25);
  box-shadow:0 30px 90px rgba(0,0,0,.46);
}
.affiliate-map-modal__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px 26px 20px;
  border-bottom:1px solid rgba(246,242,233,.16);
}
.affiliate-map-modal__kicker{
  margin:0 0 8px;
  color:#d69211;
  font-family:Arial,Helvetica,sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.25em;
}
.affiliate-map-modal__header h3{
  margin:0;
  color:#f6f2e9;
  font-family:Arial,Helvetica,sans-serif;
  font-size:clamp(18px,2vw,28px);
  font-weight:700;
}
.affiliate-map-modal__close{
  width:42px;
  height:42px;
  border:1px solid rgba(246,242,233,.34);
  border-radius:50%;
  background:transparent;
  color:#f6f2e9;
  font-size:27px;
  line-height:1;
  cursor:pointer;
}
.affiliate-map-modal__map-wrap{
  width:100%;
  height:min(58vh,560px);
  background:#20201d;
}
.affiliate-map-modal__map-wrap iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}
.affiliate-map-modal__google{
  display:flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  color:#f6f2e9;
  text-decoration:none;
  border-top:1px solid rgba(246,242,233,.16);
  font-family:Arial,Helvetica,sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.17em;
}
body.is-affiliate-map-open{
  overflow:hidden;
}

@media(max-width:900px){
  .affiliate-venues-filterbar{
    width:90vw;
    margin-bottom:24px;
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
    padding-bottom:4px;
  }
  .affiliate-venues-filterbar::-webkit-scrollbar{display:none;}
  .affiliate-venue-filter{
    flex:0 0 auto;
    min-height:38px;
    padding:0 16px;
    font-size:8px;
  }
  .affiliate-more-locations{margin-top:22px;}
  .affiliate-map-modal{padding:14px;}
  .affiliate-map-modal__dialog{width:96vw;}
  .affiliate-map-modal__header{padding:18px 18px 16px;}
  .affiliate-map-modal__map-wrap{height:58vh;}
}


/* =========================================================
   LIMA CITYPASS — hero sales panel
   Updated: restore original CTA feel, CTA outside date/person box,
   and increase panel transparency while preserving elegance.
   ========================================================= */
.hero-sales-panel{
  position:absolute;
  z-index:12;
  left:50%;
  top:60%;
  width:min(840px,63vw);
  transform:translate(-50%,-50%);
  padding:24px 26px 20px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  background:
    linear-gradient(135deg,rgba(19,20,20,.105),rgba(36,31,25,.063)),
    rgba(10,10,10,.03);
  box-shadow:0 12px 32px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(14px) saturate(106%);
  -webkit-backdrop-filter:blur(14px) saturate(106%);
  color:#fff;
  text-align:center;
}
.hero-sales-panel.is-floating{
  position:fixed;
  margin:0;
}
.hero-sales-panel.is-minimized{
  width:min(540px,72vw);
  padding:16px 22px 14px;
  text-align:left;
}
.hero-sales-panel__controls{
  position:absolute;
  top:12px;
  right:14px;
  display:flex;
  align-items:center;
  gap:8px;
  z-index:2;
}
.hero-sales-panel__control{
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(255,255,255,.08);
  color:#fff;
  font:700 16px/1 Arial,sans-serif;
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.hero-sales-panel__control:hover{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.38);
  transform:translateY(-1px);
}
.hero-sales-panel__control--move{cursor:grab}
.hero-sales-panel__control--move.is-dragging{cursor:grabbing}
.hero-sales-panel__badge{
  display:inline-block;
  margin-bottom:8px;
  padding:7px 12px 6px;
  border-radius:999px;
  background:rgba(224,157,27,.92);
  color:#15120d;
  font:800 9px/1 Arial,sans-serif;
  letter-spacing:.18em;
}
.hero-sales-panel h2{
  margin:0;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:clamp(23px,1.96vw,37px);
  line-height:1.04;
  text-shadow:0 3px 20px rgba(0,0,0,.18);
}
.hero-sales-panel>p{
  max-width:620px;
  margin:10px auto 18px;
  color:rgba(255,255,255,.86);
  font:500 clamp(12px,.95vw,15px)/1.45 Arial,sans-serif;
}
.hero-sales-panel__actions{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:14px;
}
.hero-sales-panel__bar{
  flex:1 1 auto;
  display:grid;
  grid-template-columns:1fr .82fr;
  gap:12px;
  align-items:end;
}
.hero-sales-panel__field-group{
  min-width:0;
  text-align:left;
}
.hero-sales-panel__field-caption{
  display:block;
  margin:0 0 7px 8px;
  color:rgba(255,255,255,.95);
  font:700 13px/1.15 Arial,sans-serif;
  letter-spacing:.01em;
}
.hero-sales-panel__field{
  min-width:0;
  display:flex;
  align-items:center;
  padding:14px 18px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:18px;
  background:rgba(248,247,242,.94);
  box-shadow:0 9px 26px rgba(0,0,0,.16);
  color:#17191a;
}
.hero-sales-panel__field--people{justify-content:space-between}
.hero-sales-panel__field input,
.hero-sales-panel__field select{
  display:block;
  width:100%;
  min-width:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:#333;
  font:500 14px/1.2 Arial,sans-serif;
}
.hero-sales-panel__cta{
  position:static !important;
  transform:none !important;
  right:auto !important;
  left:auto !important;
  top:auto !important;
  bottom:auto !important;
  z-index:auto !important;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:53px;
  padding:13px 22px;
  white-space:nowrap;
}
.hero-sales-panel__cta:hover{transform:translateY(-1px) !important;}
.hero-sales-panel__included{
  display:inline-flex;
  margin-top:13px;
  color:rgba(255,255,255,.88);
  text-decoration:none;
  font:700 10px/1 Arial,sans-serif;
  letter-spacing:.04em;
}
.hero-sales-panel__included:hover{color:#fff}
.hero-sales-panel.is-minimized>p,
.hero-sales-panel.is-minimized .hero-sales-panel__actions,
.hero-sales-panel.is-minimized .hero-sales-panel__included{display:none}
.hero-sales-panel.is-minimized .hero-sales-panel__badge{
  margin:0 0 8px;
}
.hero-sales-panel.is-minimized h2{
  font-size:clamp(25px,2vw,32px);
  line-height:1.05;
  text-align:left;
  white-space:nowrap;
}
@media(max-width:1100px){
  .hero-sales-panel{width:min(850px,74vw);top:58%}
}
@media(max-width:760px){
  .hero-sales-panel{
    width:calc(100% - 34px);
    top:56%;
    padding:20px 17px 18px;
    border-radius:16px;
  }
  .hero-sales-panel__actions{
    flex-direction:column;
    gap:10px;
  }
  .hero-sales-panel__bar{
    grid-template-columns:1fr;
    gap:10px;
  }
  .hero-sales-panel__field-caption{font-size:12px;margin-left:4px}
  .hero-sales-panel__field{padding:11px 12px;border-radius:14px}
  .hero-sales-panel__cta{
    width:100%;
    justify-content:center;
    border-radius:13px;
  }
}



/* =========================================================
   HERO / PANEL — drag limpio sin selección azul
   ========================================================= */
.hero,
.hero .slide,
.hero .slide__copy,
.hero .slide h1,
.hero .slide h2,
.hero .text-link,
.hero-sales-panel,
.hero-sales-panel *{
  -webkit-user-select:none;
  user-select:none;
}
.hero img{
  -webkit-user-drag:none;
  user-drag:none;
}
.hero-sales-panel{
  cursor:grab;
  touch-action:none;
}
.hero-sales-panel.is-dragging{cursor:grabbing}
.hero-sales-panel input,
.hero-sales-panel select,
.hero-sales-panel button,
.hero-sales-panel a,
.hero-sales-panel label{
  cursor:auto;
  touch-action:auto;
}
.hero-sales-panel input,
.hero-sales-panel select{
  -webkit-user-select:text;
  user-select:text;
}
.hero-sales-panel__control--minimize{cursor:pointer!important}


/* =========================================================
   HEADER DESKTOP — Idioma + Menú integrados visualmente en la cinta
   y navegación redistribuida hacia la izquierda.
   Solo layout del header; no altera hero, slider ni reflejos.
   ========================================================= */
@media (min-width:901px){
  /* La cinta superior reserva una zona limpia a la derecha para ES + MENÚ. */
  .scroll-icon-ribbon{
    padding-left:clamp(28px,3.2vw,56px) !important;
    padding-right:210px !important;
    gap:clamp(14px,1.7vw,28px) !important;
  }

  .scroll-icon-ribbon__brand{
    flex:0 0 clamp(230px,16vw,280px) !important;
  }

  .scroll-icon-ribbon__inner{
    max-width:none !important;
    margin:0 !important;
    width:100% !important;
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  }

  /* Los controles dejan de ocupar una segunda fila y pasan a la misma cinta. */
  .topbar,
  .topbar.is-solid{
    top:0 !important;
    left:auto !important;
    right:clamp(28px,3.2vw,56px) !important;
    width:auto !important;
    height:70px !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    pointer-events:none !important;
    z-index:16 !important;
  }

  .topbar__left{display:none !important;}

  .topbar__right{
    height:70px !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:22px !important;
    pointer-events:auto !important;
    white-space:nowrap !important;
  }

  .topbar__right .language,
  .topbar__right .menu-button{
    min-height:40px;
    padding:8px 0 !important;
  }
}


/* =========================================================
   HOTFIX — controles de header por delante de la cinta
   + CTA hero con texto pedido por usuario
   ========================================================= */
.topbar,
.topbar.is-solid{
  z-index:10050 !important;
}
.topbar__right,
.language-switcher,
.topbar__right .language,
.topbar__right .menu-button,
.language-menu{
  position:relative !important;
  z-index:10060 !important;
  pointer-events:auto !important;
}
.scroll-icon-ribbon{
  z-index:10020 !important;
}

.hero-sales-panel__cta{
  font-size:11.5px !important;
  letter-spacing:.12em !important;
  min-width:300px !important;
  padding:13px 26px !important;
}
@media (max-width:900px){
  .hero-sales-panel__cta{
    font-size:10.35px !important;
    min-width:auto !important;
    width:100% !important;
  }
}


/* =========================================================
   HOTFIX FINAL — controles idioma/menú visibles SOBRE la cinta
   ========================================================= */
@media (min-width:901px){
  .scroll-icon-ribbon{
    z-index:10010 !important;
  }
  .topbar,
  .topbar.is-solid{
    position:fixed !important;
    top:0 !important;
    right:0 !important;
    left:0 !important;
    width:100% !important;
    height:70px !important;
    padding:0 clamp(28px,3.2vw,56px) !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    pointer-events:none !important;
    z-index:10090 !important;
  }
  .topbar__left{
    display:none !important;
  }
  .topbar__right{
    margin-left:auto !important;
    height:70px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:22px !important;
    pointer-events:auto !important;
    position:relative !important;
    z-index:10100 !important;
  }
  .language-switcher,
  .topbar__right .language,
  .topbar__right .menu-button,
  .language-menu{
    display:flex !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    position:relative !important;
    z-index:10110 !important;
  }
  .language-menu{
    position:absolute !important;
  }
}
.hero-sales-panel__cta{
  font-size:11.5px !important;
  font-weight:500 !important;
  text-transform:none !important;
  letter-spacing:.08em !important;
}
.hero-sales-panel__cta-strong{
  font-weight:800 !important;
}

/* =========================================================
   HEADER — IDIOMA + MENÚ EN SU ESTILO ORIGINAL, SOBRE LA CINTA
   Solo corrige capa/posición. No cambia el aspecto de los controles.
   ========================================================= */
@media (min-width:901px){
  .scroll-icon-ribbon{
    z-index:10000 !important;
    padding-right:225px !important;
  }

  .topbar,
  .topbar.is-solid{
    position:fixed !important;
    top:0 !important;
    right:clamp(28px,3.2vw,56px) !important;
    left:auto !important;
    width:auto !important;
    height:70px !important;
    padding:0 !important;
    margin:0 !important;
    transform:none !important;
    background:transparent !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    border:0 !important;
    box-shadow:none !important;
    pointer-events:none !important;
    overflow:visible !important;
    z-index:2147483000 !important;
  }

  .topbar__left{
    display:none !important;
  }

  .topbar__right{
    position:relative !important;
    top:0 !important;
    right:auto !important;
    height:70px !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:22px !important;
    white-space:nowrap !important;
    pointer-events:auto !important;
    z-index:2147483001 !important;
  }

  /* Recuperar exactamente la apariencia simple original. */
  .topbar__right .language,
  .topbar__right .menu-button{
    appearance:none !important;
    border:0 !important;
    background:transparent !important;
    color:#fff !important;
    cursor:pointer !important;
    text-transform:uppercase !important;
    font-size:11px !important;
    font-weight:400 !important;
    letter-spacing:.15em !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:12px !important;
    padding:10px 0 !important;
    min-height:40px !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    position:relative !important;
    z-index:2147483002 !important;
  }

  .topbar__right .language img{
    width:18px !important;
    height:12px !important;
    display:block !important;
    object-fit:cover !important;
  }

  .language-switcher{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    z-index:2147483002 !important;
  }

  /* El desplegable conserva su funcionamiento normal; no queda abierto. */
  .language-menu{
    position:absolute !important;
    top:calc(100% + 10px) !important;
    right:0 !important;
    display:block !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-6px) !important;
    z-index:2147483003 !important;
  }
  .language-menu.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }
}


/* =========================================================
   HEADER DEFINITIVO — Idioma + Menú SON HIJOS DE LA CINTA
   Solución estructural: evita el stacking context de .hero (isolation:isolate).
   No altera la apariencia original de los controles.
   ========================================================= */
@media (min-width:901px){
  .scroll-icon-ribbon{
    z-index:2147483000 !important;
    padding-right:clamp(28px,3.2vw,56px) !important;
  }
  .scroll-icon-ribbon__brand{
    flex:0 0 clamp(220px,15.5vw,280px) !important;
  }
  .scroll-icon-ribbon__inner{
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    width:auto !important;
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  }
  .scroll-icon-ribbon__controls.topbar__right{
    position:relative !important;
    inset:auto !important;
    flex:0 0 auto !important;
    width:auto !important;
    height:100% !important;
    margin:0 0 0 clamp(16px,1.8vw,28px) !important;
    padding:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:22px !important;
    white-space:nowrap !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    z-index:5 !important;
  }
  .scroll-icon-ribbon__controls .language-switcher{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    z-index:6 !important;
  }
  .scroll-icon-ribbon__controls .language,
  .scroll-icon-ribbon__controls .menu-button{
    appearance:none !important;
    border:0 !important;
    background:transparent !important;
    color:#fff !important;
    cursor:pointer !important;
    text-transform:uppercase !important;
    font-size:11px !important;
    font-weight:400 !important;
    letter-spacing:.15em !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:12px !important;
    padding:10px 0 !important;
    min-height:40px !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    position:relative !important;
    inset:auto !important;
    z-index:7 !important;
  }
  .scroll-icon-ribbon__controls .language img{
    width:18px !important;
    height:12px !important;
    display:block !important;
    object-fit:cover !important;
  }
  .scroll-icon-ribbon__controls .language-menu{
    position:absolute !important;
    top:calc(100% + 10px) !important;
    right:0 !important;
    display:block !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-6px) !important;
    z-index:10 !important;
  }
  .scroll-icon-ribbon__controls .language-menu.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }
  /* El header original queda para la marca cuando corresponde, sin controles duplicados. */
  .topbar{pointer-events:none !important;}
}

/* =========================================================
   MOBILE FINAL — Lima CityPass
   Ajuste exclusivo para teléfonos. Desktop queda intacto.
   ========================================================= */
@media (max-width:900px){
  html,body{overflow-x:hidden!important;max-width:100%!important}

  /* Header móvil: una sola cinta limpia con marca + idioma + menú. */
  .topbar{display:none!important}
  .scroll-icon-ribbon{
    display:flex!important;
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    height:66px!important;
    min-height:66px!important;
    padding:0 14px!important;
    gap:10px!important;
    align-items:center!important;
    background:rgba(10,10,10,.82)!important;
    -webkit-backdrop-filter:blur(12px)!important;
    backdrop-filter:blur(12px)!important;
    border-top:0!important;
    border-bottom:1px solid rgba(255,255,255,.12)!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    pointer-events:auto!important;
    z-index:2147483000!important;
  }
  .scroll-icon-ribbon__brand{
    display:flex!important;
    flex:1 1 auto!important;
    min-width:0!important;
    height:66px!important;
    gap:8px!important;
    align-items:center!important;
  }
  .scroll-icon-ribbon__seal{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px!important;
  }
  .scroll-icon-ribbon__wordmark-host{
    width:min(148px,42vw)!important;
    height:38px!important;
  }
  .scroll-icon-ribbon__wordmark,
  .scroll-icon-ribbon__wordmark-host>img{
    width:min(148px,42vw)!important;
    max-width:100%!important;
    height:auto!important;
  }
  .scroll-icon-ribbon__inner{display:none!important}
  .scroll-icon-ribbon__controls.topbar__right{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    width:auto!important;
    height:66px!important;
    margin:0!important;
    padding:0!important;
    gap:13px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    z-index:2147483002!important;
  }
  .scroll-icon-ribbon__controls .language-switcher{
    display:flex!important;
    position:relative!important;
    align-items:center!important;
    pointer-events:auto!important;
  }
  .scroll-icon-ribbon__controls .language,
  .scroll-icon-ribbon__controls .menu-button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    min-width:auto!important;
    width:auto!important;
    min-height:40px!important;
    padding:8px 2px!important;
    color:#fff!important;
    background:transparent!important;
    border:0!important;
    font-size:10px!important;
    font-weight:500!important;
    line-height:1!important;
    letter-spacing:.10em!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .scroll-icon-ribbon__controls .language img{width:18px!important;height:12px!important}
  .scroll-icon-ribbon__controls .language #languageCode{display:inline!important}
  .scroll-icon-ribbon__controls .menu-button>span:last-child{display:none!important}
  .scroll-icon-ribbon__controls .menu-icon{width:22px!important;gap:5px!important}
  .scroll-icon-ribbon__controls .language-menu{
    top:calc(100% + 4px)!important;
    right:-2px!important;
    min-width:148px!important;
    z-index:2147483004!important;
  }

  /* Hero: espacio reservado bajo la cinta y lectura limpia. */
  .hero{
    height:100svh!important;
    min-height:700px!important;
    padding-top:66px!important;
    overflow:hidden!important;
  }
  .hero__slides,.slide{top:66px!important}
  .slide img{object-position:center center!important}
  .slide[data-index="0"] img,.slide[data-index="5"] img{object-position:56% center!important}
  .slide[data-index="2"]>img,.slide[data-index="2"].is-active>img{
    transform:scale(1.045)!important;
    object-position:55% center!important;
  }
  .slide[data-index="2"].is-active>img{transform:scale(1)!important}

  /* Texto principal más compacto, arriba a la izquierda. */
  .slide__copy{
    left:18px!important;
    top:108px!important;
    width:min(64vw,300px)!important;
    z-index:4!important;
  }
  .slide h1,.slide h2{
    top:0!important;
    margin:0 0 14px!important;
    font-size:clamp(30px,9.1vw,39px)!important;
    line-height:.96!important;
    letter-spacing:-.035em!important;
  }
  .text-link{
    top:0!important;
    font-size:9px!important;
    letter-spacing:.11em!important;
    padding:6px 0 8px!important;
    gap:10px!important;
  }

  /* Tarjeta/mano reducida para no competir con el copy ni con compra. */
  .hero-card-hand{
    width:min(34vw,150px)!important;
    right:-12px!important;
    bottom:82px!important;
    max-height:31vh!important;
    object-fit:contain!important;
    object-position:right bottom!important;
    z-index:5!important;
  }
  .lcp-card-reflection-v29,.lcp-reflection-copy--card,.lcp-card-shine{
    transform-origin:right bottom!important;
  }

  /* Panel de compra adaptado: compacto, legible y sin salirse del viewport. */
  .hero-sales-panel,
  .hero-sales-panel.is-floating{
    position:absolute!important;
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:82px!important;
    width:auto!important;
    max-width:none!important;
    transform:none!important;
    padding:16px 14px 14px!important;
    border-radius:15px!important;
    text-align:center!important;
  }
  .hero-sales-panel__controls{top:9px!important;right:9px!important}
  .hero-sales-panel__control{width:30px!important;height:30px!important;border-radius:9px!important}
  .hero-sales-panel__badge{
    margin:0 0 7px!important;
    padding:6px 9px 5px!important;
    font-size:7.5px!important;
    letter-spacing:.14em!important;
  }
  .hero-sales-panel h2{
    font-size:clamp(25px,7.2vw,31px)!important;
    line-height:1!important;
    padding:0 34px!important;
  }
  .hero-sales-panel>p{
    max-width:92%!important;
    margin:7px auto 12px!important;
    font-size:11px!important;
    line-height:1.35!important;
  }
  .hero-sales-panel__actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    align-items:stretch!important;
  }
  .hero-sales-panel__bar{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    width:100%!important;
  }
  .hero-sales-panel__field-caption{
    margin:0 0 5px 3px!important;
    font-size:10px!important;
    line-height:1.1!important;
  }
  .hero-sales-panel__field{
    min-height:43px!important;
    padding:10px 11px!important;
    border-radius:12px!important;
  }
  .hero-sales-panel__field input,
  .hero-sales-panel__field select{font-size:12px!important}
  .hero-sales-panel__cta{
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    padding:11px 12px!important;
    font-size:10.2px!important;
    letter-spacing:.08em!important;
    border-radius:0!important;
  }
  .hero-sales-panel__included{
    margin-top:9px!important;
    font-size:8.5px!important;
  }

  /* Minimizado siempre horizontal y justo encima de la línea. */
  .hero-sales-panel.is-minimized,
  .hero-sales-panel.is-minimized.is-floating{
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:72px!important;
    width:auto!important;
    min-width:0!important;
    padding:12px 50px 11px 14px!important;
  }
  .hero-sales-panel.is-minimized .hero-sales-panel__badge{display:none!important}
  .hero-sales-panel.is-minimized h2{
    padding:0!important;
    font-size:22px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Línea de progreso limpia al pie. */
  .hero__controls{
    left:18px!important;
    right:18px!important;
    bottom:12px!important;
    min-height:48px!important;
    padding:0!important;
    z-index:8!important;
  }
  .fs-controls{min-height:48px!important;padding-top:0!important}
  .fs-controls__topline{margin:0!important}
  .hero-pause{right:0!important;top:-30px!important}
  .fs-scroll-cue{left:0!important;bottom:0!important;font-size:7px!important;letter-spacing:.14em!important;gap:9px!important}
  .fs-scroll-cue i{height:22px!important}

  /* Menú lateral cómodo en teléfono. */
  .menu-panel{z-index:2147483600!important}
  .menu-panel__sheet{
    width:100%!important;
    padding:28px 22px 24px!important;
  }
  .menu-close{top:18px!important;right:20px!important}
  .menu-panel__label{margin:62px 0 22px!important}
  .menu-panel__nav a{padding:16px 0!important;font-size:28px!important}

  /* Secciones de contenido: aire lateral consistente. */
  .fs-feature-frame{width:calc(100vw - 24px)!important}
  .affiliate-venues-section,
  .what-pass-section,
  .passes-section,
  .attractions-section,
  .trust-footer{overflow:hidden!important}
  .affiliate-venues-inner{padding-left:18px!important;padding-right:18px!important}
  .affiliate-venues-filterbar{padding-left:18px!important;padding-right:18px!important}
  .affiliate-map-modal__dialog{width:calc(100vw - 20px)!important;max-height:88svh!important}
  .affiliate-map-modal__map-wrap{height:58svh!important}
}

@media (max-width:430px){
  .scroll-icon-ribbon{padding:0 10px!important}
  .scroll-icon-ribbon__seal{width:31px!important;height:31px!important;flex-basis:31px!important}
  .scroll-icon-ribbon__wordmark-host,
  .scroll-icon-ribbon__wordmark,
  .scroll-icon-ribbon__wordmark-host>img{width:min(126px,38vw)!important}
  .scroll-icon-ribbon__controls.topbar__right{gap:9px!important}
  .scroll-icon-ribbon__controls .language{font-size:9px!important}

  .slide__copy{top:104px!important;width:66vw!important}
  .slide h1,.slide h2{font-size:clamp(28px,8.7vw,36px)!important}
  .hero-card-hand{width:31vw!important;right:-10px!important;bottom:75px!important}

  .hero-sales-panel,
  .hero-sales-panel.is-floating{
    left:9px!important;
    right:9px!important;
    bottom:74px!important;
    padding:14px 11px 12px!important;
  }
  .hero-sales-panel h2{font-size:24px!important}
  .hero-sales-panel>p{font-size:10.5px!important}
  .hero-sales-panel__bar{grid-template-columns:1fr 1fr!important;gap:6px!important}
  .hero-sales-panel__field-caption{font-size:9.4px!important}
  .hero-sales-panel__field{padding:9px 9px!important}
  .hero-sales-panel__field input,.hero-sales-panel__field select{font-size:11px!important}
  .hero-sales-panel__cta{font-size:9.6px!important}
  .hero-sales-panel.is-minimized,.hero-sales-panel.is-minimized.is-floating{bottom:67px!important}
}

@media (max-width:365px){
  .scroll-icon-ribbon__wordmark-host,
  .scroll-icon-ribbon__wordmark,
  .scroll-icon-ribbon__wordmark-host>img{width:112px!important}
  .scroll-icon-ribbon__controls .language #languageCode{display:none!important}
  .slide__copy{width:72vw!important}
  .hero-sales-panel__bar{grid-template-columns:1fr!important}
  .hero-card-hand{display:none!important}
}

/* =========================================================
   MOBILE ONLY — compra simplificada
   La ventana de compra NO se muestra en móvil. Solo queda un CTA
   que lleva directamente a "Elige cuántos días quieres vivir Lima".
   Desktop permanece intacto.
   ========================================================= */
.mobile-hero-buy{display:none}

@media (max-width:760px){
  .hero-sales-panel,
  .hero-sales-panel.is-floating,
  .hero-sales-panel.is-minimized,
  .hero-sales-panel.is-minimized.is-floating{
    display:none !important;
  }

  .mobile-hero-buy{
    position:absolute;
    left:50%;
    bottom:76px;
    z-index:12;
    transform:translateX(-50%);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:min(312px,72vw);
    min-height:46px;
    padding:12px 18px;
    border:1px solid;
    border-image:linear-gradient(110deg,#e5a08f 0%,#efb19f 42%,#8ecff0 100%) 1;
    background:rgba(12,12,11,.48);
    box-shadow:0 8px 24px rgba(0,0,0,.18);
    color:#fff;
    text-decoration:none;
    text-transform:none;
    white-space:nowrap;
    font:800 11.5px/1 Arial,Helvetica,sans-serif;
    letter-spacing:.08em;
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
  .mobile-hero-buy span{
    margin-left:5px;
    color:#e0a126;
    font-weight:800;
  }
  .mobile-hero-buy:active{transform:translateX(-50%) scale(.985)}

  /* deja espacio al CTA sin tapar la mano ni la línea inferior */
  .hero-card-hand{
    bottom:86px !important;
  }
}

@media (max-width:430px){
  .mobile-hero-buy{
    bottom:69px;
    width:min(286px,76vw);
    min-height:44px;
    padding:11px 14px;
    font-size:10.8px;
  }
  .hero-card-hand{bottom:79px !important}
}


/* =========================================================
   MOBILE POLISH 2026-08-21
   Ajustes solicitados SOLO para móvil:
   - idioma junto al menú a la derecha
   - sin textos pequeños duplicados en la cinta
   - hero pegado inmediatamente bajo el header
   - CTA de compra más arriba
   - mano + tarjeta más grandes
   - segundo contenedor centrado verticalmente en negro
   ========================================================= */
@media (max-width:760px){
  /* Header: marca a la izquierda y controles agrupados a la derecha. */
  .scroll-icon-ribbon{
    padding-left:12px !important;
    padding-right:12px !important;
  }
  .scroll-icon-ribbon__brand{
    flex:0 1 auto !important;
    min-width:0 !important;
    margin-right:8px !important;
  }
  .scroll-icon-ribbon__controls.topbar__right{
    flex:0 0 auto !important;
    margin-left:auto !important;
    gap:13px !important;
    justify-content:flex-end !important;
  }

  /* Elimina definitivamente los textos/tabs pequeños duplicados (Lima CityPass / City...). */
  #scrollRibbonTabs,
  .scroll-icon-ribbon__inner,
  .scroll-icon-ribbon .ribbon-tab{
    display:none !important;
  }

  /* La foto empieza exactamente donde termina el header: elimina el bloque negro duplicado. */
  .hero{
    padding-top:0 !important;
  }
  .hero__slides{
    top:66px !important;
    bottom:0 !important;
  }
  .hero__slides > .slide{
    top:0 !important;
    bottom:0 !important;
  }

  /* CTA principal: más arriba y con la capitalización pedida. */
  .mobile-hero-buy{
    bottom:96px !important;
    width:min(320px,78vw) !important;
    min-height:47px !important;
    font-size:11.4px !important;
  }

  /* Mano + tarjeta: mayor presencia visual sin invadir el copy. */
  .hero-card-hand{
    display:block !important;
    width:min(42vw,184px) !important;
    max-height:38vh !important;
    right:-8px !important;
    bottom:102px !important;
  }

  /* Segunda sección: el frame queda centrado verticalmente en el área negra. */
  .fs-feature-section{
    min-height:100svh !important;
    height:auto !important;
    padding:66px 0 !important;
    justify-content:center !important;
  }
  .fs-feature-frame{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
}

@media (max-width:430px){
  .scroll-icon-ribbon__brand{margin-right:4px !important;}
  .scroll-icon-ribbon__controls.topbar__right{gap:10px !important;}
  .mobile-hero-buy{
    bottom:91px !important;
    width:min(300px,80vw) !important;
    font-size:10.9px !important;
  }
  .hero-card-hand{
    width:min(43vw,176px) !important;
    right:-7px !important;
    bottom:98px !important;
  }
}

@media (max-width:365px){
  /* En teléfonos angostos se conserva la mano; solo se reduce para que no tape el contenido. */
  .hero-card-hand{
    display:block !important;
    width:min(40vw,148px) !important;
    right:-8px !important;
    bottom:96px !important;
  }
  .scroll-icon-ribbon__controls .language #languageCode{display:none !important;}
}


/* =========================================================
   LOCALES AFILIADOS — REFRESH MANUAL + ENCUADRE DE FOTOS
   Solo afecta esta sección de la web principal.
   ========================================================= */

.affiliate-venue-refresh{
  width:46px;
  min-width:46px;
  height:46px;
  padding:0;
  display:inline-grid;
  place-items:center;
  border:1px solid rgba(246,242,233,.34);
  background:transparent;
  color:#f6f2e9;
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease, color .2s ease, opacity .2s ease;
}

.affiliate-venue-refresh:hover{
  border-color:rgba(246,242,233,.72);
  background:rgba(246,242,233,.06);
}

.affiliate-venue-refresh:disabled{
  cursor:default;
  opacity:.72;
}

.affiliate-venue-refresh svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.affiliate-venue-refresh.is-refreshing svg{
  animation:affiliateVenueRefreshSpin .72s linear infinite;
}

@keyframes affiliateVenueRefreshSpin{
  to{transform:rotate(360deg)}
}

/*
 * La foto original NO se modifica.
 * - La copia del fondo llena todo el cuadro y evita negro/barras vacías.
 * - La foto principal usa contain para que se vea completa.
 * - Se centra siempre.
 */
.affiliate-venue-media{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  background:#161311;
  isolation:isolate;
}

.affiliate-venue-media::before{
  content:"";
  position:absolute;
  inset:-8%;
  z-index:0;
  background-image:var(--affiliate-photo);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  filter:blur(16px) saturate(.9) brightness(.72);
  transform:scale(1.10);
}

.affiliate-venue-card .affiliate-venue-media img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center center;
  transform:scale(1.015);
  transform-origin:center center;
}

/* Mantener proporciones y controles cómodos en móvil. */
@media(max-width:900px){
  .affiliate-venue-refresh{
    width:44px;
    min-width:44px;
    height:44px;
  }
}


/* 2026-08-24: four-card Lima CityPass plans update */
.passes-main-grid--four{
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  gap:clamp(16px,1.5vw,26px);
}
.passes-main-grid--four .pass-option,
.passes-main-grid--four .pass-option--featured{
  min-height:0;
  padding:32px 24px 28px;
}
.passes-main-grid--four .pass-option--featured{
  transform:none;
}
.passes-main-grid--four .pass-option--featured:hover,
.passes-main-grid--four .pass-option:hover{
  transform:translateY(-7px);
}
.passes-main-grid--four .pass-card-visual{
  height:170px;
  margin:18px 0 24px;
}
.passes-main-grid--four .pass-card-visual img,
.passes-main-grid--four .pass-option--featured .pass-card-visual img{
  width:min(260px,100%);
  max-height:168px;
  transform:perspective(900px) rotateX(2deg) rotateY(-3deg);
  box-shadow:0 20px 38px rgba(0,0,0,.34);
}
.passes-main-grid--four .pass-option h3{
  font-size:clamp(22px,1.65vw,31px);
  margin-bottom:12px;
}
.passes-main-grid--four .pass-option p{
  font-size:15px;
  margin-bottom:28px;
}
.passes-main-grid--four .pass-duration{
  min-height:15px;
}
@media(max-width:1280px){
  .passes-main-grid--four{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px;margin:0 auto;}
}
@media(max-width:700px){
  .passes-main-grid--four{grid-template-columns:1fr;max-width:650px;}
  .passes-main-grid--four .pass-option,
  .passes-main-grid--four .pass-option--featured{padding:30px 24px;}
}


/* =========================================================
   LOCALES AFILIADOS — UPDATE LOCAL + SLIDER HORIZONTAL
   2026-08-24
   ========================================================= */
.affiliate-venue-refresh{
  flex:0 0 46px;
  align-self:stretch;
}

.affiliate-venues-viewport{
  position:relative;
  overflow:hidden;
  touch-action:pan-y;
}

.affiliate-venues-viewport.is-scrollable{
  cursor:grab;
}

.affiliate-venues-viewport.is-dragging{
  cursor:grabbing;
  user-select:none;
}

.affiliate-venues-viewport.is-dragging .affiliate-venues-track{
  scroll-behavior:auto;
  scroll-snap-type:none;
}

.affiliate-venues-track{
  flex-wrap:nowrap !important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}

.affiliate-venues-arrow:disabled{
  opacity:.28;
  cursor:default;
  transform:none !important;
}

@media(max-width:900px){
  .affiliate-venues-filterbar{
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .affiliate-venues-filterbar::-webkit-scrollbar{display:none;}
  .affiliate-venue-refresh{
    flex:0 0 44px;
  }
}


/* 2026-08-24 — drag real de la cinta de Locales Afiliados */
.affiliate-venues-track{
  cursor:grab;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
}
.affiliate-venues-track.is-dragging{
  cursor:grabbing !important;
  scroll-behavior:auto !important;
  scroll-snap-type:none !important;
}
.affiliate-venues-track img{
  -webkit-user-drag:none;
  user-drag:none;
  pointer-events:none;
}
.affiliate-venues-track .affiliate-venue-action{
  user-select:none;
}

/* =========================================================
   2026-08-28 — LOCALES AFILIADOS 3x2 + ficha completa + Maps
   ========================================================= */
@media (min-width:901px){
  .affiliate-venues-section{
    overflow:hidden;
  }
  .affiliate-venues-inner{
    width:min(94vw,1720px);
    grid-template-columns:minmax(220px,280px) minmax(0,1fr);
    gap:clamp(32px,3.2vw,56px);
  }
  .affiliate-venues-viewport{
    overflow:visible !important;
    touch-action:auto !important;
  }
  .affiliate-venues-track{
    display:flex !important;
    flex-wrap:wrap !important;
    justify-content:center;
    align-content:flex-start;
    gap:34px 20px !important;
    overflow:visible !important;
    scroll-snap-type:none !important;
    cursor:default !important;
    touch-action:auto !important;
    padding:0 0 8px !important;
  }
  .affiliate-venue-card{
    flex:0 0 calc((100% - 40px) / 3) !important;
    width:calc((100% - 40px) / 3) !important;
    max-width:none !important;
    scroll-snap-align:none !important;
  }
  .affiliate-venue-card img{
    aspect-ratio:1.12/1;
  }
  .affiliate-venue-card p{
    min-height:36px;
    margin-bottom:13px;
  }
}

.affiliate-venue-actions{
  display:flex;
  align-items:center;
  gap:9px;
}
.affiliate-venue-map-action{
  width:36px;
  height:36px;
  flex:0 0 36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(246,242,233,.58);
  border-radius:50%;
  background:rgba(0,0,0,.10);
  color:#f6f2e9;
  cursor:pointer;
  transition:background .22s ease,border-color .22s ease,transform .22s ease,opacity .22s ease;
}
.affiliate-venue-map-action svg{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.affiliate-venue-map-action:hover{
  background:rgba(246,242,233,.14);
  border-color:rgba(246,242,233,.9);
  transform:translateY(-1px);
}
.affiliate-venue-map-action:disabled{
  opacity:.3;
  cursor:not-allowed;
  transform:none;
}

.affiliate-local-detail-modal{
  position:fixed;
  inset:0;
  z-index:10050;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.affiliate-local-detail-modal.is-open{display:flex}
.affiliate-local-detail-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,5,5,.78);
  backdrop-filter:blur(10px);
}
.affiliate-local-detail-modal__dialog{
  position:relative;
  z-index:1;
  width:min(980px,94vw);
  max-height:88svh;
  overflow:auto;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(145deg,rgba(25,24,22,.98),rgba(12,12,11,.98));
  color:#f6f2e9;
  box-shadow:0 30px 90px rgba(0,0,0,.52);
}
.affiliate-local-detail-modal__close{
  position:absolute;
  top:14px;
  right:14px;
  z-index:4;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}
.affiliate-local-detail-modal__grid{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(320px,.98fr);
  min-height:520px;
}
.affiliate-local-detail-modal__media{
  min-height:460px;
  background:#0b0b0a;
  display:flex;
  flex-direction:column;
}
.affiliate-local-detail-modal__hero{
  width:100%;
  min-height:390px;
  flex:1 1 auto;
  object-fit:cover;
  display:block;
}
.affiliate-local-detail-modal__thumbs{
  display:flex;
  gap:8px;
  padding:10px;
  overflow-x:auto;
}
.affiliate-local-detail-modal__thumb{
  flex:0 0 68px;
  width:68px;
  height:52px;
  padding:0;
  border:1px solid rgba(255,255,255,.22);
  background:#111;
  cursor:pointer;
  opacity:.72;
}
.affiliate-local-detail-modal__thumb.is-active{opacity:1;border-color:#fff}
.affiliate-local-detail-modal__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.affiliate-local-detail-modal__content{
  padding:clamp(34px,4.2vw,58px) clamp(28px,3.5vw,48px) 38px;
}
.affiliate-local-detail-modal__kicker{
  margin:0 0 13px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(246,242,233,.58);
}
.affiliate-local-detail-modal__content h3{
  margin:0 44px 10px 0;
  font-size:clamp(24px,2.6vw,38px);
  line-height:1.05;
  text-transform:uppercase;
}
.affiliate-local-detail-modal__type{
  margin:0 0 26px;
  font-size:13px;
  color:rgba(246,242,233,.68);
}
.affiliate-local-detail-modal__facts{
  display:grid;
  gap:0;
  margin:0 0 25px;
  border-top:1px solid rgba(255,255,255,.14);
}
.affiliate-local-detail-modal__fact{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:14px;
  padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.affiliate-local-detail-modal__fact b{
  font-size:9px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(246,242,233,.50);
}
.affiliate-local-detail-modal__fact span{
  font-size:13px;
  line-height:1.5;
  color:#f6f2e9;
}
.affiliate-local-detail-modal__description{
  margin:0 0 28px;
  font-size:14px;
  line-height:1.72;
  color:rgba(246,242,233,.82);
  white-space:pre-line;
}
.affiliate-local-detail-modal__map{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:40px;
  padding:0 17px;
  border:1px solid rgba(246,242,233,.58);
  border-radius:999px;
  color:#fff;
  background:transparent;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  cursor:pointer;
}
.affiliate-local-detail-modal__map svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.65}
.affiliate-local-detail-modal__code{
  display:block;
  margin-top:24px;
  font-size:9px;
  letter-spacing:.08em;
  color:rgba(246,242,233,.30);
}
body.is-affiliate-local-detail-open{overflow:hidden}

@media(max-width:900px){
  .affiliate-venues-track{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:28px !important;
    overflow:visible !important;
    cursor:default !important;
  }
  .affiliate-venue-card{width:100%;max-width:none;flex:auto !important}
  .affiliate-venues-viewport{overflow:visible !important}
  .affiliate-local-detail-modal{padding:10px}
  .affiliate-local-detail-modal__dialog{width:100%;max-height:92svh}
  .affiliate-local-detail-modal__grid{grid-template-columns:1fr}
  .affiliate-local-detail-modal__media{min-height:0}
  .affiliate-local-detail-modal__hero{min-height:300px;max-height:42svh}
  .affiliate-local-detail-modal__content{padding:30px 22px 28px}
}
.affiliate-venue-action{
  background:transparent;
  cursor:pointer;
}


/* =========================================================
   2026-08-28 — FIX FINAL LOCALES AFILIADOS
   ancho completo + parrilla estable + botones correctos
   ========================================================= */
.affiliate-venues-section{
  overflow:hidden !important;
}

.affiliate-venues-filterbar{
  width:min(100%,1880px) !important;
  max-width:none !important;
  margin:0 auto 34px !important;
  padding-left:clamp(18px,2.4vw,44px) !important;
  padding-right:clamp(18px,2.4vw,44px) !important;
}

.affiliate-venues-inner{
  width:min(100%,1880px) !important;
  max-width:none !important;
  margin:0 auto !important;
  padding-left:clamp(18px,2.4vw,44px) !important;
  padding-right:clamp(18px,2.4vw,44px) !important;
  grid-template-columns:minmax(250px,330px) minmax(0,1fr) !important;
  gap:clamp(26px,2.8vw,44px) !important;
  align-items:start !important;
}

.affiliate-venues-rail{
  align-self:start !important;
}

.affiliate-venues-intro{
  max-width:290px !important;
}

.affiliate-venues-viewport{
  min-width:0 !important;
  overflow:visible !important;
  touch-action:auto !important;
}

.affiliate-venues-track{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:30px 20px !important;
  align-items:start !important;
  align-content:start !important;
  overflow:visible !important;
  scroll-snap-type:none !important;
  scroll-behavior:auto !important;
  cursor:default !important;
  touch-action:auto !important;
  padding:0 !important;
}

.affiliate-venues-track[data-count="1"]{
  grid-template-columns:minmax(280px, 480px) !important;
}

.affiliate-venues-track[data-count="2"],
.affiliate-venues-track[data-count="4"]{
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
}

.affiliate-venues-track[data-count="3"],
.affiliate-venues-track[data-count="5"],
.affiliate-venues-track[data-count="6"]{
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
}

.affiliate-venue-card{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  flex:none !important;
  scroll-snap-align:none !important;
}

.affiliate-venue-media{
  position:relative;
  width:100%;
  aspect-ratio:1.14 / 1;
  overflow:hidden;
  background:rgba(255,255,255,.04);
}

.affiliate-venue-card img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
}

.affiliate-venue-card h3{
  margin:15px 0 0 !important;
}

.affiliate-venue-card p{
  min-height:42px !important;
  margin:10px 0 16px !important;
}

.affiliate-venue-actions{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  flex-wrap:nowrap !important;
}

.affiliate-venue-action,
.affiliate-venue-map-action{
  appearance:none !important;
  -webkit-appearance:none !important;
  box-shadow:none !important;
  outline:none !important;
}

.affiliate-venue-action{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:126px !important;
  height:38px !important;
  padding:0 22px !important;
  border:1px solid rgba(246,242,233,.58) !important;
  border-radius:999px !important;
  background:transparent !important;
  color:#f6f2e9 !important;
  text-decoration:none !important;
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.04em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease !important;
}

.affiliate-venue-map-action{
  width:38px !important;
  height:38px !important;
  flex:0 0 38px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  border:1px solid rgba(246,242,233,.58) !important;
  border-radius:50% !important;
  background:transparent !important;
  color:#f6f2e9 !important;
  cursor:pointer !important;
  transition:background .22s ease,border-color .22s ease,transform .22s ease,opacity .22s ease !important;
}

.affiliate-venue-map-action svg{
  display:block !important;
  width:16px !important;
  height:16px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.65 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

.affiliate-venue-action:hover,
.affiliate-venue-map-action:hover{
  background:rgba(246,242,233,.14) !important;
  border-color:rgba(246,242,233,.90) !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
}

.affiliate-venue-map-action:disabled{
  opacity:.32 !important;
  cursor:not-allowed !important;
  transform:none !important;
}

@media (max-width:900px){
  .affiliate-venues-filterbar{
    padding-left:18px !important;
    padding-right:18px !important;
  }

  .affiliate-venues-inner{
    width:100% !important;
    padding-left:18px !important;
    padding-right:18px !important;
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .affiliate-venues-intro{
    max-width:600px !important;
  }

  .affiliate-venues-track,
  .affiliate-venues-track[data-count],
  .affiliate-venues-track[data-count="1"],
  .affiliate-venues-track[data-count="2"],
  .affiliate-venues-track[data-count="3"],
  .affiliate-venues-track[data-count="4"],
  .affiliate-venues-track[data-count="5"],
  .affiliate-venues-track[data-count="6"]{
    grid-template-columns:1fr !important;
    gap:26px !important;
  }

  .affiliate-venue-media{
    aspect-ratio:1.12 / 1 !important;
  }
}


/* =========================================================
   2026-08-28 — PANORÁMICA FULL WIDTH SIN CAMBIAR ALTURA
   Solo amplía y centra horizontalmente la imagen ubicada entre
   “¿Qué es Lima CityPass?” y “¿Qué incluye Lima CityPass?”
   ========================================================= */
@media (min-width:901px){
  .what-pass-heading .what-pass-panorama{
    width:calc(100vw - 48px) !important;
    max-width:none !important;
    margin:34px 0 0 50% !important;
    transform:translateX(-50%) !important;
  }

  .what-pass-heading .what-pass-panorama img{
    display:block !important;
    width:100% !important;
    height:565px !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}


/* =========================================================
   2026-08-28 — LOCALES AFILIADOS: línea inferior elegante + deslizable
   Mantiene el look de “Qué incluye”, pero ahora se expande y se desliza.
   ========================================================= */
.affiliate-venue-media{
  position:relative !important;
  overflow:hidden !important;
}

.affiliate-venue-media::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  z-index:3;
  pointer-events:none;
  background:linear-gradient(90deg,#f0a000 0%,#f0a000 42%,#55b9d4 100%);
  background-size:200% 100%;
  background-position:100% 0;
  opacity:.94;
  box-shadow:0 0 10px rgba(240,160,0,.16);
  transform:scaleX(.34);
  transform-origin:left center;
  transition:
    transform .58s cubic-bezier(.22,.61,.36,1),
    background-position .88s cubic-bezier(.22,.61,.36,1),
    opacity .28s ease,
    filter .28s ease,
    box-shadow .28s ease;
}

.affiliate-venue-card:hover .affiliate-venue-media::after,
.affiliate-venue-card:focus-within .affiliate-venue-media::after{
  transform:scaleX(1);
  background-position:0 0;
  opacity:1;
  filter:brightness(1.08);
  box-shadow:0 0 14px rgba(85,185,212,.20);
}

@media (prefers-reduced-motion:reduce){
  .affiliate-venue-media::after{
    transition:opacity .28s ease,filter .28s ease,box-shadow .28s ease !important;
    transform:scaleX(1) !important;
    background-position:0 0 !important;
  }
}


/* =========================================================
   2026-08-28 — LOCALES AFILIADOS: reducción visual 15%
   Solo escritorio. Mantiene parrilla, botones y hover degradé.
   ========================================================= */
@media (min-width:901px){
  .affiliate-venue-card{
    width:85% !important;
    justify-self:center !important;
  }
}

/* =========================================================
   2026-08-28 — LOCALES AFILIADOS: GRID UNIFORME DEFINITIVO
   6 por página = 3 x 2. Si la última página tiene 1 o 2 locales,
   conserva exactamente el mismo ancho de tarjeta e imagen.
   ========================================================= */
@media (min-width:901px){
  .affiliate-venues-inner{
    grid-template-columns:minmax(250px,320px) minmax(0,1fr) !important;
    gap:clamp(34px,3vw,54px) !important;
  }

  .affiliate-venues-track,
  .affiliate-venues-track[data-count],
  .affiliate-venues-track[data-count="1"],
  .affiliate-venues-track[data-count="2"],
  .affiliate-venues-track[data-count="3"],
  .affiliate-venues-track[data-count="4"],
  .affiliate-venues-track[data-count="5"],
  .affiliate-venues-track[data-count="6"]{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-auto-flow:row !important;
    gap:34px 26px !important;
    justify-content:stretch !important;
    align-items:start !important;
    width:100% !important;
  }

  .affiliate-venue-card{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    justify-self:stretch !important;
    align-self:start !important;
    display:grid !important;
    grid-template-rows:auto auto auto auto !important;
  }

  .affiliate-venue-media{
    width:100% !important;
    aspect-ratio:1.18 / 1 !important;
    overflow:hidden !important;
  }

  .affiliate-venue-card img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }

  .affiliate-venue-card h3{
    min-height:16px !important;
    margin:14px 0 0 !important;
  }

  .affiliate-venue-card p{
    min-height:36px !important;
    margin:8px 0 14px !important;
  }

  .affiliate-venue-actions{
    margin-top:auto !important;
  }
}

/* =========================================================
   2026-08-28 — LOCALES AFILIADOS: TARJETAS COMO PROPUESTA VISUAL
   3 x 2 perfectamente alineado. Todas las fotos conservan el
   mismo tamaño, incluso cuando la página siguiente tiene 1 o 2.
   ========================================================= */
@media (min-width:901px){
  .affiliate-venues-track,
  .affiliate-venues-track[data-count],
  .affiliate-venues-track[data-count="1"],
  .affiliate-venues-track[data-count="2"],
  .affiliate-venues-track[data-count="3"],
  .affiliate-venues-track[data-count="4"],
  .affiliate-venues-track[data-count="5"],
  .affiliate-venues-track[data-count="6"]{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-auto-flow:row !important;
    gap:24px 28px !important;
    width:100% !important;
    align-items:stretch !important;
    justify-content:stretch !important;
  }

  .affiliate-venue-card{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    box-sizing:border-box !important;
    display:grid !important;
    grid-template-rows:auto auto auto 1fr !important;
    padding:9px 9px 11px !important;
    border:1px solid rgba(246,242,233,.22) !important;
    border-radius:6px !important;
    background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.012)) !important;
    box-shadow:0 10px 28px rgba(0,0,0,.10) !important;
  }

  .affiliate-venue-media{
    width:100% !important;
    height:auto !important;
    aspect-ratio:1.42 / 1 !important;
    overflow:hidden !important;
    border-radius:1px !important;
    background:rgba(255,255,255,.035) !important;
  }

  .affiliate-venue-card img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }

  .affiliate-venue-card h3{
    min-height:18px !important;
    margin:12px 2px 0 !important;
    line-height:1.2 !important;
  }

  .affiliate-venue-card p{
    min-height:30px !important;
    margin:6px 2px 10px !important;
    line-height:1.35 !important;
  }

  .affiliate-venue-actions{
    align-self:end !important;
    margin:0 2px !important;
    padding-top:2px !important;
  }
}
