/* Livia CMS — hero, galería y efectos de scroll/mouse */
:root{
  --lv-accent:#c8a46a;
  --lv-ink:#0b0b0c;
  --lv-cream:#f5f0e8;
  --lv-serif:'Cormorant Garamond','Times New Roman',serif;
  --lv-sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --lv-ease:cubic-bezier(.22,.8,.18,1);
  --lv-ease-io:cubic-bezier(.76,0,.24,1);
}

/* ================= HERO ================= */
.lv-hero{position:relative;width:100%;overflow:hidden;background:var(--lv-ink);color:#fff;isolation:isolate}
.lv-hero--full{height:100vh;height:100svh;min-height:560px}
.lv-hero--large{height:82vh;min-height:520px}
.lv-hero__slides{position:absolute;inset:0}
.lv-slide{position:absolute;inset:0;visibility:hidden;z-index:1}
.lv-slide.is-active,.lv-slide.is-leaving{visibility:visible}
.lv-slide.is-active{z-index:3}
.lv-slide.is-leaving{z-index:2}
.lv-slide__media{position:absolute;inset:0;overflow:hidden}
.lv-slide__mouse{position:absolute;inset:-4%;will-change:transform;transition:transform 1.2s var(--lv-ease)}
.lv-slide__media img,.lv-slide__media video{width:100%;height:100%;object-fit:cover;display:block}
.lv-slide__shade{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,calc(var(--lv-shade,.35)*.7)) 0%,rgba(0,0,0,calc(var(--lv-shade,.35)*.35)) 40%,rgba(0,0,0,calc(var(--lv-shade,.35)*1.6)) 100%)}

/* Transición fade + zoom lento (Ken Burns) */
.lv-trans-fade-zoom .lv-slide{opacity:0;transition:opacity 1.6s var(--lv-ease),visibility 0s 1.6s}
.lv-trans-fade-zoom .lv-slide.is-active{opacity:1;transition:opacity 1.6s var(--lv-ease),visibility 0s}
.lv-trans-fade-zoom .lv-slide__media img,.lv-trans-fade-zoom .lv-slide__media video{transform:scale(1.14);transition:transform 9s linear}
.lv-trans-fade-zoom .lv-slide.is-active .lv-slide__media img,.lv-trans-fade-zoom .lv-slide.is-active .lv-slide__media video{transform:scale(1.02)}
/* Fade simple */
.lv-trans-fade .lv-slide{opacity:0;transition:opacity 1.3s ease,visibility 0s 1.3s}
.lv-trans-fade .lv-slide.is-active{opacity:1;transition:opacity 1.3s ease,visibility 0s}
/* Deslizar */
.lv-trans-slide .lv-slide{transform:translateX(100%);transition:transform 1.2s var(--lv-ease-io),visibility 0s 1.2s}
.lv-trans-slide .lv-slide.is-active{transform:none;transition:transform 1.2s var(--lv-ease-io),visibility 0s}
.lv-trans-slide .lv-slide.is-leaving{transform:translateX(-30%)}
.lv-trans-slide.lv-dir-prev .lv-slide{transform:translateX(-100%)}
.lv-trans-slide.lv-dir-prev .lv-slide.is-active{transform:none}
.lv-trans-slide.lv-dir-prev .lv-slide.is-leaving{transform:translateX(30%)}
/* Cortina */
.lv-trans-curtain .lv-slide{clip-path:inset(0 0 0 100%);transition:clip-path 1.4s var(--lv-ease-io),visibility 0s 1.4s}
.lv-trans-curtain .lv-slide.is-active{clip-path:inset(0 0 0 0);transition:clip-path 1.4s var(--lv-ease-io),visibility 0s}
.lv-trans-curtain .lv-slide.is-leaving{clip-path:inset(0 0 0 0)}
.lv-trans-curtain .lv-slide__media img,.lv-trans-curtain .lv-slide__media video{transform:scale(1.12);transition:transform 2.2s var(--lv-ease)}
.lv-trans-curtain .lv-slide.is-active .lv-slide__media img,.lv-trans-curtain .lv-slide.is-active .lv-slide__media video{transform:scale(1)}

