/* Bluesoft · agentes imobiliários */
@font-face{
  font-family:"Archivo";
  src:url("/assets/fonts/archivo-latin.woff2") format("woff2");
  font-weight:100 900; font-stretch:62% 125%; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root{
  --paper:#F7F7F4; --paper-2:#ECEDE8; --ink:#141A2E; --muted:#586075;
  --rule:rgba(20,26,46,.14); --rule-strong:rgba(20,26,46,.3);
  --blue:#3D5AE6; --blue-band:#3D5AE6; --link:#2A43C4; --sign:#F4C21B; --sign-ink:#141A2E; --ok:#1E8A55;
  --font:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --wrap:1200px; --gut:clamp(1.25rem,5vw,4rem);
  --ease:cubic-bezier(.65,0,.35,1);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#10152A; --paper-2:#1A2140; --ink:#EEF0F6; --muted:#A3AAC0;
    --rule:rgba(238,240,246,.15); --rule-strong:rgba(238,240,246,.32);
    --blue-band:#2C44BF; --link:#9DB0FF; --ok:#5FD39A;
  }
}
:root[data-theme="dark"]{
  --paper:#10152A; --paper-2:#1A2140; --ink:#EEF0F6; --muted:#A3AAC0;
  --rule:rgba(238,240,246,.15); --rule-strong:rgba(238,240,246,.32);
  --blue-band:#2C44BF; --link:#9DB0FF; --ok:#5FD39A;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{scroll-padding-top:calc(5rem + env(safe-area-inset-top,0px));-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;padding-bottom:env(safe-area-inset-bottom,0px)}
img,svg{display:block;max-width:100%}
a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--sign);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--sign);color:var(--sign-ink);padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem;top:calc(1rem + env(safe-area-inset-top,0px))}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* page transition: wipe from below, native cross-document view transitions */
@view-transition{navigation:auto}
::view-transition-old(root){animation:none}
::view-transition-new(root){animation:vt-wipe .62s var(--ease) both}
@keyframes vt-wipe{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@media (prefers-reduced-motion:reduce){::view-transition-new(root){animation:none}}

/* ---------- type ---------- */
.display{font-weight:760;font-stretch:76%;line-height:.95;letter-spacing:-.012em;text-wrap:balance}
.d-xl{font-size:clamp(2.9rem,8vw,7rem)}
.d-l{font-size:clamp(2.3rem,5.4vw,4.6rem)}
.d-m{font-size:clamp(1.9rem,3.8vw,3.2rem)}
.d-s{font-size:clamp(1.4rem,2.3vw,1.9rem);line-height:1.05}
.lede{font-size:clamp(1.08rem,1.5vw,1.28rem);color:var(--muted);max-width:52ch;line-height:1.55}
.small{font-size:.88rem;color:var(--muted)}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.wi{display:inline-block}
.h1-kicker{display:block;font-size:clamp(1rem,1.5vw,1.2rem);font-weight:650;font-stretch:90%;letter-spacing:0;line-height:1.3;margin-bottom:.9rem;color:var(--muted)}

.sign{display:inline-block;background:var(--sign);color:var(--sign-ink);font-weight:800;font-stretch:72%;font-size:clamp(.95rem,1.3vw,1.15rem);padding:.42rem .75rem .38rem;line-height:1.1}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.8rem 1.15rem;font-weight:700;font-stretch:88%;font-size:1rem;text-decoration:none;border:1.5px solid currentColor;color:var(--ink);transition:background .2s,color .2s,transform .2s}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn-sign{background:var(--sign);border-color:var(--sign);color:var(--sign-ink)}
.btn-sign:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn svg{width:14px;height:14px}
.band-blue .btn{color:#fff}
.band-blue .btn:hover{background:#fff;color:var(--blue)}
.band-blue .btn-sign{color:var(--sign-ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:clamp(1.6rem,3vw,2.2rem)}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--rule);padding-top:env(safe-area-inset-top,0px)}
.head-in{display:flex;align-items:center;gap:1.5rem;height:4.25rem}
.brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);font-weight:780;font-stretch:80%;font-size:1.35rem;line-height:1;flex:none}
.brand .ico{width:1.05rem;height:1.05rem;color:var(--blue)}
.brand small{font-weight:600;font-stretch:88%;font-size:.8rem;color:var(--muted);border-left:1px solid var(--rule-strong);padding-left:.6rem;margin-left:.1rem;line-height:1.15;max-width:9rem}
.nav{margin-left:auto;display:flex;align-items:center;gap:.2rem}
.nav a,.nav .dd-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .7rem;white-space:nowrap;text-decoration:none;color:var(--ink);font-weight:600;font-stretch:90%;font-size:.95rem}
.nav a:hover,.nav .dd-btn:hover{color:var(--blue)}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--blue)}
.nav .btn-sign{margin-left:.6rem;padding:.55rem .9rem}
.nav .btn-sign:hover{color:var(--paper)}
.dd{position:relative}
.dd-btn svg{width:10px;height:10px;transition:transform .2s}
.dd-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.dd-menu{position:absolute;top:calc(100% + .4rem);left:0;min-width:17rem;background:var(--paper);border:1px solid var(--rule-strong);padding:.4rem;display:none}
.dd-menu.open{display:block}
.dd-menu a{display:block;padding:.65rem .75rem}
.dd-menu a span{display:block;font-weight:400;font-size:.85rem;color:var(--muted);font-stretch:100%}
.menu-btn{display:none;margin-left:auto;width:44px;height:44px;align-items:center;justify-content:center}
.menu-btn svg{width:22px;height:22px}
/* janela: acende a luz (modo escuro) */
.theme-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center;color:var(--ink);flex:none;margin-left:.2rem}
.js .theme-btn{display:inline-flex}
.theme-btn:hover{color:var(--blue)}
.theme-btn svg{width:24px;height:26px;overflow:visible}
.theme-btn .wp{fill:#B9CEFF;transition:fill .25s var(--ease),filter .25s var(--ease)}
.theme-btn[aria-pressed="true"] .wp{fill:var(--sign);filter:drop-shadow(0 0 3px rgba(244,194,27,.85))}
:root[data-theme="dark"]{color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}
@media (max-width:1080px){
  .menu-btn{display:inline-flex;margin-left:0;order:2}
  .theme-btn{margin-left:auto;order:1}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;padding:.6rem var(--gut) 1.2rem;gap:0;max-height:calc(100dvh - 4.25rem);overflow:auto}
  .nav.open{display:flex}
  .nav a,.nav .dd-btn{padding:.8rem 0;border-bottom:1px solid var(--rule);width:100%;justify-content:space-between}
  .dd-menu{position:static;border:0;padding:0 0 .4rem 1rem;min-width:0}
  .nav .btn-sign{margin:1rem 0 0;justify-content:center}
  .brand small{display:none}
}

