/* Navegación, carruseles y movimiento progresivo. */
.header{position:sticky;top:0;background:#062950;color:#fff;z-index:50;border-bottom:1px solid #ffffff1c;transition:box-shadow .3s,background .3s}
.header.scrolled{background:#062950;box-shadow:0 8px 30px #00162c30}
.header .logo img{filter:grayscale(1) invert(1) brightness(3);mix-blend-mode:screen}
.header .nav-cta{border-color:#ffffff60;background:#ffffff0a}
.header nav a:hover{color:#9bdfff}.header .menu-toggle{background:transparent;color:white}
.header::after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:#4cceef;transform:scaleX(var(--progress,0));transform-origin:left}
html{scroll-padding-top:110px}.hero-copy{animation:hero-arrive .85s ease-out both}
@keyframes hero-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal.in-view{opacity:1;transform:none}
.package{transition:box-shadow .3s,border-color .3s}.package:hover{border-color:#8ecce5;box-shadow:0 14px 34px #133d7615}
.extras article>img{transition:transform .3s}.extras article:hover>img{transform:translateY(-5px) rotate(-3deg)}
.button{transition:background .25s,transform .25s,box-shadow .25s}.button:hover{box-shadow:0 6px 20px #071e4720}
.package-image,.proposal .package-image{height:auto;min-height:0;padding:0;background:#e9f1f8;border-bottom:0;isolation:auto}
.package-image::before,.package-image::after{display:none}
.service-track{display:flex;gap:8px;overflow-x:auto;height:258px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.service-track::-webkit-scrollbar,.photo-track::-webkit-scrollbar{display:none}
.service-track button{flex:0 0 auto;aspect-ratio:var(--ratio);height:100%;max-width:none;padding:0;border:0;background:transparent;scroll-snap-align:start;position:relative;overflow:hidden}
.service-track button img{height:100%;width:100%;object-fit:contain;transition:filter .3s}
.service-track button:hover img{filter:brightness(1.06)}
.service-track{--media-height:258px}.service-track button{width:calc(var(--media-height)*var(--ratio))}
.proposal .service-track{--media-height:360px}
.flyer-photo .service-track>button:only-child{width:100%;aspect-ratio:auto}
.flyer-photo .service-track>button:only-child img{object-fit:cover;object-position:center 12%}
.package-image .tag{position:relative;height:38px;font-size:10px;padding:0 10px;background:#102e68}
.service-controls{position:absolute;inset:0 0 38px;pointer-events:none;display:flex;align-items:center;justify-content:space-between;padding:9px}
.round-control{border:1px solid #ffffff80;background:#052344c9;color:#fff;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:22px;line-height:1;cursor:pointer;transition:background .2s,transform .2s;pointer-events:auto}
.round-control:hover{background:#1266a9;transform:scale(1.06)}.round-control:disabled{opacity:.35;cursor:default;transform:none}
.proposal .package-image{align-self:center}.proposal .service-track{height:360px}
.media-gallery{overflow:hidden;background:linear-gradient(180deg,#f2f7fb,#fff)}
.media-gallery .section-heading{max-width:950px}.media-gallery .section-heading p:last-child{margin-bottom:0}
.photo-track{display:flex;gap:18px;height:340px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding-block:8px;outline-offset:-3px}
.photo-track button{padding:0;flex:0 0 auto;height:100%;aspect-ratio:var(--ratio);border:0;background:transparent;scroll-snap-align:start;border-radius:12px;overflow:hidden;position:relative}
.photo-track img{height:100%;width:100%;object-fit:contain;transition:filter .3s}
.photo-track button::after{content:'↗';position:absolute;bottom:15px;right:15px;width:34px;height:34px;border-radius:50%;background:#ffffffef;color:#112e79;display:grid;place-items:center;font-size:18px}
.photo-track button:hover img{filter:brightness(1.06)}
.photo-track{--media-height:324px}.photo-track button{width:calc(var(--media-height)*var(--ratio))}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px}.gallery-toolbar p{font-size:14px;color:#536a83;margin:0}.gallery-arrows{display:flex;gap:12px}.gallery-arrows .round-control{width:46px;height:46px;background:#112e79}
.gallery-hint{font-size:12px!important;color:#637995!important;margin-top:8px!important}
#photo-dialog{position:fixed;padding:20px;background:#061a31;color:white;border:1px solid #ffffff30;border-radius:16px;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;overflow:auto}
#photo-dialog::backdrop{background:#001024e8;backdrop-filter:blur(10px)}
#photo-dialog>img{width:100%;height:74dvh;max-height:74dvh;object-fit:contain;border-radius:6px}
#photo-dialog .dialog-close{z-index:2;right:12px;top:12px;background:#fff;color:#112e79}
.viewer-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 3px 0}.viewer-footer p{color:#fff!important;margin:0!important;font-size:13px!important}.viewer-navigation{display:flex;gap:10px;flex-shrink:0}.viewer-navigation[hidden]{display:none}
body.viewer-open{overflow:hidden}
.payments{background:#061a3a;color:#fff;padding:78px 0}.payments .section-heading h2{color:white}.payments .eyebrow{color:#84d4f5}.payments .section-heading p:last-child{color:#bbcee3}
.payment-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.payment-card{text-align:center;border:1px solid #23609875;border-radius:18px;background:radial-gradient(ellipse at top,#06366d,#041a39);padding:22px 18px 25px;transition:transform .3s,border-color .3s}
.payment-card:hover{transform:translateY(-5px);border-color:#1f9ee3}
.payment-card h3{font-family:Montserrat,Muli,sans-serif;font-weight:600;font-size:17px;line-height:1.45;margin:13px 0 0}.payment-card p{font-size:12px;color:#bfd0e8;margin:10px 0 0}
.payment-icon{display:block;width:88px;height:88px;border-radius:50%;margin:auto;background-image:url('assets/payment-reference.png');background-size:1092px 398px;background-repeat:no-repeat}
.payment-icon.bank{background-position:-105px -45px}.payment-icon.cash{background-position:-355px -45px}.payment-icon.card{background-position:-618px -45px}.payment-icon.paypal{background-position:-894px -45px}
.payment-brands{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap;gap:16px;margin-top:22px;padding:16px 14px;background:#051b3e;border-radius:18px;border:1px solid #123b6666}
.payment-brand{display:block;height:88px;background-image:url('assets/payment-reference.png');background-size:1092px 398px;background-repeat:no-repeat}
.payment-brand.visa{width:155px;background-position:-64px -277px}.payment-brand.mastercard{width:114px;background-position:-267px -273px}.payment-brand.amex{width:185px;background-position:-405px -277px}.payment-brand.mercado{width:228px;background-position:-612px -278px}.payment-brand.oxxo{width:155px;background-position:-866px -277px}
.payment-note{text-align:center;color:#a8c4dc;font-size:13px;margin:22px 0 0}
@media(max-width:760px){
 html{scroll-padding-top:87px}.header nav{background:#062950;border-top:1px solid #ffffff25}.header nav .nav-cta{border-color:#ffffff70}.header .logo{width:220px}
 .service-track{height:275px}.proposal .service-track{height:300px}.photo-track{height:295px;gap:12px;margin-right:-20px;padding-right:20px}
 .service-track{--media-height:275px}.proposal .service-track{--media-height:300px}.photo-track{--media-height:279px}
 .gallery-toolbar{gap:15px;flex-direction:column;align-items:flex-start}.gallery-toolbar p{font-size:12px}.gallery-arrows .round-control{width:40px;height:40px}.gallery-arrows{gap:12px;align-self:center}
 .payments{padding:60px 0}.payment-grid{grid-template-columns:1fr 1fr;gap:10px}.payment-card{padding:17px 8px 22px;border-radius:13px}.payment-card h3{font-size:13px}.payment-card p{font-size:11px}.payment-brands{gap:4px;padding:8px}.payment-brand{transform:scale(.78);margin:-5px -10px}.payment-note{font-size:12px}
 #photo-dialog{padding:12px}#photo-dialog>img{height:65dvh;max-height:65dvh}.viewer-footer{flex-wrap:wrap}.viewer-footer p{flex:1;font-size:11px!important}.viewer-navigation .round-control{width:38px;height:38px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