/* Contenido del slide */
.lv-slide__content{position:absolute;z-index:4;left:clamp(24px,7vw,120px);right:clamp(24px,7vw,120px);bottom:clamp(110px,17vh,190px);max-width:780px;font-family:var(--lv-sans)}
.lv-hero .lv-slide__content,.lv-hero__ui,.lv-hero__scroll{opacity:calc(1 - var(--lv-hero-fade,0) * 1.6)}
.lv-align-center .lv-slide__content{left:50%;right:auto;transform:translateX(-50%);text-align:center;width:min(780px,86vw)}
.lv-align-right .lv-slide__content{left:auto;text-align:right}
.lv-slide__kicker{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:500;letter-spacing:.38em;text-transform:uppercase;color:var(--lv-accent);margin-bottom:22px}
.lv-slide__kicker::before{content:"";width:42px;height:1px;background:currentColor}
.lv-align-center .lv-slide__kicker::after{content:"";width:42px;height:1px;background:currentColor}
.lv-slide__title{font-family:var(--lv-serif);font-weight:300;font-size:clamp(46px,7.4vw,118px);line-height:.95;letter-spacing:-.01em;margin:0 0 22px;color:#fff}
.lv-slide__title em,.lv-slide__title i{font-style:italic}
.lv-slide__text{font-size:clamp(15px,1.25vw,18px);font-weight:300;line-height:1.7;max-width:520px;margin:0 0 34px;color:rgba(255,255,255,.86)}
.lv-align-center .lv-slide__text{margin-left:auto;margin-right:auto}
.lv-align-right .lv-slide__text{margin-left:auto}

/* Entrada de textos: palabras que suben con desfase */
.lv-slide .lv-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.lv-slide .lv-w>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--lv-ease)}
.lv-slide.is-active .lv-w>span{transform:none;transition-delay:calc(.35s + var(--i,0) * 70ms)}
.lv-slide__kicker,.lv-slide__text,.lv-slide .lv-btn{opacity:0;transform:translateY(24px);transition:opacity .9s var(--lv-ease),transform .9s var(--lv-ease)}
.lv-slide.is-active .lv-slide__kicker{opacity:1;transform:none;transition-delay:.2s}
.lv-slide.is-active .lv-slide__text{opacity:1;transform:none;transition-delay:.75s}
.lv-slide.is-active .lv-btn{opacity:1;transform:none;transition-delay:.95s}