/* ---------- sections ---------- */
.sec{padding:clamp(4rem,9vw,7.5rem) 0}
.sec-tight{padding:clamp(3rem,6vw,4.5rem) 0}
.band-blue{background:var(--blue-band);color:#fff;--muted:rgba(255,255,255,.78);--rule:rgba(255,255,255,.22);--rule-strong:rgba(255,255,255,.45);--link:#fff}
.band-2{background:var(--paper-2)}
.sec-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;margin-bottom:clamp(2rem,5vw,3.5rem)}
.sec-head .lede{margin:0}
.split2{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,6rem);align-items:center}
@media (max-width:860px){.sec-head,.split2{grid-template-columns:minmax(0,1fr)}}

/* reveal */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

/* ---------- hero (home) ---------- */
.hero{padding:clamp(3.5rem,9vw,7rem) 0 clamp(3rem,7vw,5.5rem);position:relative}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:end}
.hero h1{margin-top:1.4rem;color:var(--blue)}
.hero h1 .h1-kicker{color:var(--muted)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hero h1{color:#fff}}
:root[data-theme="dark"] .hero h1{color:#fff}
.hero .lede{margin-top:1.4rem}
.hero-search{border-top:1px solid var(--rule-strong);padding-top:1.2rem}
.hero-search .label{font-size:.88rem;color:var(--muted);margin-bottom:.8rem;display:flex;justify-content:space-between;gap:1rem}
.hero-meta{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;margin-top:1.4rem}
.hero-meta div{font-size:.9rem;color:var(--muted)}
.hero-meta strong{display:block;color:var(--ink);font-weight:700;font-stretch:85%;font-size:1.25rem}
@media (max-width:860px){.hero-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- search pills ---------- */
.q{display:flex;align-items:center;gap:.7rem;border:1px solid var(--rule-strong);border-radius:99px;padding:.65rem 1.05rem;margin-bottom:.55rem;min-height:2.9rem;background:var(--paper);color:var(--ink)}
.q svg{width:16px;height:16px;flex:none;color:var(--muted)}
.q .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q.big{font-size:1.15rem;min-height:3.4rem;padding:.8rem 1.2rem}
.caret{display:inline-block;width:2px;height:1.05em;background:currentColor;vertical-align:-.15em;margin-left:1px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.caret{animation:none}}

/* search generator */
.gen{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start;margin:2rem 0}
.gen-in label{display:block;font-weight:650;font-stretch:90%;margin-bottom:.5rem}
.gen-in input{width:100%;border:0;border-bottom:2px solid var(--ink);background:transparent;font-size:clamp(1.6rem,3vw,2.3rem);font-weight:760;font-stretch:76%;padding:.2rem 0 .3rem;outline:none}
.gen-in input:focus{border-color:var(--blue)}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}
.chip{border:1px solid var(--rule-strong);padding:.3rem .65rem;font-size:.86rem;border-radius:99px}
.chip:hover,.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.gen-out .gh{font-size:.88rem;font-weight:600;color:var(--muted);margin:0 0 .5rem}
.gen-out .grp+.grp{margin-top:1rem}
@media (max-width:760px){.gen{grid-template-columns:minmax(0,1fr)}}

/* ---------- chat mock ---------- */
.chat{background:var(--paper);color:var(--ink);border:1px solid var(--rule-strong);border-radius:18px;padding:1.1rem;display:flex;flex-direction:column;gap:.85rem;box-shadow:0 30px 60px -34px rgba(20,26,46,.45);max-width:540px;width:100%;margin-left:auto}
.chat-top{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;color:var(--muted);padding:0 .2rem}
.chat-top .tag{border:1px solid var(--rule-strong);border-radius:99px;padding:.1rem .55rem}
.bubble{border-radius:14px;padding:.8rem 1rem;font-size:.97rem;line-height:1.5}
.bubble.user{align-self:flex-end;background:var(--blue);color:#fff;max-width:88%;min-height:2.9rem}
.bubble.ai{background:var(--paper-2)}
.bubble.ai ol{margin:.55rem 0 .55rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}
.hl{background:var(--sign);color:var(--sign-ink);padding:0 .2rem;border-radius:3px}
.src{font-size:.78rem;color:var(--muted)}
.chat-input{display:flex;align-items:center;gap:.6rem;border:1px solid var(--rule-strong);border-radius:12px;padding:.55rem .6rem .55rem .9rem;font-size:.9rem;color:var(--muted)}
.chat-input span{flex:1}
.chat-input i{width:28px;height:28px;border-radius:8px;background:var(--ink);display:grid;place-items:center}
.chat-input i svg{width:14px;height:14px;color:var(--paper)}
.js .chat [data-ans]{opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s}
.js .chat [data-ans].show{opacity:1;transform:none}

/* ---------- rows ---------- */
.rows{border-top:1px solid var(--rule)}
.row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2rem;padding:1.3rem 0;border-bottom:1px solid var(--rule);align-items:baseline}
.row h3{font-weight:720;font-stretch:84%;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.15}
.row p{color:var(--muted);max-width:54ch}
@media (max-width:760px){.row{grid-template-columns:1fr;gap:.35rem}}

/* ---------- map ---------- */
.area-pick{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.2rem 1rem;margin-bottom:1.2rem}
.area-pick label{grid-column:1/-1;font-weight:650;font-stretch:90%;font-size:.95rem}
.area-pick .small{margin:0 0 .55rem;white-space:nowrap}
.sel{position:relative}
.sel::after{content:"";position:absolute;right:.2rem;top:50%;width:.6rem;height:.6rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.sel select{appearance:none;-webkit-appearance:none;width:100%;background:transparent;border:0;border-bottom:2px solid currentColor;border-radius:0;
  font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:760;font-stretch:76%;line-height:1.15;padding:.15rem 2rem .3rem 0;color:inherit;cursor:pointer}
.sel select:focus-visible{outline:2px solid var(--sign);outline-offset:4px}
.sel option{color:#141A2E;background:#fff;font-size:1rem;font-weight:500}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.4rem,1fr));gap:6px}
.tiles[hidden]{display:none}
.tile{min-height:3.1rem;border:1px solid var(--rule-strong);border-radius:4px;display:flex;align-items:flex-end;padding:.4rem .5rem;font-size:.84rem;font-weight:650;font-stretch:84%;line-height:1.1;text-align:left;color:inherit;transition:background .2s,color .2s,border-color .2s}
.tile:hover{background:rgba(255,255,255,.12)}
.band-2 .tile:hover,.sec:not(.band-blue) .tile:hover{background:var(--paper-2)}
.tile[aria-pressed="true"]{background:var(--sign)!important;border-color:var(--sign);color:var(--sign-ink)}
.tile-res{border-style:dashed;opacity:.72}
.tile-res::after{content:"reservado";position:absolute;top:.35rem;right:.45rem;font-size:.62rem;font-weight:600;opacity:.8}
.tile.tile-res{position:relative}
.map-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.1rem;min-height:3rem}
.map-foot .small{max-width:32ch}

/* ---------- fronts ---------- */
.fronts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem)}
.front{border-top:3px solid var(--blue);padding-top:1.1rem;display:flex;flex-direction:column}
.front h3{font-weight:740;font-stretch:78%;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.02;margin-bottom:.7rem}
.front p{color:var(--muted)}
.front a.more{margin-top:1rem;font-weight:650;text-decoration:none;display:inline-flex;gap:.4rem;align-items:center}
.front a.more:hover{text-decoration:underline}
@media (max-width:860px){.fronts{grid-template-columns:1fr}}
.products{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 2.4rem;margin-top:1rem}
.plogo{height:clamp(22px,2.2vw,28px);width:auto}
.plogo.w{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .plogo.i{display:none}:root:not([data-theme="light"]) .plogo.w{display:block}}
:root[data-theme="dark"] .plogo.i{display:none}
:root[data-theme="dark"] .plogo.w{display:block}
.band-blue .plogo.i{display:none}.band-blue .plogo.w{display:block}
.widget-products{border-top:1px solid var(--rule);padding-top:1rem;margin:2rem 0}

/* ---------- steps ---------- */
.steps-box{position:relative}
.steps-line{position:absolute;top:7px;left:0;right:0;height:2px;background:var(--rule)}
.steps-fill{position:absolute;inset:0;background:var(--sign);transform-origin:left;transition:transform 1.6s var(--ease)}
.js .steps-box:not(.in) .steps-fill{transform:scaleX(0)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2rem;position:relative}
.step{position:relative;padding-top:2rem}
.step::before{content:"";position:absolute;top:0;left:0;width:16px;height:16px;border-radius:50%;background:var(--sign);box-shadow:0 0 0 4px var(--paper)}
.band-blue .step::before{box-shadow:0 0 0 4px var(--blue-band)}
.step .n{font-size:.82rem;font-weight:600;color:var(--muted)}
.step h3{font-weight:720;font-stretch:80%;font-size:clamp(1.2rem,1.8vw,1.5rem);line-height:1.1;margin:.2rem 0 .45rem}
.step p{font-size:.95rem;color:var(--muted)}
@media (max-width:860px){
  .steps{grid-template-columns:1fr;gap:1.4rem;padding-left:2rem}
  .steps-line{top:0;bottom:0;left:7px;right:auto;width:2px;height:auto}
  .steps-fill{transform-origin:top}
  .js .steps-box:not(.in) .steps-fill{transform:scaleY(0)}
  .step{padding-top:0}.step::before{left:-2rem;top:.25rem}
}

/* ---------- report ---------- */
.report{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(1.4rem,3vw,3rem)}
.panel{border-top:1px solid var(--rule-strong);padding-top:.9rem}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;font-size:.88rem;color:var(--muted);font-weight:600}
.big{font-weight:760;font-stretch:76%;font-size:clamp(2.2rem,3.6vw,3.2rem);line-height:1}
.delta{color:var(--ok)}
.chart{position:relative}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .grid line{stroke:var(--rule)}
.chart .axis text{fill:var(--muted);font-size:11px;font-family:var(--font)}
.tip{position:absolute;top:0;pointer-events:none;background:var(--ink);color:var(--paper);font-size:.78rem;padding:.3rem .55rem;border-radius:6px;transform:translate(-50%,-125%);white-space:nowrap;opacity:0;transition:opacity .15s}
.side{display:flex;flex-direction:column;gap:1.5rem}
.ring-wrap{display:flex;align-items:center;gap:1.1rem}
.ring{width:92px;height:92px;flex:none}
.ring circle{fill:none;stroke-width:9}
.ring .bg{stroke:var(--paper-2)}
.ring .fg{stroke:var(--blue);stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1)}
.ring-txt{font-size:.9rem;color:var(--muted)}
.ring-txt strong{display:block;color:var(--ink);font-size:1.5rem;font-weight:760;font-stretch:76%}
.rank{width:100%;border-collapse:collapse;font-size:.92rem}
.rank th{text-align:left;font-weight:600;color:var(--muted);font-size:.8rem;padding:.3rem 0}
.rank td{padding:.45rem 0;border-top:1px solid var(--rule)}
.rank td+td,.rank th+th{text-align:right;width:3.5rem}
.rank .up{font-weight:750}
.illus{margin-top:1rem;font-size:.84rem;color:var(--muted)}
@media (max-width:860px){.report{grid-template-columns:1fr}}

