:root{--char:#161618;--char2:#202024;--cream:#F3EEE2;--sand:#CDBFA3;--red:#E2252F;
--logo:'Barlow Condensed',Impact,sans-serif;--body:'Hanken Grotesk',system-ui,sans-serif}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{overflow-x:clip;background:var(--char);color:var(--cream);font:400 1.0625rem/1.6 var(--body)}
a{color:inherit}
:focus-visible{outline:3px solid var(--sand);outline-offset:3px}
.wrap{width:min(1240px,100% - 40px);margin-inline:auto}
h2{font:500 clamp(2.2rem,5.4vw,4.6rem)/1.02 var(--body);letter-spacing:-.035em}
p{max-width:62ch}
.tag{font-size:.9rem;color:var(--sand);margin-bottom:22px;display:block}

header{position:fixed;inset:0 0 auto;z-index:10;padding:22px 0;mix-blend-mode:normal}
header .wrap{display:flex;align-items:center;justify-content:space-between}
.logo{font:700 1.9rem/1 var(--logo);letter-spacing:.02em;text-transform:uppercase;text-decoration:none}
.logo{display:block;line-height:0;filter:drop-shadow(0 2px 10px rgba(0,0,0,.55))}
.logo img{height:38px;width:auto;display:block}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:560px){.f2{grid-template-columns:1fr}}
nav{display:flex;gap:28px;font-size:.95rem;font-weight:500}
nav a{position:relative;text-decoration:none;opacity:.85}nav a:hover{opacity:1}
nav a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
nav a:hover::after{transform:scaleX(1)}
@media(max-width:820px){nav{display:none}}

/* botón con flecha en marco muescado */
.go{display:inline-flex;align-items:center;gap:16px;text-decoration:none;font-weight:500;font-size:1.15rem}
.go b{position:relative;isolation:isolate;width:52px;height:52px;display:grid;place-items:center;color:var(--char);font-weight:400;font-size:1.3rem;transition:transform .3s}
.go b::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--cream);transition:transform .5s cubic-bezier(.2,.7,.2,1);
  clip-path:polygon(18% 0,82% 0,82% 14%,100% 14%,100% 86%,82% 86%,82% 100%,18% 100%,18% 86%,0 86%,0 14%,18% 14%)}
/* el marco gira 90° y la flecha avanza, como en la referencia */
.go:hover b{transform:translateX(6px)}
.go:hover b::before{transform:rotate(90deg)}
.solid{display:inline-block;background:var(--cream);color:var(--char);padding:15px 28px;border-radius:2px;text-decoration:none;font:600 1rem var(--body);border:0;cursor:pointer}
.solid:hover{background:#fff}

/* hero dividido */
.split{display:flex;gap:16px;height:100svh;min-height:560px;padding:16px}
.panel{position:relative;flex:1;overflow:hidden;border-radius:3px;display:flex;align-items:flex-end;padding:clamp(24px,4vw,56px);transition:flex .7s cubic-bezier(.2,.7,.2,1),translate .7s cubic-bezier(.2,.7,.2,1)}
.panel:hover,.panel:focus-within{flex:1.5;translate:.25em -.25em}
.panel::before{content:"";position:absolute;inset:0;background:var(--bg);opacity:.8;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),opacity 1.2s cubic-bezier(.2,.7,.2,1)}
.panel:hover::before,.panel:focus-within::before{transform:scale(1.05);opacity:1}
/* el panel vecino se apaga mientras el otro está activo */
.split:has(.panel:hover) .panel:not(:hover)::before,.split:has(.panel:focus-within) .panel:not(:focus-within)::before{opacity:.2}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.2) 40%,rgba(0,0,0,.65))}
.panel .go{position:relative;z-index:1}
.panel small{position:absolute;top:96px;left:24px;z-index:1;font-size:.8rem;opacity:.7}
.panel.a{--bg:url(/assets/img/calca-alquiler/1.webp) center/cover}
.panel.b{--bg:url(/assets/img/curahuasi/1.webp) center/cover}
.lead{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;width:min(780px,86%)}
.lead h1{font:500 clamp(2.2rem,5.6vw,5rem)/1.02 var(--body);letter-spacing:-.04em;text-shadow:0 2px 40px rgba(0,0,0,.5)}
.in{opacity:0;animation:in 1s cubic-bezier(.2,.7,.2,1) .2s forwards}
@keyframes in{to{opacity:1}}
@media(max-width:820px){.split{flex-direction:column;height:auto;padding-top:76px!important}
 .panel{min-height:56svh}.panel:hover{flex:1;translate:none}
 .lead{position:static;transform:none;width:auto;text-align:left;padding:8px 4px 4px}
 .lead h1{font-size:clamp(1.8rem,8vw,2.6rem);text-shadow:none}.panel small{display:none}}

