
/* ── RESET ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--black:#0a0a0a;--white:#f5f2ed;--warm:#c8b89a;--accent:#b5442a;--gray:#6b6b6b;--light-gray:#e8e4de}
html{scroll-behavior:smooth}
body{background:var(--white);color:var(--black);font-family:'Inter','Helvetica Neue',Helvetica,sans-serif;overflow-x:hidden}

/* ── PAGE SYSTEM ── */
.page{display:none}
.page.active{display:block;position:fixed;top:0;left:0;right:0;bottom:0;overflow-y:auto;background:var(--white);z-index:10}

/* ── CURSOR ── */
.cursor{position:fixed;width:8px;height:8px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .15s}
.cursor-ring{position:fixed;width:36px;height:36px;border:1px solid var(--black);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:transform .4s,width .3s,height .3s,border-color .3s}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:28px 48px;mix-blend-mode:multiply}
.nav-logo{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--black);text-decoration:none;cursor:pointer}
.nav-links{display:flex;gap:36px;list-style:none}
.nav-links a{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--black);text-decoration:none;position:relative;cursor:pointer}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--accent);transition:width .3s}
.nav-links a:hover::after{width:100%}

/* ── PROJECT NAV ── */
.project-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:24px 48px;background:rgba(245,242,237,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--light-gray)}
.nav-back{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--black);text-decoration:none;cursor:pointer;display:flex;align-items:center;gap:8px}
.nav-back::before{content:'←'}
.nav-back:hover{color:var(--accent)}
.nav-category{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}

/* ── HERO ── */
.hero{height:100vh;display:grid;grid-template-columns:1fr 2fr;position:relative;overflow:hidden}
.hero-left{display:flex;flex-direction:column;justify-content:flex-end;padding:0 48px 64px;position:relative;z-index:2}
.hero-eyebrow{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:24px;opacity:0;animation:fadeUp 1s .3s forwards}
.hero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(56px,6vw,96px);line-height:.95;letter-spacing:.04em;color:var(--black);opacity:0;animation:fadeUp 1s .5s forwards}
.hero-title em{font-style:normal;font-family:'Inter','Helvetica Neue',sans-serif;font-size:.38em;font-weight:300;display:block;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-bottom:8px}
.hero-desc{margin-top:32px;font-size:14px;font-weight:300;line-height:1.8;color:var(--gray);max-width:320px;letter-spacing:.01em;opacity:0;animation:fadeUp 1s .7s forwards}
.hero-cta{margin-top:48px;display:flex;gap:24px;align-items:center;opacity:0;animation:fadeUp 1s .9s forwards}
.btn-primary{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;background:var(--black);color:var(--white);padding:16px 32px;text-decoration:none;transition:background .3s}
.btn-primary:hover{background:var(--accent)}
.btn-secondary{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--gray);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;transition:color .3s;cursor:pointer}
.btn-secondary:hover{color:var(--accent)}
.hero-right{position:relative;overflow:hidden}

/* ── SLIDESHOW ── */
.hero-slideshow{position:absolute;inset:0;width:100%;height:100%}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.8s cubic-bezier(.4,0,.2,1)}
.slide.active{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;filter:grayscale(15%) contrast(1.05);transform:scale(1.04);transition:transform 7s ease}
.slide.active img{transform:scale(1)}
.slide-caption{position:absolute;bottom:0;left:0;right:0;padding:64px 36px 28px;background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 100%);font-family:'DM Mono',monospace;font-size:13px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:#fff;z-index:3}
.hero-image-overlay{position:absolute;inset:0;background:linear-gradient(to right,var(--white) 0%,transparent 30%);z-index:1}
.hero-dots{position:absolute;bottom:32px;right:48px;display:flex;gap:8px;z-index:3}
.hero-dot{width:24px;height:1px;background:rgba(255,255,255,.3);cursor:pointer;transition:background .3s,width .3s}
.hero-dot.active{background:var(--white);width:40px}
.hero-counter{position:absolute;top:96px;right:48px;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.5);z-index:3}
.hero-year{position:absolute;bottom:64px;right:48px;font-family:'Bebas Neue',sans-serif;font-size:180px;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(0,0,0,.08);z-index:2;pointer-events:none}

/* ── TICKER ── */
.ticker{background:var(--black);color:var(--white);padding:14px 0;overflow:hidden;white-space:nowrap}
.ticker-inner{display:inline-flex;animation:ticker 30s linear infinite}
.ticker-item{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;padding:0 48px}
.ticker-item span{color:var(--warm);margin-right:48px}

/* ── ABOUT ── */
.about{display:grid;grid-template-columns:1fr 2fr;gap:0;padding:120px 48px;border-top:1px solid var(--light-gray)}
.section-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);padding-top:8px}
.about-headline{font-size:clamp(32px,3.5vw,52px);font-weight:300;line-height:1.2;color:var(--black);margin-bottom:40px}
.about-headline strong{font-weight:400;font-style:italic}
.about-body{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.about-body p{font-size:15px;font-weight:300;line-height:1.8;color:var(--gray)}
.about-stats{display:flex;gap:64px;margin-top:64px;padding-top:48px;border-top:1px solid var(--light-gray)}
.stat-number{font-family:'Bebas Neue',sans-serif;font-size:64px;line-height:1;color:var(--black)}
.stat-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--gray);margin-top:8px}