/* ---------- reviews widget ---------- */
.reviews{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(1.5rem,4vw,3.5rem);margin:2rem 0;align-items:start}
.score{font-weight:760;font-stretch:76%;font-size:clamp(3rem,6vw,4.6rem);line-height:.9}
.stars{display:flex;gap:2px;margin:.5rem 0}
.stars svg{width:18px;height:18px;color:var(--sign)}
.bars{margin-top:1rem;display:flex;flex-direction:column;gap:.35rem}
.bar{display:grid;grid-template-columns:1.2rem 1fr 2rem;gap:.6rem;align-items:center;font-size:.82rem;color:var(--muted)}
.bar i{height:6px;background:var(--paper-2);border-radius:3px;overflow:hidden;position:relative}
.bar i b{position:absolute;inset:0 auto 0 0;background:var(--blue);border-radius:3px}
.rev{border-top:1px solid var(--rule);padding:1rem 0}
.rev p{margin:.3rem 0}
.rev .who{font-size:.85rem;color:var(--muted)}
.rev details{margin-top:.5rem}
.rev summary{cursor:pointer;font-weight:650;font-size:.92rem;color:var(--link)}
.rev .reply{margin-top:.5rem;padding:.7rem .9rem;border-left:3px solid var(--blue);background:var(--paper-2);font-size:.95rem}
@media (max-width:760px){.reviews{grid-template-columns:1fr}}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding:1.15rem 0;font-weight:680;font-stretch:88%;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:28px;height:28px;border:1px solid var(--rule-strong);border-radius:50%;position:relative}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform .25s}
.faq summary .pm::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] .pm::after{transform:translate(-50%,-50%) rotate(0)}
.faq .ans{padding:0 3rem 1.3rem 0;color:var(--muted);max-width:68ch}
.faq .ans p+p{margin-top:.6rem}

