/* Base fora do Claude: esconder [hidden], imagens fluidas, fundo explícito */
[hidden]{display:none!important}
img{max-width:100%}
html{-webkit-text-size-adjust:100%}
/* Identidade Nova Imobiliária: bordeaux do logótipo, grafite, pedra e sálvia; serifas clássicas como no logótipo */
:root{
  --ground:#F5F5F4; --surface:#FFFFFF; --sunk:#EAEAE8; --line:#DCDCDA;
  --ink:#2E2E2E; --ink-2:#565656; --ink-3:#8C8C8C;
  --teal:#A5121E; --teal-ink:#FFFFFF; --teal-soft:#F7E4E6;
  --ochre:#5E7F6F; --ochre-soft:#E2EBE6; --azul:#2F4A6B; --good:#2E7D4F;
  --sea1:#9CC7C1; --sea2:#5E9E97; --hill:#7E9A6B; --hill2:#5F7C51;
  --brand:#A5121E; --logo-ink:#545454; --logo-bg:#FFFFFF;
  --wine:#6C0C18; --wine-ink:#F4EAE7; --wine-2:#E7A9AF;
  --map-water:#D3E2E4; --map-land:#F8F7F3; --map-hill:#DDE5D6; --map-city:#ECEAE3; --map-road:#FFFFFF; --map-label:#6C6C6C; --pin:#A5121E; --pin-ink:#FFFFFF;
  --shadow:0 1px 2px rgba(38,40,39,.06),0 10px 28px rgba(38,40,39,.09);
  --f-display:"Libre Caslon Display",Georgia,"Times New Roman",serif;
  --f-caps:"Marcellus",Georgia,serif;
  --f-body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
}
:root[data-theme="dark"]{
  --ground:#151515; --surface:#1E1E1E; --sunk:#272727; --line:#343434;
  --ink:#EDEDED; --ink-2:#B9B9B9; --ink-3:#8E8E8E;
  --teal:#E4737F; --teal-ink:#1A0A0C; --teal-soft:#3A1519;
  --ochre:#8DB5A2; --ochre-soft:#22332B; --azul:#9DB4D6;
  --sea1:#2A5553; --sea2:#3E7570; --hill:#4E6844; --hill2:#3C5335;
  --brand:#E4737F; --logo-ink:#D6D6D6; --logo-bg:#1E1E1E;
  --wine:#4A080F; --wine-ink:#F1E4E1; --wine-2:#E7A9AF;
  --map-water:#1A2A2D; --map-land:#202321; --map-hill:#26302A; --map-city:#2A2D2B; --map-road:#3A3D3B; --map-label:#9A9C97; --pin:#E4737F; --pin-ink:#1C0B0D;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);
}

