*{margin:0;box-sizing:border-box}
:root{--sans:Helvetica,Arial,sans-serif;--accent:#d4553a;--gap:6px;--pad:clamp(14px,2.5vw,40px)}
[data-theme=dark]{--bg:#0d0d0e;--ink:#ececec;--mute:#8d8d8d;--line:#2a2a2c}
[data-theme=light]{--bg:#f4f1ec;--ink:#161616;--mute:#666;--line:#161616}
body{background:var(--bg);color:var(--ink);font-family:Georgia,"Times New Roman",serif;transition:background .3s,color .3s}
a{color:inherit}
img{max-width:100%}
header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px var(--pad);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:10}
.logo{display:block;line-height:0}
.logo img{height:clamp(84px,7.5vw,100px);width:auto;display:block}
[data-theme=dark] .lg-l,[data-theme=light] .lg-d{display:none}
nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
nav a{text-decoration:none;font:11px var(--sans);letter-spacing:.14em;opacity:.75;text-transform:uppercase;padding-bottom:4px;border-bottom:2px solid transparent}
nav a:hover,nav a.on{opacity:1;border-color:var(--accent)}
#theme{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--ink);background:linear-gradient(90deg,var(--ink) 50%,transparent 50%);cursor:pointer}

.hero{position:relative;height:calc(100dvh - var(--hh,66px));min-height:340px;background:#000;overflow:hidden}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1s;display:flex;align-items:center;justify-content:center}
.slide.on{opacity:1}
.slide img{width:100%;height:100%;object-fit:contain}
.slide span{position:absolute;right:var(--pad);bottom:20px;font:12px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#fff;text-shadow:0 1px 6px #000}
.hero-t{position:absolute;left:var(--pad);bottom:20px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.8);pointer-events:none;z-index:2}
.hero.sec{height:calc(80dvh - var(--hh,66px))}
.hero-t h1{font-size:clamp(30px,5vw,80px);font-weight:400;line-height:1}
.hero-t i{color:#ff3b1f;font-weight:700}
.hero-t p{font:13px var(--sans);letter-spacing:.12em;margin-top:8px}
.dots{position:absolute;top:16px;right:var(--pad);display:flex;gap:8px;z-index:3}
.dots button{flex:none;width:12px;height:12px;min-width:12px;padding:0;margin:0;aspect-ratio:1/1;border-radius:50%;border:1.5px solid #fff;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}
.dots button.on{background:#fff}

/* fotogalería: filas justificadas, sin recortes */
.jg{display:flex;flex-wrap:wrap;gap:var(--gap);padding:var(--gap) var(--pad)}
.jg::after{content:"";flex-grow:1000000}
.t{position:relative;display:block;overflow:hidden;flex-grow:calc(var(--ar)*100);flex-basis:calc(var(--ar)*clamp(150px,22vh,260px));background:var(--line);cursor:pointer}
.t img{display:block;width:100%;height:auto;transition:transform .5s}
.t:hover img{transform:scale(1.03)}
.t em{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font:11px var(--sans);letter-spacing:.12em;text-transform:uppercase;font-style:normal;opacity:0;transition:.3s}
.t:hover em{opacity:1}
@media(hover:none){.t em{opacity:1}}
.sh{font:12px var(--sans);letter-spacing:.3em;text-transform:uppercase;padding:40px var(--pad) 10px;color:var(--mute)}
.gh{padding:36px var(--pad) 14px}
.gh a{font:12px var(--sans);letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--mute)}
.gh h1{font-size:clamp(32px,5vw,72px);font-weight:400;margin-top:10px}
.gh h2{font:12px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mute);font-weight:400}
.gh p{font:13px var(--sans);color:var(--mute);margin-top:6px}
.cta{margin-top:50px;border-top:1px solid var(--line);padding:70px var(--pad);display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:20px}
.cta h2{font-size:clamp(30px,4vw,50px);font-weight:400;font-style:italic}
.cta a{font:14px var(--sans);letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid}
.text{max-width:760px;padding:56px var(--pad) 90px}
.text h1{font-size:clamp(36px,5vw,56px);font-weight:400;margin-bottom:24px}
.text h2{font:12px var(--sans);letter-spacing:.3em;text-transform:uppercase;margin:40px 0 12px;color:var(--mute)}
.text p{font:17px/1.7 var(--sans);margin-bottom:16px}
.clients{font-size:14px!important;color:var(--mute)}
.big{font:italic clamp(24px,4vw,34px) Georgia,serif;color:var(--accent)}
footer{display:flex;gap:26px;flex-wrap:wrap;padding:26px var(--pad);border-top:1px solid var(--line);font:12px var(--sans);letter-spacing:.08em;color:var(--mute)}
footer span{margin-right:auto}

#lb{position:fixed;inset:0;background:rgba(0,0,0,.96);display:none;align-items:center;justify-content:center;z-index:99}
#lb.open{display:flex}
#lb img{max-width:96vw;max-height:94vh;object-fit:contain}
#lb button{position:absolute;background:none;border:0;color:#fff;font-size:38px;cursor:pointer;padding:16px;opacity:.7}
#lb button:hover{opacity:1}
#lb .x{top:4px;right:8px}#lb .p{left:4px;top:50%}#lb .n{right:4px;top:50%}
#lb .c{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#aaa;font:12px var(--sans)}
@media(max-width:700px){nav{gap:12px}nav a{font-size:10px;letter-spacing:.1em}.hero{height:70vh}.t{flex-basis:calc(var(--ar)*130px)}:root{--gap:4px}}
img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}

.hero-btn{display:inline-block;margin-top:18px;padding:12px 22px;border:1px solid #ff3b1f;color:#fff;font:12px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;pointer-events:auto;text-shadow:none;background:rgba(0,0,0,.35);transition:background .2s}
.hero-btn:hover{background:#ff3b1f}
.filt{display:flex;flex-wrap:wrap;gap:8px;padding:6px var(--pad) 18px}
.filt button{font:11px var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--mute);cursor:pointer}
.filt button:hover,.filt button.on{color:var(--ink);border-color:#ff3b1f}
.filt button.on{background:#ff3b1f;color:#fff}
.t.hid{display:none}
