:root{
--navy:#172343;
--navy2:#25345c;
--paper:#e3e2dc;
--bone:#f4f2ec;
--ink:#172343;
--muted:#5c667b;
--gold:#d6aa45;
--gold2:#f3d98c;
--line:#c7c4b8;
--shadow:0 20px 60px rgba(23,35,67,.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
/* sem isto, qualquer display no CSS anula o atributo hidden */
[hidden]{display:none !important;}
/* atalho para quem navega por teclado pular direto ao conteúdo */
.pular-para{
position:absolute;left:-9999px;top:0;z-index:500;
background:var(--navy);color:var(--gold2);padding:14px 22px;
font-size:.8rem;letter-spacing:.1em;text-decoration:none;
border:1px solid var(--gold);
}
.pular-para:focus{left:16px;top:16px;}
html{scroll-behavior:smooth;}
body{
font-family:'IBM Plex Sans',Arial,sans-serif;color:var(--ink);
background:var(--paper);line-height:1.7;overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:1.15;}
img{max-width:100%;display:block;}
/* grain texture over everything, like the original */
.grain{
position:fixed;inset:0;z-index:99;pointer-events:none;opacity:.5;
background:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}
::-webkit-scrollbar{width:8px;}
::-webkit-scrollbar-track{background:var(--paper);}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:4px;}
::selection{background:var(--gold);color:var(--navy);}
/* ===== PROGRESS BAR ===== */
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2));z-index:200;transition:width .1s;}
/* ===== LABELS / KICKERS ===== */
.kicker{
font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;
color:var(--gold);font-weight:600;margin-bottom:16px;display:block;
}
.chapter-num{
font-family:'Cormorant Garamond',Georgia,serif;font-size:.95rem;color:var(--muted);
letter-spacing:.25em;margin-bottom:8px;display:block;
}
/* ===== NAVBAR ===== */
nav{
position:fixed;top:0;left:0;width:100%;z-index:100;
background:rgba(227,226,220,.92);backdrop-filter:blur(14px);
display:flex;align-items:center;justify-content:space-between;
padding:14px 5%;border-bottom:1px solid var(--line);
transition:padding .3s;
}
nav.scrolled{padding:8px 5%;}
nav .logo-wrap{display:flex;align-items:center;gap:12px;text-decoration:none;}
nav .logo-wrap img{height:44px;width:auto;}
nav .logo-text{color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.15rem;letter-spacing:1px;line-height:1.2;}
nav .logo-text span{color:var(--gold);display:block;font-family:'IBM Plex Sans',sans-serif;font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;}
nav .menu{display:flex;align-items:center;}
nav .menu a{
color:var(--ink);text-decoration:none;margin-left:26px;font-size:.75rem;
letter-spacing:.18em;text-transform:uppercase;font-weight:500;transition:color .3s;position:relative;
}
nav .menu a::after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold);transition:width .3s;}
nav .menu a:hover{color:var(--gold);}
nav .menu a:hover::after{width:100%;}
nav .cta{
background:var(--navy);color:var(--gold2)!important;font-weight:600;padding:11px 24px;
margin-left:26px;text-decoration:none;transition:all .3s;font-size:.72rem;
letter-spacing:.18em;text-transform:uppercase;
}
nav .cta::after{display:none;}
nav .cta:hover{background:var(--navy2);transform:translateY(-2px);box-shadow:0 8px 25px rgba(23,35,67,.25);}
.burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;}
.burger span{width:24px;height:2px;background:var(--navy);transition:.3s;}
@media(max-width:1100px){
nav .menu{display:none;position:absolute;top:100%;left:0;width:100%;background:var(--bone);flex-direction:column;padding:20px 5%;border-bottom:1px solid var(--line);align-items:flex-start;}
nav .menu.open{display:flex;}
nav .menu a{margin:10px 0;}
nav .cta{margin:14px 0 0;}
.burger{display:flex;}
}
/* ===== HERO ===== */
header{
background:linear-gradient(170deg,var(--navy) 0%,var(--navy2) 55%,#101a30 100%);
padding:140px 5% 90px;position:relative;
}
.hero-inner{
max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;
gap:40px;align-items:center;min-height:calc(100vh - 230px);
}
header .page-num{
position:absolute;top:110px;left:5%;font-family:'Cormorant Garamond',serif;
font-size:.9rem;letter-spacing:.3em;color:#8b95ad;
}
header h1{
font-size:clamp(2.6rem,6vw,4.6rem);color:#fff;font-weight:600;
animation:fadeUp 1.1s ease both;
}
header h1 em{color:var(--gold);font-style:italic;}
header .tagline{animation:fadeDown 1s ease both;}
header p.lead{
color:#c3cbdd;font-size:clamp(1rem,1.6vw,1.15rem);max-width:520px;margin:26px 0 38px;
animation:fadeUp 1.3s ease both;
}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;animation:fadeUp 1.5s ease both;}
.btn{
padding:16px 34px;font-weight:600;text-decoration:none;font-size:.75rem;
letter-spacing:.2em;text-transform:uppercase;transition:all .35s;
display:inline-flex;align-items:center;gap:10px;
}
.btn-navy{background:var(--navy);color:var(--gold2);}
.btn-navy:hover{background:var(--navy2);transform:translateY(-3px);box-shadow:0 12px 35px rgba(23,35,67,.3);}
.btn-gold{background:var(--gold);color:var(--navy);}
.btn-gold:hover{background:var(--gold2);transform:translateY(-3px);box-shadow:0 12px 35px rgba(214,170,69,.35);}
.btn-outline{border:1px solid var(--navy);color:var(--navy);background:transparent;}
.btn-outline:hover{background:var(--navy);color:var(--gold2);}
.hero-btns .btn-outline{border-color:rgba(214,170,69,.7);color:var(--gold2);}
.hero-btns .btn-outline:hover{background:rgba(214,170,69,.15);border-color:var(--gold);}
.hero-stats{
display:flex;gap:48px;margin-top:56px;flex-wrap:wrap;
animation:fadeUp 1.7s ease both;
}
.hero-stats .stat b{
display:block;font-size:2.9rem;color:#fff;font-family:'IBM Plex Sans',sans-serif;font-weight:600;
line-height:1.15;letter-spacing:-.01em;
}
.hero-stats .stat b .counter{color:var(--gold2);}
.hero-stats .stat > span{font-size:.8rem;color:#aab4c9;letter-spacing:.2em;text-transform:uppercase;}
.hero-visual{position:relative;animation:fadeUp 1.4s ease both;}
/* quadro na horizontal: a foto do empreendimento é panorâmica e
num quadro vertical perderia toda a perspectiva da fachada */
.hero-visual .frame{
aspect-ratio:4/3;overflow:hidden;box-shadow:var(--shadow);position:relative;
}
.hero-visual .frame img{width:100%;height:100%;object-fit:cover;transition:transform 6s ease;}
.hero-visual:hover .frame img{transform:scale(1.06);}
/* véu na base: a legenda precisa ser legível mesmo sobre o trecho claro da foto */
.hero-visual .frame::after{
content:"";position:absolute;left:0;right:0;bottom:0;height:42%;pointer-events:none;
background:linear-gradient(to top,rgba(16,26,48,.82),rgba(16,26,48,.35) 45%,transparent);
}
.hero-visual .caption{
position:absolute;bottom:22px;left:22px;color:#fff;font-size:.68rem;z-index:2;
letter-spacing:.25em;text-transform:uppercase;text-shadow:0 2px 10px rgba(0,0,0,.6);
}
.hero-visual .seal{
position:absolute;top:-26px;right:-26px;width:96px;height:96px;border-radius:50%;
background:var(--navy);color:var(--gold2);display:flex;flex-direction:column;
align-items:center;justify-content:center;box-shadow:var(--shadow);
border:1px solid var(--gold);
}
.hero-visual .seal b{font-family:'Cormorant Garamond',serif;font-size:1.8rem;line-height:1;}
.hero-visual .seal small{font-size:.5rem;letter-spacing:.3em;text-transform:uppercase;margin-top:4px;}
@media(max-width:900px){
.hero-inner{grid-template-columns:1fr;}
header{padding-top:120px;}
.hero-visual .seal{right:6px;}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(40px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-20px);}to{opacity:1;transform:translateY(0);}}
/* ===== MARQUEE ===== */
.marquee{
background:var(--navy);color:var(--gold2);overflow:hidden;white-space:nowrap;
padding:14px 0;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
}
.marquee-content{display:inline-block;animation:scroll 32s linear infinite;}
.marquee-content span{margin:0 28px;}
.marquee-content span::after{content:" ✦";color:var(--gold);margin-left:28px;}
@keyframes scroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
/* ===== SECTIONS ===== */
section{padding:110px 5%;max-width:1280px;margin:0 auto;}
.section-title h2{font-size:clamp(2rem,4.4vw,3.2rem);color:var(--ink);max-width:720px;}
.section-title h2 em{color:var(--gold);font-style:italic;}
.section-title .rule{width:70px;height:1px;background:var(--gold);margin:22px 0;}
.section-title p{color:var(--muted);max-width:640px;font-size:1.02rem;}
.center{text-align:center;}
.center .section-title h2{margin:0 auto;}
.center .section-title .rule{margin:22px auto;}
.center .section-title p{margin:0 auto;}
.reveal{opacity:0;transform:translateY(50px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:.12s;}
.reveal-delay-2{transition-delay:.24s;}
.reveal-delay-3{transition-delay:.36s;}
/* ===== MANIFESTO ===== */
.manifesto{background:var(--bone);max-width:none;}
.manifesto-inner{max-width:1280px;margin:0 auto;}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;margin-top:54px;}
.card-cap{
background:var(--paper);padding:44px 34px;border:1px solid var(--line);
transition:transform .5s,box-shadow .5s,border-color .5s;position:relative;text-align:left;
}
.card-cap:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:var(--gold);}
.card-cap .cap-label{font-size:.62rem;letter-spacing:.3em;color:var(--muted);text-transform:uppercase;}
.card-cap .cap-num{
font-family:'Cormorant Garamond',serif;font-size:3.2rem;color:var(--gold);
font-weight:700;line-height:1;margin:14px 0 10px;
}
.card-cap h3{font-size:1.55rem;color:var(--ink);margin-bottom:12px;}
.card-cap p{color:var(--muted);font-size:.94rem;}
/* ===== SOBRE ===== */
.sobre-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:70px;align-items:center;}
/* foto menor e centralizada na coluna: fica simétrica e ganha nitidez,
já que o arquivo original tem baixa resolução e era esticado */
.sobre-foto{position:relative;max-width:320px;width:100%;justify-self:center;}
.sobre-foto .frame{aspect-ratio:4/5;overflow:hidden;box-shadow:var(--shadow);position:relative;background:var(--navy);}
.sobre-foto .frame img{
width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform 5s ease;
/* realce editorial: compensa a baixa resolução do arquivo original */
filter:contrast(1.07) saturate(1.06) brightness(1.02);
}
/* granulado fino + vinheta: disfarça a pixelização e dá aspecto de retrato de revista */
.sobre-foto .frame::after{
content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
background:
radial-gradient(120% 90% at 50% 30%,transparent 55%,rgba(23,35,67,.28) 100%),
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.16'/%3E%3C/svg%3E");
mix-blend-mode:overlay;
}
.sobre-foto:hover .frame img{transform:scale(1.05);}
/* moldura dourada simétrica: mesmo recuo nos quatro lados */
.sobre-foto::after{
content:"";position:absolute;inset:-16px;
border:1px solid var(--gold);z-index:-1;
}
.sobre-content h3{font-size:clamp(1.7rem,3vw,2.4rem);color:var(--ink);margin-bottom:22px;}
.sobre-content h3 em{color:var(--gold);font-style:italic;}
.sobre-content p{color:var(--muted);margin-bottom:18px;font-size:1rem;}
.sobre-lista{list-style:none;margin-top:28px;border-top:1px solid var(--line);}
.sobre-lista li{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.sobre-lista li b{color:var(--ink);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;}
.sobre-lista li span{color:var(--muted);font-size:.95rem;}
@media(max-width:900px){.sobre-grid{grid-template-columns:1fr;gap:50px;}}
/* ===== CURADORIA ===== */
.curadoria{background:var(--navy);max-width:none;color:var(--bone);}
.curadoria-inner{max-width:1280px;margin:0 auto;}
.curadoria .section-title h2{color:var(--bone);}
.curadoria .section-title p{color:#aeb6c8;}
.grid-empre{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;margin-top:48px;}
.card-empre{
position:relative;overflow:hidden;aspect-ratio:4/3;cursor:pointer;
border:1px solid rgba(214,170,69,.25);background:var(--navy2);
}
.card-empre img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease,filter .6s;}
.card-empre:hover img{transform:scale(1.08);filter:brightness(.65);}
.card-empre .overlay{
position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
padding:26px;background:linear-gradient(180deg,transparent 30%,rgba(23,35,67,.9));
}
.card-empre .num{font-family:'Cormorant Garamond',serif;font-size:.85rem;letter-spacing:.3em;color:var(--gold2);}
.card-empre .tag{
display:inline-block;font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;
color:var(--gold);margin:6px 0 4px;
}
.card-empre h4{color:#fff;font-size:1.6rem;}
.card-empre p{color:#c4cbdb;font-size:.86rem;max-height:0;opacity:0;overflow:hidden;transition:all .5s;}
.card-empre:hover p{max-height:120px;opacity:1;margin-top:8px;}
/* ===== PORTFÓLIO ===== */
.portfolio-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.link-gold{
color:var(--navy);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
font-weight:600;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:4px;
transition:color .3s;white-space:nowrap;
}
.link-gold:hover{color:var(--gold);}
.search-bar{
display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:36px;
background:var(--bone);border:1px solid var(--line);padding:18px 22px;
}
.search-bar .toggle{display:flex;border:1px solid var(--line);}
.search-bar .toggle button{
background:transparent;border:none;padding:10px 22px;font-family:inherit;font-size:.72rem;
letter-spacing:.18em;text-transform:uppercase;cursor:pointer;color:var(--muted);transition:all .3s;
}
.search-bar .toggle button.active{background:var(--navy);color:var(--gold2);}
.search-bar .loc{flex:1;min-width:200px;color:var(--muted);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;}
.grupo-label{
font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
font-weight:600;margin:54px 0 6px;
}
.grupo-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px;}
.grupo-head h3{font-size:1.9rem;color:var(--ink);}
.grid-imoveis{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px;}
.card-imovel{
background:var(--bone);border:1px solid var(--line);overflow:hidden;
transition:transform .5s,box-shadow .5s;cursor:pointer;
}
.card-imovel:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.card-imovel .foto{aspect-ratio:16/10;overflow:hidden;position:relative;}
.card-imovel .foto img{width:100%;height:100%;object-fit:cover;transition:transform 1s;}
.card-imovel:hover .foto img{transform:scale(1.07);}
.card-imovel .badge{
position:absolute;top:14px;left:14px;background:var(--navy);color:var(--gold2);
font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;padding:6px 14px;
}
.card-imovel .body{padding:24px;}
.card-imovel .preco{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:700;color:var(--ink);}
.card-imovel h4{font-family:'IBM Plex Sans',sans-serif;font-weight:600;font-size:1rem;color:var(--ink);margin:4px 0 8px;}
.card-imovel .specs{color:var(--muted);font-size:.84rem;}
.card-imovel .quick{
display:inline-block;margin-top:16px;font-size:.66rem;letter-spacing:.22em;
text-transform:uppercase;color:var(--gold);font-weight:600;border-bottom:1px solid var(--gold);padding-bottom:3px;
}
/* ===== PROCESSO ===== */
.processo{background:linear-gradient(170deg,var(--navy) 0%,var(--navy2) 55%,#101a30 100%);max-width:none;}
.processo-inner{max-width:1280px;margin:0 auto;}
.processo .section-title h2{color:#fff;}
.processo .section-title p{color:#c3cbdd;}
.processo .chapter-num{color:#8b95ad;}
.timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:50px;}
.step{
text-align:left;padding:38px 28px;background:rgba(255,255,255,.04);border:1px solid rgba(214,170,69,.25);
position:relative;transition:transform .5s,border-color .5s,background .5s;
}
.step:hover{transform:translateY(-6px);border-color:var(--gold);background:rgba(255,255,255,.07);}
.step .num{
font-family:'Cormorant Garamond',serif;font-size:2.6rem;color:var(--gold2);
font-weight:700;line-height:1;margin-bottom:16px;
}
.step h4{color:#fff;margin-bottom:10px;font-size:1.35rem;}
.step p{color:#aeb6c8;font-size:.9rem;}
/* ===== DEPOIMENTOS ===== */
.grid-depo{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px;margin-top:48px;}
.card-depo{
background:var(--bone);border:1px solid var(--line);padding:36px 30px;
transition:all .5s;text-align:left;position:relative;
}
.card-depo::before{
content:"“";font-family:'Cormorant Garamond',serif;font-size:4rem;color:var(--gold);
line-height:1;position:absolute;top:18px;left:24px;opacity:.35;
}
.card-depo:hover{border-color:var(--gold);transform:translateY(-4px);box-shadow:var(--shadow);}
.card-depo .quote{color:var(--ink);font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.15rem;line-height:1.6;margin-top:24px;}
.card-depo .autor{margin-top:20px;color:var(--muted);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;}
.card-depo .stars{color:var(--gold);letter-spacing:3px;margin-top:6px;}
/* ===== CONTATO ===== */
.contato-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:start;margin-top:50px;text-align:left;}
@media(max-width:900px){.contato-grid{grid-template-columns:1fr;}}
.contato-item{display:flex;align-items:flex-start;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);}
.contato-item .icone{
width:46px;height:46px;border-radius:50%;background:var(--navy);color:var(--gold2);
display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;
transition:transform .3s;
}
.contato-item:hover .icone{transform:scale(1.1);}
.contato-item a{color:var(--ink);text-decoration:none;font-weight:600;font-size:1rem;}
.contato-item a:hover{color:var(--gold);}
.contato-item b{color:var(--ink);font-weight:600;font-size:1rem;}
.contato-item small{display:block;color:var(--muted);font-weight:400;font-size:.8rem;margin-top:2px;}
form{
display:flex;flex-direction:column;gap:16px;background:var(--bone);padding:42px;
border:1px solid var(--line);box-shadow:var(--shadow);
}
form h3{color:var(--ink);font-size:1.7rem;}
form .sub{color:var(--muted);font-size:.88rem;margin-bottom:6px;}
form label{
font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);
font-weight:600;margin-bottom:-10px;
}
form input,form select,form textarea{
padding:14px 16px;border:1px solid var(--line);font-size:.95rem;
background:var(--paper);font-family:inherit;transition:border .3s;color:var(--ink);
}
form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(214,170,69,.18);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:560px){.form-row{grid-template-columns:1fr;}}
form button{
background:var(--navy);color:var(--gold2);border:none;padding:18px;
font-weight:600;font-size:.75rem;cursor:pointer;transition:all .4s;
letter-spacing:.22em;text-transform:uppercase;font-family:inherit;
}
form button:hover{background:var(--navy2);transform:translateY(-2px);box-shadow:0 10px 30px rgba(23,35,67,.3);}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden;}
/* ===== MODAL PRÉVIA ===== */
.modal{
position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;
background:rgba(23,35,67,.85);backdrop-filter:blur(6px);padding:5%;
}
.modal.open{display:flex;}
.modal-box{
background:var(--bone);max-width:760px;width:100%;max-height:90vh;overflow:auto;
position:relative;box-shadow:0 40px 100px rgba(0,0,0,.5);
}
.modal-box img{width:100%;aspect-ratio:16/9;object-fit:cover;}
.modal-box .body{padding:32px;}
.modal-box .preco{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:700;color:var(--ink);}
.modal-box h4{font-size:1.3rem;color:var(--ink);margin:4px 0 10px;font-family:'IBM Plex Sans',sans-serif;font-weight:600;}
.modal-box .specs{color:var(--muted);margin-bottom:22px;}
.modal-close{
position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;
background:var(--navy);color:var(--gold2);border:none;font-size:1.1rem;cursor:pointer;z-index:2;
}
/* ===== WHATSAPP FLOATING ===== */
.whatsapp-float{
position:fixed;bottom:24px;right:24px;width:58px;height:58px;
background:#25d366;border-radius:50%;display:flex;align-items:center;justify-content:center;
z-index:150;box-shadow:0 8px 30px rgba(37,211,102,.4);animation:pulse 2.4s infinite;
transition:transform .3s;text-decoration:none;
}
.whatsapp-float svg{width:30px;height:30px;fill:#fff;}
.whatsapp-float:hover{transform:scale(1.1);}
@keyframes pulse{0%,100%{box-shadow:0 8px 30px rgba(37,211,102,.4);}50%{box-shadow:0 8px 30px rgba(37,211,102,.7),0 0 0 12px rgba(37,211,102,.08);}}
/* ===== FOOTER ===== */
footer{background:var(--navy);color:#aeb6c8;padding:70px 5% 50px;position:relative;}
footer::before{
content:"";position:absolute;top:0;left:0;width:100%;height:1px;
background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.footer-inner{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:34px;}
footer .assinatura{display:flex;flex-direction:column;align-items:center;}
footer .assinatura img{height:120px;width:auto;margin-bottom:18px;}
footer .assinatura .nome{font-family:'Cormorant Garamond',serif;font-size:2rem;color:#fff;}
footer .assinatura .nome span{color:var(--gold);}
footer p{font-size:.85rem;}
footer .social-label{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px;}
footer .social{display:flex;gap:26px;flex-wrap:wrap;justify-content:center;}
footer .social a{
color:#b6bac2;text-decoration:none;font-size:1.05rem;letter-spacing:.08em;transition:color .3s;
}
footer .social a:hover{color:var(--gold);}
footer .base{
max-width:1280px;margin:44px auto 0;padding-top:26px;border-top:1px solid rgba(214,170,69,.2);
display:flex;justify-content:center;gap:34px;flex-wrap:wrap;
font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;
}
footer .base .creci{color:var(--gold);font-weight:600;}
/* ===== PRELOADER ===== */
#preloader{
position:fixed;inset:0;z-index:500;background:var(--navy);
display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
transition:opacity .9s ease,visibility .9s;
}
#preloader.done{opacity:0;visibility:hidden;}
#preloader .pre-mono{
width:88px;height:88px;border-radius:50%;border:1px solid var(--gold);
display:flex;align-items:center;justify-content:center;
font-family:'Cormorant Garamond',serif;font-size:2.7rem;color:var(--gold2);
animation:preScale 1.4s cubic-bezier(.16,1,.3,1) both;
}
#preloader .pre-name{
color:#c3cbdd;font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;
animation:preFade 1.6s .3s ease both;
}
#preloader .pre-bar{width:160px;height:1px;background:rgba(214,170,69,.25);overflow:hidden;}
#preloader .pre-bar span{display:block;height:100%;width:40%;background:var(--gold);animation:preLoad 1.1s ease-in-out infinite;}
@keyframes preScale{from{transform:scale(.55);opacity:0;}to{transform:scale(1);opacity:1;}}
@keyframes preFade{from{opacity:0;letter-spacing:.7em;}to{opacity:1;letter-spacing:.4em;}}
@keyframes preLoad{0%{transform:translateX(-160%);}100%{transform:translateX(420%);}}
/* ===== CURSOR PERSONALIZADO ===== */
.cursor-dot{
position:fixed;top:0;left:0;width:6px;height:6px;border-radius:50%;background:var(--gold);
z-index:600;pointer-events:none;transform:translate(-50%,-50%);
}
.cursor-ring{
position:fixed;top:0;left:0;width:34px;height:34px;border-radius:50%;
border:1px solid rgba(214,170,69,.55);z-index:600;pointer-events:none;
transform:translate(-50%,-50%);
transition:width .25s,height .25s,border-color .25s,background .25s;
}
.cursor-ring.hot{width:58px;height:58px;background:rgba(214,170,69,.08);border-color:var(--gold);}
@media (hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none;}}
/* ===== HERO EXTRAS ===== */
.hero-visual .frame img{animation:kenburns 24s ease-in-out infinite alternate;}
@keyframes kenburns{from{transform:scale(1);}to{transform:scale(1.09);}}
.hero-visual .seal{animation:sealFloat 5.5s ease-in-out infinite;}
@keyframes sealFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
.particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.particle{
position:absolute;bottom:-12px;border-radius:50%;background:var(--gold2);
opacity:0;animation:rise linear infinite;box-shadow:0 0 8px rgba(243,217,140,.6);
}
@keyframes rise{
0%{transform:translateY(0) translateX(0);opacity:0;}
10%{opacity:.65;}
90%{opacity:.12;}
100%{transform:translateY(-105vh) translateX(50px);opacity:0;}
}
.scroll-hint{
position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
color:var(--gold2);font-size:.6rem;letter-spacing:.35em;text-transform:uppercase;
display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2;
}
.scroll-hint::after{
content:"";width:1px;height:40px;background:linear-gradient(var(--gold),transparent);
animation:hintPulse 2s ease-in-out infinite;
}
@keyframes hintPulse{0%,100%{opacity:.3;transform:scaleY(.55);transform-origin:top;}50%{opacity:1;transform:scaleY(1);transform-origin:top;}}
/* h1 revelado linha a linha */
header h1 .line{display:block;overflow:hidden;}
header h1 .line > span{display:inline-block;transform:translateY(115%);animation:lineUp 1.15s cubic-bezier(.16,1,.3,1) forwards;}
header h1 .line:nth-child(2) > span{animation-delay:.16s;}
header h1 .line:nth-child(3) > span{animation-delay:.32s;}
@keyframes lineUp{to{transform:translateY(0);}}
/* brilho varrendo os botões */
.btn{position:relative;overflow:hidden;}
.btn::before{
content:"";position:absolute;top:0;left:-90%;width:55%;height:100%;
background:linear-gradient(105deg,transparent,rgba(255,255,255,.4),transparent);
transform:skewX(-20deg);transition:left .65s ease;pointer-events:none;
}
.btn:hover::before{left:145%;}
/* régua das seções desenhando ao aparecer */
.section-title .rule{transform:scaleX(0);transform-origin:left center;transition:transform 1.1s .25s cubic-bezier(.16,1,.3,1);}
.center .section-title .rule{transform-origin:center;}
.reveal.visible .rule{transform:scaleX(1);}
/* marquee pausa no hover */
.marquee:hover .marquee-content{animation-play-state:paused;}
/* ===== BOTÃO DE SOM ===== */
.sound-toggle{
position:fixed;bottom:104px;left:24px;z-index:150;display:flex;align-items:center;gap:10px;
background:rgba(23,35,67,.88);backdrop-filter:blur(8px);color:var(--gold2);
border:1px solid rgba(214,170,69,.4);padding:11px 16px;font-family:'IBM Plex Sans',sans-serif;
font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:all .3s;
}
.sound-toggle:hover{border-color:var(--gold);transform:translateY(-2px);}
.sound-toggle .eq{display:flex;align-items:flex-end;gap:2px;height:12px;}
.sound-toggle .eq i{width:2px;background:var(--gold);height:4px;transition:height .2s;}
.sound-toggle.on .eq i{animation:eq .9s ease-in-out infinite;}
.sound-toggle.on .eq i:nth-child(2){animation-delay:.15s;}
.sound-toggle.on .eq i:nth-child(3){animation-delay:.3s;}
.sound-toggle.on .eq i:nth-child(4){animation-delay:.45s;}
@keyframes eq{0%,100%{height:3px;}50%{height:12px;}}
/* ===== VOLTAR AO TOPO ===== */
.back-top{
position:fixed;bottom:96px;right:24px;z-index:150;width:46px;height:46px;border-radius:50%;
background:var(--navy);color:var(--gold2);border:1px solid rgba(214,170,69,.5);
display:flex;align-items:center;justify-content:center;cursor:pointer;
opacity:0;visibility:hidden;transform:translateY(14px);transition:all .4s;font-size:1rem;
}
.back-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-top:hover{background:var(--navy2);border-color:var(--gold);}
/* ===== UPGRADE 100x ===== */
/* brilho deslizante nos destaques dourados */
header h1 em, .section-title h2 em, .sobre-content h3 em{
background:linear-gradient(100deg,var(--gold) 25%,var(--gold2) 42%,#fff3cf 50%,var(--gold2) 58%,var(--gold) 75%);
background-size:220% 100%;-webkit-background-clip:text;background-clip:text;
-webkit-text-fill-color:transparent;animation:shimmer 5.5s linear infinite;
}
@keyframes shimmer{0%{background-position:130% 0;}100%{background-position:-130% 0;}}
/* títulos revelados palavra a palavra */
.split-word{display:inline-block;overflow:hidden;vertical-align:bottom;}
.split-word > span{display:inline-block;transform:translateY(112%);transition:transform .85s cubic-bezier(.16,1,.3,1);}
.reveal.visible .split-word > span{transform:translateY(0);}
/* cortina revelando as imagens */
.curtain{position:relative;}
.curtain::after{
content:"";position:absolute;inset:0;z-index:4;
background:linear-gradient(120deg,var(--navy) 60%,var(--navy2) 100%);
transform:scaleX(1);transform-origin:right;
transition:transform 1.05s .1s cubic-bezier(.76,0,.24,1);
}
.curtain.revealed::after{transform:scaleX(0);}
/* brilho que segue o mouse nos cards */
.card-imovel,.card-cap,.step{position:relative;}
.glare{
position:absolute;inset:0;pointer-events:none;z-index:5;opacity:0;transition:opacity .35s;
background:radial-gradient(340px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.16),transparent 65%);
}
.tilt-active .glare{opacity:1;}
/* ondulação no clique */
form button{position:relative;overflow:hidden;}
.ripple{
position:absolute;border-radius:50%;background:rgba(255,255,255,.45);
transform:scale(0);animation:rip .65s ease-out forwards;pointer-events:none;
}
@keyframes rip{to{transform:scale(3.2);opacity:0;}}
/* item ativo do menu (scrollspy) */
nav .menu a.active{color:var(--gold);}
nav .menu a.active::after{width:100%;}
/* depoimento em destaque rotativo */
.card-depo{transition:all .6s;}
.card-depo.spotlight{border-color:var(--gold);transform:translateY(-6px);box-shadow:0 22px 55px rgba(214,170,69,.22);}
/* cortina de navegação do menu */
.wipe{
position:fixed;inset:0;z-index:450;pointer-events:none;
background:linear-gradient(180deg,var(--navy),var(--navy2));
transform:scaleY(0);transform-origin:bottom;
transition:transform .55s cubic-bezier(.76,0,.24,1);
}
.wipe.cover{transform:scaleY(1);}
.wipe::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--gold);opacity:.75;}
/* ===== UPGRADE 1000x ===== */
/* segunda fileira do marquee (condomínios, sentido inverso) */
.marquee-rev{border-top:1px solid rgba(214,170,69,.18);}
.marquee-rev .marquee-content{animation:scrollRev 44s linear infinite;color:#8b95ad;font-size:.66rem;}
@keyframes scrollRev{0%{transform:translateX(-50%);}100%{transform:translateX(0);}}
/* brilho cônico girando atrás da foto do hero */
.hero-visual::before{
content:"";position:absolute;inset:-34px;z-index:-1;
background:conic-gradient(from 0deg,transparent 0%,rgba(214,170,69,.4) 12%,transparent 30%,transparent 55%,rgba(243,217,140,.28) 70%,transparent 85%);
filter:blur(24px);animation:spinGlow 14s linear infinite;
}
@keyframes spinGlow{to{transform:rotate(360deg);}}
/* categorias de imóveis */
.grid-cat{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:16px;margin:44px 0 18px;}
.cat{
background:var(--bone);border:1px solid var(--line);padding:26px 14px;text-align:center;
text-decoration:none;position:relative;overflow:hidden;transition:transform .4s,border-color .4s,box-shadow .4s;
}
.cat:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:var(--shadow);}
.cat .cat-ico{font-size:1.7rem;display:block;margin-bottom:10px;transition:transform .4s;}
.cat:hover .cat-ico{transform:translateY(-4px) scale(1.15);}
.cat b{color:var(--ink);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;display:block;}
.cat small{display:block;color:var(--muted);font-size:.64rem;margin-top:4px;letter-spacing:.06em;}
.cat::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .45s;transform-origin:left;}
.cat:hover::after{transform:scaleX(1);}
/* busca por estilo de vida */
.grid-vida{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:900px){.grid-vida{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.grid-vida{grid-template-columns:1fr;}}
.vida{
position:relative;overflow:hidden;aspect-ratio:16/9;text-decoration:none;display:block;
border:1px solid var(--line);background:var(--navy);
transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s,border-color .4s;
}
.vida:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(23,35,67,.24);border-color:var(--gold);}
.vida img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s ease,filter .6s;}
.vida:hover img{transform:scale(1.09);filter:brightness(.62);}
.vida .v-tapa{
position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
padding:18px;background:linear-gradient(180deg,transparent 35%,rgba(23,35,67,.9));
}
.vida .v-ico{position:absolute;top:14px;left:16px;font-size:1.2rem;}
.vida b{color:#fff;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.3rem;font-weight:600;line-height:1.15;}
.vida small{
color:var(--gold2);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
font-weight:600;margin-top:5px;opacity:0;transform:translateY(6px);transition:all .4s;
}
.vida:hover small{opacity:1;transform:translateY(0);}
/* fases de lançamento */
.fases{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0 12px;}
.fase{
border:1px solid var(--line);color:var(--muted);background:transparent;text-decoration:none;
font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
padding:10px 18px;border-radius:30px;transition:all .35s;
}
.fase:hover{background:var(--navy);color:var(--gold2);border-color:var(--navy);transform:translateY(-2px);}
/* badges e endereço nos cards de imóvel */
.card-imovel .status{
position:absolute;top:14px;right:14px;background:rgba(244,242,236,.94);color:var(--ink);
font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;padding:6px 12px;font-weight:600;
}
.card-imovel .endereco{color:var(--muted);font-size:.78rem;margin-top:4px;}
.card-imovel .condoTaxa{color:var(--muted);font-size:.72rem;letter-spacing:.06em;}
/* busca por condomínio */
.search-bar .condo-box{flex:1;min-width:230px;display:flex;gap:10px;}
.search-bar input[list]{
flex:1;padding:12px 16px;border:1px solid var(--line);background:var(--paper);
font-family:inherit;font-size:.88rem;color:var(--ink);min-width:0;
}
.search-bar input[list]:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(214,170,69,.15);}
.search-bar .go{
background:var(--navy);color:var(--gold2);border:none;padding:12px 20px;cursor:pointer;
font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;font-family:inherit;font-weight:600;transition:all .3s;
}
.search-bar .go:hover{background:var(--navy2);}
/* modal com entrada coreografada */
.modal.open{animation:modalFade .4s ease both;}
.modal.open .modal-box{animation:modalIn .55s cubic-bezier(.16,1,.3,1) both;}
@keyframes modalFade{from{opacity:0;}to{opacity:1;}}
@keyframes modalIn{from{transform:translateY(46px) scale(.94);opacity:0;}to{transform:translateY(0) scale(1);opacity:1;}}
.modal-actions{display:flex;gap:12px;flex-wrap:wrap;}
/* rastro dourado do cursor */
.trail{
position:fixed;width:5px;height:5px;border-radius:50%;background:var(--gold2);
pointer-events:none;z-index:590;opacity:.8;transform:translate(-50%,-50%);
animation:trailFade .7s ease-out forwards;box-shadow:0 0 6px rgba(243,217,140,.8);
}
@keyframes trailFade{to{opacity:0;transform:translate(-50%,-50%) scale(.2) translateY(12px);}}
/* lanterna dourada que segue o mouse nas seções escuras */
.lantern{
position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .5s;
background:radial-gradient(430px circle at var(--lx,50%) var(--ly,50%),rgba(214,170,69,.13),transparent 70%);
}
.curadoria:hover .lantern,.processo:hover .lantern{opacity:1;}
/* variações de direção do reveal */
.reveal-left{transform:translateX(-60px);}
.reveal-left.visible{transform:translateX(0);}
.reveal-right{transform:translateX(60px);}
.reveal-right.visible{transform:translateX(0);}
/* cursor de digitação do kicker */
.type-caret::after{content:"|";color:var(--gold);animation:caretBlink 1s step-end infinite;margin-left:2px;}
.type-caret.done::after{opacity:0;animation:none;}
@keyframes caretBlink{50%{opacity:0;}}
/* ===== POLIMENTO DE UI ===== */
/* preços legíveis e modernos (numerais alinhados) */
.card-imovel .preco,.modal-box .preco{
font-family:'IBM Plex Sans',sans-serif;font-weight:600;font-size:1.45rem;
letter-spacing:-.01em;color:var(--ink);
}
.modal-box .preco{font-size:1.7rem;}
/* seta animada no link de prévia */
.card-imovel .quick::after{content:"→";display:inline-block;margin-left:8px;transition:transform .3s;}
.card-imovel:hover .quick::after{transform:translateX(6px);}
/* brilho varrendo as fotos dos cards */
.card-imovel .foto::before{
content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;z-index:3;
background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),transparent);
transform:skewX(-18deg);transition:left .8s ease;pointer-events:none;
}
.card-imovel:hover .foto::before{left:150%;}
.card-empre::after{
content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;z-index:2;
background:linear-gradient(105deg,transparent,rgba(255,255,255,.18),transparent);
transform:skewX(-18deg);transition:left .85s ease;pointer-events:none;
}
.card-empre:hover::after{left:150%;}
/* numerais-marca d'água gigantes por capítulo */
section{position:relative;}
.watermark{
position:absolute;top:44px;right:4%;z-index:0;pointer-events:none;user-select:none;
font-family:'Cormorant Garamond',serif;font-weight:700;line-height:1;
font-size:clamp(6rem,14vw,11rem);color:rgba(23,35,67,.05);
}
.curadoria .watermark,.processo .watermark{color:rgba(244,242,236,.05);}
/* aurora suave no fundo do hero */
header .aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
header .aurora i{position:absolute;width:46vw;height:46vw;border-radius:50%;filter:blur(90px);opacity:.35;}
header .aurora i:nth-child(1){background:radial-gradient(circle,#2c3e6b,transparent 60%);top:-10%;left:-8%;animation:aur1 18s ease-in-out infinite alternate;}
header .aurora i:nth-child(2){background:radial-gradient(circle,rgba(214,170,69,.5),transparent 60%);bottom:-15%;right:-5%;animation:aur2 22s ease-in-out infinite alternate;}
@keyframes aur1{to{transform:translate(8%,10%) scale(1.15);}}
@keyframes aur2{to{transform:translate(-10%,-8%) scale(1.2);}}
/* separadores dourados entre as estatísticas do hero */
.hero-stats .stat{position:relative;padding-right:44px;}
.hero-stats .stat:not(:last-child)::after{
content:"";position:absolute;right:0;top:8%;height:84%;width:1px;
background:linear-gradient(transparent,rgba(214,170,69,.5),transparent);
}
/* anel de progresso no botão voltar ao topo */
.back-top::before{
content:"";position:absolute;inset:-4px;border-radius:50%;
background:conic-gradient(var(--gold) calc(var(--p,0)*1%),rgba(214,170,69,.12) 0);
-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));
mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));
}
/* etiqueta do botão de WhatsApp */
.whatsapp-float::after{
content:"Fale com a Dany";position:absolute;right:112%;top:50%;
transform:translateY(-50%) translateX(8px);background:var(--navy);color:var(--gold2);
font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
padding:9px 14px;white-space:nowrap;opacity:0;pointer-events:none;transition:all .3s;
}
.whatsapp-float:hover::after{opacity:1;transform:translateY(-50%) translateX(0);}
/* logo do rodapé emoldurada como placa de assinatura */
footer .assinatura img{
border:1px solid rgba(214,170,69,.4);padding:10px;
box-shadow:0 14px 45px rgba(0,0,0,.4),inset 0 0 0 1px rgba(214,170,69,.12);
transition:transform .5s,border-color .5s;
}
footer .assinatura img:hover{transform:scale(1.04);border-color:var(--gold);}
/* navbar refinada */
nav .logo-text{font-size:1.05rem;white-space:nowrap;}
nav .logo-text span{font-size:.56rem;}
@media(max-width:1200px){
nav .logo-text span{display:none;}
nav .menu a{margin-left:20px;font-size:.7rem;}
nav .cta{margin-left:20px;padding:10px 18px;}
}
nav.scrolled{box-shadow:0 6px 30px rgba(23,35,67,.12);}
nav .menu.open{animation:menuDown .35s ease both;}
@keyframes menuDown{from{opacity:0;transform:translateY(-12px);}to{opacity:1;transform:translateY(0);}}
/* foco visível para navegação por teclado */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
outline:2px solid var(--gold);outline-offset:3px;
}
/* ===== PADRÃO LUXO + SIMETRIA ===== */
/* respiro maior e tipografia mais leve e espaçada */
section{padding:120px 5%;}
.section-title h2{font-weight:500;letter-spacing:.01em;}
.section-title p{line-height:1.85;}
/* ornamento ✦ sobre a régua dourada */
.section-title .rule{position:relative;overflow:visible;}
.section-title .rule::before{
content:"✦";position:absolute;top:-16px;left:50%;transform:translateX(-50%);
color:var(--gold);font-size:.6rem;
}
/* grades fixas e simétricas em desktop */
@media(min-width:1001px){
.grid-empre{grid-template-columns:repeat(3,1fr);}
.grid-imoveis{grid-template-columns:repeat(3,1fr);}
.grid-cat{grid-template-columns:repeat(4,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-depo{grid-template-columns:repeat(3,1fr);}
.timeline{grid-template-columns:repeat(4,1fr);}
}
@media(min-width:641px) and (max-width:1000px){
.grid-cat{grid-template-columns:repeat(2,1fr);}
.grid-empre,.grid-imoveis{grid-template-columns:repeat(2,1fr);}
}
/* selo "a partir de" nos imóveis de luxo */
.card-imovel .apartir{
font-size:.58rem;letter-spacing:.22em;color:var(--muted);
text-transform:uppercase;font-weight:600;margin-bottom:2px;
}
/* faixa concierge */
.cta-band{
background:linear-gradient(170deg,var(--navy) 0%,var(--navy2) 60%,#101a30 100%);
max-width:none;padding:110px 5%;text-align:center;position:relative;overflow:hidden;
border-top:1px solid rgba(214,170,69,.25);border-bottom:1px solid rgba(214,170,69,.25);
}
.cta-band::before{
content:"✦";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
font-size:clamp(14rem,30vw,24rem);color:rgba(214,170,69,.04);pointer-events:none;line-height:1;
}
.cta-band .kicker{color:var(--gold);}
.cta-band h2{
font-size:clamp(1.9rem,4vw,3rem);color:#fff;font-weight:500;
max-width:760px;margin:0 auto 36px;
}
.cta-band h2 em{color:var(--gold);font-style:italic;}
.cta-band .btn{margin:0 auto;}
/* refinamento mobile */
@media(max-width:640px){
section{padding:80px 6%;}
.hero-stats{gap:24px;}
.hero-stats .stat{padding-right:24px;}
.hero-stats .stat b{font-size:2.1rem;}
.search-bar{flex-direction:column;align-items:stretch;}
.search-bar .condo-box{min-width:0;}
.grid-cat{grid-template-columns:repeat(2,1fr);}
.whatsapp-float::after{display:none;}
.sound-toggle{left:14px;padding:9px 12px;}
nav .logo-text span{display:none;}
.watermark{font-size:5rem;top:24px;}
}
/* ===== DANY IA — ASSISTENTE VIRTUAL ===== */
.chat-launcher{
position:fixed;bottom:24px;left:24px;z-index:205;width:62px;height:62px;border-radius:50%;
border:2px solid var(--gold);padding:0;cursor:pointer;background:var(--navy);
box-shadow:0 10px 35px rgba(23,35,67,.45);transition:transform .3s,box-shadow .3s;
animation:launcherIn .8s 2.2s cubic-bezier(.16,1,.3,1) both;
}
.chat-launcher img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:50%;}
.chat-launcher:hover{transform:scale(1.08);box-shadow:0 14px 45px rgba(214,170,69,.4);}
.chat-launcher .dot-online{
position:absolute;bottom:2px;right:2px;width:14px;height:14px;border-radius:50%;
background:#2ecc71;border:2px solid var(--paper);animation:pulse 2s infinite;
}
@keyframes launcherIn{from{opacity:0;transform:translateY(30px) scale(.6);}to{opacity:1;transform:translateY(0) scale(1);}}
.chat-greet{
position:fixed;bottom:34px;left:96px;z-index:210;max-width:290px;
background:var(--bone);border:1px solid var(--line);box-shadow:0 20px 60px rgba(23,35,67,.3);
padding:16px;display:flex;gap:12px;align-items:flex-start;
opacity:0;visibility:hidden;transform:translateY(16px);transition:all .5s cubic-bezier(.16,1,.3,1);
}
.chat-greet.show{opacity:1;visibility:visible;transform:translateY(0);}
.chat-greet::before{
content:"";position:absolute;left:-7px;bottom:20px;width:12px;height:12px;
background:var(--bone);border-left:1px solid var(--line);border-bottom:1px solid var(--line);
transform:rotate(45deg);
}
.chat-greet img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:top;border:2px solid var(--gold);flex-shrink:0;}
.chat-greet b{color:var(--ink);font-size:.8rem;display:block;}
.chat-greet p{color:var(--muted);font-size:.82rem;line-height:1.5;margin:4px 0 10px;}
.chat-greet .greet-cta{
background:var(--navy);color:var(--gold2);border:none;padding:8px 16px;cursor:pointer;
font-family:inherit;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
transition:background .3s;
}
.chat-greet .greet-cta:hover{background:var(--navy2);}
.chat-greet .greet-close{
position:absolute;top:6px;right:8px;background:none;border:none;color:var(--muted);
cursor:pointer;font-size:.85rem;padding:2px;
}
.chat-panel{
position:fixed;bottom:24px;left:24px;z-index:220;width:370px;max-width:calc(100vw - 48px);
height:560px;max-height:calc(100vh - 110px);display:flex;flex-direction:column;
background:var(--bone);border:1px solid var(--line);box-shadow:0 30px 90px rgba(23,35,67,.4);
opacity:0;visibility:hidden;transform:translateY(30px) scale(.96);
transition:all .45s cubic-bezier(.16,1,.3,1);overflow:hidden;
}
.chat-panel.open{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
body.chat-open .chat-launcher,body.chat-open .chat-greet,body.chat-open .sound-toggle{opacity:0;pointer-events:none;}
.chat-head{
background:linear-gradient(135deg,var(--navy),var(--navy2));padding:14px 16px;
display:flex;align-items:center;gap:12px;flex-shrink:0;
}
.chat-head img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:top;border:2px solid var(--gold);}
.chat-head b{color:#fff;font-size:.9rem;display:block;}
.chat-head small{color:var(--gold2);font-size:.66rem;letter-spacing:.1em;display:flex;align-items:center;gap:6px;}
.chat-head small::before{content:"";width:7px;height:7px;border-radius:50%;background:#2ecc71;}
.chat-head button{
margin-left:auto;background:none;border:none;color:#c3cbdd;font-size:1rem;cursor:pointer;
width:32px;height:32px;border-radius:50%;transition:background .3s;
}
.chat-head button:hover{background:rgba(255,255,255,.1);}
.chat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
.chat-msgs::-webkit-scrollbar{width:5px;}
.chat-msgs::-webkit-scrollbar-track{background:transparent;}
.msg{
max-width:85%;padding:11px 14px;font-size:.86rem;line-height:1.55;
animation:msgIn .4s cubic-bezier(.16,1,.3,1) both;
}
@keyframes msgIn{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.msg.bot{background:var(--paper);border:1px solid var(--line);color:var(--ink);align-self:flex-start;border-radius:2px 14px 14px 14px;}
.msg.user{background:var(--navy);color:#fff;align-self:flex-end;border-radius:14px 2px 14px 14px;}
.msg.typing{display:flex;gap:5px;align-items:center;padding:14px 16px;}
.msg.typing i{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:typeDot 1.1s ease-in-out infinite;}
.msg.typing i:nth-child(2){animation-delay:.18s;}
.msg.typing i:nth-child(3){animation-delay:.36s;}
@keyframes typeDot{0%,100%{opacity:.25;transform:translateY(0);}50%{opacity:1;transform:translateY(-4px);}}
.chat-card{
align-self:flex-start;width:88%;background:var(--paper);border:1px solid var(--line);
overflow:hidden;animation:msgIn .4s both;cursor:pointer;transition:border-color .3s,transform .3s;
}
.chat-card:hover{border-color:var(--gold);transform:translateY(-2px);}
.chat-card img{width:100%;height:110px;object-fit:cover;}
.chat-card .cc-body{padding:10px 12px;}
.chat-card .cc-preco{font-weight:600;color:var(--ink);font-size:.92rem;}
.chat-card .cc-tit{color:var(--ink);font-size:.8rem;font-weight:600;}
.chat-card .cc-specs{color:var(--muted);font-size:.72rem;margin-top:2px;}
.chat-card .cc-link{color:var(--gold-soft,#c9a227);color:var(--gold);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;}
.chat-quick{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px;flex-shrink:0;}
.chat-quick button{
background:transparent;border:1px solid var(--gold);color:var(--ink);padding:9px 14px;
border-radius:30px;cursor:pointer;font-family:inherit;font-size:.74rem;font-weight:500;
transition:all .3s;animation:msgIn .4s both;
}
.chat-quick button:hover{background:var(--gold);color:var(--navy);transform:translateY(-2px);}
.chat-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--paper);flex-shrink:0;}
.chat-input input{
flex:1;border:1px solid var(--line);background:var(--bone);padding:11px 14px;
font-family:inherit;font-size:.86rem;color:var(--ink);min-width:0;
}
.chat-input input:focus{outline:none;border-color:var(--gold);}
.chat-input button{
background:var(--navy);color:var(--gold2);border:none;width:44px;cursor:pointer;
font-size:1rem;transition:background .3s;flex-shrink:0;
}
.chat-input button:hover{background:var(--navy2);}
@media(max-width:640px){
.chat-panel{left:12px;right:12px;bottom:12px;width:auto;max-width:none;height:auto;max-height:76vh;min-height:420px;}
.chat-greet{left:88px;max-width:230px;}
}
/* ===== RECURSOS DE LUXO ===== */
/* ações nos cards: favoritar e comparar */
.card-acts{
position:absolute;bottom:12px;right:12px;z-index:5;display:flex;gap:8px;
opacity:0;transform:translateY(8px);transition:all .35s;
}
.card-imovel:hover .card-acts{opacity:1;transform:translateY(0);}
@media(hover:none){.card-acts{opacity:1;transform:none;}}
.card-acts button{
width:38px;height:38px;border-radius:50%;border:1px solid rgba(214,170,69,.5);
background:rgba(23,35,67,.85);backdrop-filter:blur(6px);color:var(--gold2);
font-size:1rem;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;
}
.card-acts button:hover{background:var(--navy);transform:scale(1.12);border-color:var(--gold);}
.card-acts .act-fav.on{background:var(--gold);color:var(--navy);border-color:var(--gold);}
.card-acts .act-cmp.on{background:var(--gold2);color:var(--navy);border-color:var(--gold2);}
@keyframes favPop{0%{transform:scale(1);}40%{transform:scale(1.45);}100%{transform:scale(1);}}
.act-fav.burst{animation:favPop .45s cubic-bezier(.16,1,.3,1);}
/* barra de filtros do portfólio */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin:34px 0 6px;align-items:center;}
.filter-bar .flabel{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-right:4px;}
.fchip{
border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;
font-family:inherit;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
padding:9px 16px;border-radius:30px;transition:all .3s;
}
.fchip:hover{border-color:var(--gold);color:var(--ink);transform:translateY(-2px);}
.fchip.on{background:var(--navy);color:var(--gold2);border-color:var(--navy);}
.card-imovel{transition:opacity .35s,transform .5s,box-shadow .5s;}
.card-imovel.hide-card{display:none;}
.grupo-oculto{display:none !important;}
/* barra flutuante de comparação */
.compare-bar{
position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(90px);
z-index:170;display:flex;align-items:center;gap:14px;
background:var(--navy);border:1px solid rgba(214,170,69,.5);padding:12px 20px;
box-shadow:0 18px 50px rgba(23,35,67,.5);transition:transform .45s cubic-bezier(.16,1,.3,1);
}
.compare-bar.show{transform:translateX(-50%) translateY(0);}
.compare-bar span{color:var(--gold2);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;}
.compare-bar .cb-go{
background:var(--gold);color:var(--navy);border:none;padding:10px 20px;cursor:pointer;
font-family:inherit;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;transition:all .3s;
}
.compare-bar .cb-go:hover{background:var(--gold2);}
.compare-bar .cb-enviar{background:transparent;color:var(--gold2);border:1px solid rgba(214,170,69,.5);}
.compare-bar .cb-enviar:hover{background:rgba(214,170,69,.14);}
/* aviso de que a pessoa abriu uma seleção montada pela Dany */
.faixa-selecao{
background:linear-gradient(135deg,var(--navy),var(--navy2));color:var(--gold2);
padding:16px 5%;text-align:center;font-size:.88rem;line-height:1.6;
border-bottom:1px solid rgba(214,170,69,.35);
}
.faixa-selecao b{color:#fff;}
.faixa-selecao button{
background:transparent;border:1px solid rgba(214,170,69,.5);color:var(--gold2);
padding:8px 16px;margin-left:12px;cursor:pointer;font-family:inherit;
font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;transition:all .3s;
}
.faixa-selecao button:hover{background:rgba(214,170,69,.15);}
.compare-bar .cb-clear{background:none;border:none;color:#8b95ad;cursor:pointer;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-family:inherit;}
.compare-bar .cb-clear:hover{color:#fff;}
/* tabela de comparação */
.compare-box{max-width:900px;}
.compare-grid{display:grid;gap:14px;margin:20px 0 24px;overflow-x:auto;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);}
.cmp-col{background:var(--paper);border:1px solid var(--line);}
.cmp-col img{width:100%;height:110px;object-fit:cover;}
.cmp-col .cmp-body{padding:14px;}
.cmp-col .cmp-tit{font-weight:600;color:var(--ink);font-size:.88rem;min-height:2.4em;}
.cmp-col .cmp-preco{font-weight:600;color:var(--ink);font-size:1.05rem;margin:4px 0 10px;}
.cmp-col .cmp-row{display:flex;justify-content:space-between;font-size:.76rem;padding:7px 0;border-top:1px solid var(--line);}
.cmp-col .cmp-row b{color:var(--muted);font-weight:500;}
.cmp-col .cmp-row span{color:var(--ink);font-weight:600;}
.cmp-col .cmp-row.destaque span{color:var(--gold);}
/* simulador de financiamento */
.sim-box{max-width:640px;}
.sim-box .body .kicker{margin-bottom:6px;}
.sim-field{margin:18px 0;}
.sim-field label{
display:flex;justify-content:space-between;font-size:.66rem;letter-spacing:.18em;
text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:10px;
}
.sim-field label output{color:var(--ink);font-weight:700;letter-spacing:0;font-size:.82rem;}
.sim-field input[type=range]{
-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;
background:linear-gradient(90deg,var(--gold) var(--fill,50%),var(--line) var(--fill,50%));outline:none;
}
.sim-field input[type=range]::-webkit-slider-thumb{
-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;
background:var(--gold);border:3px solid var(--navy);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.35);
transition:transform .2s;
}
.sim-field input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2);}
.sim-results{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0 14px;}
@media(max-width:520px){.sim-results{grid-template-columns:1fr;}}
.sim-res{background:var(--paper);border:1px solid var(--line);padding:16px;}
.sim-res small{display:block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:4px;}
.sim-res b{font-size:1.25rem;color:var(--ink);font-weight:600;}
.sim-res.parcela{background:var(--navy);border-color:var(--gold);}
.sim-res.parcela small{color:var(--gold);}
.sim-res.parcela b{color:var(--gold2);font-size:1.5rem;}
/* avaliação: quanto vale meu imóvel */
.av-campo{display:flex;flex-direction:column;gap:7px;}
.av-campo label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.av-campo select,.av-campo input{
padding:13px 15px;border:1px solid var(--line);background:var(--paper);
font-family:inherit;font-size:.92rem;color:var(--ink);transition:border .3s;
}
.av-campo select:focus,.av-campo input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(214,170,69,.15);}
.av-resultado{
background:var(--navy);padding:24px;margin-top:20px;text-align:center;
border-left:2px solid var(--gold);animation:msgIn .5s both;
}
.av-resultado small{
display:block;color:var(--gold);font-size:.6rem;letter-spacing:.24em;
text-transform:uppercase;font-weight:700;margin-bottom:8px;
}
.av-resultado > b{display:block;color:#fff;font-size:1.7rem;font-weight:600;line-height:1.2;}
.av-resultado > span{display:block;color:var(--gold2);font-size:.85rem;margin-top:6px;}
.av-nota{
color:#aeb6c8;font-size:.76rem;line-height:1.65;margin-top:16px;text-align:left;
padding-top:14px;border-top:1px solid rgba(214,170,69,.2);
}
.av-nota b{color:var(--gold2);}
.sim-custos{
background:var(--navy);padding:20px 22px;margin:6px 0 18px;border-left:2px solid var(--gold);
}
.sim-custos-titulo{
color:var(--gold);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
font-weight:700;margin-bottom:14px;
}
.sim-custo-linha{
display:flex;justify-content:space-between;gap:14px;align-items:baseline;
padding:9px 0;border-bottom:1px solid rgba(214,170,69,.16);
}
.sim-custo-linha span{color:#aeb6c8;font-size:.82rem;}
.sim-custo-linha b{color:#fff;font-size:.95rem;font-weight:600;white-space:nowrap;}
.sim-custo-linha.total{border-bottom:none;padding-top:14px;}
.sim-custo-linha.total span{color:var(--gold2);font-weight:600;}
.sim-custo-linha.total b{color:var(--gold2);font-size:1.2rem;}
.sim-custo-nota{color:#8b95ad;font-size:.72rem;line-height:1.6;margin-top:12px;}
.sim-disclaimer{font-size:.7rem;color:var(--muted);line-height:1.6;margin-bottom:18px;}
/* regiões mais buscadas */
.grid-regioes{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:26px;}
@media(max-width:1000px){.grid-regioes{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.grid-regioes{grid-template-columns:1fr;}}
.regiao{
position:relative;aspect-ratio:4/5;overflow:hidden;text-decoration:none;
border:1px solid var(--line);display:block;
}
.regiao img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease,filter .6s;}
.regiao:hover img{transform:scale(1.1);filter:brightness(.6);}
.regiao .r-overlay{
position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;
padding:20px;background:linear-gradient(180deg,transparent 40%,rgba(23,35,67,.88));
}
.regiao b{color:#fff;font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:600;}
.regiao small{
color:var(--gold2);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
opacity:0;transform:translateY(8px);transition:all .4s;
}
.regiao:hover small{opacity:1;transform:translateY(0);}
button.btn{font-family:inherit;cursor:pointer;background:transparent;}
/* ===== ÁREA DT — LOGIN / REGISTRO / ADMIN ===== */
nav .dt-entrar{
display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);
color:var(--ink);font-family:inherit;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
font-weight:600;padding:9px 16px;margin-left:20px;cursor:pointer;transition:all .3s;white-space:nowrap;
}
nav .dt-entrar:hover{border-color:var(--gold);color:var(--gold);}
nav .dt-entrar .dt-avatar{
width:22px;height:22px;border-radius:50%;background:var(--navy);color:var(--gold2);
display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;letter-spacing:0;
overflow:hidden;flex-shrink:0;
}
nav .dt-entrar .dt-avatar img{width:100%;height:100%;object-fit:cover;}
nav .dt-entrar.logado{border-color:var(--gold);}
/* em telas médias o botão vira só o avatar, para o menu respirar */
@media(min-width:1101px) and (max-width:1420px){
nav .dt-entrar{padding:7px;margin-left:14px;border-radius:50%;}
nav .dt-entrar #dtLabel{display:none;}
nav .dt-entrar .dt-avatar{width:26px;height:26px;font-size:.6rem;}
}
@media(max-width:1100px){
nav .dt-entrar{margin:14px 0 0;width:100%;justify-content:center;}
}
.auth-box{max-width:430px;}
.auth-box .body{padding:38px;}
.auth-brand{text-align:center;margin-bottom:26px;}
.auth-brand .dt-mono{
width:64px;height:64px;border-radius:50%;border:1px solid var(--gold);margin:0 auto 14px;
display:flex;align-items:center;justify-content:center;background:var(--navy);
font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--gold2);letter-spacing:.05em;
}
.auth-brand h4{font-size:1.5rem;color:var(--ink);margin-bottom:4px;}
.auth-brand p{color:var(--muted);font-size:.84rem;}
.auth-form{display:flex;flex-direction:column;gap:14px;}
.auth-form label{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:-8px;}
.auth-form input{
padding:13px 16px;border:1px solid var(--line);background:var(--paper);
font-family:inherit;font-size:.92rem;color:var(--ink);transition:border .3s;
}
.auth-form input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(214,170,69,.15);}
.auth-form button[type=submit]{
background:var(--navy);color:var(--gold2);border:none;padding:15px;cursor:pointer;font-family:inherit;
font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;transition:all .35s;margin-top:6px;
}
.auth-form button[type=submit]:hover{background:var(--navy2);transform:translateY(-2px);}
.auth-msg{font-size:.8rem;padding:10px 14px;display:none;line-height:1.5;}
.auth-msg.erro{display:block;background:rgba(200,60,60,.1);color:#a33;border-left:2px solid #a33;}
.auth-msg.ok{display:block;background:rgba(214,170,69,.12);color:var(--gold-soft);border-left:2px solid var(--gold);color:#8a6d1c;}
.auth-note{font-size:.72rem;color:var(--muted);text-align:center;line-height:1.6;margin-top:16px;}
.auth-logado{text-align:center;}
.auth-logado .quem{
background:var(--paper);border:1px solid var(--line);padding:18px;margin-bottom:18px;
}
.auth-logado .quem img{
width:72px;height:72px;border-radius:50%;object-fit:cover;margin:0 auto 12px;
border:2px solid var(--gold);display:block;
}
.auth-logado .quem b{display:block;color:var(--ink);font-size:1rem;}
#googleBtn{display:flex;justify-content:center;min-height:44px;}
/* segunda etapa (PIN) */
.pin-topo{text-align:center;margin-bottom:18px;}
.pin-topo img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);margin:0 auto 10px;display:block;}
.pin-topo b{display:block;color:var(--ink);font-size:1rem;}
.pin-topo small{color:var(--muted);font-size:.8rem;}
.pin-texto{
text-align:center;color:var(--muted);font-size:.82rem;line-height:1.6;
margin:0 0 16px;
}
.pin-campos{display:flex;gap:9px;justify-content:center;margin-bottom:20px;}
.pin-campos input{
width:44px;height:54px;text-align:center;font-size:1.5rem;font-family:inherit;
border:1px solid var(--line);background:var(--paper);color:var(--ink);transition:all .25s;
}
.pin-campos input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(214,170,69,.18);transform:translateY(-2px);}
.pin-campos input.ok{border-color:var(--gold);background:rgba(214,170,69,.08);}
.pin-campos.erro input{border-color:#c0392b;animation:tremer .4s;}
@keyframes tremer{0%,100%{transform:translateX(0);}25%{transform:translateX(-6px);}75%{transform:translateX(6px);}}
@media(max-width:420px){
.pin-campos{gap:6px;}
.pin-campos input{width:38px;height:48px;font-size:1.2rem;}
}
.setup-aviso{
background:rgba(214,170,69,.1);border-left:2px solid var(--gold);padding:14px 16px;margin-bottom:18px;
}
.setup-aviso b{display:block;color:#8a6d1c;font-size:.84rem;margin-bottom:4px;}
.setup-aviso p{color:var(--muted);font-size:.8rem;line-height:1.6;}
.setup-passos{margin:0 0 20px 18px;color:var(--muted);font-size:.82rem;line-height:1.75;}
.setup-passos li{margin-bottom:9px;padding-left:4px;}
.setup-passos a{color:var(--gold-soft);color:#8a6d1c;font-weight:600;}
.setup-passos code{
display:inline-block;background:var(--navy);color:var(--gold2);padding:5px 10px;margin-top:5px;
font-size:.76rem;word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace;
}
.auth-logado .quem small{color:var(--muted);font-size:.8rem;}
.auth-logado .selo-admin{
display:inline-block;background:var(--gold);color:var(--navy);font-size:.58rem;
letter-spacing:.2em;text-transform:uppercase;font-weight:700;padding:5px 12px;margin-top:8px;
}
/* painel administrativo */
.admin-panel{
display:none;background:var(--navy);border:1px solid var(--gold);
padding:34px;margin:40px 0 10px;position:relative;overflow:hidden;
}
body.dt-admin .admin-panel{display:block;animation:msgIn .6s both;}
.admin-panel::before{
content:"✦";position:absolute;top:-30px;right:20px;font-size:8rem;color:rgba(214,170,69,.06);line-height:1;
}
.admin-panel .adm-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px;}
.admin-panel h3{color:#fff;font-size:1.7rem;}
.admin-panel h3 em{color:var(--gold);font-style:italic;}
.admin-panel .adm-sub{color:#aeb6c8;font-size:.86rem;margin-top:4px;}
/* o formulário do painel não herda o visual do formulário de contato */
#formImovel{background:transparent;padding:0;border:none;box-shadow:none;gap:0;display:block;}
.adm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media(max-width:700px){.adm-grid{grid-template-columns:1fr;}}
.adm-full{grid-column:1/-1;}
.adm-field{display:flex;flex-direction:column;gap:7px;}
.adm-field label{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;}
.adm-field input,.adm-field textarea,.adm-field select{
padding:12px 14px;border:1px solid rgba(214,170,69,.3);background:rgba(255,255,255,.05);
color:#fff;font-family:inherit;font-size:.9rem;transition:border .3s;
}
.adm-field input::placeholder,.adm-field textarea::placeholder{color:#7b849a;}
.adm-field input:focus,.adm-field textarea:focus,.adm-field select:focus{
outline:none;border-color:var(--gold);background:rgba(255,255,255,.08);
}
.adm-field select option{background:var(--navy);color:#fff;}
.adm-drop{
border:1px dashed rgba(214,170,69,.45);padding:22px;text-align:center;cursor:pointer;
transition:all .3s;color:#aeb6c8;font-size:.84rem;position:relative;
}
.adm-drop:hover,.adm-drop.dragover{border-color:var(--gold);background:rgba(214,170,69,.07);color:#fff;}
.adm-drop input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;}
.adm-drop .drop-ico{font-size:1.6rem;display:block;margin-bottom:6px;}
.adm-preview{margin-top:12px;display:none;}
.adm-preview.show{display:block;}
.adm-preview img{width:100%;max-height:190px;object-fit:cover;border:1px solid rgba(214,170,69,.35);}
.adm-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px;align-items:center;}
.adm-btn{
background:var(--gold);color:var(--navy);border:none;padding:14px 26px;cursor:pointer;font-family:inherit;
font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;transition:all .35s;
}
.adm-btn:hover{background:var(--gold2);transform:translateY(-2px);box-shadow:0 10px 30px rgba(214,170,69,.3);}
.adm-btn.ghost{background:transparent;color:var(--gold2);border:1px solid rgba(214,170,69,.5);}
.adm-btn.ghost:hover{background:rgba(214,170,69,.12);box-shadow:none;}
.adm-status{color:var(--gold2);font-size:.8rem;}
.adm-foto-dany{border-top:1px solid rgba(214,170,69,.2);margin-top:26px;padding-top:22px;}
/* editor de curadoria e regiões */
.adm-lista{display:flex;flex-direction:column;gap:12px;margin-top:16px;}
.adm-item{
display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:start;
background:rgba(255,255,255,.04);border:1px solid rgba(214,170,69,.2);padding:12px;
transition:border-color .3s;
}
.adm-item:hover{border-color:rgba(214,170,69,.45);}
.adm-thumb{position:relative;aspect-ratio:4/3;overflow:hidden;cursor:pointer;background:var(--navy2);}
.adm-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.adm-thumb input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;}
.adm-thumb .troca{
position:absolute;inset:0;background:rgba(23,35,67,.78);color:var(--gold2);
display:flex;align-items:center;justify-content:center;text-align:center;padding:4px;
font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
opacity:0;transition:opacity .3s;pointer-events:none;
}
.adm-thumb:hover .troca{opacity:1;}
.adm-campos{display:flex;flex-direction:column;gap:7px;min-width:0;}
.adm-campos input,.adm-campos textarea{
padding:8px 11px;border:1px solid rgba(214,170,69,.25);background:rgba(255,255,255,.05);
color:#fff;font-family:inherit;font-size:.82rem;width:100%;transition:border .3s;
}
.adm-campos input:focus,.adm-campos textarea:focus{outline:none;border-color:var(--gold);}
.adm-campos .linha{display:grid;grid-template-columns:1fr 130px;gap:7px;}
@media(max-width:600px){
.adm-item{grid-template-columns:70px 1fr;}
.adm-campos .linha{grid-template-columns:1fr;}
}
.adm-aviso-fotos{
background:rgba(214,170,69,.1);border-left:2px solid var(--gold);padding:12px 14px;
color:#c9d2e4;font-size:.78rem;line-height:1.6;margin-top:14px;
}
/* remover item da lista */
.adm-item{position:relative;}
.adm-remover{
position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;
background:rgba(160,40,40,.85);border:1px solid rgba(255,120,120,.4);color:#fff;
cursor:pointer;font-size:.75rem;line-height:1;transition:all .25s;z-index:3;
}
.adm-remover:hover{background:#a02828;transform:scale(1.12);}
.adm-campos{padding-right:30px;}
/* botão de adicionar */
.adm-adicionar{
width:100%;background:transparent;border:1px dashed rgba(214,170,69,.5);color:var(--gold2);
padding:14px;cursor:pointer;font-family:inherit;font-size:.68rem;letter-spacing:.18em;
text-transform:uppercase;font-weight:600;transition:all .3s;margin-top:12px;
}
.adm-adicionar:hover{background:rgba(214,170,69,.1);border-color:var(--gold);border-style:solid;}
.adm-vazio{color:#8b95ad;font-size:.82rem;text-align:center;padding:18px;font-style:italic;}
/* blocos recolhíveis do painel */
.adm-mais summary{
cursor:pointer;color:var(--gold);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
font-weight:600;list-style:none;display:flex;align-items:center;gap:8px;padding:6px 0;
transition:color .3s;
}
.adm-mais summary::-webkit-details-marker{display:none;}
.adm-mais summary::before{content:"+";font-size:1rem;line-height:1;transition:transform .3s;}
.adm-mais[open] summary::before{content:"−";}
.adm-mais summary:hover{color:var(--gold2);}
.adm-mais summary span{color:#8b95ad;letter-spacing:.1em;text-transform:none;font-weight:400;}
/* imóveis publicados pela Dany */
.card-imovel.meu .badge{background:var(--gold);color:var(--navy);}
.card-imovel .curiosidades{
color:var(--muted);font-size:.78rem;line-height:1.6;margin-top:8px;
padding-top:8px;border-top:1px solid var(--line);
}
.card-imovel .act-del{background:rgba(160,40,40,.85);border-color:rgba(255,120,120,.5);color:#fff;}
.card-imovel .act-del:hover{background:#a02828;}
.modal-box .curiosidades-modal{
background:var(--paper);border-left:2px solid var(--gold);padding:14px 16px;margin:16px 0 20px;
color:var(--muted);font-size:.88rem;line-height:1.7;
}
.modal-box .curiosidades-modal b{
display:block;color:var(--gold-soft);color:#8a6d1c;font-size:.6rem;letter-spacing:.22em;
text-transform:uppercase;margin-bottom:6px;
}
/* ===== SIMETRIA UNIVERSAL =====
As grades viram flex centralizado: com qualquer quantidade de itens a última
fileira fica centralizada, em vez de encostar à esquerda deixando um vão. */
.grid-empre,.grid-imoveis,.grid-cat,.grid-3,.grid-depo,.timeline,.grid-regioes{
display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;
}
@media(min-width:1001px){
/* três colunas (gap 26px / 28px) */
.grid-empre>*,.grid-imoveis>*,.grid-depo>*{flex:0 1 calc((100% - 52px)/3);max-width:calc((100% - 52px)/3);}
.grid-3>*{flex:0 1 calc((100% - 56px)/3);max-width:calc((100% - 56px)/3);}
/* quatro colunas */
.grid-cat>*{flex:0 1 calc((100% - 48px)/4);max-width:calc((100% - 48px)/4);}
.grid-regioes>*{flex:0 1 calc((100% - 60px)/4);max-width:calc((100% - 60px)/4);}
.timeline>*{flex:0 1 calc((100% - 72px)/4);max-width:calc((100% - 72px)/4);}
}
@media(min-width:641px) and (max-width:1000px){
.grid-empre>*,.grid-imoveis>*,.grid-depo>*{flex:0 1 calc((100% - 26px)/2);max-width:calc((100% - 26px)/2);}
.grid-3>*{flex:0 1 calc((100% - 28px)/2);max-width:calc((100% - 28px)/2);}
.grid-cat>*{flex:0 1 calc((100% - 16px)/2);max-width:calc((100% - 16px)/2);}
.grid-regioes>*{flex:0 1 calc((100% - 20px)/2);max-width:calc((100% - 20px)/2);}
.timeline>*{flex:0 1 calc((100% - 24px)/2);max-width:calc((100% - 24px)/2);}
}
@media(max-width:640px){
.grid-empre>*,.grid-imoveis>*,.grid-depo>*,.grid-3>*,.grid-regioes>*,.timeline>*{flex:0 1 100%;max-width:100%;}
.grid-cat>*{flex:0 1 calc((100% - 16px)/2);max-width:calc((100% - 16px)/2);}
}
/* alturas iguais dentro de cada fileira, com o rodapé do card alinhado */
.card-imovel{display:flex;flex-direction:column;}
.card-imovel .body{flex:1;display:flex;flex-direction:column;}
.card-imovel .quick{margin-top:auto;padding-top:12px;}
.card-cap,.step,.card-depo,.cat{display:flex;flex-direction:column;}
.card-cap p,.step p,.card-depo .quote{flex:1;}
.card-depo .autor{margin-top:auto;}
/* ===== REFINAMENTO DOS MODELOS DE CARD ===== */
/* sombras em camadas: leem como profundidade real, não como um borrão */
.card-imovel{
box-shadow:0 1px 2px rgba(23,35,67,.06),0 4px 12px rgba(23,35,67,.05);
transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s,border-color .4s;
}
.card-imovel:hover{
box-shadow:0 2px 4px rgba(23,35,67,.08),0 12px 28px rgba(23,35,67,.12),0 28px 60px rgba(23,35,67,.14);
border-color:rgba(214,170,69,.55);
}
/* etiquetas com vidro fosco, em vez de bloco chapado */
.card-imovel .badge{
background:rgba(23,35,67,.82);backdrop-filter:blur(8px);
border:1px solid rgba(214,170,69,.3);box-shadow:0 4px 14px rgba(23,35,67,.25);
}
.card-imovel .status{
background:rgba(244,242,236,.9);backdrop-filter:blur(8px);
border:1px solid rgba(23,35,67,.1);box-shadow:0 4px 14px rgba(23,35,67,.15);
}
/* preço em destaque, com a moeda discreta */
.card-imovel .preco{
letter-spacing:-.02em;line-height:1.15;
display:flex;align-items:baseline;gap:2px;flex-wrap:wrap;
}
.card-imovel .body{padding-top:20px;}
.card-imovel h4{letter-spacing:.005em;line-height:1.35;}
/* filete dourado que cresce sob o título ao passar o mouse */
.card-imovel h4::after{
content:"";display:block;width:0;height:1px;background:var(--gold);
margin-top:7px;transition:width .5s cubic-bezier(.16,1,.3,1);
}
.card-imovel:hover h4::after{width:46px;}
.card-imovel .specs{line-height:1.7;}
/* curadoria: véu mais suave e leitura mais limpa */
.card-empre .overlay{
background:linear-gradient(180deg,rgba(23,35,67,0) 25%,rgba(23,35,67,.55) 60%,rgba(16,26,48,.94) 100%);
}
.card-empre{box-shadow:0 2px 8px rgba(0,0,0,.18);transition:box-shadow .55s,border-color .45s;}
.card-empre:hover{box-shadow:0 18px 45px rgba(0,0,0,.4);border-color:rgba(214,170,69,.6);}
.card-empre h4{letter-spacing:.01em;text-shadow:0 2px 12px rgba(0,0,0,.4);}
.card-empre .num{opacity:.85;}
/* regiões: mesma linguagem da curadoria */
.regiao{box-shadow:0 2px 8px rgba(23,35,67,.1);transition:box-shadow .5s,transform .5s cubic-bezier(.16,1,.3,1);}
.regiao:hover{box-shadow:0 16px 40px rgba(23,35,67,.28);transform:translateY(-4px);}
.regiao b{text-shadow:0 2px 12px rgba(0,0,0,.5);}
/* manifesto e processo: profundidade coerente com o resto */
.card-cap{box-shadow:0 1px 2px rgba(23,35,67,.05),0 4px 14px rgba(23,35,67,.05);}
.card-cap:hover{box-shadow:0 2px 4px rgba(23,35,67,.08),0 14px 34px rgba(23,35,67,.13);}
.step{box-shadow:0 2px 10px rgba(0,0,0,.12);}
.card-depo{box-shadow:0 1px 2px rgba(23,35,67,.04),0 4px 14px rgba(23,35,67,.05);}
/* categorias: acabamento mais fino */
.cat{box-shadow:0 1px 2px rgba(23,35,67,.04);transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s,border-color .4s;}
.cat:hover{box-shadow:0 12px 30px rgba(23,35,67,.12);}
/* botões: curva de movimento mais elegante */
.btn,.adm-btn,.fchip,.fase,form button{transition:all .45s cubic-bezier(.16,1,.3,1);}
/* ===== ACERVO EXCLUSIVO (área com acesso) ===== */
.acervo{
background:linear-gradient(170deg,var(--navy) 0%,var(--navy2) 55%,#101a30 100%);
max-width:none;position:relative;overflow:hidden;
border-top:1px solid rgba(214,170,69,.25);border-bottom:1px solid rgba(214,170,69,.25);
}
.acervo-inner{max-width:1080px;margin:0 auto;position:relative;z-index:2;}
.acervo .section-title h2{color:#fff;}
.acervo .section-title p{color:#c3cbdd;}
.acervo .chapter-num{color:#8b95ad;}
/* estado bloqueado: o cofre */
.cofre{
text-align:center;max-width:560px;margin:44px auto 0;
background:rgba(255,255,255,.04);border:1px solid rgba(214,170,69,.3);
padding:48px 36px;backdrop-filter:blur(6px);
}
.cofre .cadeado{
width:78px;height:78px;border-radius:50%;border:1px solid var(--gold);
display:flex;align-items:center;justify-content:center;margin:0 auto 22px;
font-size:2rem;background:rgba(23,35,67,.6);
animation:cofrePulsa 3.4s ease-in-out infinite;
}
@keyframes cofrePulsa{
0%,100%{box-shadow:0 0 0 0 rgba(214,170,69,.28);}
50%{box-shadow:0 0 0 16px rgba(214,170,69,0);}
}
.cofre h3{color:#fff;font-size:1.7rem;margin-bottom:12px;}
.cofre p{color:#aeb6c8;font-size:.95rem;line-height:1.75;margin-bottom:26px;}
.cofre .numero{
font-family:'IBM Plex Sans',sans-serif;font-size:2.6rem;font-weight:600;
color:var(--gold2);display:block;line-height:1.1;
}
.cofre .numero small{
display:block;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;
color:#8b95ad;font-weight:600;margin-top:6px;
}
/* estado liberado: a central de busca */
.busca-acervo{display:none;margin-top:40px;}
.busca-acervo.liberado{display:block;animation:msgIn .6s both;}
.busca-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:900px){.busca-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.busca-grid{grid-template-columns:1fr;}}
.busca-campo{display:flex;flex-direction:column;gap:8px;}
.busca-campo label{
font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:600;
}
.busca-campo select,.busca-campo input{
padding:13px 15px;border:1px solid rgba(214,170,69,.28);background:rgba(255,255,255,.05);
color:#fff;font-family:inherit;font-size:.92rem;transition:all .3s;
}
.busca-campo select:focus,.busca-campo input:focus{
outline:none;border-color:var(--gold);background:rgba(255,255,255,.09);
}
.busca-campo select option{background:var(--navy);color:#fff;}
.busca-campo input::placeholder{color:#7b849a;}
.busca-acoes{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:26px;}
.btn-buscar{
background:var(--gold);color:var(--navy);border:none;padding:16px 34px;cursor:pointer;
font-family:inherit;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;
transition:all .4s cubic-bezier(.16,1,.3,1);
}
.btn-buscar:hover{background:var(--gold2);transform:translateY(-2px);box-shadow:0 12px 32px rgba(214,170,69,.32);}
.busca-limpar{
background:transparent;border:1px solid rgba(214,170,69,.45);color:var(--gold2);
padding:16px 26px;cursor:pointer;font-family:inherit;font-size:.72rem;
letter-spacing:.2em;text-transform:uppercase;font-weight:600;transition:all .35s;
}
.busca-limpar:hover{background:rgba(214,170,69,.12);}
.busca-previa{
margin-top:22px;padding:16px 18px;background:rgba(255,255,255,.04);
border-left:2px solid var(--gold);color:#c3cbdd;font-size:.85rem;line-height:1.7;
}
.busca-previa b{color:var(--gold2);}
.busca-atalhos{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px;}
.busca-atalhos button{
background:transparent;border:1px solid rgba(214,170,69,.3);color:#c3cbdd;
padding:10px 18px;border-radius:30px;cursor:pointer;font-family:inherit;
font-size:.72rem;transition:all .35s;
}
.busca-atalhos button:hover{border-color:var(--gold);color:#fff;transform:translateY(-2px);}
.acervo-quem{
display:flex;align-items:center;gap:10px;justify-content:center;
color:#8b95ad;font-size:.78rem;margin-top:30px;
}
.acervo-quem img{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1px solid var(--gold);}
/* ===== TELA DE BOAS-VINDAS ===== */
/* nasce fechada: se o JS falhar, o site continua acessível */
.portao{
position:fixed;inset:0;z-index:400;display:none;
align-items:center;justify-content:center;padding:24px;
background:linear-gradient(170deg,var(--navy) 0%,var(--navy2) 55%,#0d1526 100%);
overflow-y:auto;
}
.portao.aberto{display:flex;animation:portaoEntra .7s ease both;}
@keyframes portaoEntra{from{opacity:0;}to{opacity:1;}}
.portao.saindo{animation:portaoSai .55s ease both;}
@keyframes portaoSai{from{opacity:1;}to{opacity:0;}}
/* skyline cinematográfico ao fundo */
.portao .skyline{
position:absolute;left:0;right:0;bottom:0;height:46vh;min-height:280px;
pointer-events:none;z-index:1;overflow:hidden;
}
.portao .skyline svg{position:absolute;bottom:0;left:50%;transform:translateX(-50%);
width:calc(100% + 220px);min-width:1200px;height:100%;}
.portao .skyline .camada-fundo{opacity:.5;}
.portao .skyline .camada-frente{opacity:.96;}
/* janelas acesas piscando devagar */
.portao .janela{animation:janelaPisca 9s ease-in-out infinite;}
.portao .janela:nth-child(3n){animation-duration:13s;animation-delay:1.6s;}
.portao .janela:nth-child(4n){animation-duration:16s;animation-delay:3.4s;}
.portao .janela:nth-child(5n){animation-duration:11s;animation-delay:.8s;}
@keyframes janelaPisca{0%,100%{opacity:.85;}45%{opacity:.28;}70%{opacity:.95;}}
/* neblina baixa entre as camadas */
.portao .bruma{
position:absolute;left:-10%;right:-10%;bottom:0;height:60%;
background:linear-gradient(to top,rgba(13,21,38,.92),rgba(13,21,38,.35) 45%,transparent);
animation:brumaAnda 26s ease-in-out infinite alternate;
}
@keyframes brumaAnda{from{transform:translateX(-2%);}to{transform:translateX(2%);}}
/* vinheta que fecha as bordas, como em cinema */
.portao .vinheta{
position:absolute;inset:0;pointer-events:none;z-index:2;
background:radial-gradient(ellipse at 50% 38%,transparent 42%,rgba(6,10,22,.62) 100%);
}
/* moldura de fio dourado com cantoneiras */
.portao .moldura{position:absolute;inset:20px;pointer-events:none;z-index:3;
border:1px solid rgba(214,170,69,.16);}
.portao .moldura i{position:absolute;width:26px;height:26px;border:1px solid rgba(214,170,69,.5);}
.portao .moldura i:nth-child(1){top:-1px;left:-1px;border-right:0;border-bottom:0;}
.portao .moldura i:nth-child(2){top:-1px;right:-1px;border-left:0;border-bottom:0;}
.portao .moldura i:nth-child(3){bottom:-1px;left:-1px;border-right:0;border-top:0;}
.portao .moldura i:nth-child(4){bottom:-1px;right:-1px;border-left:0;border-top:0;}
@media(max-width:600px){.portao .moldura{inset:12px;}}
.portao .aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.portao .aurora i{position:absolute;width:52vw;height:52vw;border-radius:50%;filter:blur(90px);opacity:.32;}
.portao .aurora i:nth-child(1){background:radial-gradient(circle,#2c3e6b,transparent 60%);top:-14%;left:-10%;animation:aur1 20s ease-in-out infinite alternate;}
.portao .aurora i:nth-child(2){background:radial-gradient(circle,rgba(214,170,69,.45),transparent 60%);bottom:-18%;right:-8%;animation:aur2 24s ease-in-out infinite alternate;}
/* quem rola é a tela inteira: o card com overflow criava uma barra dourada no meio */
.portao{align-items:flex-start;}
.portao-card{
position:relative;z-index:4;max-width:520px;width:100%;text-align:center;
padding:8px 8px 40px;margin:auto;
}
/* barra de rolagem discreta, sem o dourado do site */
.portao::-webkit-scrollbar{width:6px;}
.portao::-webkit-scrollbar-track{background:transparent;}
.portao::-webkit-scrollbar-thumb{background:rgba(214,170,69,.35);border-radius:3px;}
.portao .dt-selo{
width:92px;height:92px;border-radius:50%;border:1px solid var(--gold);
display:flex;align-items:center;justify-content:center;margin:0 auto 24px;
background:rgba(23,35,67,.55);
font-family:'Cormorant Garamond',Georgia,serif;font-size:2.1rem;color:var(--gold2);
letter-spacing:.06em;
animation:seloEntra 1s cubic-bezier(.16,1,.3,1) both;
}
@keyframes seloEntra{from{opacity:0;transform:scale(.7) translateY(14px);}to{opacity:1;transform:scale(1) translateY(0);}}
.portao .cap{
display:block;font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;
color:var(--gold);font-weight:600;margin-bottom:14px;
animation:portaoSobe .9s .12s cubic-bezier(.16,1,.3,1) both;
}
.portao h2{
font-size:clamp(1.8rem,4.6vw,2.7rem);color:#fff;font-weight:500;line-height:1.2;
animation:portaoSobe .9s .2s cubic-bezier(.16,1,.3,1) both;
}
.portao h2 em{color:var(--gold);font-style:italic;}
.portao .rule-dt{
width:64px;height:1px;background:var(--gold);margin:20px auto;position:relative;
animation:portaoSobe .9s .28s cubic-bezier(.16,1,.3,1) both;
}
.portao .rule-dt::before{
content:"✦";position:absolute;top:-15px;left:50%;transform:translateX(-50%);
color:var(--gold);font-size:.58rem;
}
/* texto claro sobre navy: --muted reprovaria no contraste */
.portao .lead{
color:rgba(227,226,220,.82);font-size:.98rem;line-height:1.75;max-width:380px;margin:0 auto 30px;
animation:portaoSobe .9s .34s cubic-bezier(.16,1,.3,1) both;
}
@keyframes portaoSobe{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.portao-acoes{
display:flex;flex-direction:column;gap:14px;align-items:center;
animation:portaoSobe .9s .42s cubic-bezier(.16,1,.3,1) both;
}
.portao .google-btn{display:flex;justify-content:center;min-height:44px;}
/* botão próprio do Google: existe sempre, com o botão oficial invisível por cima */
.btn-google-dt{
position:relative;display:flex;align-items:center;justify-content:center;gap:12px;
width:100%;max-width:380px;min-height:56px;padding:0 22px;cursor:pointer;
background:linear-gradient(135deg,var(--gold) 0%,var(--gold2) 52%,var(--gold) 100%);
background-size:220% 100%;border:none;color:var(--navy);
font-family:'IBM Plex Sans',sans-serif;font-size:.95rem;font-weight:600;letter-spacing:.01em;
box-shadow:0 16px 40px rgba(0,0,0,.42),0 2px 8px rgba(214,170,69,.3);
transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;
animation:brilhoDT 7s linear infinite;overflow:hidden;
}
.btn-google-dt:hover{transform:translateY(-2px);box-shadow:0 22px 52px rgba(0,0,0,.5),0 2px 12px rgba(214,170,69,.45);}
.btn-google-dt .g-mark{
width:26px;height:26px;border-radius:50%;background:#fff;flex-shrink:0;
display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.btn-google-dt .g-mark svg{width:15px;height:15px;}
.btn-google-dt::after{
content:"";position:absolute;top:0;left:-80%;width:42%;height:100%;
background:linear-gradient(105deg,transparent,rgba(255,255,255,.6),transparent);
transform:skewX(-20deg);transition:left .8s ease;
}
.btn-google-dt:hover::after{left:150%;}
/* o botão oficial do Google fica invisível sobre o nosso, para o clique ser o dele */
.btn-google-dt .google-btn{
position:absolute;inset:0;opacity:0;overflow:hidden;
display:flex;align-items:center;justify-content:center;
}
.btn-google-dt .google-btn > div,.btn-google-dt .google-btn iframe{
width:100% !important;height:100% !important;transform:scale(2.4);
}
.portao .micro-linha{
color:rgba(227,226,220,.72);font-size:.78rem;line-height:1.6;max-width:380px;
margin:2px auto 0;
}
/* ===== simetria: uma única largura para todos os blocos ===== */
.portao .lead,.portao-beneficios,.portao-linha-extra,.portao-selo,
.portao .privacidade,.portao .aviso-webview,.portao .micro-linha{
max-width:380px;margin-left:auto;margin-right:auto;
}
.portao .btn-google-dt,.portao .btn-sem-login,.portao .ou{
width:100%;max-width:380px;margin-left:auto;margin-right:auto;
}
.portao .btn-sem-login{min-width:0;}
.portao-acoes{width:100%;}
/* ===== conta já conectada ===== */
.portao-conta{animation:portaoSobe .8s .3s cubic-bezier(.16,1,.3,1) both;}
.portao-conta img{
width:76px;height:76px;border-radius:50%;object-fit:cover;
border:1px solid var(--gold);margin:0 auto 14px;display:block;
box-shadow:0 10px 30px rgba(0,0,0,.4);
}
.portao-conta .conta-nome{
font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;color:#fff;line-height:1.2;
}
.portao-conta .conta-email{
color:rgba(227,226,220,.68);font-size:.82rem;margin-top:4px;
}
.portao-conta .conta-selo{
display:inline-block;margin-top:12px;background:var(--gold);color:var(--navy);
font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;padding:5px 14px;
}
.portao-conta .portao-acoes{margin-top:26px;}
.portao .btn-perigo{
border-color:rgba(220,120,110,.45);color:#f0b8b2;
}
.portao .btn-perigo:hover{background:rgba(200,70,60,.16);border-color:#e08a80;}
/* as duas saídas têm o mesmo peso: nada de link escondido */
.portao .btn-sem-login{
background:transparent;border:1px solid rgba(243,217,140,.55);color:var(--gold2);
padding:15px 34px;min-width:0;min-height:48px;cursor:pointer;font-family:inherit;
font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
transition:all .4s cubic-bezier(.16,1,.3,1);
}
.portao .btn-sem-login:hover{background:rgba(243,217,140,.12);border-color:var(--gold2);transform:translateY(-2px);}
.portao .ou{
color:rgba(227,226,220,.5);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;
display:flex;align-items:center;gap:14px;width:100%;
}
.portao .ou::before,.portao .ou::after{content:"";flex:1;height:1px;background:rgba(214,170,69,.28);}
.portao .lead-2{
margin-top:-14px;color:rgba(227,226,220,.68);font-size:.9rem;
animation:portaoSobe .9s .4s cubic-bezier(.16,1,.3,1) both;
}
.portao .lead-2 b{color:var(--gold2);font-weight:600;}
.portao .local{
display:block;font-size:.56rem;letter-spacing:.28em;text-transform:uppercase;
color:rgba(227,226,220,.62);margin-bottom:18px;
animation:portaoSobe .9s .16s cubic-bezier(.16,1,.3,1) both;
}
/* três motivos para entrar, no lugar de uma lista do que se perde */
.portao-beneficios{
list-style:none;text-align:left;max-width:380px;margin:0 auto 30px;
display:flex;flex-direction:column;gap:10px;
animation:portaoSobe .9s .38s cubic-bezier(.16,1,.3,1) both;
}
.portao-beneficios li{
color:rgba(227,226,220,.85);font-size:.87rem;line-height:1.6;
padding-left:22px;position:relative;
}
.portao-beneficios li::before{
content:"✦";position:absolute;left:0;top:1px;color:var(--gold);font-size:.72rem;
}
/* fato, sem chantagem */
.portao-linha-extra{
margin-top:18px;color:rgba(227,226,220,.7);font-size:.8rem;line-height:1.65;
max-width:380px;margin-left:auto;margin-right:auto;
animation:portaoSobe .9s .5s cubic-bezier(.16,1,.3,1) both;
}
.portao-selo{
margin-top:20px;padding:12px 16px;border:1px solid rgba(214,170,69,.22);
color:rgba(227,226,220,.78);font-size:.78rem;line-height:1.6;
max-width:380px;margin-left:auto;margin-right:auto;
animation:portaoSobe .9s .56s cubic-bezier(.16,1,.3,1) both;
}
.portao .privacidade{
margin-top:20px;color:rgba(227,226,220,.62);font-size:.72rem;line-height:1.65;max-width:380px;
margin-left:auto;margin-right:auto;
animation:portaoSobe .9s .56s cubic-bezier(.16,1,.3,1) both;
}
.portao .privacidade a{color:var(--gold2);}
/* acesso ao painel: presente, mas sem competir com a recepção */
.portao .link-admin{
display:inline-block;margin-top:10px;color:rgba(227,226,220,.45);
font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
border-bottom:1px solid rgba(214,170,69,.25);padding-bottom:2px;transition:color .3s,border-color .3s;
}
.portao .link-admin:hover{color:var(--gold2);border-color:var(--gold);}
.portao-fechar{
position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;
background:rgba(255,255,255,.07);border:1px solid rgba(214,170,69,.4);color:var(--gold2);
font-size:1rem;cursor:pointer;z-index:3;transition:all .3s;
}
.portao-fechar:hover{background:rgba(214,170,69,.18);}
.portao-fechar:focus-visible,.portao button:focus-visible{outline:2px solid var(--gold2);outline-offset:3px;}
/* aviso para navegador do Instagram, onde o login do Google não funciona */
.portao .aviso-webview{
display:none;margin-bottom:18px;padding:12px 16px;background:rgba(214,170,69,.14);
border:1px solid rgba(214,170,69,.4);color:#f7ecd0;font-size:.8rem;line-height:1.6;
max-width:380px;margin-left:auto;margin-right:auto;
}
.portao.em-webview .aviso-webview{display:block;}
.portao.em-webview .google-btn,.portao.em-webview .ou{display:none;}
/* o botão dourado do Google aparece sempre; sem o ID cadastrado ele leva à configuração */
.portao.sem-google .micro-linha{color:rgba(243,217,140,.8);}
@media(max-width:560px){
.portao .btn-sem-login,.portao .ou{min-width:0;width:100%;max-width:380px;}
}
/* ===== BOTÃO DE ACESSO NA NAVBAR (ao lado do nome) ===== */
.btn-portao{
display:inline-flex;align-items:center;gap:8px;margin-left:18px;flex-shrink:0;
background:linear-gradient(135deg,var(--gold) 0%,var(--gold2) 50%,var(--gold) 100%);
background-size:200% 100%;
color:var(--navy);border:none;padding:10px 20px;cursor:pointer;font-family:inherit;
font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
box-shadow:0 2px 10px rgba(214,170,69,.3);
transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;
animation:brilhoDT 6s linear infinite;position:relative;overflow:hidden;
}
@keyframes brilhoDT{0%{background-position:0% 0;}100%{background-position:200% 0;}}
.btn-portao:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(214,170,69,.45);}
.btn-portao::after{
content:"";position:absolute;top:0;left:-80%;width:45%;height:100%;
background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
transform:skewX(-20deg);transition:left .7s ease;
}
.btn-portao:hover::after{left:150%;}
.btn-portao .dt-mini{
font-family:'Cormorant Garamond',Georgia,serif;font-size:.95rem;font-weight:700;letter-spacing:.02em;
}
@media(max-width:1200px){ .btn-portao span.rotulo{display:none;} .btn-portao{padding:10px 14px;} }
/* segue colado ao nome; o espaço vazio vai para depois dele */
@media(max-width:1100px){ .btn-portao{margin-left:14px;margin-right:auto;} }
/* ===== FICHA IMPRESSA (o navegador salva como PDF) ===== */
@media print{
/* fora tudo que é navegação, som, efeito e conversa */
nav,footer,.whatsapp-float,.sound-toggle,.back-top,.chat-launcher,.chat-greet,.chat-panel,
.grain,#progress,.cursor-dot,.cursor-ring,.wipe,.portao,.compare-bar,.modal-close,
.modal-actions,.particles,.aurora,.trail,.lantern,.pular-para,.btn-portao{display:none !important;}
/* imprime só a ficha aberta */
body > *:not(#modal){display:none !important;}
#modal{position:static !important;display:block !important;background:none !important;
padding:0 !important;backdrop-filter:none !important;}
.modal-box{max-width:100% !important;box-shadow:none !important;max-height:none !important;
overflow:visible !important;background:#fff !important;animation:none !important;}
.modal-box img{max-height:420px !important;object-fit:cover;}
.modal-box .body{padding:0 !important;}
.modal-box .preco{font-size:1.6rem !important;color:#000 !important;}
.modal-box h4{color:#000 !important;}
.curiosidades-modal{border-left:2px solid #b8912f !important;background:#f7f5ef !important;}
/* cabeçalho e rodapé de marca só na impressão */
.modal-box .body::before{
content:"DANY TELATIN — CONSULTORIA IMOBILIÁRIA";
display:block;font-size:9pt;letter-spacing:.2em;color:#8a6d1c;
border-bottom:1px solid #d6aa45;padding-bottom:8px;margin-bottom:14px;
}
.modal-box .body::after{
content:"(17) 99755-7775 · dany@telatin.com.br · telatin.com.br · CRECI 29.247 J | 145.374 F";
display:block;font-size:8.5pt;color:#555;border-top:1px solid #d6aa45;
padding-top:8px;margin-top:16px;
}
a[href]::after{content:"";}
@page{margin:14mm;}
}
/* ===== CELULAR E TABLET: leveza acima de efeito =====
Telas de toque não têm cursor, e efeito pesado gasta bateria e trava a rolagem. */
@media (hover:none),(pointer:coarse),(max-width:1024px){
.cursor-dot,.cursor-ring,.trail,.particles,.lantern,.wipe{display:none !important;}
.portao .aurora,header .aurora,.portao .skyline,.portao .bruma{display:none !important;}
.grain{display:none !important;}
/* nada de inclinação 3D nem brilho seguindo o dedo */
.glare{display:none !important;}
.card-imovel,.card-empre,.card-cap,.step,.cat,.regiao,.vida{transform:none !important;}
.card-imovel:hover,.card-empre:hover,.cat:hover,.regiao:hover,.vida:hover{transform:none !important;}
/* imagem parada: ken burns e zoom no hover pesam na rolagem */
.hero-visual .frame img{animation:none !important;}
.card-empre:hover img,.regiao:hover img,.vida:hover img,.card-imovel:hover .foto img{transform:none !important;}
/* brilhos varrendo e marca d'água saem */
.card-imovel .foto::before,.card-empre::after,.btn::before,.btn-portao::after,
.btn-google-dt::after,.watermark{display:none !important;}
.btn-portao{animation:none !important;}
header h1 em,.section-title h2 em,.sobre-content h3 em{animation:none !important;background:none;-webkit-text-fill-color:var(--gold);color:var(--gold);}
.hero-visual::before{display:none !important;}
.marquee-content{animation-duration:60s;}
.dt-selo,.cofre .cadeado{animation:none !important;}
}
/* toque confortável: alvos maiores e menos densidade */
@media(max-width:768px){
.card-acts button{width:44px;height:44px;}
.fchip,.fase,.busca-atalhos button{padding:12px 18px;}
.btn{padding:15px 28px;}
section{padding:64px 6%;}
.section-title h2{font-size:clamp(1.6rem,7vw,2.1rem);}
header{padding:100px 6% 60px;}
.hero-stats{gap:20px;margin-top:36px;}
.modal{padding:0;}
.modal-box{max-height:100dvh;border-radius:0;}
.compare-bar{left:12px;right:12px;transform:translateY(90px);width:auto;}
.compare-bar.show{transform:translateY(0);}
.chat-launcher{width:56px;height:56px;}
.sound-toggle{bottom:88px;}
}
/* acessibilidade: menos movimento */
@media (prefers-reduced-motion: reduce){
*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
html{scroll-behavior:auto;}
.particle,.cursor-dot,.cursor-ring,.wipe,.trail,.lantern{display:none !important;}
.curtain::after{display:none !important;}
.portao .aurora,.btn-portao::after{display:none !important;}
.btn-portao{animation:none !important;}
}
