/* ===== LABERNI · variables de marca (fuente: tu paleta corporativa) ===== */
:root{
 --warm-white:#FAF9F7;--near-black:#171515;--burgundy:#6F1F34;--blush:#E0CDD0;
 --mute:#6b5f61;--line:rgba(23,21,21,.22);
 /* Tipografías: PROVISIONALES hasta tener los archivos (ver README). Cambia solo estas 2 líneas / los @font-face */
 --font-display:'Bodoni FLF Web','Bodoni Moda','Bodoni 72',Didot,Georgia,serif;
 --font-text:'Aptos Web','Albert Sans',system-ui,sans-serif;
 --pad:clamp(1.25rem,4vw,3.5rem);--ease:cubic-bezier(.2,.7,.2,1)}
/* Tipografías corporativas: copia los archivos a assets/fonts/ y descomenta estas líneas.
@font-face{font-family:'Bodoni FLF Web';src:url(fonts/BodoniFLF-Roman.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Bodoni FLF Web';src:url(fonts/BodoniFLF-Italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Aptos Web';src:url(fonts/Aptos.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Aptos Web';src:url(fonts/Aptos-Bold.woff2) format('woff2');font-weight:700;font-display:swap} */
*{box-sizing:border-box;margin:0}ul,ol{padding:0}html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{background:var(--warm-white);color:var(--near-black);font:350 1.0625rem/1.65 var(--font-text);-webkit-font-smoothing:antialiased}
a{color:inherit}img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--burgundy);outline-offset:3px}
.contact :focus-visible,.intro :focus-visible,.process :focus-visible,.ftr :focus-visible,.hdr nav#nav.open :focus-visible{outline-color:var(--blush)}
.skip{position:absolute;left:-99rem}.skip:focus{left:1rem;top:1rem;background:var(--burgundy);color:#fff;padding:.5rem 1rem;z-index:99}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
em{font-family:var(--font-display);font-style:italic;font-weight:400;color:var(--burgundy)}
.idx{font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);margin-bottom:1.25rem}
.display{font:400 clamp(2.3rem,6.5vw,5.6rem)/1.02 var(--font-display);letter-spacing:-.015em;text-wrap:balance}
section{padding:clamp(4rem,8vw,7.5rem) var(--pad)}
.hdr{color:var(--warm-white);position:fixed;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:1rem var(--pad);z-index:50;transition:background .3s,padding .3s}
.hdr.s{color:var(--near-black);background:rgba(250,249,247,.94);backdrop-filter:blur(8px);padding-block:.5rem;border-bottom:1px solid var(--line)}
.logo{display:block;line-height:0}.hdr .logo img{width:clamp(7.5rem,11vw,9.5rem);height:auto}.hdr .l-b{display:none}.hdr.s .l-w{display:none}.hdr.s .l-b{display:block}.hdr.menu .l-w{display:block}.hdr.menu .l-b{display:none}
nav#nav{display:flex;gap:1.9rem;align-items:center;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase}
nav#nav a:not(.btn){text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:.2rem;transition:background-size .3s var(--ease)}nav#nav a:not(.btn):hover{background-size:100% 1px}
.burger{display:none;font:inherit;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;background:none;border:1px solid currentColor;border-radius:99px;padding:.45rem 1rem;cursor:pointer;color:inherit}
.btn{display:inline-flex;gap:.6rem;align-items:center;background:var(--burgundy);color:var(--warm-white);border:1px solid var(--burgundy);border-radius:99px;padding:1rem 1.9rem;font:500 .8rem var(--font-text);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,transform .25s var(--ease)}
.btn:hover{background:transparent;color:var(--burgundy);transform:translateY(-2px)}.btn-sm{padding:.65rem 1.1rem;font-size:.7rem}
.hero{padding:0;position:relative;isolation:isolate;height:100svh;min-height:640px;display:grid;grid-template-rows:1fr auto;background:#0e0c0c;color:var(--warm-white);overflow:hidden}
.collage{position:absolute;inset:0;z-index:-2;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(6,1fr);gap:.3rem;background:#0e0c0c}
.collage img{width:100%;height:100%;object-fit:cover;min-height:0;filter:grayscale(1) contrast(1.18) brightness(.72);animation:tile 1.2s var(--ease) both;animation-delay:calc(var(--i)*90ms)}
.t-a{grid-area:1/1/3/6}.t-b{grid-area:1/6/4/8}.t-c{grid-area:1/8/3/13}.t-d{grid-area:3/1/7/4}.t-e{grid-area:3/4/5/6}.t-g{grid-area:4/6/7/8}.t-h{grid-area:3/8/5/10}.t-i{grid-area:3/10/7/13}.t-j{grid-area:5/4/7/6}.t-k{grid-area:5/8/7/10}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,6,6,.72),rgba(8,6,6,0) 15%,rgba(8,6,6,0) 85%,rgba(8,6,6,.72)),linear-gradient(rgba(8,6,6,.66),rgba(8,6,6,0) 22%,rgba(8,6,6,0) 68%,rgba(8,6,6,.74)),rgba(8,6,6,.34)}
.hero-core{position:relative;align-self:center;display:grid;justify-items:center;gap:1.7rem;text-align:center;padding:5.5rem var(--pad) 0}
.hero-core:before{content:"";position:absolute;z-index:-1;inset:2.5rem -8vw 0;pointer-events:none;background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(8,6,6,.8),rgba(8,6,6,.62) 55%,rgba(8,6,6,0) 100%)}
.eyebrow{margin:0 0 .9rem;padding-left:.38em;white-space:nowrap;font:500 clamp(.72rem,1vw,.9rem)/1 var(--font-display);letter-spacing:.38em;text-transform:uppercase;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.7);animation:rise 1.1s var(--ease) .15s both}
.mega{display:grid;justify-items:start;width:max-content;padding-inline:.5em;margin:0;font:500 clamp(2.6rem,9.6vw,8.6rem)/1 var(--font-display);text-transform:uppercase;letter-spacing:-.015em;text-shadow:0 2px 28px rgba(0,0,0,.5)}
.mega .ln{position:relative;display:block;animation:rise 1.1s var(--ease) both}.l1{animation-delay:.3s}.l2{animation-delay:.45s;font-style:italic}.l3{animation-delay:.6s}
.mega em{color:inherit}.mega i{position:absolute;right:100%;top:50%;transform:translateY(-52%);margin-right:.2em;font-style:normal;font-weight:400;font-size:.6em;line-height:1;color:var(--burgundy);-webkit-text-stroke:1px var(--blush);text-shadow:none}
.hero-sub{max-width:28rem;font:350 clamp(1rem,1.3vw,1.18rem)/1.6 var(--font-text);letter-spacing:.01em;color:#fff;text-wrap:balance;text-shadow:0 1px 18px rgba(0,0,0,.6)}
.hero-cta{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:center}
.hero .btn{min-height:3.1rem;padding:.95rem 2rem;border:1px solid rgba(224,205,208,.6);box-shadow:0 10px 32px rgba(0,0,0,.4)}.hero .btn:hover{background:var(--warm-white);border-color:var(--warm-white);color:var(--burgundy)}
.btn-line{background:rgba(8,6,6,.5);border-color:rgba(250,249,247,.9);color:var(--warm-white)}.hero .btn-line:hover{color:var(--near-black)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;padding:0 var(--pad) 1.6rem}
.scroll{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;display:grid;justify-items:center;gap:.5rem}.scroll:after{content:"";width:1px;height:2.4rem;background:currentColor;transform-origin:top;animation:line 2.2s ease-in-out infinite}
@keyframes tile{from{opacity:0;transform:scale(1.06)}}@keyframes rise{from{opacity:0;transform:translateY(1.4rem)}}@keyframes line{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.motto{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--blush);margin-top:-.5rem}
.ph{background:var(--blush);display:grid;place-items:center;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--burgundy);text-align:center;padding:1rem}
.intro{display:grid;gap:2rem;background:var(--burgundy);color:var(--warm-white)}.intro .idx{color:var(--blush)}.intro em{color:var(--blush)}
.intro p:not(.idx){max-width:34rem;margin-left:auto}.intro p:not(.idx):not(.motto){font-size:1.15rem;color:#f1e6e8}
.svc-list{list-style:none;border-top:1px solid var(--near-black)}.svc{border-bottom:1px solid var(--near-black)}
.svc button{width:100%;display:grid;grid-template-columns:3.5rem 1fr 2rem;align-items:center;gap:1rem;background:none;border:0;padding:1.6rem 0;font:inherit;text-align:left;cursor:pointer;color:inherit;transition:padding .35s var(--ease)}
.svc button:hover{padding-left:1rem}.svc button:hover .t{color:var(--burgundy);font-style:italic}
.svc .n{font-size:.8rem;letter-spacing:.14em;color:var(--mute)}.svc .t{font:400 clamp(1.6rem,4.2vw,3.4rem)/1.05 var(--font-display);letter-spacing:-.01em;transition:color .3s}
.plus{width:1.1rem;height:1.1rem;position:relative}.plus:before,.plus:after{content:"";position:absolute;inset:50% 0 auto;height:1px;background:currentColor;transition:transform .3s}.plus:after{transform:rotate(90deg)}
.svc button[aria-expanded=true] .plus:after{transform:rotate(0)}
.svc .panel{max-height:0;overflow:hidden;margin-left:4.5rem;max-width:44rem;transition:max-height .5s var(--ease),padding .5s}
.svc.open .panel{max-height:16rem;padding-bottom:1.9rem}.svc .panel p{font-size:1.1rem;line-height:1.7;max-width:40rem}
.work{background:var(--blush)}.work-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.filters{display:flex;gap:.5rem;flex-wrap:wrap}.filters button{font:500 .72rem var(--font-text);letter-spacing:.16em;text-transform:uppercase;background:transparent;color:var(--near-black);border:1px solid var(--near-black);border-radius:99px;padding:.6rem 1.1rem;cursor:pointer;transition:background .25s,color .25s}
.filters button:hover{background:rgba(23,21,21,.08)}.filters button[aria-pressed=true]{background:var(--burgundy);border-color:var(--burgundy);color:var(--warm-white)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:3rem 1.5rem;align-items:start;grid-auto-flow:dense}[hidden]{display:none!important}
.card{grid-column:span 4;background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.card.tall{grid-column:span 5}.card.xl{grid-column:span 7}.card.l{grid-column:span 6}.card.m{grid-column:span 4}.card.s{grid-column:span 3}.card.off{margin-top:4rem}.card.xl,.card.l{align-self:center}
.card img{aspect-ratio:4/5;width:100%;object-fit:cover;transition:transform .8s var(--ease)}.card.xl img,.card.l img{aspect-ratio:3/2}
.card .frame{display:block;position:relative;overflow:hidden}.card:hover img{transform:scale(1.04)}
.card .zoom{position:absolute;right:.8rem;top:.8rem;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--warm-white);color:var(--burgundy);display:grid;place-items:center;font-size:1.2rem;line-height:1;transition:background .3s,color .3s}.card:hover .zoom{background:var(--burgundy);color:var(--warm-white)}
.card .meta{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:.8rem;font:400 1.3rem var(--font-display)}.card .meta span{font:400 .7rem var(--font-text);letter-spacing:.18em;text-transform:uppercase;color:var(--burgundy)}
.grid.filtered .card{grid-column:span 4;margin-top:0}.grid.filtered .card img{aspect-ratio:4/5}.card:not(.reveal){animation:rise .6s var(--ease)}
.clients{background:var(--warm-white);padding-block:clamp(3.5rem,7vw,6rem)}.clients .sec-head{margin-bottom:2.5rem}
.logos{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3.25rem 2.5rem;align-items:center;justify-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:3.25rem 0}
.logos li{display:grid;place-items:center;width:100%}.logos img{width:100%;max-width:10rem;height:var(--h,3.4rem);object-fit:contain;filter:grayscale(1);opacity:.85;transition:filter .4s,opacity .4s}.logos li:hover img{filter:none;opacity:1}
.work .idx{color:#4f4446}
.hero :focus-visible,.hdr:not(.s) :focus-visible{outline-color:var(--warm-white)}
.about{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.about-photo{width:100%;height:auto;max-width:30rem}.cap{font-size:.75rem;margin-top:.6rem}.about .todo{color:var(--burgundy)}
.about-txt{display:grid;gap:1.25rem}
.process{background:var(--burgundy);color:var(--warm-white)}.process .idx{color:var(--blush)}.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;border-top:1px solid var(--blush);padding-top:1.5rem}
.steps b{display:block;font:italic 400 clamp(3rem,7vw,6rem)/1 var(--font-display);color:var(--blush)}.steps span{font:400 1.2rem/1.3 var(--font-display)}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start;background:var(--near-black);color:var(--warm-white)}.contact .idx{color:var(--blush)}.contact em{color:var(--blush)}
.contact-links{list-style:none;border-top:1px solid #4a4044;margin-top:2.5rem}.contact-links li{border-bottom:1px solid #4a4044}
.row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;padding:1.3rem 0;text-decoration:none;transition:padding .35s var(--ease),color .3s}.row:hover{padding-left:.75rem;color:var(--blush)}.row .ico{width:1.6rem;height:1.6rem}
.row .txt{display:grid;gap:.15rem}.row .lbl{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blush)}.row .val{font:400 clamp(1.1rem,2vw,1.55rem)/1.2 var(--font-display);overflow-wrap:anywhere}.row .arr{font-size:1.2rem;opacity:.7}
form{display:grid;gap:1.3rem}.f{display:grid;gap:.4rem}label{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blush)}.opt{opacity:.7;text-transform:none;letter-spacing:0}
input:not([type=checkbox]),select,textarea{width:100%;background:transparent;color:inherit;border:0;border-bottom:1px solid #8d7b7e;padding:.7rem 0;font:inherit;border-radius:0}
select option{color:var(--near-black)}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--blush)}
.f[data-bad] input,.f[data-bad] select,.f[data-bad] textarea{border-color:#ff9a8d}.err{color:#ffb4a9;min-height:1em;font-size:.85rem}
.chk{grid-template-columns:auto 1fr;align-items:start;column-gap:.75rem}.chk label{text-transform:none;letter-spacing:0;font-size:.9rem}.chk a{text-decoration:underline}.chk input{width:1.2rem;height:1.2rem;accent-color:var(--blush);margin-top:.15rem}.chk .err{grid-column:2}
.contact .btn{background:var(--blush);color:var(--near-black);border-color:var(--blush);justify-self:start}.contact .btn:hover{background:transparent;color:var(--blush)}.contact .btn:disabled{opacity:.6;cursor:wait}
.hp{position:absolute;left:-99rem}#status{min-height:1.5em}#status.ok{color:var(--blush)}#status.ko{color:#ffb4a9}
.ftr{background:var(--near-black);color:var(--warm-white);padding:3.5rem var(--pad) 2rem;display:grid;gap:1.1rem;border-top:1px solid #3a3335}
.logo.big img{width:min(100%,38rem);height:auto}.ftr .serif{font:400 1.7rem var(--font-display)}.ftr .serif em{color:var(--blush)}
.legal-nav{opacity:.85}.ftr nav{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.social{display:flex;gap:.75rem}.ico-link{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:1px solid #6a5b5f;border-radius:50%;transition:background .3s,color .3s}.ico-link:hover{background:var(--blush);color:var(--near-black)}.ico-link .ico{width:1.2rem;height:1.2rem}
.ftr .small{font-size:.8rem;color:#cdbfc2}.todo{color:var(--blush)}
dialog{border:0;max-width:min(62rem,94vw);width:100%;max-height:92vh;padding:1.25rem 1.5rem 1.5rem;background:var(--warm-white);color:var(--near-black);margin:auto;overflow:auto}dialog::backdrop{background:rgba(14,12,12,.82)}
.d-bar{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem}.x,.d-nav button{font:500 .72rem var(--font-text);letter-spacing:.16em;text-transform:uppercase;background:none;border:1px solid var(--near-black);border-radius:99px;padding:.55rem 1rem;cursor:pointer;color:inherit;transition:background .25s,color .25s}.x:hover,.d-nav button:hover{background:var(--near-black);color:var(--warm-white)}
.d-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem;align-items:center}.d-img{margin:0}.d-img>img{width:100%;max-height:68vh;object-fit:contain;background:#ebe5d8}
.thumbs{display:flex;gap:.5rem;margin-top:.5rem}.thumbs button{width:4rem;border:1px solid var(--line);padding:0;background:none;cursor:pointer}.thumbs img{width:100%;aspect-ratio:1;object-fit:cover}
dialog h3{font:400 clamp(1.8rem,3.5vw,2.6rem)/1.1 var(--font-display);margin:.25rem 0 .75rem}.d-role{margin-top:.75rem;font-size:.9rem;color:var(--mute)}.d-nav{display:flex;justify-content:space-between;margin-top:1.25rem}
.reveal{opacity:0;transform:translateY(1.5rem);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.in{opacity:1;transform:none}
@media(min-width:821px){.hdr:not(.s) nav#nav .btn{background:transparent;border-color:rgba(250,249,247,.75)}.hdr:not(.s) nav#nav .btn:hover{background:var(--warm-white);color:var(--near-black)}}
@media(max-width:820px){
 .burger{display:block;z-index:2}nav#nav{position:fixed;inset:0;background:var(--burgundy);color:var(--warm-white);flex-direction:column;justify-content:center;font:400 2.2rem var(--font-display);letter-spacing:0;text-transform:none;gap:1.25rem;transform:translateY(-100%);transition:transform .45s var(--ease)}
 nav#nav.open{transform:none}.hdr.menu{background:transparent;border-color:transparent}.hdr.menu .logo,.hdr.menu .burger{position:relative;z-index:2;color:var(--warm-white)}nav#nav .btn{font:500 .75rem var(--font-text);letter-spacing:.16em;text-transform:uppercase;background:var(--blush);color:var(--near-black);border-color:var(--blush)}
 .hero{height:auto;min-height:100svh}.mega{font-size:clamp(2.6rem,15vw,5rem)}.l2,.l3{margin:0}.scroll{display:none}.hero-cta{flex-direction:column;align-items:center;width:100%}.hero .btn{width:min(100%,19rem);justify-content:center}.hero-core{padding-top:5.5rem}.hero-foot{padding-bottom:1.2rem}.t-a{grid-area:1/1/3/5}.t-b{grid-area:1/5/5/7}.t-d{grid-area:3/1/6/3}.t-e{grid-area:3/3/5/5}.t-g{grid-area:5/3/9/5}.t-i{grid-area:5/5/9/7}.t-j{grid-area:6/1/9/3}.t-c,.t-h,.t-k{display:none}.collage{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(8,1fr)}
 .about,.contact{grid-template-columns:1fr}.logos{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 1rem;padding:2.5rem 0}.logos img{max-width:8.5rem;height:calc(var(--h,3.4rem)*.85)}.d-body{grid-template-columns:1fr}.d-img>img{max-height:46vh}.steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 1rem}.steps li{min-width:0}.steps span{font-size:1.05rem;overflow-wrap:anywhere}
 .grid{display:flex;flex-direction:column}.card.off{margin-top:0}.card,.card.tall,.card.xl,.card.l,.card.m,.card.s,.grid.filtered .card{grid-column:auto}.intro p{margin-left:0}.svc .panel{margin-left:0}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

.legal{max-width:52rem;padding:8rem var(--pad) 5rem}.legal h1{font:400 clamp(2.2rem,5vw,3.6rem)/1.05 var(--font-display);margin-bottom:1.5rem}.legal h2{font:400 1.5rem var(--font-display);margin:2.2rem 0 .6rem}.legal p,.legal li{margin-bottom:.7rem}.legal ul{padding-left:1.2rem}.legal a{color:var(--burgundy)}
.draft{background:var(--blush);border-left:4px solid var(--burgundy);padding:1rem 1.2rem;font-size:.95rem;margin-bottom:2rem}.pend{background:#f6e3a6;padding:0 .25em;font-weight:500}
.back{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none}