/* ── PROJECTS ── */
.projects{padding:0 48px 120px}
.projects-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:64px;padding-bottom:24px;border-bottom:1px solid var(--light-gray)}
.projects-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,5vw,80px);line-height:1;letter-spacing:.02em}
.projects-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.filter-bar{display:flex;gap:12px;flex-wrap:wrap;padding:0 var(--margin) 40px;margin-top:-20px}
.filter-btn{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:10px 20px;border:1px solid var(--black);background:transparent;color:var(--black);cursor:pointer;transition:all .2s}
.filter-btn.active,.filter-btn:hover{background:var(--black);color:var(--white)}
.project-card{position:relative;overflow:hidden}
.project-img-wrap{position:relative;overflow:hidden}
.project-img-wrap img{width:100%;height:100%;object-fit:cover;filter:grayscale(15%);transition:transform .8s cubic-bezier(.25,.46,.45,.94),filter .5s}
.project-card:hover .project-img-wrap img{transform:scale(1.06);filter:grayscale(0%)}
.project-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.7) 0%,transparent 50%);opacity:0;transition:opacity .4s;display:flex;align-items:flex-end;padding:28px}
.project-card:hover .project-overlay{opacity:1}
.project-overlay-text{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--white)}
.project-tag{position:absolute;top:16px;right:16px;font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.15em;text-transform:uppercase;background:var(--accent);color:var(--white);padding:5px 10px;z-index:2}
.project-info{padding:20px 0 0}
.project-category{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.project-name{font-size:18px;font-weight:300;color:var(--black);line-height:1.3}
.project-year{font-family:'DM Mono',monospace;font-size:10px;color:var(--gray);margin-top:4px}

/* ── SERVICES ── */
.services{padding:120px 48px;border-top:1px solid var(--light-gray)}
.services-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:80px}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--light-gray)}
.service-card{background:var(--white);padding:48px 40px;position:relative;overflow:hidden;transition:background .3s}
.service-card:hover{background:#f0ece6}
.service-number{font-family:'Bebas Neue',sans-serif;font-size:72px;line-height:1;color:transparent;-webkit-text-stroke:1px var(--light-gray);position:absolute;top:24px;right:32px;transition:-webkit-text-stroke-color .3s}
.service-card:hover .service-number{-webkit-text-stroke-color:var(--warm)}
.service-name{font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:.02em;color:var(--black);line-height:1.1;margin-bottom:16px}
.service-desc{font-size:15px;font-weight:300;line-height:1.8;color:var(--gray)}
.service-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.service-tag{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;padding:4px 10px}

/* ── AWARDS ── */
.awards{background:var(--black);padding:120px 48px;position:relative;overflow:hidden}
.awards-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,5vw,80px);color:var(--white);line-height:1;margin-bottom:80px}
.award-item{cursor:pointer;transition:opacity .2s;}.award-item:hover{opacity:.6;}.award-item{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:48px;padding:32px 0;border-bottom:1px solid rgba(255,255,255,.08);transition:padding-left .3s}
.award-item:hover{padding-left:16px}
.award-year{font-family:'Bebas Neue',sans-serif;font-size:40px;color:var(--warm);line-height:1}
.award-name{font-size:20px;font-weight:300;color:var(--white);line-height:1.3}
.award-org{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-top:6px}
.award-tag{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);padding:6px 12px;white-space:nowrap}

/* ── TEAM ── */
.team{padding:120px 48px;background:var(--light-gray)}
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:64px;background:var(--warm)}
.team-card{background:var(--white);padding:64px 48px;position:relative;overflow:hidden}
.team-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:0;background:var(--accent);transition:height .4s}
.team-card:hover::before{height:100%}
.team-name{font-family:'Bebas Neue',sans-serif;font-size:52px;line-height:1;letter-spacing:.02em;color:var(--black);margin-bottom:8px}
.team-role{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:24px}
.team-bio{font-size:15px;font-weight:300;line-height:1.8;color:var(--gray)}
.team-credentials{margin-top:32px;padding-top:24px;border-top:1px solid var(--light-gray);display:flex;flex-direction:column;gap:8px}
.credential{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;color:var(--gray)}

/* ── CONTACT ── */
.contact{padding:120px 48px;display:grid;grid-template-columns:1fr 1fr;gap:120px;align-items:start}
.contact-headline{font-family:'Bebas Neue',sans-serif;font-size:clamp(64px,7vw,110px);line-height:.92;letter-spacing:.02em;color:var(--black);margin-bottom:48px}
.contact-info{display:flex;flex-direction:column;gap:32px}
.contact-item-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.contact-item-value{font-size:18px;font-weight:300;color:var(--black);text-decoration:none;transition:color .2s}
.contact-item-value:hover{color:var(--accent)}
.contact-form{display:flex;flex-direction:column;gap:32px}
.form-group{display:flex;flex-direction:column;gap:8px}
.form-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray)}
.form-input,.form-textarea{background:transparent;border:none;border-bottom:1px solid var(--light-gray);padding:12px 0;font-family:'Inter','Helvetica Neue',sans-serif;font-size:18px;font-weight:300;color:var(--black);outline:none;transition:border-color .3s}
.form-input:focus,.form-textarea:focus{border-color:var(--accent)}
.form-textarea{resize:none;height:100px}
.form-submit{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.15em;text-transform:uppercase;background:var(--black);color:var(--white);border:none;padding:18px 40px;cursor:pointer;align-self:flex-start;transition:background .3s}
.form-submit:hover{background:var(--accent)}