/* Tipografia */
h1,h2,h3{font-family:var(--f-display);letter-spacing:-.005em}
h2{font-size:clamp(30px,4vw,44px);margin-top:10px}
.eyebrow{font:400 13px/1.2 var(--f-caps);letter-spacing:.16em;color:var(--brand)}
.nova{font-family:var(--f-caps);color:var(--brand);letter-spacing:.06em}
.more{color:var(--brand);font-weight:600;text-decoration:none;white-space:nowrap}
.more:hover{text-decoration:underline}
.btn-primary:hover{background:color-mix(in srgb,var(--teal) 82%,#000)}
.nav a.on{border-color:var(--brand)}
:focus-visible{outline-color:var(--ochre)}

/* Barra de contactos e marca */
.topbar{background:var(--wine);color:var(--wine-ink);font-size:13px}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:4px 22px;justify-content:space-between;padding-block:7px}
.topbar a{color:inherit;text-decoration:none}
.topbar a:hover{text-decoration:underline}
.topbar span{opacity:.85}
.top .wrap{height:76px}
.brand .logo{height:50px;width:auto;display:block}
.foot .brand .logo{height:46px}
.c-head .mark{width:36px;height:36px}
.c-head{background:var(--wine);color:var(--wine-ink)}

/* Fotografias */
.ph,.ph-fallback,.ph-fallback svg{display:block;width:100%;height:100%}
.ph{object-fit:cover;background:var(--sunk)}
.badge.new{background:var(--brand);color:#fff}
.specs .excl{color:var(--brand);font-weight:600;margin-left:auto}
.specs span:first-child{color:var(--ink)}

/* Hero */
.hero{padding-block:44px 0}
.hero-grid{grid-template-columns:1fr 1.05fr;gap:44px}
.hero h1{font-size:clamp(40px,5.6vw,68px);line-height:1.04;margin-top:14px}
.mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:clamp(320px,38vw,470px)}
.shot{position:relative;border-radius:14px;overflow:hidden;display:block;color:#fff;text-decoration:none;background:var(--sunk)}
.shot.a{grid-row:1/3}
.shot .ph,.shot .ph-fallback{transition:transform .5s ease}
.shot:hover .ph,.shot:hover .ph-fallback{transform:scale(1.04)}
.shot .cap{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;background:linear-gradient(transparent,rgba(12,8,8,.78));font-size:13px;line-height:1.35;display:grid;gap:2px}
.shot .cap b{font:600 16px var(--f-body)}
.shot .cap small{color:#e8dede}
.facts-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:34px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts-strip div{padding:18px 18px 18px 0}
.facts-strip div+div{padding-left:18px;border-left:1px solid var(--line)}
.facts-strip dt{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.facts-strip dd{margin:6px 0 0;font:400 40px/1 var(--f-display)}

/* Secção Terra e vinha */
.wine{background:var(--wine);color:var(--wine-ink)}
.wine .eyebrow{color:var(--wine-2)}
.wine .sec-head .lede{color:color-mix(in srgb,var(--wine-ink) 78%,transparent)}
.wine .more{color:#fff}
.wine .card{color:var(--ink)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,300px);gap:18px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}
.rail>*{scroll-snap-align:start}
.rail::-webkit-scrollbar{height:8px}.rail::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:4px}

/* Onde trabalhamos */
.map-sec{align-items:center}
.count-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.count-list a{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none}
.count-list span{font:400 20px var(--f-display)}
.count-list small{grid-column:1;color:var(--ink-2);font-size:13px}
.count-list b{grid-row:1/3;grid-column:2;align-self:center;font-size:18px;color:var(--brand)}
.count-list a:hover span{color:var(--brand)}
.home-map{max-width:560px;justify-self:end;width:100%}
.pin.grp rect{fill:var(--ink)}.pin.grp path{fill:var(--ink)}.pin.grp text{fill:var(--ground)}
.pin:hover rect,.pin:hover path,.pin.on rect,.pin.on path{fill:var(--ochre)}
.pin.on text,.pin:hover text{fill:#fff}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .mosaic{height:clamp(260px,62vw,420px)}
  .facts-strip{grid-template-columns:1fr 1fr}
  .facts-strip div:nth-child(3){padding-left:0;border-left:0}
  .facts-strip div:nth-child(n+3){border-top:1px solid var(--line)}
  .home-map{justify-self:stretch;max-width:none}
}
@media (max-width:640px){.topbar .hide-sm{display:none}.brand .logo{height:42px}.top .wrap{height:66px}}

.login-card{max-width:440px;margin:0 auto;display:grid;gap:10px}
.login-card h1{font-size:clamp(28px,4vw,38px)}

/* Estado do negócio: vendidos a preto e branco */
.ph.bw,.ph-fallback.bw{filter:grayscale(1) contrast(.95)}
.card.sold .price{color:var(--ink-3)}
.card.sold:hover{transform:none}
.badge.st-reservado{background:var(--ochre);color:#1d1606}
.badge.st-vendido,.badge.st-arrendado{background:var(--ink);color:var(--ground)}
.st-banner{display:inline-block;font:600 12px var(--f-body);letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:999px;margin-bottom:10px}
.st-banner.st-reservado{background:var(--ochre-soft);color:var(--ink)}
.st-banner.st-vendido,.st-banner.st-arrendado{background:var(--sunk);color:var(--ink-2)}

.ok.erro{background:#FBE9E7;color:#7A1C12}
:root:not([data-theme="light"]) .ok.erro,:root[data-theme="dark"] .ok.erro{background:#3A1A16;color:#F3C6BF}

/* Logótipo oficial */
.brand .logo{height:52px;width:auto;display:block}
.foot .brand .logo{height:46px}
.c-head .mark{flex:none;box-sizing:border-box;width:40px;height:40px;object-fit:contain;background:#fff;border-radius:50%;padding:5px}
.mark{flex:none;width:34px;height:34px;object-fit:contain}
@media (max-width:640px){.brand .logo{height:40px}}
/* Em fundo escuro, o cinzento do logótipo precisa de mais luz */

