.ocv-home-intro,.ocv-organizer-toolbox,.ocv-services-guide,.ocv-connectivity-details{background:#faf7fb}.ocv-home-intro .shell{max-width:1180px}.ocv-home-intro h2,.ocv-services-guide h2{color:var(--purple-deep);max-width:720px}.ocv-home-intro-copy{color:var(--muted);max-width:760px}.ocv-quick-links,.ocv-toolbox-grid{display:grid;gap:14px;margin-top:34px}.ocv-quick-links{grid-template-columns:repeat(4,minmax(0,1fr))}.ocv-toolbox-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ocv-quick-links a,.ocv-toolbox-grid a{color:var(--purple-deep);background:#fff;border:1px solid #e4d9e8;border-radius:18px;padding:22px;text-decoration:none;transition:transform .22s ease-out,border-color .22s ease-out,background-color .22s ease-out}.ocv-quick-links a:hover,.ocv-quick-links a:focus-visible,.ocv-toolbox-grid a:hover,.ocv-toolbox-grid a:focus-visible{transform:translate3d(0,-4px,0);border-color:var(--purple);outline:0}.ocv-quick-links strong,.ocv-quick-links span,.ocv-toolbox-grid strong,.ocv-toolbox-grid span{display:block}.ocv-quick-links span,.ocv-toolbox-grid span{color:var(--muted);margin-top:7px;font-size:.78rem;line-height:1.5}.ocv-home-venues,.ocv-home-connectivity{color:#fff;background:var(--purple-deep)}.ocv-home-venues{background:linear-gradient(135deg,#371148,#65257e)}.ocv-home-venues-grid,.ocv-home-connectivity-grid{display:grid;align-items:center;gap:56px}.ocv-home-venues-grid{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}.ocv-home-connectivity-grid{grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr)}.ocv-home-venues h2,.ocv-home-connectivity h2{color:#fff}.ocv-home-venues p,.ocv-home-connectivity p{color:#ffffffc2;max-width:620px}.ocv-home-venues-note{display:grid;gap:8px;background:#ffffff12;border:1px solid #ffffff2b;border-radius:24px;padding:30px}.ocv-home-venues-note strong{font-size:1.2rem}.ocv-home-venues-note span{color:#ffffffbd}.ocv-home-connectivity img{width:100%;height:auto;filter:drop-shadow(0 22px 28px #0004)}.ocv-connectivity-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:38px 0}.ocv-connectivity-cards article{background:#fff;border:1px solid #e4d9e8;border-radius:22px;padding:28px}.ocv-connectivity-cards article>span{color:var(--purple);font-size:2rem}.ocv-connectivity-cards h3{color:var(--purple-deep);margin:16px 0 10px}.ocv-connectivity-cards p,.ocv-connectivity-cards small{color:var(--muted);font-size:.88rem}.ocv-connectivity-cards small{display:block;margin-top:14px}.ocv-plane{width:min(760px,100%);height:auto;margin:30px auto 0}.ocv-connectivity-visuals{display:grid;grid-template-columns:1fr 1fr;gap:20px}.ocv-connectivity-visuals figure{background:#fff;border-radius:20px;margin:0;padding:10px;overflow:hidden}.ocv-connectivity-visuals img{border-radius:14px;width:100%;height:auto;display:block}.ocv-connectivity-visuals figcaption{color:var(--muted);padding:10px 8px 6px;font-size:.72rem}.ocv-distance-title{color:var(--purple-deep);margin:32px 0 12px}.ocv-distance-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.ocv-distance-grid span{color:var(--muted);background:#fff;border-radius:12px;padding:14px;font-size:.78rem}.ocv-distance-grid strong{color:var(--purple);display:block}.ocv-hotels-route .directory-modal-panel:not(.gallery-view){grid-template-columns:1fr;max-width:1060px}.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-content{order:1;min-height:0}.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage{order:2;grid-template-columns:repeat(4,1fr);min-height:240px;max-height:330px}.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage>button{min-height:220px}.ocv-tech-sheet-disabled{color:#6f6474!important;background:#eee9f0!important;border:1px solid #d8cddc!important;cursor:not-allowed!important;margin-top:12px;opacity:.82}.ocv-booking-action{display:inline-flex;margin:12px 10px 0 0}.ocv-tech-sheet-disabled:hover{transform:none!important}.ocv-photo-pending,.ocv-modal-photo-pending{display:grid;place-items:center;width:100%;height:100%;padding:20px;text-align:center;color:#77677d;background:linear-gradient(135deg,#f2eaf5,#e7dbea);font-size:.76rem;font-weight:700}.ocv-photo-source{z-index:3;color:#fff;background:#250a30cc;padding:7px 10px;position:absolute;left:12px;bottom:12px;border-radius:8px}.ocv-shopping-route .category-hero-photo>img{content:url('/assets/public/plazas/galerias-saltillo.webp?v=14')}.ocv-museum-mummies img{object-position:center 18%!important}.ocv-home-intro,.ocv-home-venues,.ocv-home-connectivity,.ocv-connectivity-details,.ocv-organizer-toolbox,.ocv-services-guide{animation:ocv-phase-enter .45s cubic-bezier(.22,1,.36,1) both}@keyframes ocv-phase-enter{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media (max-width:1100px){.ocv-distance-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:980px){.ocv-quick-links,.ocv-connectivity-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ocv-home-venues-grid,.ocv-home-connectivity-grid{grid-template-columns:1fr}.ocv-toolbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ocv-distance-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.ocv-quick-links,.ocv-connectivity-cards,.ocv-connectivity-visuals,.ocv-toolbox-grid,.ocv-distance-grid{grid-template-columns:1fr}.ocv-home-venues-grid,.ocv-home-connectivity-grid{gap:30px}.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage{grid-template-columns:repeat(2,1fr);min-height:300px;max-height:none}.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage>button{min-height:145px}.ocv-booking-action,.ocv-tech-sheet-disabled{width:100%;justify-content:center;margin-right:0}.ocv-photo-source{font-size:.62rem}}
@media (prefers-reduced-motion:reduce){.ocv-home-intro,.ocv-home-venues,.ocv-home-connectivity,.ocv-connectivity-details,.ocv-organizer-toolbox,.ocv-services-guide{animation:none}.ocv-quick-links a,.ocv-toolbox-grid a{transition:none}.ocv-quick-links a:hover,.ocv-quick-links a:focus-visible,.ocv-toolbox-grid a:hover,.ocv-toolbox-grid a:focus-visible{transform:none}}

/* v16: galería hotelera complementaria, con espacio estable desde el primer frame. */
.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage{grid-template-columns:repeat(5,minmax(0,1fr));min-height:150px;max-height:210px;aspect-ratio:5/1.15;contain:layout paint}
.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage>button{min-height:145px;aspect-ratio:4/3;overflow:hidden}
.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage img{width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage{grid-template-columns:repeat(3,minmax(0,1fr));min-height:120px;max-height:180px;aspect-ratio:3/1.1}.ocv-hotels-route .directory-modal-panel:not(.gallery-view) .directory-modal-collage>button{min-height:100px}.ocv-hotels-route .directory-modal-panel{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}}
.ocv-amenities{display:grid;gap:9px;margin-top:14px}.ocv-amenities>strong{color:var(--purple-deep);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}.ocv-amenities>div{display:flex;flex-wrap:wrap;gap:7px}.ocv-amenities span{color:#5e5264;background:#f5eff7;border-radius:999px;padding:6px 9px;font-size:.7rem}
.ocv-shopping-route .category-hero-photo>img{content:url('/assets/public/plazas/galerias-saltillo.webp?v=16')}