/* ── FOOTER ── */
footer{background:var(--black);padding:48px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.06)}
.footer-logo{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--white)}
.footer-copy{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;color:rgba(255,255,255,.3)}
.footer-social{display:flex;gap:24px}
.footer-social a{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.4);text-decoration:none;transition:color .2s}
.footer-social a:hover{color:var(--warm)}

/* ── PROJECT PAGE ── */
.project-hero{height:100vh;position:relative;overflow:hidden}
.project-hero img{width:100%;height:100%;object-fit:cover;filter:grayscale(10%)}
.project-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.75) 0%,rgba(10,10,10,.1) 60%,transparent 100%)}
.project-hero-content{position:absolute;bottom:0;left:0;right:0;padding:64px 48px;color:white}
.project-eyebrow{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--warm);margin-bottom:16px}
.project-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(64px,8vw,120px);line-height:.92;letter-spacing:.02em;color:white;margin-bottom:24px}
.project-subtitle{font-size:16px;font-weight:300;color:rgba(255,255,255,.7);max-width:600px;line-height:1.7}
.ficha{display:grid;grid-template-columns:2fr 1fr;gap:80px;padding:80px 48px;border-bottom:1px solid var(--light-gray)}
.ficha-descripcion h2{font-family:'Bebas Neue',sans-serif;font-size:40px;letter-spacing:.02em;color:var(--black);margin-bottom:24px}
.ficha-descripcion p{font-size:15px;font-weight:300;line-height:1.9;color:var(--gray);margin-bottom:20px}
.dato{padding:20px 0;border-bottom:1px solid var(--light-gray)}
.dato:first-child{border-top:1px solid var(--light-gray)}
.dato-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.dato-value{font-size:14px;font-weight:400;color:var(--black);line-height:1.5}
.premio-tag{display:inline-block;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--white);background:var(--accent);padding:4px 10px;margin-top:8px}
.galeria{padding:0 48px 80px}
.galeria-header{display:flex;justify-content:space-between;align-items:center;padding:48px 0 32px;border-top:1px solid var(--light-gray)}
.galeria-title{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.galeria-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.galeria-item{overflow:hidden}
.galeria-item.wide{grid-column:span 8}
.galeria-item.narrow{grid-column:span 4}
.galeria-item.half{grid-column:span 6}
.galeria-item.third{grid-column:span 4}
.galeria-item.full{grid-column:span 12}
.galeria-img-wrap{position:relative;width:100%;height:100%;overflow:hidden}
.galeria-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease,filter .4s;filter:grayscale(10%)}
.galeria-item:hover .galeria-img-wrap img{transform:scale(1.04);filter:grayscale(0%)}
.galeria-caption-overlay{position:absolute;bottom:0;left:0;right:0;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:10px 14px;line-height:1.4}
.programa{padding:80px 48px;background:var(--black)}
.programa-header{margin-bottom:64px}
.programa-label{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.programa-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(40px,5vw,72px);color:var(--white);line-height:1}
.programa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.programa-item{background:#111;padding:40px 32px;border:1px solid rgba(255,255,255,.06);transition:background .3s}
.programa-item:hover{background:#1a1a1a}
.programa-num{font-family:'Bebas Neue',sans-serif;font-size:48px;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.15);line-height:1;margin-bottom:16px}
.programa-name{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:.04em;color:var(--white);margin-bottom:12px}
.programa-desc{font-size:13px;font-weight:300;line-height:1.8;color:rgba(255,255,255,.45)}
.sostenibilidad{padding:80px 48px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;border-bottom:1px solid var(--light-gray)}
.sost-content h2{font-family:'Bebas Neue',sans-serif;font-size:48px;letter-spacing:.02em;margin-bottom:24px}
.sost-content p{font-size:15px;font-weight:300;line-height:1.9;color:var(--gray);margin-bottom:16px}
.sost-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.sost-tag{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);padding:6px 12px}
.sost-image img{width:100%;aspect-ratio:4/3;object-fit:cover}
.nav-proyectos{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--light-gray)}
.nav-proy-item{background:var(--white);padding:48px;text-decoration:none;transition:background .3s;cursor:pointer}
.nav-proy-item:hover{background:#ede9e3}
.nav-proy-dir{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.nav-proy-name{font-family:'Bebas Neue',sans-serif;font-size:32px;color:var(--black);line-height:1}

/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* Project page styles */
body { background: var(--cream, #f5f2ed); }
.page { display: block !important; opacity: 1 !important; }
.nav-back { cursor: pointer; }
.nav-back:hover { text-decoration: underline; }
