
:root{--ink:#1f2421;--ink2:#566058;--green:#2f5d4b;--sand:#f4f1ea;--line:#e4e0d6}
*{box-sizing:border-box}body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:#fff}
img{max-width:100%;display:block}a{color:inherit}
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;color:#fff;background:#222;overflow:hidden}
.hero .bg{position:absolute;left:0;right:0;top:-8%;height:116%;background:url(fotos/01_fachada.webp) center/cover;will-change:transform;transform:translate3d(0,0,0)}
.hero:before{z-index:1;content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0,rgba(0,0,0,.2) 35%,rgba(0,0,0,.78) 100%)}
.hero .in{position:relative;z-index:2;max-width:980px;margin:0 auto;padding:24px 20px 44px;width:100%}
.brand{position:absolute;z-index:3;top:20px;left:20px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:14px;color:#fff;z-index:2}
.tag{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);padding:4px 12px;border-radius:99px;font-size:13px;margin-bottom:14px}
h1{font-size:clamp(30px,6vw,56px);line-height:1.08;margin:0 0 14px;font-weight:700}
.hero p{font-size:18px;max-width:640px;margin:0 0 22px;color:#f0f0ec}
.btn{display:inline-block;background:var(--green);color:#fff;text-decoration:none;padding:15px 26px;border-radius:10px;font-weight:600;font-size:16px}
.btn.alt{background:#fff;color:var(--ink);margin-left:8px}
.hero .btn{background:#fff;color:var(--ink)}
.facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:22px 0 0;font-size:15px;color:#e8e8e2}
.facts b{color:#fff}
section{max-width:980px;margin:0 auto;padding:56px 20px}
h2{font-size:clamp(24px,4vw,34px);line-height:1.2;margin:0 0 14px}
.lead{color:var(--ink2);font-size:18px;max-width:720px}
.tabs{display:flex;gap:8px;margin:20px 0}
.tabs button{flex:1;padding:14px;border:1px solid var(--line);background:#fff;border-radius:10px;font:inherit;font-weight:600;cursor:pointer}
.tabs button.on{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);color:var(--green)}
.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:18px}
.card{background:var(--sand);border-radius:14px;padding:22px}
.card h3{margin:0 0 8px;font-size:18px}.card p{margin:0 0 10px;color:var(--ink2);font-size:15px}
.card a.src{font-size:13px;color:var(--green)}
.gal{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:18px}
.gal img{border-radius:12px;width:100%;aspect-ratio:4/3;object-fit:cover}
.cap{font-size:13px;color:var(--ink2);margin-top:10px}
.band{background:var(--sand)}
.two{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}
dl{margin:0}dl div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}dt{color:var(--ink2)}dd{margin:0;font-weight:600;text-align:right}
ol.steps{padding-left:20px}ol.steps li{margin:8px 0}
.note{background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);padding:14px 16px;border-radius:8px;margin:18px 0;font-size:15px}
details{border-top:1px solid var(--line);padding:6px 0}details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;padding:12px 0}details p,details .b{color:var(--ink2);margin:0 0 14px}
.obra{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:10px 0}.obra img{border-radius:10px;aspect-ratio:3/4;object-fit:cover;width:100%}
footer{background:var(--ink);color:#cfd3cf;font-size:13px;padding:32px 20px}footer div{max-width:980px;margin:0 auto}
.sticky{position:fixed;left:0;right:0;bottom:0;padding:10px 14px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);display:none;z-index:5}
.sticky .btn{display:block;text-align:center}
@media(max-width:700px){.sticky{display:block}body{padding-bottom:70px}.btn.alt{margin:10px 0 0}.hero{min-height:82vh}}

.gal img,.obra img,.slide img,#planta img{cursor:zoom-in;transition:transform .35s ease,box-shadow .35s ease}
@media(hover:hover){.gal img:hover,.obra img:hover{transform:scale(1.02);box-shadow:0 8px 24px rgba(0,0,0,.18)}}
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.rv.in{opacity:1;transform:none}
.lb{position:fixed;inset:0;background:rgba(10,12,11,.92);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:50}
.lb.on{opacity:1;pointer-events:auto}
.lb img{max-width:94vw;max-height:84vh;border-radius:8px;transform:scale(.96);transition:transform .3s ease;touch-action:pinch-zoom}
.lb.on img{transform:scale(1)}
.lb .cp{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#e8e8e2;font-size:14px;padding:0 20px}
.lb button{position:absolute;background:rgba(255,255,255,.14);border:0;color:#fff;font-size:26px;width:46px;height:46px;border-radius:50%;cursor:pointer}
.lb .x{top:14px;right:14px}.lb .pv{left:12px;top:50%}.lb .nx{right:12px;top:50%}
.tour{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 14px;margin-top:18px;-webkit-overflow-scrolling:touch}
.slide{flex:0 0 min(78vw,360px);scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.slide img{width:100%;aspect-ratio:4/5;object-fit:cover}
.slide.pl img{object-fit:contain;background:#fff;padding:10px}
.slide p{margin:0;padding:12px 14px;font-size:14px;color:var(--ink2)}.slide b{display:block;color:var(--ink);font-size:15px}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.hero .bg{transform:none!important}.lb,.lb img{transition:none}}

/* v3 impacto */
.hero{min-height:100svh;align-items:flex-end}
.hero .bg{animation:kb 18s ease-out both}@keyframes kb{from{scale:1.14}to{scale:1}}
.hero:before{background:linear-gradient(180deg,rgba(8,20,15,.45) 0,rgba(8,20,15,.15) 30%,rgba(8,20,15,.55) 62%,rgba(6,14,10,.92) 100%)}
.hero .in{padding-bottom:56px}
h1{font-size:clamp(36px,9.2vw,76px);line-height:1.02;font-weight:800;letter-spacing:-.03em;margin-bottom:18px;text-wrap:balance}
.hero p{font-size:clamp(17px,4.6vw,21px);line-height:1.5}
.hero .tag,.hero h1,.hero p,.hero .btn,.hero .facts{animation:up .9s cubic-bezier(.2,.7,.2,1) both}
.hero .tag{animation-delay:.1s}.hero h1{animation-delay:.22s}.hero p{animation-delay:.38s}.hero .btn{animation-delay:.52s}.hero .facts{animation-delay:.66s}
@keyframes up{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
.hero .btn{font-size:18px;padding:18px 32px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.4);animation:up .9s .52s both,pulse 2.6s 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 0 rgba(255,255,255,.55)}60%{box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 0 16px rgba(255,255,255,0)}}
.facts span{background:rgba(255,255,255,.12);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);padding:7px 14px;border-radius:99px}
.stats{background:var(--green);color:#fff;display:grid;grid-template-columns:repeat(3,1fr);text-align:center}
.stats div{padding:26px 8px;border-right:1px solid rgba(255,255,255,.18)}.stats div:last-child{border:0}
.stats b{display:block;font-size:clamp(28px,8vw,52px);line-height:1;font-weight:800;letter-spacing:-.02em}
.stats span{font-size:clamp(11px,3vw,14px);opacity:.85;text-transform:uppercase;letter-spacing:.08em}
h2{font-size:clamp(28px,6.4vw,46px);font-weight:800;letter-spacing:-.025em;line-height:1.08}
h2:after{content:"";display:block;width:56px;height:4px;background:var(--green);border-radius:4px;margin-top:14px}
.card{background:#fff;border:1px solid var(--line);box-shadow:0 8px 28px rgba(31,36,33,.08);transition:transform .3s,box-shadow .3s}
@media(hover:hover){.card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(31,36,33,.14)}}
.band .card{background:#fff}
.gal img{aspect-ratio:4/3;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.tabs button{font-size:17px;padding:16px;border-radius:14px;transition:all .25s}.tabs button.on{background:var(--green);color:#fff}
.rv{transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){.hero .bg{animation:none}.hero .tag,.hero h1,.hero p,.hero .btn,.hero .facts{animation:none}}
.hero .in{padding-top:72px}@media(max-width:700px){h1{font-size:clamp(32px,8.4vw,48px)}.hero p{font-size:16px;margin-bottom:16px}.hero .btn{padding:15px 24px;font-size:17px;display:block;text-align:center}.facts{gap:6px;margin-top:14px}.facts span{font-size:13px;padding:5px 10px}}
.why .card h3{font-size:20px}.why .card{background:#fff;border:1px solid var(--line)}
.vista{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:center}
.vista img{border-radius:16px;width:100%;max-height:640px;object-fit:cover;box-shadow:0 14px 40px rgba(0,0,0,.18)}
.ul{padding-left:20px;color:var(--ink2)}.ul li{margin:6px 0}
.cta-band{background:var(--green);color:#fff;text-align:center;max-width:none}.cta-band h2{color:#fff}.cta-band h2:after{margin:14px auto 0;background:#fff}.cta-band p{max-width:560px;margin:0 auto 22px;opacity:.92}.cta-band .btn{background:#fff;color:var(--ink)}

/* Imobbio logo approved in the portal, 26/10/2026. Visual-only update. */
.brand.imobbio-logo{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1f2421;padding:10px 14px;border-radius:4px;font:750 30px/1 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:-1.8px;text-transform:none;text-shadow:none;box-shadow:none;width:auto;height:auto}.imobbio-symbol{background:#2f5d4b;color:#f4f1ea;display:inline-grid;place-items:center;border-radius:7px;width:29px;height:35px;font:750 28px/1 system-ui;letter-spacing:0}.imobbio-word{white-space:nowrap}.imobbio-dot{color:#2f5d4b;font-size:34px}@media(max-width:640px){.brand.imobbio-logo{font-size:27px}}

/* Transparent brand application, 27/10/2026. Logo only. */
.brand.imobbio-logo{background:transparent;padding:0;border-radius:0;width:200px;height:35px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}.brand.imobbio-logo>img{display:block;width:200px;height:35px;object-fit:contain;object-position:left center;max-width:none}

.portal-back{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#fff;color:#1f2421;font:13px/1.4 system-ui;border-bottom:1px solid #e4e0d6}.portal-back a{display:inline-flex;align-items:center;min-height:28px;color:inherit;text-decoration:none}.portal-back span{font-size:10px;letter-spacing:.1em}.portal-back a:hover{text-decoration:underline}

.inline-1{max-width:none}
.inline-2{max-width:980px;margin:0 auto}
.inline-3{object-fit:contain;background:#fff}
.inline-4{border-radius:12px;background:#fff}
.inline-5{max-width:none}
.inline-6{max-width:980px;margin:0 auto}
.inline-7{border-radius:14px;overflow:hidden;border:1px solid var(--line);margin-top:18px}
.inline-8{width:100%;height:340px;border:0;display:block}
.inline-9{margin:34px 0 4px;font-size:22px}
.inline-10{font-size:16px}
.inline-11{font-size:15px}
.inline-12{font-size:17px}