/* cifras */
.stats{padding:clamp(70px,9vw,120px) 0;border-bottom:1px solid #2c2c31}
.stats ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px}
.stats b{display:block;font:500 clamp(3rem,6.5vw,5.6rem)/1 var(--body);letter-spacing:-.05em}
.stats span{display:block;margin-top:10px;color:var(--sand);font-size:.95rem;max-width:24ch}

section{padding:clamp(80px,11vw,150px) 0}
.statement p{font:500 clamp(1.5rem,3vw,2.5rem)/1.3 var(--body);letter-spacing:-.02em;max-width:30ch}
.statement .cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:56px;align-items:end}
.statement .cols p{font:400 1.05rem/1.65 var(--body);color:#c9c4b8;max-width:46ch;letter-spacing:0}
@media(max-width:820px){.statement .cols{grid-template-columns:1fr}}

/* servicios */
.svc{background:var(--char2)}
.rows{margin-top:56px;border-top:1px solid #36363c}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:32px;align-items:center;padding:36px 0;border-bottom:1px solid #36363c}
.row{transition:opacity .5s}
.rows:has(.row:hover) .row:not(:hover),.zones ul:has(li:hover) li:not(:hover){opacity:.25}
.grid:has(.prop:hover) .prop:not(:hover){opacity:.45}
.prop{transition:opacity .5s}
.row h3{font:500 clamp(1.6rem,3vw,2.4rem)/1.1 var(--body);letter-spacing:-.03em}
.row p{color:#c9c4b8;font-size:1rem}
@media(max-width:820px){.row{grid-template-columns:1fr;gap:16px}}

/* propiedades (sección crema) */
.props{background:var(--cream);color:var(--char)}
.props .tag{color:#7a6c4e}
.props h2{margin-bottom:32px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:44px}
.filters button{font:500 .95rem var(--body);padding:10px 20px;border-radius:2px;border:1.5px solid var(--char);background:transparent;color:var(--char);cursor:pointer;transition:background .3s,color .3s}
.filters button[aria-pressed=true],.filters button:hover{background:var(--char);color:var(--cream)}
.empty{padding:40px 0;display:grid;gap:18px;justify-items:start}
.empty[hidden]{display:none}
.empty p{font:500 clamp(1.3rem,2.4vw,1.8rem)/1.2 var(--body);letter-spacing:-.02em;max-width:30ch}
.empty .solid{background:var(--char);color:var(--cream)}
.pc{position:relative;z-index:1;display:grid;gap:22px}
/* fotos que se apilan en el centro del panel al mover el mouse */
.stack{position:absolute;left:50%;top:42%;width:clamp(170px,22vw,320px);aspect-ratio:4/3;transform:translate(-50%,-50%);z-index:3;pointer-events:none}
.stack{opacity:0;transition:opacity .25s}.stack.on{opacity:1}
.stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:2px;box-shadow:0 24px 60px -12px rgba(0,0,0,.65);visibility:hidden}
.stack img.show{visibility:visible;animation:pop .4s cubic-bezier(.2,.7,.2,1) both}
@keyframes pop{from{clip-path:inset(100% 0 0 0);transform:scale(1.12)}to{clip-path:inset(0);transform:none}}
/* en pantalla angosta las fotos quedan detrás de los botones para no taparlos */
@media(max-width:820px){.stack{top:34%;width:min(62%,260px);z-index:0}.split:has(.panel:hover) .lead{opacity:1}}
.lead{transition:opacity .5s}
.split:has(.panel:hover) .lead{opacity:0}
.opts{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.opts a{display:inline-block;padding:8px 16px;border:1px solid rgba(243,238,226,.5);border-radius:2px;text-decoration:none;font-size:.95rem;background:rgba(22,22,24,.35);backdrop-filter:blur(6px);transition:background .3s,color .3s}
.opts a:hover{background:var(--cream);color:var(--char)}
.grid.big{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}
@media(max-width:480px){.grid.big{grid-template-columns:1fr}}
.sub{font:500 clamp(1.6rem,3vw,2.2rem)/1.1 var(--body);letter-spacing:-.03em;margin:88px 0 8px}
.off .ph img{filter:grayscale(.85) brightness(.9)}
.off .ph em{background:var(--char);color:var(--cream)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:40px 24px}
.prop{background:none;border:0;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}
.ph{aspect-ratio:4/3;border-radius:3px;position:relative;overflow:hidden;background:#cfc7b5}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.prop:hover .ph img{transform:scale(1.05)}
.ph em{position:absolute;left:12px;top:12px;font:500 .8rem var(--body);font-style:normal;background:var(--cream);color:var(--char);padding:4px 12px;border-radius:2px}
.ph span{position:absolute;right:12px;bottom:12px;font:500 .8rem var(--body);background:rgba(22,22,24,.75);color:var(--cream);padding:4px 12px;border-radius:2px}
.prop h3{font:500 1.35rem/1.2 var(--body);letter-spacing:-.02em;margin:16px 0 4px}
.prop p{font-size:.95rem;opacity:.7}
.note{margin-top:36px;font-size:.9rem;opacity:.6}
/* galería */
dialog{border:0;background:var(--char);color:var(--cream);width:min(1100px,96vw);max-height:94vh;padding:0;border-radius:4px;overflow:hidden}
dialog::backdrop{background:rgba(0,0,0,.8)}
.gal{position:relative;background:#000}
.gal img{display:block;width:100%;max-height:52vh;object-fit:contain}
.gal button{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;border-radius:50%;background:rgba(243,238,226,.9);color:var(--char);font-size:1.4rem;cursor:pointer}
.gal .pv{left:12px}.gal .nx{right:12px}
.gi{padding:20px 24px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
.gi h3{font:500 1.4rem var(--body)}.gi p{font-size:.92rem;color:var(--sand)}
dialog{overflow-y:auto}
.gs{flex-basis:100%}
.gs:empty{display:none}
.gprice{font:500 1.6rem var(--body);letter-spacing:-.02em;margin-bottom:10px;max-width:none}
.gprice small{font:400 .9rem var(--body);color:var(--sand);letter-spacing:0;margin-left:8px}
.gs ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px 28px;font-size:.95rem;color:#d4cfc3}
.gs li{padding-left:16px;position:relative}
.gs li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:1px;background:var(--sand)}
.prop .price{font:500 1.25rem var(--body);opacity:1;margin-top:8px;max-width:none}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.chips span{font-size:.82rem;font-weight:500;border:1px solid rgba(22,22,24,.25);padding:4px 11px;border-radius:2px}
.gx{position:absolute;top:10px;right:10px;z-index:2;width:42px;height:42px;border:0;border-radius:50%;background:rgba(243,238,226,.9);cursor:pointer;font-size:1.2rem}

/* zonas */
.zones ul{list-style:none;padding:0;margin-top:48px;border-top:1px solid #36363c}
.zones li{display:flex;justify-content:space-between;align-items:baseline;padding:20px 0;border-bottom:1px solid #36363c;font:500 clamp(1.5rem,3.4vw,2.8rem)/1.1 var(--body);letter-spacing:-.03em;transition:padding .3s,color .3s,opacity .5s}
.zones li:hover{padding-left:20px;color:var(--sand)}
.zones li small{font:400 .9rem var(--body);color:var(--sand);letter-spacing:0}

/* sobre mí */
.about{background:var(--char2)}
.about .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,90px);align-items:center}
.photo{aspect-ratio:4/5;border-radius:3px;background:linear-gradient(160deg,#6d6046,#26231c);position:relative;display:grid;place-items:center}
.photo{overflow:hidden}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:42% 20%}
.about p{margin-top:22px;color:#d4cfc3}
.about dl{display:grid;grid-template-columns:auto 1fr;gap:10px 28px;margin-top:32px;font-size:.98rem}
.about dt{color:var(--sand)}
@media(max-width:820px){.about .wrap{grid-template-columns:1fr}}

/* contacto */
form{margin-top:40px;display:grid;gap:18px;max-width:580px}
label{display:grid;gap:6px;font-size:.92rem;color:var(--sand)}
input,select,textarea{font:inherit;color:var(--cream);padding:14px 2px;border:0;border-bottom:1.5px solid #4a4a52;background:transparent;border-radius:0}
select option{color:#000}
textarea{min-height:100px;resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--cream)}
.langbtn{font:600 .85rem var(--body);background:rgba(22,22,24,.45);color:var(--cream);border:1px solid rgba(243,238,226,.55);border-radius:2px;padding:6px 11px;cursor:pointer;backdrop-filter:blur(6px)}
.langbtn:hover{background:var(--cream);color:var(--char)}
footer{padding:36px 0;font-size:.9rem;color:var(--sand);border-top:1px solid #2c2c31}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.in{opacity:1}html{scroll-behavior:auto}}

/* ---------- páginas generadas: propiedades y blog ---------- */
a.prop{display:block;text-decoration:none}
.acts2{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.lnk{color:var(--sand);font-size:.92rem}
.pgh{position:static;padding:18px 0;border-bottom:1px solid #2c2c31}
.pgh .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
.pgh nav{display:flex;gap:22px;font-size:.92rem;font-weight:500}.pgh nav a{opacity:.85;text-decoration:none}
@media(max-width:700px){.pgh nav a:not(.keep){display:none}}
.pg{padding:clamp(32px,6vw,72px) 0}
.crumbs{font-size:.85rem;color:var(--sand);margin-bottom:22px}.crumbs a{color:var(--sand)}
.pg h1{font:500 clamp(2rem,4.6vw,3.6rem)/1.06 var(--body);letter-spacing:-.035em;max-width:22ch}
.pg .lead{font-size:1.1rem;color:#d4cfc3;margin-top:18px;max-width:62ch;position:static;transform:none;width:auto;text-align:left;pointer-events:auto}
.pcols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,64px);margin-top:36px;align-items:start}
@media(max-width:860px){.pcols{grid-template-columns:1fr}}
.pinfo{position:sticky;top:20px;background:var(--char2);border:1px solid var(--line);padding:22px;border-radius:3px}
@media(max-width:860px){.pinfo{position:static}}
.pinfo .big{font:600 2rem/1.1 var(--body);letter-spacing:-.03em}.pinfo small{display:block;color:var(--sand);margin:4px 0 14px}
.pinfo ul{list-style:none;padding:0;display:grid;gap:8px;margin:16px 0 22px;font-size:.95rem;color:#d4cfc3}
.pinfo li{padding-left:16px;position:relative}.pinfo li::before{content:"";position:absolute;left:0;top:.7em;width:6px;height:1px;background:var(--sand)}
.pgal{display:grid;gap:10px}.pgal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px;display:block;background:#26262a}
.rel{margin-top:56px;padding-top:28px;border-top:1px solid #2c2c31}.rel h2{font-size:1.2rem;margin-bottom:12px}
.rel a{display:block;padding:10px 0;border-bottom:1px solid #2c2c31;text-decoration:none}
.art{max-width:720px}.art .meta{color:var(--sand);font-size:.9rem;margin:14px 0 28px}
.art h2{font:600 1.55rem/1.2 var(--body);letter-spacing:-.02em;margin:34px 0 10px}.art h3{font:600 1.2rem var(--body);margin:26px 0 8px}
.art p,.art li{font-size:1.06rem;line-height:1.75;color:#e4dfd3;max-width:none}.art p{margin:0 0 16px}.art ul,.art ol{margin:0 0 18px 22px}
.art a{color:var(--cream)}.art blockquote{border-left:3px solid var(--sand);padding-left:16px;color:#d4cfc3;margin:18px 0}
.cta{margin:44px 0 0;background:var(--char2);border:1px solid var(--line);padding:22px;border-radius:3px;max-width:720px}
.cta p{margin:0 0 14px;color:#e4dfd3}
.posts{display:grid;gap:0;margin-top:28px;max-width:760px}
.posts a{display:block;padding:22px 0;border-bottom:1px solid #2c2c31;text-decoration:none}
.posts h2{font:600 1.35rem/1.25 var(--body);letter-spacing:-.02em}.posts small{color:var(--sand)}.posts p{color:#c9c4b8;margin-top:6px;font-size:.98rem}
.soc{display:flex;gap:10px;flex-wrap:wrap}.soc a{display:grid;place-items:center;width:40px;height:40px;border:1px solid #4a4a52;border-radius:50%;color:var(--cream);transition:background .25s,color .25s}
.soc a:hover{background:var(--cream);color:var(--char)}.soc svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
footer .wrap{align-items:center}

/* ---------- ficha de propiedad: mosaico, visor, compartir ---------- */
.ptit{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-start}.ptit .loc{color:var(--sand);margin-top:8px}
.shbar{display:flex;flex-wrap:wrap;gap:6px}
.sh{font:600 .8rem system-ui,sans-serif;padding:7px 12px;border:1px solid #4a4a52;border-radius:999px;color:var(--cream);background:transparent;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.sh:hover{background:var(--cream);color:var(--char)}.sh[hidden]{display:none}
.mosaic{position:relative;display:grid;gap:8px;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;height:clamp(240px,40vw,460px);margin-top:24px}
.mosaic .mo{padding:0;border:0;background:#26262a;overflow:hidden;border-radius:3px;cursor:zoom-in;position:relative}
.mosaic .mo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.mosaic .mo:hover img{transform:scale(1.05)}
.mosaic .mo:first-child{grid-row:1/3}
.mosaic.n1{display:block}.mosaic.n2{grid-template-columns:2fr 1fr}.mosaic.n2 .mo:nth-child(2){grid-row:1/3}
.mosaic.n3{grid-template-columns:2fr 1fr}.mosaic.n4 .mo:nth-child(4){grid-column:2/4}
.mas{position:absolute;inset:0;display:grid;place-items:center;background:rgba(22,22,24,.6);font:600 1.1rem system-ui,sans-serif;color:var(--cream)}
.cnt{position:absolute;left:12px;bottom:12px;background:rgba(22,22,24,.82);padding:5px 12px;border-radius:999px;font-size:.82rem;pointer-events:none}
.vbtn{position:absolute;right:12px;bottom:12px;display:flex;gap:6px;align-items:center;background:var(--cream);color:var(--char);border:0;border-radius:999px;padding:8px 16px 8px 12px;font:600 .88rem system-ui,sans-serif;cursor:pointer}
.vbtn svg{width:18px;height:18px}
@media(max-width:700px){.mosaic{grid-template-columns:1fr;grid-template-rows:auto;height:auto}.mosaic .mo:not(:first-child){display:none}.mosaic .mo:first-child{aspect-ratio:4/3;grid-row:auto}.mosaic .mas{display:none}}
.pcols{grid-template-columns:minmax(0,1fr) 340px}
@media(max-width:860px){.pcols{grid-template-columns:1fr}.pinfo{order:-1}}
.pdesc .resumen{font-size:1.12rem;line-height:1.7;color:#e4dfd3;max-width:64ch}
/* .bl es una <section>: se anula el relleno enorme que las secciones de la página principal tienen por defecto */
.bl{padding:0;margin-top:26px}.bl h2{font:600 1.25rem/1.2 var(--body);letter-spacing:-.02em;margin-bottom:10px}
.bl ul{list-style:none;padding:0;display:grid;gap:7px}.bl li{padding-left:18px;position:relative;line-height:1.55;color:#d4cfc3;max-width:64ch}
.bl li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--sand)}
/* datos clave dentro de un cuadro, en dos columnas */
.bl.datos{background:var(--char2);border:1px solid var(--line);border-radius:3px;padding:18px 22px 10px}
.bl.datos h2{margin-bottom:6px}
.ficha{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;margin:0}
.ficha div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.ficha dt{font-size:.9rem;color:var(--sand)}.ficha dd{margin:0;font-weight:600;text-align:right}
@media(max-width:640px){.ficha{grid-template-columns:1fr}}
.aviso{margin-top:34px;font-size:.85rem;color:var(--sand);max-width:64ch}
.pinfo .solid{display:block;text-align:center;margin-top:10px}.solid.ghost{background:transparent;color:var(--cream);border:1px solid #4a4a52}.solid.ghost:hover{background:var(--cream);color:var(--char)}
.pinfo .mini{font-size:.78rem;color:var(--sand);margin-top:16px}
.sticky{display:none}
@media(max-width:860px){.sticky{display:grid;grid-template-columns:2fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;padding:10px 12px;background:rgba(22,22,24,.96);border-top:1px solid var(--line);z-index:20}.sticky .solid{text-align:center;padding:12px 10px}body:has(.sticky){padding-bottom:70px}}
/* visor a pantalla completa */
.lb{border:0;padding:0;margin:0;background:#000;color:#fff;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none}
.lb::backdrop{background:#000}
.lb[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.lbtop{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:.9rem}
.lbbtn{display:flex;gap:6px;flex-wrap:wrap}
.lbbtn button{font:600 .82rem system-ui,sans-serif;padding:8px 13px;border:1px solid #555;border-radius:999px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.lbbtn button:hover{background:#fff;color:#000}
.lbtrack{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior:contain;scrollbar-width:none;height:100%;min-height:0;outline:0}
.lbtrack::-webkit-scrollbar{display:none}
.lbs{position:relative;flex:0 0 100%;align-self:stretch;scroll-snap-align:center;scroll-snap-stop:always;min-height:0}
/* la foto llena el cuadro del visor y object-fit:contain la ajusta sin recortarla ni estirarla: horizontales y verticales caben enteras */
.lbs>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.lbs.play{display:grid;place-items:center;padding:0 6px}
.lbs iframe,.lbs video{width:min(100%,1100px);aspect-ratio:16/9;border:0;background:#000;max-height:100%}
.lbs .vid{position:absolute;inset:0;border:0;background:#000;padding:0;cursor:pointer;width:100%;height:100%}
.lbs .vid img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.55}
.lbs .pl,.th .pl{position:absolute;inset:0;margin:auto;width:76px;height:76px;border-radius:50%;background:rgba(243,238,226,.95);color:#161618;display:grid;place-items:center}
.lbs .pl svg{width:34px;height:34px}.lbs .vt{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-weight:600}
.lbnav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(243,238,226,.92);color:#161618;font-size:1.7rem;line-height:1;cursor:pointer;z-index:2}
.lbnav.prev{left:14px}.lbnav.next{right:14px}
@media(max-width:700px){.lbnav{display:none}}
.lbth{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;scrollbar-width:thin}
.th{flex:none;position:relative;border:0;padding:0;background:none;cursor:pointer}
.th img{width:72px;height:54px;object-fit:cover;display:block;opacity:.5;border-radius:2px}.th.on img{opacity:1;outline:2px solid #F3EEE2}
.th .pl{width:26px;height:26px}.th .pl svg{width:12px;height:12px}
.lbsh{position:absolute;right:14px;top:56px;background:#202024;border:1px solid #36363c;padding:12px;border-radius:4px;z-index:3;max-width:min(360px,90vw)}
@media(prefers-reduced-motion:reduce){.mosaic .mo img{transition:none}}

.lnkbtn{background:none;border:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0}
footer a{color:inherit}
