/* =====================================================================
   TERRAE · Planta interativa de empreendimento (partilhado PT/EN)
   Usado com data/<emp>.js + window.TERRAE_I18N + assets/empreendimento.js
   Requer os tokens --t-* de terrae.css.
   ===================================================================== */

/* secção disponibilidade (fundo escuro) */
.avail{background:var(--t-ink);color:var(--t-sand)}
.avail .kicker,.avail .kicker.on-dark{color:var(--t-sage-soft)}
.avail .sec-head h2{color:var(--t-sand)}
.avail .sec-head p.lede{color:rgba(228,221,211,.82)}

/* legenda */
.legend{display:flex;gap:var(--s-6);margin-bottom:var(--s-6);font-size:var(--fs-small);flex-wrap:wrap}
.legend .lg{display:flex;align-items:center;gap:var(--s-2);color:rgba(228,221,211,.82)}
.legend .sw{width:16px;height:16px;display:inline-block;border:1px solid rgba(228,221,211,.3)}
.sw.disp{background:var(--t-sage)} .sw.sel{background:var(--t-sienna)}
.sw.resv{background:var(--t-rule)} .sw.sold{background:var(--t-ink);border-color:rgba(228,221,211,.3)}
.sw.fase{background:transparent;border:1px dashed var(--t-sienna)}

/* planta — corte do edifício por lote */
.lotes{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6)}
.plan-lote{display:flex;flex-direction:column}
.plan-lote h4{font-family:var(--f-body);font-weight:500;letter-spacing:var(--ls-small);text-transform:uppercase;font-size:var(--fs-caption);color:var(--t-sage-soft);margin:0 0 var(--s-3);padding-left:2px}
.plan-lote.is-fase h4{color:var(--t-sienna)}
.plan-roof{height:14px;background:var(--t-sage-soft);opacity:.22;clip-path:polygon(0 100%,100% 0,100% 100%)}
.plan-floor{display:flex;align-items:stretch;border:1px solid rgba(228,221,211,.16);border-bottom:0}
.plan-floor:last-of-type{border-bottom:1px solid rgba(228,221,211,.16)}
.plan-flabel{flex:0 0 38px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-micro);letter-spacing:.04em;color:var(--t-sage-soft);border-right:1px solid rgba(228,221,211,.16);background:rgba(228,221,211,.03);text-align:center;line-height:1.1}
.plan-cells{flex:1;display:grid;grid-template-columns:1fr 1fr}
.plan-cells .plan-unit+.plan-unit{border-left:1px solid rgba(228,221,211,.16)}
.plan-unit{background:transparent;border:0;color:var(--t-sand);padding:var(--s-3);min-height:66px;display:flex;flex-direction:column;justify-content:center;gap:3px;text-align:left;transition:background .35s var(--ease,cubic-bezier(.65,0,.35,1)),transform .35s var(--ease,cubic-bezier(.65,0,.35,1))}
.plan-unit .pu-id{font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--t-sage-soft)}
.plan-unit .pu-type{font-family:var(--f-display);font-size:1.2rem;line-height:1}
.plan-unit .pu-price{font-size:var(--fs-small)}
.plan-unit .pu-state{font-size:var(--fs-caption);color:rgba(228,221,211,.5)}
.plan-unit .pu-tag{font-size:var(--fs-micro);letter-spacing:.05em;text-transform:uppercase;color:var(--t-sienna)}
.plan-unit.disponivel{background:rgba(138,142,117,.20);cursor:pointer}
.plan-unit.disponivel:hover{background:var(--t-sage);color:var(--t-ink)}
.plan-unit.disponivel:hover .pu-id{color:var(--t-ink-soft)}
.plan-unit.reservado{cursor:not-allowed}
.plan-unit.reservado .pu-type{opacity:.5;text-decoration:line-through}
.plan-unit.vendido{background:rgba(228,221,211,.02);cursor:not-allowed}
.plan-unit.vendido .pu-type{opacity:.45}
.plan-unit.fase2,.plan-unit.fase3{background:repeating-linear-gradient(45deg,transparent,transparent 7px,rgba(228,221,211,.045) 7px,rgba(228,221,211,.045) 14px);cursor:pointer}
.plan-unit.fase2:hover,.plan-unit.fase3:hover{background:rgba(151,110,83,.20)}
.plan-unit.sel{background:var(--t-sienna);color:var(--t-sand)}
.plan-unit.sel .pu-id,.plan-unit.sel .pu-state{color:var(--t-sand)}
.plan-unit:focus-visible{outline:2px solid var(--t-sienna);outline-offset:-2px}
.plan-ground{height:6px;background:rgba(228,221,211,.18)}

/* painel de detalhe */
.avail-detail{background:rgba(228,221,211,.06);border:1px solid rgba(228,221,211,.16);padding:var(--s-6);margin-top:var(--s-5);min-height:90px;display:flex;align-items:center;gap:var(--s-7);flex-wrap:wrap}
.avail-detail .empty{color:rgba(228,221,211,.5);font-size:var(--fs-small)}
.avail-detail .d{display:none;gap:var(--s-7);flex-wrap:wrap;align-items:center;width:100%}
.avail-detail .d.show{display:flex}
.avail-detail .d .blk .v{font-family:var(--f-display);font-size:1.5rem;color:var(--t-sand)}
.avail-detail .d .blk .l{font-size:var(--fs-micro);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-sage-soft);margin-top:2px}
.avail-detail .d .cta{margin-left:auto}

/* tabela de preços */
.ptable{background:var(--t-sand)}
.filters{display:flex;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-6);align-items:center}
.filters .fl{display:flex;align-items:center;gap:var(--s-2)}
.filters select{font-family:var(--f-body);font-size:var(--fs-small);padding:.5rem .7rem;border:1px solid var(--t-rule);background:var(--t-sand-light);color:var(--t-ink)}
.filters label{font-size:var(--fs-caption);letter-spacing:var(--ls-small);text-transform:uppercase;color:var(--t-ink-mute)}
.tbl-scroll{overflow-x:auto;border:1px solid var(--t-line)}
table.price{width:100%;border-collapse:collapse;min-width:680px;background:var(--t-sand-light)}
table.price th{font-family:var(--f-body);font-weight:500;font-size:var(--fs-caption);letter-spacing:var(--ls-small);text-transform:uppercase;color:var(--t-ink-mute);text-align:left;padding:var(--s-4);border-bottom:1px solid var(--t-rule);cursor:pointer;white-space:nowrap}
table.price th:hover{color:var(--t-sienna)}
table.price td{padding:var(--s-4);border-bottom:1px solid var(--t-line);font-size:var(--fs-small)}
table.price td.pvp{font-family:var(--f-display);font-size:1.0625rem;color:var(--t-ink)}
table.price tr.reservado td,table.price tr.vendido td,table.price tr.fase2 td,table.price tr.fase3 td{color:var(--t-ink-mute)}
table.price tr.reservado td.pvp,table.price tr.vendido td.pvp{text-decoration:line-through}
table.price tr:hover td{background:var(--t-sand-soft)}
table.price tr.hl td{background:rgba(151,110,83,.12)}
.badge{display:inline-block;font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:2px}
.badge.d{background:var(--t-sage);color:var(--t-ink)}
.badge.r{background:var(--t-rule);color:var(--t-ink-soft)}
.badge.s{background:var(--t-ink);color:var(--t-sand)}
.badge.f{background:var(--t-sienna);color:var(--t-sand)}

@media(max-width:760px){.lotes{grid-template-columns:1fr;gap:var(--s-5);max-width:420px;margin-inline:auto}}
