/* Composição do site público ViewLine Pirituba, consultado em 29/10/2026.
   Os componentes e contratos funcionais permanecem na base existente. */
@font-face{font-family:Montserrat;src:url('../fonts/montserrat-latin-variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--ff:Montserrat,Arial,sans-serif;--ink:#14283f;--ink-deep:#14283f;--body:#3f4650;--canvas-soft:#f1f2f4;--primary:#ed8b27;--on-primary:#14283f;--r-xl:4px;--r-lg:4px;--r-md:4px;--container:1440px}
html{scroll-padding-top:100px}
body{line-height:1.6}
main{padding-top:0}
h1,h2,.hero-title{font-weight:400;line-height:1.2}
h2{font-size:clamp(26px,3vw,48px);text-transform:uppercase}
h3{font-size:clamp(22px,2vw,30px);font-weight:400;line-height:1.35;letter-spacing:0}
section{padding:80px 0}
.container{padding-inline:40px}
.section-header{max-width:1120px;margin-bottom:64px}
.section-label{padding:0;border:0;background:none;font-size:18px;font-weight:700;letter-spacing:0;margin-bottom:60px;color:inherit}
.section-desc{max-width:960px;margin:48px auto 0;font-size:clamp(18px,1.7vw,25px);line-height:1.5;color:var(--body)}
.btn,.btn-header-cta,.btn-mobile-cta{border-radius:50px;font-weight:400}
.btn{min-height:48px}
/* Logo central e navegação vertical, como na página pública. */
.header{position:absolute;inset:0 0 auto;background:transparent;box-shadow:none;color:white;pointer-events:none}
.header.scrolled{box-shadow:none;background:transparent}
.header-inner{position:relative;max-width:none;min-height:88px;padding:0 40px;display:block}
.header a,.header button,.header-programs{pointer-events:auto}
.header .logo{position:absolute;top:40px;left:50%;transform:translateX(-50%);display:block}
.header .logo-svg{width:190px;height:210px;max-width:100%;transform:none}
.nav-desktop{position:absolute;left:40px;top:36px;margin:0;flex-direction:column;gap:0;align-items:flex-start;padding:0 10px}
.nav-desktop .nav-link{font-size:14px;font-weight:400;text-transform:uppercase;color:white;background:none;min-height:33px;display:flex;align-items:center;padding:0;text-shadow:0 1px 4px #000}
.nav-desktop .nav-link:hover,.nav-desktop .nav-link.active{text-decoration:underline;text-decoration-color:var(--primary);text-underline-offset:6px;color:white;background:none}
.header .btn-header-cta{display:none}
.header-programs{position:absolute;right:40px;top:40px;display:flex;flex-direction:column;gap:14px;align-items:center}
.header-programs .hero-program-logo{width:76px;height:76px;object-fit:contain;align-self:auto}
.header-caixa{display:flex;flex-direction:column;align-items:center;background:white;border-radius:6px;padding:3px 8px;color:#14283f;line-height:1}
.header-caixa span{font-size:10px;padding:4px 0 0}
.header-caixa img{width:70px;height:44px;object-fit:cover;object-position:center}
.hamburger{position:fixed;top:20px;left:20px;background:var(--ink);z-index:1002;border-radius:4px}
.hamburger span{background:white}
.mobile-menu{inset:0;z-index:999;padding:84px 24px 24px;background:var(--ink);color:white}
.mobile-menu .nav-link{color:white}
.mobile-menu .nav-link:hover{background:#29415c}
/* Imagem local de fundo: o vídeo pesado não é baixado na abertura. */
.hero{position:relative;isolation:isolate;min-height:100svh;max-width:none;padding:360px 24px 100px;margin:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#14283f}
.public-hero-image{position:absolute;inset:0;z-index:-2}
.public-hero-image img{width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(.92)}
.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.15),transparent 40%,rgba(0,0,0,.2))}
.hero-content{width:100%;max-width:1100px;display:flex;align-items:center;gap:12px;text-align:center;color:white}
.hero-title{max-width:none;font-size:clamp(30px,3vw,54px);line-height:1.2;color:white}
.hero-title strong{font-weight:700}
.public-visit{background:var(--primary);color:var(--ink);font-size:clamp(21px,2vw,30px);text-transform:uppercase;padding:4px 30px;min-height:44px;text-decoration:none}
.hero .hero-ctas{justify-content:center;gap:12px 28px;flex-direction:row}
.public-hero-link{font-size:14px;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:5px;color:white}
.public-hero-caption{position:absolute;bottom:16px;left:24px;font-size:11px;color:white}
/* Seções amplas, títulos leves e textura oficial. */
#section-projeto{background:var(--primary);color:var(--ink);text-align:center}
#section-projeto .container{max-width:1260px}
#section-projeto .section-header{margin-bottom:64px}
.projeto-content{display:block}
.projeto-text{max-width:1000px;margin:auto;gap:24px}
.projeto-text p,.projeto-slogan{font-size:clamp(19px,2.35vw,30px);line-height:1.45;color:var(--ink)}
.projeto-slogan{margin-top:20px}
.projeto-slogan em{font-style:normal}
.trust-bar{padding:24px 0;background:#f1f2f4}
.trust-items{gap:0}
.trust-item{background:none;border-radius:0;border-right:1px solid #c9cdd2;padding:16px 12px;text-align:center}
.trust-icon{display:none}
.trust-item strong{font-size:18px}
.section-areas,.section-apartamentos,.section-localizacao{background:white;color:var(--ink)}
/* Apresentação panorâmica com rolagem nativa e teclado. */
#section-areas>.container{max-width:1440px}
.gallery-grid{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--primary) #eee;padding:0 0 12px;overscroll-behavior-x:contain}
.gallery-item{flex:0 0 100%;scroll-snap-align:center;border-radius:0;min-width:0;background:#14283f}
.gallery-item img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transform:none!important}
.gallery-overlay{position:static;min-height:95px;background:var(--ink);padding:18px 24px;color:white;opacity:1;transform:none}
.gallery-label{font-weight:400;font-size:22px;text-transform:uppercase}
.gallery-desc{opacity:1;font-size:13px}
.gallery-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:20px}
.gallery-controls button{width:48px;height:48px;border:1px solid #c5cbd0;border-radius:50%;background:white;color:var(--ink);font-size:24px}
.gallery-controls button:disabled{opacity:.45;cursor:default}
.gallery-controls p{min-width:160px;text-align:center;font-size:14px}
.gallery-help{font-size:13px;text-align:center;margin-top:12px}
.apto-content{display:block}
.apto-image img{border-radius:0;width:100%;max-height:780px;object-fit:cover}
.apto-specs{max-width:1000px;text-align:center;margin:44px auto 0}
.specs-list{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;list-style:none}
.specs-list li{padding:0}
.planta-section{padding-top:50px}
.planta-image{background:white;border-radius:0}
.planta-image img{max-width:960px}
.tour-section{max-width:1100px;margin:64px auto 0}
.privacy-embed,.privacy-embed-placeholder{border-radius:0}
#section-diferenciais{background:#f1f2f4}
#section-diferenciais>.container{max-width:1360px}
.public-diff-wide{width:100%;height:auto;aspect-ratio:2.48;object-fit:cover}
.diff-row{gap:0;margin:0;align-items:stretch}
.diff-text{padding:clamp(30px,4vw,70px);background-size:cover;background-position:center;justify-content:center;isolation:isolate;position:relative;color:white;text-align:center}
.diff-text::before{content:'';position:absolute;inset:0;z-index:-1;background:#14283fcc}
.diff-text h3{text-transform:uppercase;font-size:clamp(24px,2.4vw,38px)}
.diff-text p{color:white;font-size:17px;line-height:1.6}
.diff-image img{border-radius:0;width:100%;height:100%;object-fit:cover}
#section-localizacao .text-white,#section-localizacao .text-white-70,#section-localizacao .copy-route-note{color:var(--ink)}
.public-map{margin-bottom:40px}
.public-map img{width:100%;height:auto;aspect-ratio:auto}
.public-map figcaption{font-size:12px;margin-top:12px;text-align:center}
.loc-map-private{border:1px solid #d9dde2}
.loc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.loc-card{display:flex;align-items:center;gap:24px;overflow:visible;border-radius:0}
.loc-card img{width:35%;height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;border:8px solid var(--ink)}
.loc-card-info{padding:0;flex:1;min-width:0}
.loc-card-info h3{font-size:18px;font-weight:700}
.loc-card-info a{font-size:13px}
#section-viewco{background:#f1f2f4}
#section-viewco .viewco-text{max-width:1000px}
.viewco-video{max-width:1100px}
.video-thumbnail{border-radius:0}
/* Recursos incorporados ao visual do site atual. */
.section-mcmv{background:#14283f}
#section-mcmv>.container>.section-header h2{color:white}
.simulator-section{max-width:1100px;margin-inline:auto}
.simulator-container,.copy-conditions,.form-wrapper{border-radius:4px}
.copy-conditions{text-align:center;border-top:3px solid var(--primary)}
.step-card{border-radius:0;background:white;border-top:2px solid var(--primary)}
.section-app-worker{background:white}
.section-contato{background:#14283f}
#section-contato h2{color:white}
#section-contato .hero-ctas{justify-content:center}
.footer{background:white;color:var(--ink)}
.footer-programs-title,.footer-brand-role,.footer-legal{color:var(--body)}
.footer-brand-strip{justify-content:center}
.footer-social{color:var(--ink)}
.footer-logo-svg{width:100px}
.footer-program-logo{border:0;background:white;border-radius:0}
.footer-policy-links a,.footer-policy-links button{color:var(--ink)}
.wa-float,.whatsapp-float{background:var(--primary);color:var(--ink)}
:focus-visible{outline:3px solid var(--primary);outline-offset:4px}
@media(min-width:1024px){.header{height:88px}.hero{padding-top:380px}.hero-content{transform:translateY(30px)}}
@media(max-width:1023px){
 .header .logo{top:28px}.header .logo-svg{width:160px;height:180px}
 .header-programs{right:24px;top:28px}.header-programs .hero-program-logo{width:60px;height:60px}
 .header-caixa img{width:56px;height:36px}.header-caixa span{font-size:9px}
 .hero{padding-top:280px;min-height:90svh}.diff-row{grid-template-columns:1fr 1fr}
 .diff-row-reverse .diff-text{order:2}.diff-row-reverse .diff-image{order:1}
 .loc-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
 section{padding:56px 0}.container{padding-inline:20px}
 .section-label{font-size:14px;margin-bottom:32px}.section-header{margin-bottom:36px}.section-desc{margin-top:24px;font-size:17px}
 .header .logo{top:44px}.header .logo-svg{width:124px;height:145px}
 .header-programs{right:16px;top:24px;gap:8px}.header-programs .hero-program-logo{width:46px;height:46px}
 .header-caixa{padding:2px 5px}.header-caixa img{width:44px;height:29px}.header-caixa span{font-size:8px}
 .hamburger{top:24px;left:16px}
 .hero{padding:240px 20px 96px;min-height:92svh}.hero-title{font-size:30px;max-width:350px}
 .hero-content{gap:16px}.hero .hero-ctas{gap:0 20px}.public-visit{font-size:20px}.public-hero-link{font-size:12px}
 .public-hero-image img{object-position:52% center}
 #section-projeto .section-header{margin-bottom:36px}.projeto-text p{font-size:19px}
 .trust-item{padding:12px 8px}.trust-item strong{font-size:16px}.trust-item span{font-size:12px}
 .gallery-grid{gap:16px}.gallery-item img{aspect-ratio:4/3}.gallery-overlay{padding:16px;min-height:120px}
 .gallery-label{font-size:20px}.gallery-desc{font-size:12px}.gallery-controls{gap:12px}.gallery-controls p{min-width:150px}
 .specs-list{display:block}.specs-list li{padding:8px 0}.apto-specs h3{font-size:24px}
 .diff-row{display:flex;flex-direction:column}.diff-row .diff-text{order:1}.diff-row .diff-image{order:0}
 .diff-text{padding:36px 24px}.diff-text p{font-size:16px}.diff-image img{max-height:450px}
 .loc-card{gap:16px}.loc-card img{width:30%;border-width:5px}.loc-card-info h3{font-size:16px}.loc-card-info p{font-size:13px}
 .copy-conditions{padding:24px 16px}.simulator-container{padding:24px 16px}
}
@media(prefers-reduced-motion:reduce){.gallery-grid{scroll-behavior:auto}}
/* Barra compacta após o hero, sem ocultar âncoras ou conteúdo. */
.header.scrolled{position:fixed;height:88px;background:var(--ink)}
.header.scrolled .header-inner{height:88px}
.header.scrolled .logo{top:8px;left:32px;transform:none}
.header.scrolled .logo-svg{width:64px;height:72px}
.header.scrolled .header-programs{display:none}
.header.scrolled .nav-desktop{left:130px;right:24px;top:22px;flex-direction:row;justify-content:flex-end;gap:18px;flex-wrap:wrap}
.header.scrolled .nav-desktop .nav-link{font-size:12px;min-height:40px;line-height:1.3;text-shadow:none}
.projeto-text,.apto-specs{align-items:center}
.gallery-grid{align-items:flex-start}
.gallery-item picture{display:block}
.gallery-controls{visibility:hidden}
body.gallery-ready .gallery-controls{visibility:visible}
@media(max-width:1023px){.header.scrolled .logo{left:50%;transform:translateX(-50%)}.header.scrolled .logo-svg{width:60px}}
@media(min-width:1024px) and (max-width:1200px){.header.scrolled .nav-desktop{gap:12px;left:110px}}

.footer-instagram-handle{color:var(--ink)}
@media(max-width:359px){
 .header .logo{top:36px}.header .logo-svg{width:104px;height:125px}
 .header-programs{right:12px;top:20px}.header-programs .hero-program-logo{width:38px;height:38px}
 .header-caixa img{width:38px;height:26px}.header-caixa span{font-size:7px}
 .hero{padding-top:210px}.hero-title{font-size:24px}.public-visit{font-size:16px;padding:10px 22px}
 .hero .hero-ctas{gap:0 12px}.public-hero-link{font-size:11px}
}
@media(max-width:359px){
 .simulator-form{grid-template-columns:minmax(0,1fr)}
 .sim-field,.form-group{min-width:0}
 .gallery-controls{gap:8px}.gallery-controls p{min-width:0;flex:1}.gallery-controls button{flex:0 0 44px}
 .btn{white-space:normal}
}
@media(max-width:359px){
 h2{font-size:22px;overflow-wrap:anywhere}.diff-text h3{font-size:20px}
 .footer-social{flex-wrap:wrap}.footer-instagram-handle{font-size:12px}
}

/* Logos com áreas equivalentes, respeitando a proporção de cada marca. */
.footer-brand-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;max-width:880px;width:100%;margin-inline:auto}
.footer-program-logo{display:grid;grid-template-rows:24px 112px;align-items:center;justify-items:center;padding:12px;gap:8px;min-width:0;text-align:center}
.footer-program-logo .footer-brand-role{font-size:11px;line-height:1.4}
.footer-program-logo-mcmv img{width:120px;height:auto;max-height:110px;object-fit:contain}
.footer-program-logo-caixa img{width:180px;height:68px;object-fit:cover;object-position:center}
.footer-program-logo-viewco img{width:180px;height:auto;max-height:64px;object-fit:contain}
@media(max-width:600px){
 .footer-brand-strip{grid-template-columns:1fr;gap:12px;max-width:280px}
 .footer-program-logo{grid-template-rows:24px 104px;padding:12px 0;border-bottom:1px solid #d9dde2}
}
/* Preserva a torre inteira na capa horizontal. */
.public-hero-image{background:#183a59}
.public-hero-image img{object-position:center top}
@media(min-width:1024px){
 .public-hero-image img{object-fit:contain;object-position:75% center}
 .public-hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,35,56,.7),transparent 65%);pointer-events:none}
}
.footer-social a{color:var(--ink)}

.loc-card-info{display:block}.loc-card-info p{margin:8px 0}
.planta-image{margin:24px auto}.loc-map-private{margin-bottom:40px}
#section-obra .obra-grid{grid-template-columns:1fr;max-width:900px;margin-inline:auto}

.hero-title,.public-hero-link{text-shadow:0 2px 6px rgba(0,0,0,.85)}
.hero .public-hero-link{background:rgba(20,40,63,.8);border-radius:3px;padding-inline:8px}

/* Marca oficial e leitura do institucional. */
#section-viewco .section-header{max-width:820px;margin-bottom:36px}
#section-viewco .institutional-brand{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px;font-size:clamp(24px,3vw,36px);font-weight:500;line-height:1;color:var(--ink)}
#section-viewco .institutional-brand img{width:clamp(190px,28vw,300px);height:auto;max-width:75%;display:block}
#section-viewco h2{font-size:clamp(24px,2.6vw,36px);font-weight:600;line-height:1.3;letter-spacing:-.02em;text-transform:none}
#section-viewco .viewco-text{max-width:760px;font-size:clamp(17px,1.3vw,18px);line-height:1.75;gap:24px}
#section-viewco .viewco-text p{margin:0;color:var(--ink)}
#section-viewco .viewco-text h3{font-size:clamp(22px,2vw,28px);font-weight:600;line-height:1.35;letter-spacing:-.01em;margin-top:12px}
#section-viewco .viewco-text .btn{font-size:16px;max-width:100%;white-space:normal}