/* ---------- inner pages ---------- */
.crumbs{font-size:.86rem;color:var(--muted);margin-bottom:1.4rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem}
.crumbs li+li::before{content:"/";margin-right:.35rem;opacity:.5}
.crumbs a{color:inherit;text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.page-hero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem)}
.page-hero .lede{margin-top:1.3rem}
.page-hero.band-blue .crumbs{color:rgba(255,255,255,.75)}

.layout{display:grid;grid-template-columns:minmax(0,1fr) 17rem;gap:clamp(2rem,5vw,5rem);align-items:start}
.aside{position:sticky;top:6rem;font-size:.92rem}
.aside h2{font-size:.82rem;font-weight:650;color:var(--muted);margin-bottom:.6rem}
.aside ol,.aside ul{list-style:none;border-left:1px solid var(--rule)}
.aside li a{display:block;padding:.3rem 0 .3rem .9rem;color:var(--ink);text-decoration:none;line-height:1.35}
.aside li a:hover,.aside li a.on{color:var(--blue);box-shadow:inset 2px 0 0 var(--blue)}
.aside .box+.box{margin-top:2rem}
@media (max-width:960px){.layout{grid-template-columns:minmax(0,1fr)}.aside{position:static;border-top:1px solid var(--rule);padding-top:2rem}.aside .toc{display:none}}

/* prose */
.prose{max-width:70ch;min-width:0}
.prose dfn,.def dfn{font-style:normal;font-weight:760;font-stretch:84%}
.prose>*+*{margin-top:1.05rem}
.prose h2{font-weight:760;font-stretch:78%;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.02;margin-top:3rem;letter-spacing:-.008em}
.prose h3{font-weight:720;font-stretch:86%;font-size:clamp(1.2rem,1.8vw,1.4rem);line-height:1.2;margin-top:2rem}
.prose ul,.prose ol{padding-left:1.25rem}
.prose li+li{margin-top:.45rem}
.prose li::marker{color:var(--blue)}
.prose strong{font-weight:680}
.prose blockquote{border-left:3px solid var(--sign);padding-left:1rem;color:var(--muted)}
.prose .widget{margin:2.2rem 0}
.prose-lead{font-size:1.15rem}

