:root{--ink:#111214;--ink-2:#1b1d20;--gold:#d7a516;--gold-2:#f1c640;--paper:#f4f3ef;--white:#fff;--muted:#6b6b68;--line:rgba(17,18,20,.14);--pad:clamp(1.25rem,5vw,6rem);--display:"Oswald",sans-serif;--body:"Manrope",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}svg{display:block}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:var(--white);padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{height:88px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;position:absolute;inset:0 0 auto;z-index:20;color:var(--white);border-bottom:1px solid rgba(255,255,255,.16)}.site-header.is-scrolled{position:fixed;background:rgba(17,18,20,.94);backdrop-filter:blur(12px);animation:drop .35s ease}@keyframes drop{from{transform:translateY(-100%)}to{transform:none}}.brand{display:flex;align-items:center;gap:.75rem}.brand-mark{width:46px;height:46px;display:grid;place-items:center;background:var(--gold);clip-path:polygon(0 20%,100% 0,100% 80%,0 100%)}.brand-mark svg{width:31px;height:31px}.brand-mark path:first-child{fill:var(--ink)}.brand-mark path:last-child{fill:none;stroke:white;stroke-width:5;stroke-linecap:round}.brand small,.brand strong{display:block;line-height:1}.brand small{font:600 .67rem var(--body);letter-spacing:.17em}.brand strong{font:700 1.7rem var(--display);letter-spacing:.08em;margin-top:.16rem}.site-nav{display:flex;align-items:center;gap:clamp(1rem,2.3vw,2.5rem);font-size:.9rem;font-weight:700}.site-nav>a:not(.nav-cta){position:relative}.site-nav>a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-.45rem;height:2px;background:var(--gold);transition:.25s}.site-nav>a:hover::after{right:0}.nav-cta{padding:.68rem 1rem;border:1px solid var(--gold);color:var(--gold)}.menu-toggle{display:none;background:none;border:0}.hero{min-height:760px;height:100svh;max-height:980px;background:var(--ink);color:var(--white);position:relative;display:grid;grid-template-columns:minmax(0,1fr) 230px;padding:calc(88px + 6vh) var(--pad) 4rem;overflow:hidden}.hero::before{content:"";position:absolute;inset:auto -12vw -31vw 35vw;aspect-ratio:1;border:clamp(4rem,10vw,9rem) solid rgba(215,165,22,.09);transform:rotate(29deg)}.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(215,165,22,.08),transparent 35%);pointer-events:none}.blueprint{position:absolute;inset:0;opacity:.08;background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,transparent 45%,#000)}.hero-content{align-self:center;position:relative;z-index:2;max-width:980px}.eyebrow{display:flex;align-items:center;gap:.7rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.75rem;margin:0 0 1.6rem;color:#75621f}.eyebrow span{width:34px;height:2px;background:var(--gold)}.eyebrow.light{color:var(--gold-2)}.hero .eyebrow{color:var(--gold-2)}h1,h2,h3,p{margin-top:0}h1{font:700 clamp(4rem,9vw,9.2rem)/.9 var(--display);text-transform:uppercase;letter-spacing:-.025em;margin-bottom:2rem;max-width:1100px}h1 em{font-style:normal;color:var(--gold);-webkit-text-stroke:1px var(--gold)}.hero-copy{max-width:630px;color:#c8c8c3;font-size:clamp(1rem,1.35vw,1.2rem);margin-bottom:2.2rem}.hero-actions,.cta-actions{display:flex;flex-wrap:wrap;gap:.8rem}.button{min-height:52px;padding:.8rem 1.35rem;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;font-size:.9rem;font-weight:800;transition:transform .25s,background .25s,color .25s}.button:hover{transform:translateY(-3px)}.button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}.button-primary{background:var(--gold);color:var(--ink)}.button-primary:hover{background:var(--gold-2)}.button-ghost{border:1px solid rgba(255,255,255,.35);color:var(--white)}.button-light{background:var(--white);color:var(--ink)}.hero-side{position:relative;z-index:2;border-left:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:1.4rem 0 1.4rem 2rem}.vertical-label{writing-mode:vertical-rl;font:600 .72rem var(--body);letter-spacing:.22em;color:#878883}.hero-stat{text-align:right}.hero-stat strong{display:block;font:700 5rem/.9 var(--display);color:var(--gold)}.hero-stat span{font-size:.78rem;line-height:1.35;text-transform:uppercase;letter-spacing:.12em;color:#aaa}.hero-note{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;display:flex;align-items:center;gap:.6rem}.pulse{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 7px rgba(215,165,22,.12);animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 13px rgba(215,165,22,0)}}.scroll-hint{position:absolute;z-index:3;bottom:2.4rem;left:var(--pad);display:flex;align-items:center;gap:.8rem;font-size:.73rem;text-transform:uppercase;letter-spacing:.15em;color:#999}.scroll-hint i{width:46px;height:1px;background:var(--gold);position:relative}.scroll-hint i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);transform:rotate(-45deg)}.section{padding:clamp(5rem,9vw,9rem) var(--pad)}.section-heading{display:grid;grid-template-columns:minmax(240px,.65fr) 1.35fr;gap:3rem;align-items:end;margin-bottom:4rem}.section-heading .eyebrow{align-self:start}.section-heading h2,.process h2,.company h2,.cta h2{font:600 clamp(2.6rem,5.5vw,5.8rem)/1 var(--display);text-transform:uppercase;letter-spacing:-.02em;margin:0}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{min-height:270px;padding:1.7rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;display:flex;flex-direction:column;justify-content:flex-end;transition:background .3s,color .3s,transform .3s}.service-card:hover{background:var(--white);transform:translateY(-5px);z-index:2;box-shadow:0 18px 38px rgba(17,18,20,.08)}.service-card.feature{grid-column:span 2;grid-row:span 2;min-height:540px;background:var(--gold);color:var(--ink);padding:2.5rem}.service-card.feature:hover{background:var(--gold-2)}.service-number{position:absolute;top:1.3rem;right:1.5rem;font:600 .78rem var(--body);color:#9a9a94}.feature .service-number{color:rgba(17,18,20,.55)}.service-card svg{width:82px;height:82px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.2}.service-card h3{font:600 clamp(1.35rem,2vw,2rem)/1.1 var(--display);text-transform:uppercase;margin-bottom:.7rem}.service-card p{color:var(--muted);font-size:.9rem;max-width:330px;margin:0}.feature p{color:rgba(17,18,20,.72);font-size:1rem}.process{background:var(--ink);color:var(--white);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(4rem,9vw,9rem)}.process-intro{position:sticky;top:145px;align-self:start}.process-intro>p:last-child{max-width:520px;color:#aaa;margin-top:2rem}.process-steps{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.16)}.process-steps li{display:grid;grid-template-columns:72px 1fr;gap:1rem;padding:2.1rem 0;border-bottom:1px solid rgba(255,255,255,.16)}.process-steps li>span{font:600 1.3rem var(--display);color:var(--gold)}.process-steps h3{font:600 1.65rem var(--display);text-transform:uppercase;margin-bottom:.35rem}.process-steps p{color:#999;margin:0}.company{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(3rem,7vw,8rem);align-items:center}.company-media{position:relative;overflow:hidden;height:min(68vw,760px);background:#ddd}.company-media img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1s ease}.company-media:hover img{transform:scale(1.025)}.media-badge{position:absolute;left:0;bottom:0;background:var(--gold);padding:1.2rem 1.6rem;display:flex;align-items:baseline;gap:1rem}.media-badge strong{font:700 2rem var(--display)}.media-badge span{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.company-copy>p:not(.eyebrow){color:var(--muted);font-size:1.05rem;margin:2rem 0}.contact-list{border-top:1px solid var(--line)}.contact-list a{display:block;padding:1.2rem 0;border-bottom:1px solid var(--line)}.contact-list span{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:.69rem;color:#8a8a84}.contact-list strong{font-size:1.05rem}.visual-break{display:grid;grid-template-columns:.65fr 1.35fr;gap:clamp(3rem,8vw,9rem);align-items:center;background:#e5e3dc}.poster-wrap{max-width:460px;box-shadow:24px 24px 0 var(--gold)}.poster-wrap img{width:100%}.visual-break blockquote{font:500 clamp(2.5rem,5vw,5.6rem)/1.05 var(--display);text-transform:uppercase;margin:0}.visual-break blockquote span{color:var(--gold);font-size:1.3em}.cta{background:var(--gold);text-align:center}.cta .eyebrow{justify-content:center;color:var(--ink)}.cta .eyebrow span{background:var(--ink)}.cta h2{font-size:clamp(3rem,7vw,7rem)}.cta>p:not(.eyebrow){margin:1.5rem auto 2rem;max-width:560px}.cta-actions{justify-content:center}.cta .button-primary{background:var(--ink);color:var(--white)}footer{background:#090a0b;color:var(--white);padding:4rem var(--pad) 2rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end}.footer-brand{grid-column:1}.footer-brand+.footer-links{}footer>p{color:#777;grid-column:1;margin:0}.footer-links{grid-column:2;grid-row:1/span 2;display:flex;flex-direction:column;gap:.4rem;text-align:right;font-weight:600}footer>small{grid-column:1/-1;color:#60615e;border-top:1px solid #242526;padding-top:1.5rem}.mobile-call{display:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.pulse{animation:none}.button,.company-media img{transition:none}}
@media(max-width:980px){.site-nav{position:fixed;inset:88px 0 auto;background:var(--ink);padding:2rem var(--pad) 2.5rem;flex-direction:column;align-items:flex-start;transform:translateY(-140%);transition:.35s;z-index:-1}.site-nav.open{transform:none}.menu-toggle{display:grid;gap:7px;padding:.7rem}.menu-toggle span{display:block;width:27px;height:2px;background:white}.hero{grid-template-columns:1fr}.hero-side{display:none}.services-grid{grid-template-columns:repeat(2,1fr)}.process,.company{grid-template-columns:1fr}.process-intro{position:static}.company-media{height:68vw;min-height:440px}.visual-break{grid-template-columns:.8fr 1.2fr}.section-heading{grid-template-columns:1fr}.section-heading h2{max-width:760px}h1{font-size:clamp(4rem,12vw,7.5rem)}}
@media(max-width:640px){.site-header{height:76px}.brand-mark{width:40px;height:40px}.brand strong{font-size:1.35rem}.brand small{font-size:.57rem}.site-nav{top:76px}.hero{min-height:720px;padding-top:120px;padding-bottom:5rem}.hero h1{font-size:clamp(3.2rem,16vw,5.8rem)}.hero-copy{font-size:1rem}.hero-actions .button{width:100%}.scroll-hint{display:none}.section{padding-top:5.2rem;padding-bottom:5.2rem}.section-heading{gap:1rem;margin-bottom:2.5rem}.services-grid{grid-template-columns:1fr}.service-card.feature{grid-column:auto;grid-row:auto;min-height:400px}.service-card{min-height:220px}.process{gap:3rem}.company-media{min-height:360px;height:105vw}.media-badge{right:0}.visual-break{grid-template-columns:1fr;overflow:hidden}.poster-wrap{width:78%;margin:auto}.visual-break blockquote{font-size:2.6rem}.cta-actions .button{width:100%}footer{grid-template-columns:1fr;padding-bottom:6rem}.footer-links{grid-column:1;grid-row:auto;text-align:left}.mobile-call{display:grid;place-items:center;position:fixed;right:1.1rem;bottom:1.1rem;z-index:50;width:58px;height:58px;border-radius:50%;background:var(--gold);box-shadow:0 10px 30px rgba(0,0,0,.28)}.mobile-call svg{width:25px;height:25px;fill:none;stroke:var(--ink);stroke-width:2}}

/* Logotipo original extraído del material de marca, con transparencia real. */
.brand-logo{width:66px;height:58px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.brand-logo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}
@media(max-width:640px){.brand-logo{width:52px;height:46px}}

/* Portada audiovisual ligera */
.hero{grid-template-columns:minmax(0,1fr) minmax(360px,38vw);gap:clamp(2rem,4vw,5rem)}
.hero-content{max-width:760px}
.hero h1{font-size:clamp(3.8rem,7vw,7.6rem);max-width:800px}
.hero-visual{position:relative;z-index:2;align-self:center;height:min(66vh,670px);min-height:480px;overflow:hidden;background:#252628;border:1px solid rgba(255,255,255,.16);box-shadow:0 34px 80px rgba(0,0,0,.32)}
.renovation-film{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.82) contrast(1.06);transform:scale(1.02);transition:transform 1.2s ease}
.hero-visual:hover .renovation-film{transform:scale(1.055)}
.film-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,9,10,.18) 25%,rgba(8,9,10,.9) 100%),linear-gradient(90deg,rgba(8,9,10,.35),transparent 45%)}
.film-corners{position:absolute;inset:1rem;border:1px solid rgba(255,255,255,.18);clip-path:polygon(0 0,24% 0,24% 1px,76% 1px,76% 0,100% 0,100% 100%,76% 100%,76% calc(100% - 1px),24% calc(100% - 1px),24% 100%,0 100%)}
.film-topline{position:absolute;left:2rem;top:2rem;display:flex;align-items:center;gap:.75rem;font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.film-caption{position:absolute;left:2rem;right:2rem;bottom:2.6rem;display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:end}
.film-caption>span{font:600 .75rem var(--body);color:var(--gold)}
.film-caption strong{font:600 clamp(1.8rem,3vw,3.5rem)/.98 var(--display);text-transform:uppercase}
.film-progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.12)}
.film-progress i{display:block;width:100%;height:100%;background:var(--gold);transform-origin:left;animation:film-progress 5s linear infinite}
@keyframes film-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.film-progress i{animation:none}.renovation-film{transition:none}}
@media(max-width:980px){.hero{height:auto;max-height:none;grid-template-columns:1fr;padding-top:140px;padding-bottom:6rem}.hero-content{max-width:760px}.hero-visual{display:block;height:min(62vw,520px);min-height:400px}.hero h1{font-size:clamp(4rem,12vw,7.5rem)}}
@media(max-width:640px){.hero{min-height:0;padding-top:120px;padding-bottom:4.5rem;gap:3rem}.hero-visual{height:72vw;min-height:300px}.film-topline{left:1.25rem;top:1.25rem}.film-caption{left:1.25rem;right:1.25rem;bottom:1.8rem}.film-caption strong{font-size:clamp(1.65rem,8vw,2.6rem)}}

/* Secuencia fotográfica: ejecución, acabados y resultado final. */
.renovation-sequence,.renovation-frame{position:absolute;inset:0;margin:0}
.renovation-frame{opacity:0;overflow:hidden;animation:renovation-frame 15s ease-in-out infinite}
.renovation-frame img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;filter:saturate(.86) contrast(1.06);transition:transform 1.2s ease}
.frame-electricidad{animation-delay:0s}
.frame-albanileria{animation-delay:5s}
.frame-terminada{animation-delay:10s}
.frame-electricidad img{object-position:54% center}
.frame-albanileria img{object-position:center 44%}
.frame-terminada img{object-position:center}
.hero-visual:hover .renovation-frame img{transform:scale(1.025)}
.film-progress i{animation-duration:15s}
@keyframes renovation-frame{0%{opacity:1;transform:scale(1.08)}30%{opacity:1}38%{opacity:0;transform:scale(1.01)}100%{opacity:0;transform:scale(1.01)}}
@media (prefers-reduced-motion:reduce){.renovation-frame{animation:none;opacity:0;transform:none}.frame-terminada{opacity:1}.renovation-frame img{transition:none}.film-progress i{animation:none}}