/* Botón */
.lv-btn{position:relative;display:inline-flex;align-items:center;gap:18px;padding:17px 30px;border:1px solid rgba(255,255,255,.55);color:#fff;text-decoration:none;font-family:var(--lv-sans);font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;overflow:hidden;isolation:isolate}
.lv-btn::before{content:"";position:absolute;inset:0;background:var(--lv-accent);transform:scaleX(0);transform-origin:right;transition:transform .7s var(--lv-ease);z-index:-1}
.lv-btn:hover::before{transform:scaleX(1);transform-origin:left}
.lv-btn:hover{border-color:var(--lv-accent);color:var(--lv-ink)}
.lv-btn i{width:28px;height:1px;background:currentColor;position:relative;transition:width .5s var(--lv-ease)}
.lv-btn i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.lv-btn:hover i{width:40px}

/* Controles */
.lv-hero__ui{position:absolute;z-index:6;left:clamp(24px,7vw,120px);right:clamp(24px,7vw,120px);bottom:clamp(34px,6vh,60px);display:flex;align-items:center;gap:32px;font-family:var(--lv-sans);color:#fff}
.lv-hero__count{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.lv-hero__cur{font-family:var(--lv-serif);font-size:26px;font-weight:400;color:var(--lv-accent)}
.lv-hero__sep{width:34px;height:1px;background:rgba(255,255,255,.4)}
.lv-hero__bars{display:flex;gap:10px;flex:1;max-width:420px}
.lv-hero__bar{flex:1;height:22px;background:none;border:0;padding:0;cursor:pointer;position:relative}
.lv-hero__bar::before,.lv-hero__bar i{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:rgba(255,255,255,.25)}
.lv-hero__bar i{background:#fff;transform:scaleX(0);transform-origin:left}
.lv-hero__bar.is-done i{transform:scaleX(1)}
.lv-hero__bar.is-active i{animation:lvBar var(--lv-dur,7000ms) linear forwards}
.lv-hero.is-paused .lv-hero__bar.is-active i{animation-play-state:paused}
@keyframes lvBar{to{transform:scaleX(1)}}
.lv-hero__arrows{display:flex;gap:10px;margin-left:auto}
.lv-hero__arrows button{width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.04);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;position:relative;transition:border-color .4s,background .4s}
.lv-hero__arrows button::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;border-top:1px solid #fff;border-right:1px solid #fff;transform:translate(-65%,-50%) rotate(45deg)}
.lv-hero__prev::after{transform:translate(-35%,-50%) rotate(-135deg)!important}
.lv-hero__arrows button:hover{border-color:var(--lv-accent);background:rgba(200,164,106,.18)}
.lv-hero__scroll{position:absolute;z-index:6;right:clamp(18px,3vw,44px);top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:right center;display:flex;align-items:center;gap:14px;font:500 10px/1 var(--lv-sans);letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.lv-hero__scroll i{width:60px;height:1px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}
.lv-hero__scroll i::after{content:"";position:absolute;inset:0;background:var(--lv-accent);animation:lvScroll 2.4s var(--lv-ease-io) infinite}
@keyframes lvScroll{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}

@media (max-width:760px){
  .lv-hero__arrows,.lv-hero__scroll{display:none}
  .lv-hero__ui{gap:18px}
  .lv-slide__content{bottom:120px}
  .lv-slide__kicker{letter-spacing:.28em;font-size:11px}
}

/* ================= REVEAL AL HACER SCROLL (va y vuelve) ================= */
html.lv-fx [data-lv]{transition:opacity 1.1s var(--lv-ease),transform 1.2s var(--lv-ease),clip-path 1.4s var(--lv-ease-io),filter 1.1s var(--lv-ease);transition-delay:var(--lv-d,0ms);will-change:opacity,transform}
html.lv-fx [data-lv]:not(.lv-in){opacity:0}
html.lv-fx [data-lv="fade-up"]:not(.lv-in){transform:translate3d(0,60px,0)}
html.lv-fx [data-lv="fade-up"].lv-above:not(.lv-in){transform:translate3d(0,-60px,0)}
html.lv-fx [data-lv="fade-left"]:not(.lv-in){transform:translate3d(-70px,0,0)}
html.lv-fx [data-lv="fade-right"]:not(.lv-in){transform:translate3d(70px,0,0)}
html.lv-fx [data-lv="zoom"]:not(.lv-in){transform:scale(.88)}
html.lv-fx [data-lv="zoom-out"]:not(.lv-in){transform:scale(1.12)}
html.lv-fx [data-lv="blur"]:not(.lv-in){filter:blur(14px);transform:translate3d(0,30px,0)}
html.lv-fx [data-lv="fade"]:not(.lv-in){transform:none}
/* Máscara: la imagen se descubre como cortina */
html.lv-fx [data-lv="mask"]{opacity:1!important;clip-path:inset(0 0 0 0)}
html.lv-fx [data-lv="mask"]:not(.lv-in){clip-path:inset(100% 0 0 0)}
html.lv-fx [data-lv="mask"].lv-above:not(.lv-in){clip-path:inset(0 0 100% 0)}
html.lv-fx [data-lv="mask"] img{transition:transform 1.8s var(--lv-ease);transition-delay:var(--lv-d,0ms)}
html.lv-fx [data-lv="mask"]:not(.lv-in) img{transform:scale(1.25)}
/* Títulos letra a letra */
html.lv-fx [data-lv="split"]{opacity:1!important}
html.lv-fx [data-lv="split"] .lv-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em}
html.lv-fx [data-lv="split"] .lv-w>span{display:inline-block;transition:transform 1.1s var(--lv-ease);transition-delay:calc(var(--lv-d,0ms) + var(--i,0) * 60ms)}
html.lv-fx [data-lv="split"]:not(.lv-in) .lv-w>span{transform:translateY(110%)}
html.lv-fx [data-lv="split"].lv-above:not(.lv-in) .lv-w>span{transform:translateY(-110%)}
/* Línea que se dibuja */
html.lv-fx [data-lv="line"]{opacity:1!important;transform-origin:left;transition:transform 1.4s var(--lv-ease-io)}
html.lv-fx [data-lv="line"]:not(.lv-in){transform:scaleX(0)}

[data-lv-parallax],[data-lv-mouse]{will-change:transform}

/* ================= GALERÍA ================= */
.lv-gallery{display:grid;gap:clamp(10px,1.4vw,22px);grid-template-columns:repeat(3,1fr)}
.lv-gallery.lv-cols-2{grid-template-columns:repeat(2,1fr)}
.lv-gallery.lv-cols-4{grid-template-columns:repeat(4,1fr)}
.lv-gallery__item{position:relative;display:block;overflow:hidden;aspect-ratio:4/5;background:#111;cursor:zoom-in}
.lv-gallery__item:nth-child(5n+1){grid-row:span 2;aspect-ratio:auto}
.lv-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.4s var(--lv-ease),filter .8s}
.lv-gallery__item:hover img{transform:scale(1.06)}
.lv-gallery__cap{position:absolute;left:18px;bottom:16px;right:18px;color:#fff;font:400 13px/1.4 var(--lv-sans);letter-spacing:.06em;opacity:0;transform:translateY(10px);transition:.6s var(--lv-ease);text-shadow:0 1px 12px rgba(0,0,0,.6)}
.lv-gallery__item:hover .lv-gallery__cap{opacity:1;transform:none}
@media (max-width:760px){.lv-gallery,.lv-gallery.lv-cols-3,.lv-gallery.lv-cols-4{grid-template-columns:repeat(2,1fr)}}

/* Lightbox */
.lv-lb{position:fixed;inset:0;z-index:99999;background:rgba(8,8,9,.96);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s}
.lv-lb.is-open{opacity:1;visibility:visible;transition:opacity .5s}
.lv-lb img{max-width:90vw;max-height:86vh;object-fit:contain;transform:scale(.96);transition:transform .7s var(--lv-ease),opacity .4s}
.lv-lb.is-open img{transform:none}
.lv-lb button{position:absolute;background:none;border:0;color:#fff;cursor:pointer;font:300 15px var(--lv-sans);letter-spacing:.25em;text-transform:uppercase;padding:16px}
.lv-lb__close{top:16px;right:20px}
.lv-lb__prev{left:12px;top:50%;transform:translateY(-50%)}
.lv-lb__next{right:12px;top:50%;transform:translateY(-50%)}
.lv-lb__n{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:rgba(255,255,255,.6);font:400 12px var(--lv-sans);letter-spacing:.3em}

/* ================= CURSOR Y BARRA DE PROGRESO ================= */
.lv-progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--lv-accent);transform-origin:left;transform:scaleX(0);z-index:99998;pointer-events:none}
.lv-cursor,.lv-cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:99997;border-radius:50%;mix-blend-mode:difference}
.lv-cursor{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(255,255,255,.8);transition:width .4s var(--lv-ease),height .4s var(--lv-ease),margin .4s var(--lv-ease),background .4s,opacity .3s}
.lv-cursor-dot{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:#fff}
.lv-cursor.is-hover{width:74px;height:74px;margin:-37px 0 0 -37px;background:rgba(255,255,255,.9)}
.lv-cursor.is-hidden,.lv-cursor-dot.is-hidden{opacity:0}

@media (prefers-reduced-motion:reduce){
  html.lv-fx [data-lv]{transition:none!important;opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important}
  .lv-slide__media img,.lv-slide__media video{transition:none!important;transform:none!important}
}