.art-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.9rem;color:var(--muted);margin-top:1.4rem}
.cta-box{background:var(--blue-band);color:#fff;padding:clamp(1.6rem,3vw,2.4rem);margin-top:3rem;--muted:rgba(255,255,255,.8)}
.cta-box h2{margin:0!important;color:#fff}
.cta-box p{color:var(--muted);margin-top:.6rem;max-width:52ch}
.cta-box .btn-row{margin-top:1.2rem}
.cta-box .btn{color:#fff}.cta-box .btn:hover{background:#fff;color:var(--blue)}
.cta-box .btn-sign{color:var(--sign-ink)}

/* blog list */
.posts{border-top:1px solid var(--rule)}
.post{display:grid;grid-template-columns:9rem minmax(0,1fr) auto;gap:1.5rem;padding:1.6rem 0;border-bottom:1px solid var(--rule);align-items:baseline;text-decoration:none;color:inherit}
.post time{font-size:.88rem;color:var(--muted)}
.post h2,.post h3{font-weight:730;font-stretch:80%;font-size:clamp(1.35rem,2.4vw,1.9rem);line-height:1.08;color:var(--ink)}
.post p{color:var(--muted);margin-top:.45rem;max-width:62ch}
.post .arr{width:40px;height:40px;border:1px solid var(--rule-strong);border-radius:50%;display:grid;place-items:center;transition:background .2s,color .2s}
.post .arr svg{width:14px;height:14px}
.post:hover h2,.post:hover h3{color:var(--blue)}
.post:hover .arr{background:var(--ink);color:var(--paper)}
@media (max-width:760px){.post{grid-template-columns:1fr;gap:.4rem}.post .arr{display:none}}

/* glossary */
.az{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:2rem}
.az a,.az span{width:2.3rem;height:2.3rem;display:grid;place-items:center;border:1px solid var(--rule-strong);text-decoration:none;color:var(--ink);font-weight:700;font-stretch:85%}
.az span{opacity:.3}
.az a:hover{background:var(--ink);color:var(--paper)}
.gl-letter{font-weight:780;font-stretch:72%;font-size:clamp(2.6rem,5vw,4rem);line-height:1;color:var(--blue);margin:2.5rem 0 .5rem}
.terms{border-top:1px solid var(--rule)}
.term-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:2rem;padding:1.2rem 0;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit}
.term-row h3{font-weight:730;font-stretch:80%;font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.1;color:var(--ink)}
.term-row h3 small{display:block;font-size:.85rem;font-weight:500;font-stretch:100%;color:var(--muted);margin-top:.25rem}
.term-row p{color:var(--muted)}
.term-row:hover h3{color:var(--blue)}
@media (max-width:760px){.term-row{grid-template-columns:1fr;gap:.4rem}}
.def{font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.35;font-weight:500;font-stretch:92%;border-left:4px solid var(--sign);padding-left:1.2rem;max-width:40ch;color:var(--ink)}
.tags{display:flex;flex-wrap:wrap;gap:.45rem}
.tags a{border:1px solid var(--rule-strong);padding:.35rem .75rem;border-radius:99px;text-decoration:none;color:var(--ink);font-size:.9rem}
.tags a:hover{background:var(--ink);color:var(--paper)}

/* form */
.form{display:grid;gap:1.1rem;max-width:40rem}
.field label{display:block;font-weight:650;font-stretch:90%;margin-bottom:.35rem}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--rule-strong);background:var(--paper);padding:.8rem .9rem;border-radius:0;font-size:1rem}
.field input:focus,.field textarea:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}
.field textarea{min-height:8rem;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media (max-width:640px){.two{grid-template-columns:1fr}}
.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--muted)}
.check input{margin-top:.3rem;accent-color:var(--blue)}
.form-note{font-size:.86rem;color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-ok{display:none;border-left:4px solid var(--ok);padding:.8rem 1rem;background:var(--paper-2)}

/* big cta */
.big-cta{padding:clamp(4.5rem,10vw,8rem) 0}
.big-cta .display{max-width:14ch}

/* footer */
.site-foot{background:var(--ink);color:var(--paper);padding:clamp(3.5rem,7vw,5.5rem) 0 calc(2rem + env(safe-area-inset-bottom,0px));--muted:rgba(247,247,244,.65);--rule:rgba(247,247,244,.16)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .site-foot{background:#0A0E1D;color:#EEF0F6}}
:root[data-theme="dark"] .site-foot{background:#0A0E1D;color:#EEF0F6}
.foot-grid{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:2rem}
.site-foot .brand{color:inherit}
.site-foot .brand .ico{color:var(--sign)}
.site-foot h2{font-size:.82rem;font-weight:650;color:var(--muted);margin-bottom:.8rem}
.site-foot ul{list-style:none;display:flex;flex-direction:column;gap:.45rem}
.site-foot a{color:inherit;text-decoration:none}
.site-foot a:hover{text-decoration:underline}
.site-foot p{color:var(--muted);max-width:36ch;margin-top:1rem;font-size:.95rem}
.site-foot .plogo.i{display:none}.site-foot .plogo.w{display:block}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--rule);font-size:.85rem;color:var(--muted)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}}

/* =====================================================================
   Rua: fotografia, letreiro "Vende-se" e placa toponímica
   ===================================================================== */
:root{--azulejo:#1E3A9E;--placa-bg:#FBFAF5}

/* fotografia base */
.ph{width:100%;height:100%;object-fit:cover;background:var(--paper-2)}
.fig{margin:0}
.fig figcaption,.hero-fig figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-top:.7rem}
.cred{font-size:.78rem;color:var(--muted);line-height:1.3}

/* placa toponímica: azulejo branco com moldura azul dupla, letra larga */
.placa{display:inline-block;background:var(--placa-bg);color:var(--azulejo);border:2px solid var(--azulejo);
  box-shadow:inset 0 0 0 2px var(--placa-bg),inset 0 0 0 3.5px var(--azulejo);
  font-weight:680;font-stretch:118%;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;line-height:1;
  padding:.5rem .75rem .45rem;white-space:nowrap}

/* ---------- hero ---------- */
.hero{padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,6vw,5rem)}
.hero-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center}
.hero h1{margin-top:0}
.hero-meta{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--rule);padding-top:1.2rem}
.hero-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--paper-2)}
.hero-photo .ph{position:absolute;inset:0}
.hero-fig figcaption .now{font-size:.88rem;color:var(--muted)}
.hero-fig figcaption .cred{margin-left:auto}
@media (max-width:860px){
  .hero-grid{grid-template-columns:minmax(0,1fr);row-gap:0}
  .hero-txt{display:contents}
  .hero-fig{order:2;margin:1.6rem calc(var(--gut) * -1) 0}
  .hero-fig figcaption{padding:0 var(--gut)}
  .hero-photo{aspect-ratio:1/1}
  .hero .lede,.hero .btn-row,.hero-meta{order:3}
  .hero-meta{order:4}
}

