@font-face{font-family:"DM Serif Display";src:url(fonts/DMSerifDisplay-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:"DM Sans";src:url(fonts/DMSans-Variable.ttf) format("truetype");font-weight:100 1000;font-display:swap}
:root{--navy:#151B4E;--ink:#1F1A24;--white:#FFFFFF;--mist:#F3F4F8;--cream:#F7F2EA;--soft:#C9CCE0;--mag:#FF2BD6;--cyan:#00E5FF;--yel:#FFD60A;--wa:#25D366}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font-family:"DM Sans",system-ui,sans-serif;color:var(--ink);background:var(--mist);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}a{color:inherit}
h1,h2{font-family:"DM Serif Display",Georgia,serif;font-weight:400;line-height:1.02}
.wrap{max-width:1280px;margin:0 auto;padding:0 18px}
.kick{font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);display:flex;gap:10px;align-items:center}
.kick::before{content:"";width:32px;height:2px;background:currentColor}.kick.dark{color:#00A9C0}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 26px;border-radius:999px;background:var(--yel);color:var(--navy);font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.btn.ghost{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.7)}.btn.ghost.dark{color:var(--navy);border-color:var(--navy)}
.hero{position:relative;height:100vh;height:100svh;min-height:560px;background:var(--navy);overflow:hidden;color:var(--white);display:flex;align-items:flex-end}
.hero picture,.hero-img{position:absolute;inset:0;width:100%;height:100%}.hero-img{object-fit:cover;object-position:62% 25%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,27,78,.15) 0%,rgba(21,27,78,0) 35%,rgba(21,27,78,.75) 72%,var(--navy) 100%)}
.hero-in{position:relative;z-index:1;padding:0 20px 90px;width:100%;max-width:1280px;margin:0 auto}
.hero-logo{width:84px;height:auto;background:var(--cream);border-radius:18px;padding:8px;margin-bottom:18px}
.hero h1{font-size:clamp(2.7rem,9vw,6.2rem);margin:10px 0 22px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}.hero-cta.center{justify-content:center}
.scroll{position:absolute;z-index:1;left:50%;bottom:22px;width:26px;height:42px;border:2px solid rgba(255,255,255,.7);border-radius:14px;transform:translateX(-50%)}
.scroll::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:sc 1.6s infinite}
@keyframes sc{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
.head{padding:72px 0 18px}.head h2{font-size:clamp(2.2rem,6vw,3.6rem);color:var(--navy);margin:6px 0 8px}.lead{max-width:620px;color:#4a4e6a}
.filters{position:sticky;top:0;z-index:5;display:flex;gap:8px;overflow-x:auto;padding:12px 0;margin:0 -18px 14px;padding-left:18px;padding-right:18px;background:rgba(243,244,248,.94);backdrop-filter:blur(8px);scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.f{flex:0 0 auto;font:inherit;font-weight:600;font-size:.9rem;border:1.5px solid var(--navy);background:transparent;color:var(--navy);border-radius:999px;padding:9px 16px;cursor:pointer;transition:background .2s,color .2s}
.f small{opacity:.65;margin-left:4px}.f.on{background:var(--navy);color:var(--white)}.f.soon{border-style:dashed;opacity:.55;cursor:default}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.it{position:relative;display:block;overflow:hidden;border-radius:10px;background:var(--navy);aspect-ratio:4/5}
.it[hidden]{display:none}
.it img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.it:hover img{transform:scale(1.05)}
.it::after{content:attr(data-cap);position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;font-size:.72rem;color:#fff;background:linear-gradient(transparent,rgba(21,27,78,.8));opacity:0;transition:opacity .3s}
.it:hover::after{opacity:1}
.bodas{margin:28px 0 0;padding:16px 20px;border:1.5px dashed var(--soft);border-radius:12px;color:#4a4e6a}
.incl{background:var(--navy);color:var(--white);padding:72px 0;margin-top:72px}
.incl ol{list-style:none;padding:0;display:grid;gap:26px;margin-top:26px;counter-reset:n}
.incl li{counter-increment:n;padding-left:52px;position:relative}.incl li::before{content:"0" counter(n);position:absolute;left:0;color:var(--yel);font-weight:700}
.incl b{display:block;font-size:1.2rem}.incl span{color:var(--soft)}
.cta{text-align:center;padding:80px 18px}.cta h2{font-size:clamp(2.2rem,6vw,3.8rem);color:var(--navy)}.cta>p{margin:8px 0 24px;color:#4a4e6a}.ig{margin-top:20px;font-weight:700;color:var(--navy)}
footer{background:var(--ink);color:var(--soft);text-align:center;padding:36px 16px 110px;font-size:.85rem}
footer img{margin:0 auto 10px;background:var(--cream);padding:6px;border-radius:12px}
.wa{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:10px;background:var(--wa);color:#fff;text-decoration:none;font-weight:700;font-size:.95rem;padding:12px 18px 12px 14px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.lb{position:fixed;inset:0;z-index:50;background:var(--navy);display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}.lb img{max-width:96vw;max-height:84vh;object-fit:contain;user-select:none;-webkit-user-drag:none}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:2.8rem;line-height:1;cursor:pointer;padding:12px 18px}
.lb-x{top:max(8px,env(safe-area-inset-top));right:8px}.lb-p{left:4px}.lb-n{right:4px}
.lb-c{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));left:0;right:0;text-align:center;color:var(--soft);font-size:.85rem}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.it img,.btn{transition:none}.scroll::after{animation:none}html{scroll-behavior:auto}}
@media(max-width:759px){.lb-p,.lb-n{display:none}}
@media(min-width:760px){.wrap{padding:0 40px}.hero-in{padding:0 40px 110px}.hero-img{object-position:70% 28%}.grid{grid-template-columns:repeat(3,1fr);gap:12px}.filters{margin:0 0 18px;padding-left:0;padding-right:0}.incl ol{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.grid{grid-template-columns:repeat(4,1fr)}}

/* v3.1 · portada móvil: foto arriba más abierta, texto debajo; botón flotante oculto sobre la portada */
@media(max-width:759px){
 .hero{height:auto;min-height:100svh;flex-direction:column;align-items:stretch;justify-content:flex-end}
 .hero picture{position:relative;inset:auto;height:62svh;flex:0 0 auto}
 .hero-img{position:relative;height:100%;object-position:46% 35%}
 .hero::after{background:linear-gradient(180deg,rgba(21,27,78,0) 40%,rgba(21,27,78,.7) 56%,var(--navy) 64%)}
 .hero-in{padding:0 20px 84px;margin-top:-64px}
 .hero-logo{width:64px;margin-bottom:12px}
 .hero h1{font-size:2.6rem;margin:8px 0 18px}
}
.wa{transition:opacity .3s,transform .3s}
.hero-on .wa{opacity:0;transform:translateY(20px);pointer-events:none}
@media(max-width:759px){.hero{justify-content:flex-start}.hero-img{object-position:58% 35%}}

/* Reels (video vertical 9:16) */
.reels{padding-top:24px}.reels[hidden]{display:none}
.rgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:760px){.rgrid{grid-template-columns:repeat(4,1fr);gap:14px}}
.reel{margin:0;position:relative}.reel[hidden]{display:none}
.rplay,.reel video,.soon-box{display:block;width:100%;aspect-ratio:9/16;border-radius:12px;overflow:hidden;background:var(--navy)}
.rplay{position:relative;border:0;padding:0;cursor:pointer}
.rplay img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.rplay:hover img{transform:scale(1.04)}
.pi{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:rgba(255,214,10,.92);box-shadow:0 6px 18px rgba(0,0,0,.35)}
.pi::after{content:"";position:absolute;left:26px;top:20px;border-style:solid;border-width:12px 0 12px 19px;border-color:transparent transparent transparent var(--navy)}
.reel video{object-fit:cover}
.reel figcaption{font-size:.85rem;font-weight:600;color:var(--navy);margin-top:6px}
.soon-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--soft);background:transparent;color:var(--navy)}
.soon-box b{font-family:"DM Serif Display",serif;font-size:1.6rem;font-weight:400}.soon-box span{background:var(--yel);border-radius:999px;padding:3px 12px;font-size:.8rem;font-weight:700}
.reel video[hidden],.rplay[hidden]{display:none}
.pi{top:74%}