/* letreiro pendurado */
.letreiro{position:absolute;top:30.5%;left:50%;width:min(64%,26rem);margin-left:calc(min(64%,26rem) / -2);padding-top:2.4rem;transform-origin:50% 0}
.letreiro::before,.letreiro::after{content:"";position:absolute;top:0;height:2.55rem;width:2px;background:#1b1b1b;opacity:.85}
.letreiro::before{left:14%}.letreiro::after{right:14%}
.letreiro-in{position:relative;container-type:inline-size;background:var(--sign);color:#141A2E;padding:clamp(.8rem,1.6vw,1.2rem) clamp(.8rem,1.6vw,1.2rem) clamp(.85rem,1.6vw,1.2rem);
  box-shadow:0 22px 30px -18px rgba(0,0,0,.65),inset 0 0 0 1px rgba(0,0,0,.06)}
.letreiro-in::before,.letreiro-in::after{content:"";position:absolute;top:.45rem;width:.42rem;height:.42rem;border-radius:50%;background:#141A2E;opacity:.75}
.letreiro-in::before{left:calc(14% - 3px)}.letreiro-in::after{right:calc(14% - 3px)}
.letreiro b{display:block;text-align:center;text-transform:uppercase;font-weight:880;font-stretch:62%;line-height:.8;letter-spacing:.01em;
  font-size:27cqi;white-space:nowrap;padding:.25rem 0 .12em}
.letreiro .tel{display:flex;align-items:flex-start;gap:.5rem;margin-top:.55rem;background:#fff;color:#141A2E;padding:.55rem .7rem;
  font-weight:700;font-stretch:84%;font-size:clamp(.9rem,1.25vw,1.08rem);line-height:1.2;min-height:calc(2.4em + 1.1rem)}
.letreiro .tel svg{width:15px;height:15px;flex:none;margin-top:.1rem;color:#141A2E}
@media (max-width:860px){.letreiro{width:68%;margin-left:-34%}}

/* balanço: amortecido a partir do varão da varanda */
.js [data-swing]{transform:rotate(-8deg)}
.js [data-swing].swing{animation:swing 2.6s cubic-bezier(.25,.6,.3,1) both}
@keyframes swing{0%{transform:rotate(-8deg)}22%{transform:rotate(5.5deg)}42%{transform:rotate(-3.2deg)}60%{transform:rotate(1.8deg)}76%{transform:rotate(-.9deg)}89%{transform:rotate(.35deg)}100%{transform:rotate(0)}}
.js [data-swing].hung{transform:none;animation:none}
.js [data-swing].hung:hover{animation:nudge 1.4s cubic-bezier(.25,.6,.3,1)}
@keyframes nudge{0%{transform:rotate(0)}25%{transform:rotate(2.5deg)}50%{transform:rotate(-1.4deg)}75%{transform:rotate(.6deg)}100%{transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){.js [data-swing],.js [data-swing].swing,.js [data-swing].hung:hover{transform:none;animation:none}}

/* ---------- rua de concelhos ---------- */
.rua{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,1.6vw,1.4rem);margin-bottom:clamp(3rem,7vw,5.5rem);align-items:start}
.rua-fig{margin:0;position:relative}
.rua-fig .ph{aspect-ratio:3/4;height:auto}
.rua-fig:nth-child(2){margin-top:clamp(1.5rem,4vw,3.5rem)}
.rua-fig:nth-child(4){margin-top:clamp(.8rem,2vw,1.8rem)}
.rua-fig .placa{position:absolute;left:.7rem;top:.7rem;max-width:calc(100% - 1.4rem);white-space:normal;line-height:1.25}
.rua-fig .cred{display:block;margin-top:.55rem}
@media (max-width:760px){
  .rua{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-left:calc(var(--gut) * -1);margin-right:calc(var(--gut) * -1);padding:0 var(--gut) .5rem;scrollbar-width:none}
  .rua::-webkit-scrollbar{display:none}
  .rua-fig{flex:0 0 72%;scroll-snap-align:start;margin-top:0!important}
}

/* ---------- equipa ---------- */
.equipa{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.eq-photos{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);grid-template-rows:auto auto auto;gap:clamp(.7rem,1.4vw,1.1rem)}
.eq-fig{margin:0;overflow:hidden}
.eq-fig .ph{height:100%}
.eq-1{grid-row:1/3}
.eq-2,.eq-3{aspect-ratio:1/1}
.eq-cap{grid-column:1/-1}
@media (max-width:860px){.equipa{grid-template-columns:minmax(0,1fr)}}

/* ---------- páginas interiores ---------- */
.ph-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(2rem,5vw,5rem);align-items:end}
.ph-fig .ph{aspect-ratio:4/5;height:auto}
.band-blue .cred{color:rgba(255,255,255,.75)}
@media (max-width:860px){.ph-grid{grid-template-columns:minmax(0,1fr)}.ph-fig .ph{aspect-ratio:3/2}}
/* verificador de presença local */
.vist{max-width:52rem}
.vist-top{display:grid;grid-template-columns:minmax(0,1fr) 16rem;gap:clamp(1.5rem,4vw,3rem);align-items:end;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}
.vist-score{text-align:right}
.vist-num{font-weight:800;font-stretch:72%;font-size:3.2rem;line-height:1;color:var(--blue)}
.vist-num small{font-size:1.1rem;color:var(--muted);font-weight:600;font-stretch:90%;margin-left:.2rem}
.vist-bar{height:.6rem;background:var(--paper-2);border-radius:99px;overflow:hidden;margin:.6rem 0 .4rem}
.vist-bar i{display:block;height:100%;width:0;background:var(--blue);transition:width .5s var(--ease)}
.vist-sec{border:0;padding:1.6rem 0 .4rem;margin:0}
.vist-sec legend{padding:0;margin-bottom:.4rem;font-weight:760;font-stretch:78%;font-size:1.5rem;line-height:1.05}
.vq{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--rule)}
.vq-t{margin:0}
.vq .cx{font-weight:650}
.vq-btns{display:flex;gap:.4rem}
.vq-btn{border:1.5px solid var(--rule-strong);padding:.45rem .9rem;font-weight:700;font-stretch:88%;border-radius:99px;min-width:4.2rem;transition:background .15s,color .15s,border-color .15s}
.vq-btn:hover{border-color:var(--ink)}
.vq-btn[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.vq-btn[data-a="1"][aria-pressed="true"]{background:var(--ok);border-color:var(--ok);color:#fff}
.vist-out{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start;margin-top:2.5rem}
.vist-out[hidden]{display:none}
.vist-sign{position:relative;padding-top:2.4rem;transform-origin:50% 0}
.vist-sign::before,.vist-sign::after{content:"";position:absolute;top:0;height:2.55rem;width:2px;background:#1b1b1b;opacity:.85}
.vist-sign::before{left:18%}.vist-sign::after{right:18%}
.vist-sign-in{background:var(--sign);color:#141A2E;padding:1.4rem 1.4rem 1.2rem;text-align:center;box-shadow:0 14px 30px -18px rgba(0,0,0,.5)}
.vist-band{font-weight:800;font-stretch:72%;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1;text-transform:uppercase;letter-spacing:.01em}
.vist-big{font-weight:800;font-stretch:72%;font-size:clamp(3.4rem,7vw,5rem);line-height:1;margin:.4rem 0 .8rem}
.vist-big small{font-size:1.2rem;font-weight:700;margin-left:.15rem}
.vist-next ol{padding-left:1.25rem;margin-top:1rem}
.vist-next li{margin-top:.7rem}
.vist-next li::marker{color:var(--blue);font-weight:700}
.vist-next .btn-row{margin-top:1.4rem}
.vist-sign.swing{animation:swing 2.4s var(--ease) both}
@media (max-width:760px){.vist-top{grid-template-columns:1fr}.vist-score{text-align:left}.vq{grid-template-columns:1fr}.vist-out{grid-template-columns:1fr}.vist-sign{max-width:22rem}}
@media (prefers-reduced-motion:reduce){.vist-sign.swing{animation:none}}

/* autores e página sobre */
.author-photo{margin:0;overflow:hidden;border-radius:50%;flex:none}
.author-photo .ph{aspect-ratio:1;height:auto;width:100%}
.author-box{display:flex;gap:1.4rem;align-items:flex-start;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--rule)}
.author-box .author-photo{width:6rem}
.author-box h2{font-size:1.25rem!important;font-weight:730;font-stretch:84%;margin-top:.1rem!important}
.author-box h2 a{color:var(--ink);text-decoration:none}
.author-box h2 a:hover{color:var(--blue)}
.author-box p+p{margin-top:.4rem}
.author-hero{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start;margin-top:1rem}
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.person{display:block;text-decoration:none;color:inherit}
.person-photo{margin:0 0 1rem;overflow:hidden;aspect-ratio:4/5;max-width:22rem}
.person-photo .ph{height:100%;transition:transform .6s var(--ease)}
.person:hover .person-photo .ph{transform:scale(1.03)}
.person h3{font-weight:730;font-stretch:84%;font-size:1.4rem;line-height:1.1}
.person:hover h3{color:var(--blue)}
.person p+p{margin-top:.5rem}
.eq-photos-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.7rem,1.4vw,1.1rem);margin-top:2.5rem}
.eq-photos-row .ph{aspect-ratio:4/3;height:auto}
@media (max-width:760px){.author-hero{grid-template-columns:1fr}.author-hero .author-photo{width:10rem}.eq-photos-row{grid-template-columns:1fr}.author-box{flex-direction:column}}
.art-fig{margin-top:clamp(2rem,4vw,3rem)}
.art-fig .ph{aspect-ratio:21/9;height:auto}
@media (max-width:760px){.art-fig .ph{aspect-ratio:4/3}}

/* blog: miniatura */
.post{grid-template-columns:9rem minmax(0,1fr) 13rem;align-items:start}
.post-img{display:block;overflow:hidden;aspect-ratio:4/3}
.post-img .ph{transition:transform .6s var(--ease)}
.post:hover .post-img .ph{transform:scale(1.04)}
@media (max-width:760px){.post{grid-template-columns:1fr}.post-img{order:-1;aspect-ratio:16/9}}

/* ---------- cta final ---------- */
.cta-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.cta-sign{position:relative;min-height:18rem;border-top:6px solid #141A2E}
.cta-sign .letreiro{top:0;width:100%;left:0;margin-left:0;padding-top:3rem}
.cta-sign .letreiro b{font-size:21.5cqi}
.cta-sign .tel{justify-content:center;min-height:0;text-transform:none}
@media (max-width:860px){.cta-grid{grid-template-columns:minmax(0,1fr)}.cta-sign{max-width:24rem;min-height:14rem}}

/* cursor do letreiro: só depois de a pesquisa estar escrita, colado ao texto */
.letreiro .tel .tq{flex:1;min-width:0}
.letreiro .tel .caret{margin-left:2px}
[data-typer].typing .caret{visibility:hidden}

/* telemóvel: menos movimento (sem revelação ao scroll, sem balanço, sem transição de página) */
@media (max-width:760px){
  .js .rv{opacity:1;transform:none;transition:none}
  .js [data-swing],.js [data-swing].swing{transform:none;animation:none}
  ::view-transition-new(root){animation:none}
  .post:hover .post-img .ph{transform:none}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- dropdown de área geográfica ---------- */
.sel.ap::after{display:none}
.ap-btn{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;text-align:left;border-bottom:2px solid currentColor;
  font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:760;font-stretch:76%;line-height:1.15;padding:.15rem 0 .3rem;color:inherit}
.ap-btn:hover .ap-chev{transform:translateY(2px)}
.ap-chev{width:1.1rem;height:1.1rem;flex:none;transition:transform .25s var(--ease)}
.ap.open .ap-chev{transform:rotate(180deg)}
.ap-pop{position:absolute;z-index:30;top:calc(100% + .5rem);left:0;width:min(34rem,calc(100vw - 2 * var(--gut)));
  background:var(--paper);color:var(--ink);border:1px solid var(--ink);--muted:color-mix(in srgb,var(--ink) 60%,transparent);box-shadow:0 24px 40px -22px rgba(10,14,29,.55);
  transform-origin:top left;animation:ap-in .18s cubic-bezier(.2,.7,.2,1)}
@keyframes ap-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.ap-pop::before{content:"";display:block;height:5px;background:var(--sign)}
.ap-list{list-style:none;margin:0;padding:.4rem;max-height:min(34rem,70vh);overflow:auto;outline:none}
.ap-list ul{list-style:none;margin:0;padding:0;columns:2;column-gap:.4rem}
.ap-list ul li{break-inside:avoid}
.ap-h{font-size:.74rem;font-weight:650;color:var(--muted);padding:.8rem .6rem .35rem}
.ap-list>li:first-child .ap-h{padding-top:.35rem}
.ap-list [role="option"]{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;padding:.42rem .6rem;cursor:pointer;
  font-weight:650;font-stretch:86%;font-size:1.02rem;line-height:1.2;border-radius:3px}
.ap-list [role="option"] small{font-size:.78rem;font-weight:500;font-stretch:100%;color:var(--muted);font-variant-numeric:tabular-nums}
.ap-list [role="option"].on{background:var(--paper-2)}
.ap-list [role="option"][aria-selected="true"]{background:var(--sign);color:#141A2E}
.ap-list [role="option"][aria-selected="true"] small{color:rgba(20,26,46,.7)}
.ap-list:focus-visible [role="option"].on{box-shadow:inset 0 0 0 2px var(--blue)}
@media (max-width:640px){.ap-list ul{columns:1}.ap-pop{width:100%}}
@media (prefers-reduced-motion:reduce){.ap-pop{animation:none}.ap-chev{transition:none}.theme-btn .wp{transition:none}}

/* ---------- freguesias (Lisboa e Porto) ---------- */
.tile-sub{flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:.15rem;border-color:currentColor;position:relative}
.tile-sub small{font-size:.72rem;font-weight:500;font-stretch:100%;opacity:.8}
.tile-sub::after{content:"";position:absolute;top:.55rem;right:.55rem;width:.42rem;height:.42rem;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor;transform:rotate(45deg)}
.subzone[hidden]{display:none}
.subzone{animation:sub-in .25s cubic-bezier(.2,.7,.2,1)}
@keyframes sub-in{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.sub-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.sub-back{display:inline-flex;align-items:center;gap:.45rem;font-weight:650;font-stretch:90%;font-size:.95rem;padding:.35rem 0;color:inherit}
.sub-back svg{width:15px;height:15px;transition:transform .2s}
.sub-back:hover svg{transform:translateX(-3px)}
.sub-h{font-size:.78rem;font-weight:600;color:var(--muted);margin:1rem 0 .45rem;line-height:1.3}
.tile-all{border-style:dashed}
@media (prefers-reduced-motion:reduce),(max-width:760px){.subzone{animation:none}}

/* exclusividade: título alinhado ao topo com "Área geográfica"; texto e botão sempre na mesma linha */
.split-top{align-items:start}
.split-top>div:first-child>.display{margin-top:-.06em}
.map-foot{flex-wrap:nowrap;align-items:center}
.map-foot .small{flex:1;min-width:0;max-width:none}
.map-foot .small strong{color:#fff;font-weight:700}
.sec:not(.band-blue) .map-foot .small strong{color:var(--ink)}
.map-foot .btn{flex:none;white-space:nowrap}
@media (max-width:560px){.map-foot{flex-direction:column-reverse;align-items:stretch;gap:.8rem}.map-foot .btn{justify-content:center}}

/* ---------- páginas de zona ---------- */
.zone-status{display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem}
.st{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:650;font-stretch:90%}
.st::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:currentColor}
.st-disponivel{color:var(--ok)}.st-reservado{color:var(--muted)}.st-lista{color:#B7791F}
.zone-stats{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-2);padding:clamp(1.6rem,3.5vw,2.4rem) 0}
.zstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,3vw,3rem);margin:0}
.zstats div{display:flex;flex-direction:column;gap:.45rem}
.zstats dd{order:-1}
.zstats dd{margin:0;font-weight:780;font-stretch:72%;font-size:clamp(2rem,3.6vw,3rem);line-height:1;color:var(--blue);font-variant-numeric:tabular-nums}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .zstats dd{color:#9DB0FF}}
:root[data-theme="dark"] .zstats dd{color:#9DB0FF}
.zstats dt{font-size:.9rem;color:var(--muted);line-height:1.4;max-width:30ch}
.zone-stats .cred{margin-top:1.2rem}
.zone-stats .cred a{color:inherit}
@media (max-width:760px){.zstats{grid-template-columns:1fr;gap:1.2rem}}

/* barras (um só valor por linha, rótulo direto) */
.bars{margin:2.4rem 0;border-top:1px solid var(--rule-strong);padding-top:.9rem}
.bars figcaption{font-size:.95rem;margin-bottom:.9rem}
.bars table{width:100%;border-collapse:collapse}
.bars th{font-weight:600;font-size:.9rem;text-align:left;padding:.35rem 1rem .35rem 0;width:38%;line-height:1.25;vertical-align:middle}
.bars td{padding:.35rem 0;display:flex;align-items:center;gap:.6rem}
.bars .bar{display:block;height:14px;width:var(--w);background:var(--blue);border-radius:0 4px 4px 0;min-width:4px}
.bars .val{font-size:.85rem;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.bars tr.ref th{font-weight:760}
.bars tr.ref .bar{background:var(--ink)}
.bars tr+tr th,.bars tr+tr td{border-top:2px solid transparent}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bars .bar{background:#7C93FF}:root:not([data-theme="light"]) .bars tr.ref .bar{background:var(--ink)}}
:root[data-theme="dark"] .bars .bar{background:#7C93FF}
:root[data-theme="dark"] .bars tr.ref .bar{background:var(--ink)}
@media (max-width:560px){.bars th{width:44%;font-size:.84rem}}
.zq .grp+.grp{margin-top:1rem}
.zq .gh{font-size:.88rem;font-weight:600;color:var(--muted);margin:0 0 .5rem}

/* hub de zonas */
.zcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.4vw,2rem)}
.zcard{display:flex;flex-direction:column;text-decoration:none;color:inherit;border-top:3px solid var(--ink);padding-top:.9rem}
.zc-img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden}
.zc-img .ph{transition:transform .6s var(--ease)}
.zcard:hover .zc-img .ph{transform:scale(1.04)}
.zc-img .placa{position:absolute;left:.7rem;top:.7rem}
.zc-body{display:flex;flex-direction:column;gap:.45rem;padding-top:.9rem}
.zc-t{font-weight:740;font-stretch:80%;font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.1}
.zcard:hover .zc-t{color:var(--blue)}
.zc-s{font-size:.9rem;color:var(--muted)}
.zc-s strong{color:var(--ink);font-weight:700}
@media (max-width:900px){.zcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.zcards{grid-template-columns:1fr}}
.map-foot .small a{color:inherit;font-weight:650;white-space:nowrap}
