/* ============================================================
   Terrae · folha de estilos partilhada
   Tokens oficiais + componentes + ficha de imóvel + hub + feedback
   ============================================================ */
:root{
  --t-sand:#E4DDD3; --t-sage:#8A8E75; --t-sienna:#976E53; --t-ink:#1D1D1B;
  --t-sand-light:#ECE5DA; --t-sand-soft:#F2EDE5; --t-sage-dark:#6F7560; --t-sage-soft:#AEB29C;
  --t-sienna-dark:#795842; --t-ink-soft:#3F3D38; --t-ink-mute:#7A746A;
  --t-rule:#C8C0B2; --t-line:rgba(29,29,27,0.08);
  --f-display:'Arya','Cormorant Garamond',Georgia,serif;
  --f-body:'Manrope',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  --fs-mega:clamp(3rem,8vw,7rem); --fs-display:clamp(2.25rem,5vw,4.5rem);
  --fs-h1:clamp(1.875rem,3.2vw,2.75rem); --fs-h2:clamp(1.5rem,2.4vw,2rem);
  --fs-h3:1.375rem; --fs-h4:1.125rem; --fs-body:1rem; --fs-small:0.875rem;
  --fs-caption:0.75rem; --fs-micro:0.6875rem;
  --ls-mega:0.32em; --ls-wide:0.22em; --ls-kicker:0.18em; --ls-small:0.06em;
  --s-1:0.25rem; --s-2:0.5rem; --s-3:0.75rem; --s-4:1rem; --s-5:1.5rem;
  --s-6:2rem; --s-7:3rem; --s-8:4rem; --s-9:6rem; --s-10:8rem;
  --container:1240px; --container-narrow:760px; --container-wide:1480px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--f-body); font-weight:400; font-size:var(--fs-body);
  line-height:1.55; color:var(--t-ink); background:var(--t-sand);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;line-height:1.1}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--s-6)}
.container-wide{max-width:var(--container-wide);margin:0 auto;padding:0 var(--s-6)}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--s-6)}
.kicker{font-family:var(--f-body); font-size:var(--fs-caption); letter-spacing:var(--ls-kicker);
  text-transform:uppercase; font-weight:400; color:var(--t-sage-dark); padding-left:var(--ls-kicker)}
.lockup-h-svg{aspect-ratio:722.93/205.56;height:auto}
.mark{aspect-ratio:301.55/282.9;height:auto}

/* ---------- Header ---------- */
.site-header{position:sticky; top:0; z-index:50; background:rgba(228,221,211,0.92);
  backdrop-filter:saturate(140%) blur(6px); border-bottom:1px solid var(--t-line)}
.site-header__inner{max-width:var(--container-wide); margin:0 auto; padding:var(--s-4) var(--s-6);
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-6)}
.site-nav{display:flex; gap:var(--s-6); flex:1; justify-content:center}
.site-nav a{font-size:var(--fs-caption); letter-spacing:var(--ls-kicker); text-transform:uppercase;
  color:var(--t-ink-soft); padding-bottom:2px; border-bottom:1px solid transparent; transition:border-color .3s}
.site-nav a:hover,.site-nav a.is-active{border-color:var(--t-ink)}
.site-header__cta{display:inline-flex; align-items:center; gap:var(--s-2); font-size:var(--fs-caption);
  letter-spacing:var(--ls-small); text-transform:uppercase; font-weight:500;
  border:1px solid var(--t-ink); padding:var(--s-3) var(--s-4); transition:.3s; white-space:nowrap}
.site-header__cta:hover{background:var(--t-ink);color:var(--t-sand)}
.site-header__cta svg{width:14px;height:14px}
@media(max-width:920px){.site-nav{display:none}}

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; gap:var(--s-3); font-family:var(--f-body); font-weight:500;
  font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase;
  padding:var(--s-4) var(--s-5); border:1px solid var(--t-ink); color:var(--t-ink); transition:.3s; cursor:pointer; background:transparent}
.btn svg{width:14px;height:14px}
.btn:hover{background:var(--t-ink);color:var(--t-sand)}
.btn--filled{background:var(--t-ink);color:var(--t-sand)}
.btn--filled:hover{background:var(--t-sienna);border-color:var(--t-sienna)}
.btn--sand{border-color:var(--t-sand);color:var(--t-sand)}
.btn--sand:hover{background:var(--t-sand);color:var(--t-ink)}
.btn--sand-filled{background:var(--t-sand);color:var(--t-ink);border-color:var(--t-sand)}
.btn--sand-filled:hover{background:transparent;color:var(--t-sand)}

/* ---------- Section scaffolding ---------- */
.section{padding-top:var(--s-9);padding-bottom:var(--s-9)}
.section--tight{padding-top:var(--s-8);padding-bottom:var(--s-8)}
.section-head{margin-bottom:var(--s-7); max-width:var(--container-narrow)}
.section-head h2{font-size:var(--fs-h2); margin-top:var(--s-3)}
.lede-prose{max-width:65ch; line-height:1.7; color:var(--t-ink-soft)}
.lede-prose p+p{margin-top:var(--s-5)}
.split{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--s-8); align-items:start}
@media(max-width:880px){.split{grid-template-columns:1fr;gap:var(--s-7)}}
.note{font-size:var(--fs-caption); color:var(--t-ink-mute); margin-top:var(--s-5); line-height:1.6; max-width:62ch}
.div-caps{display:flex; align-items:center; justify-content:center; gap:var(--s-4); padding:var(--s-7) 0}
.div-caps__line{width:80px;height:1px;background:var(--t-rule)}
.div-caps__text{font-size:var(--fs-caption); letter-spacing:var(--ls-mega); text-transform:uppercase; color:var(--t-ink-soft); padding-left:var(--ls-mega)}

/* ---------- HUB · pesquisa hero ---------- */
.search-hero{position:relative; overflow:hidden; background:var(--t-ink); color:var(--t-sand)}
.search-hero__mark{position:absolute; top:50%; right:-14%; width:64%; transform:translateY(-50%); color:#fff; opacity:0.05; aspect-ratio:301.55/282.9; height:auto}
.search-hero__inner{max-width:var(--container); margin:0 auto; padding:var(--s-10) var(--s-6) var(--s-9); position:relative; z-index:2}
.search-hero .kicker{color:var(--t-sage-soft)}
.search-hero__title{font-size:var(--fs-display); margin:var(--s-4) 0 var(--s-5); max-width:18ch; color:var(--t-sand)}
.search-hero__lede{max-width:54ch; color:rgba(228,221,211,0.85); line-height:1.65; font-size:var(--fs-h4)}
.search-hero__meta{display:flex; gap:var(--s-7); flex-wrap:wrap; margin-top:var(--s-8); padding-top:var(--s-6); border-top:1px solid rgba(228,221,211,0.18)}
.search-hero__meta .m{display:flex; flex-direction:column; gap:var(--s-1)}
.search-hero__meta .m b{font-family:var(--f-display); font-size:var(--fs-h3); color:var(--t-sand); font-weight:400}
.search-hero__meta .m span{font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-sage-soft)}

/* ---------- HUB · briefing ---------- */
.brief-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:var(--s-8); align-items:start}
@media(max-width:880px){.brief-grid{grid-template-columns:1fr;gap:var(--s-7)}}
.crit{list-style:none; border-top:1px solid var(--t-line)}
.crit li{display:flex; gap:var(--s-4); padding:var(--s-4) 0; border-bottom:1px solid var(--t-line)}
.crit li b{font-family:var(--f-body); font-weight:500; min-width:140px; font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-ink-mute); flex-shrink:0; padding-top:2px}
.crit li span{color:var(--t-ink-soft); font-size:var(--fs-small)}
.callout{background:var(--t-sand-light); border-left:2px solid var(--t-sienna); padding:var(--s-6)}
.callout .kicker{color:var(--t-sienna)}
.callout h4{font-size:var(--fs-h4); margin:var(--s-3) 0 var(--s-3)}
.callout p{color:var(--t-ink-soft); line-height:1.65; font-size:var(--fs-small)}
.callout p+p{margin-top:var(--s-4)}

/* ---------- HUB · resultados ---------- */
.results{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-6)}
@media(max-width:980px){.results{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.results{grid-template-columns:1fr}}
.card-listing{display:flex; flex-direction:column; background:var(--t-sand-light); border:1px solid var(--t-line); transition:background .4s}
.card-listing[data-react]:not([data-react=""]){border-color:var(--t-rule)}
.card-listing__media{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--t-ink); cursor:pointer; display:block}
.card-listing__media img{width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(0.65,0,0.35,1)}
.card-listing:hover .card-listing__media img{transform:scale(1.05)}
.card-listing__tag{position:absolute; top:0; left:0; z-index:2; background:var(--t-sienna); color:var(--t-sand);
  font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; padding:var(--s-2) var(--s-5) var(--s-2) var(--s-4); clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}
.card-listing__tag--sage{background:var(--t-sage)}
.card-listing__tag--ink{background:var(--t-ink)}
.card-listing__count{position:absolute; bottom:var(--s-3); right:var(--s-3); z-index:2; background:rgba(29,29,27,0.72); color:var(--t-sand); font-size:var(--fs-micro); letter-spacing:var(--ls-small); text-transform:uppercase; padding:var(--s-1) var(--s-3)}
.card-listing__body{padding:var(--s-5); display:flex; flex-direction:column; flex:1}
.card-listing__kicker{font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-sage-dark)}
.card-listing__title{font-size:var(--fs-h3); margin:var(--s-2) 0 var(--s-1)}
.card-listing__loc{font-size:var(--fs-small); color:var(--t-ink-mute); margin-bottom:var(--s-4)}
.card-listing__meta{display:flex; gap:var(--s-4); flex-wrap:wrap; padding:var(--s-4) 0; border-top:1px solid var(--t-line); border-bottom:1px solid var(--t-line); font-size:var(--fs-small)}
.card-listing__meta span b{font-family:var(--f-display); font-weight:400; font-size:1.05rem}
.card-listing__price{display:flex; align-items:baseline; justify-content:space-between; gap:var(--s-3); margin:var(--s-4) 0}
.card-listing__price b{font-family:var(--f-display); font-weight:400; font-size:1.5rem}
.card-listing__price span{font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-ink-mute)}
.card-listing__link{display:inline-flex; align-items:center; gap:var(--s-2); font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; font-weight:500; color:var(--t-ink); border-bottom:1px solid var(--t-ink); padding-bottom:3px; align-self:flex-start; transition:gap .3s}
.card-listing__link:hover{gap:var(--s-3)}
.card-listing__link svg{width:13px;height:13px}

/* ============================================================
   FEEDBACK · camada de opinião do cliente (affordance-led)
   ============================================================ */
.fb{margin-top:var(--s-5); padding-top:var(--s-5); border-top:1px dashed var(--t-rule)}
.fb__q{font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-ink-mute); margin-bottom:var(--s-3); display:flex; align-items:center; justify-content:space-between; gap:var(--s-3)}
/* segmented 3-way control — looks pressable, single-select */
.fb__react{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s-2)}
.fb__btn{appearance:none; cursor:pointer; font-family:var(--f-body); font-weight:500; font-size:var(--fs-caption);
  letter-spacing:var(--ls-small); text-transform:uppercase; padding:var(--s-2); text-align:center;
  display:flex; align-items:center; justify-content:center; min-height:2.9em;
  hyphens:none; -webkit-hyphens:none; word-break:keep-all; overflow-wrap:normal;
  background:var(--t-sand-soft); border:1px solid var(--t-rule); color:var(--t-ink-soft);
  transition:transform .15s cubic-bezier(0.65,0,0.35,1),background .25s,color .25s,border-color .25s; line-height:1.15}
@media(max-width:420px){.fb__btn{font-size:var(--fs-micro); letter-spacing:0.03em; padding:var(--s-2) var(--s-1)}}
.fb__btn:hover{transform:translateY(-1px); border-color:var(--t-ink-mute)}
.fb__btn:active{transform:translateY(0)}
.fb__btn[aria-pressed="true"][data-v="sim"]{background:var(--t-sage); border-color:var(--t-sage); color:var(--t-sand)}
.fb__btn[aria-pressed="true"][data-v="talvez"]{background:var(--t-sienna); border-color:var(--t-sienna); color:var(--t-sand)}
.fb__btn[aria-pressed="true"][data-v="nao"]{background:var(--t-ink); border-color:var(--t-ink); color:var(--t-sand)}
/* star / destacar */
.fb__star{display:inline-flex; align-items:center; gap:var(--s-2); background:none; border:none; cursor:pointer; color:var(--t-ink-mute); font-size:var(--fs-micro); letter-spacing:var(--ls-small); text-transform:uppercase; transition:color .25s}
.fb__star svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.4; transition:fill .25s,stroke .25s,transform .3s}
.fb__star[aria-pressed="true"]{color:var(--t-sienna)}
.fb__star[aria-pressed="true"] svg{fill:var(--t-sienna); stroke:var(--t-sienna); transform:scale(1.08)}
/* note — progressive disclosure */
.fb__note-toggle{margin-top:var(--s-3); background:none; border:none; cursor:pointer; font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-sage-dark); display:inline-flex; align-items:center; gap:var(--s-2); padding:0}
.fb__note-toggle svg{width:12px;height:12px;transition:transform .3s}
.fb__note-toggle[aria-expanded="true"] svg{transform:rotate(45deg)}
.fb__note-wrap{display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s cubic-bezier(0.65,0,0.35,1); margin-top:0}
.fb__note-wrap.open{grid-template-rows:1fr; margin-top:var(--s-3)}
.fb__note-inner{overflow:hidden}
.fb__note{width:100%; resize:vertical; min-height:64px; font-family:var(--f-body); font-size:var(--fs-small); color:var(--t-ink);
  background:var(--t-sand); border:1px solid var(--t-rule); padding:var(--s-3) var(--s-4); line-height:1.5}
.fb__note:focus{outline:none; border-color:var(--t-sage-dark)}
.fb__note::placeholder{color:var(--t-ink-mute)}
/* saved indicator — feedback that input registered */
.fb__saved{display:inline-flex; align-items:center; gap:var(--s-2); font-size:var(--fs-micro); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-sage-dark); opacity:0; transition:opacity .3s}
.fb__saved.show{opacity:1}
.fb__saved svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6}

/* progress bar (hub) */
.fb-progress{display:flex; align-items:center; gap:var(--s-4); flex-wrap:wrap; margin-top:var(--s-4)}
.fb-progress__track{flex:1; min-width:160px; height:2px; background:var(--t-rule); position:relative}
.fb-progress__fill{position:absolute; left:0; top:0; height:100%; width:0; background:var(--t-sienna); transition:width .6s cubic-bezier(0.65,0,0.35,1)}
.fb-progress__label{font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-ink-mute)}

/* summary / send panel */
.fb-send{background:var(--t-sage); color:var(--t-sand); position:relative; overflow:hidden}
.fb-send__inner{max-width:var(--container); margin:0 auto; padding:var(--s-9) var(--s-6); position:relative; z-index:2}
.fb-send__grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--s-8); align-items:start}
@media(max-width:880px){.fb-send__grid{grid-template-columns:1fr;gap:var(--s-7)}}
.fb-send h2{font-size:var(--fs-h1); color:var(--t-sand); margin-bottom:var(--s-4)}
.fb-send p{color:rgba(228,221,211,0.9); line-height:1.65; max-width:48ch; margin-bottom:var(--s-6)}
.fb-send__actions{display:flex; gap:var(--s-4); flex-wrap:wrap}
.fb-summary{background:rgba(29,29,27,0.16); border:1px solid rgba(228,221,211,0.25); padding:var(--s-5); font-size:var(--fs-small); min-height:160px}
.fb-summary h4{font-family:var(--f-body); font-weight:500; font-size:var(--fs-caption); letter-spacing:var(--ls-kicker); text-transform:uppercase; color:rgba(228,221,211,0.8); margin-bottom:var(--s-4)}
.fb-summary__row{display:flex; gap:var(--s-3); padding:var(--s-3) 0; border-bottom:1px solid rgba(228,221,211,0.18); line-height:1.4}
.fb-summary__row:last-child{border-bottom:none}
.fb-summary__dot{flex-shrink:0; width:9px; height:9px; margin-top:5px; border-radius:0}
.fb-summary__dot--sim{background:var(--t-sand)}
.fb-summary__dot--talvez{background:rgba(228,221,211,0.6)}
.fb-summary__dot--nao{background:rgba(228,221,211,0.28)}
.fb-summary__dot--none{background:transparent; border:1px solid rgba(228,221,211,0.4)}
.fb-summary__empty{color:rgba(228,221,211,0.6); font-style:normal}
.fb-summary__name{display:block}
.fb-summary__verdict{font-size:var(--fs-micro); letter-spacing:var(--ls-small); text-transform:uppercase; color:rgba(228,221,211,0.7)}
.fb-summary__note{display:block; margin-top:var(--s-1); color:rgba(228,221,211,0.85); font-style:italic}
.toast{position:fixed; left:50%; bottom:var(--s-7); transform:translateX(-50%) translateY(20px); background:var(--t-ink); color:var(--t-sand); padding:var(--s-4) var(--s-6); font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; opacity:0; pointer-events:none; transition:opacity .3s,transform .3s; z-index:120}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

/* ---------- Ficha de imóvel — hero ---------- */
.hero{display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); min-height:76vh}
.hero__panel{background:var(--t-sand); padding:var(--s-9) var(--s-8); display:flex; flex-direction:column; justify-content:center; position:relative}
.hero__breadcrumb{font-size:var(--fs-caption);letter-spacing:var(--ls-small);text-transform:uppercase;color:var(--t-ink-mute);margin-bottom:var(--s-4)}
.hero__breadcrumb a{border-bottom:1px solid var(--t-rule)}
.hero__title{font-size:var(--fs-display); margin:var(--s-3) 0 var(--s-4)}
.hero__location{font-size:var(--fs-h4); color:var(--t-ink-soft); margin-bottom:var(--s-5)}
.hero__lede{max-width:46ch; color:var(--t-ink-soft); line-height:1.65; margin-bottom:var(--s-6)}
.hero__priceblock{display:flex; align-items:baseline; gap:var(--s-4); margin-bottom:var(--s-6); flex-wrap:wrap}
.hero__price-label{font-size:var(--fs-caption);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--t-ink-mute)}
.hero__price{font-family:var(--f-display); font-size:clamp(2rem,3.4vw,2.9rem); color:var(--t-ink)}
.hero__actions{display:flex; gap:var(--s-4); flex-wrap:wrap}
.hero__media{position:relative; overflow:hidden; background:var(--t-ink)}
.hero__media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.hero__seal{position:absolute; top:var(--s-5); left:var(--s-5); z-index:3; background:var(--t-sienna); color:var(--t-sand);
  font-size:var(--fs-caption); letter-spacing:var(--ls-kicker); text-transform:uppercase; padding:var(--s-2) var(--s-4); clip-path:polygon(0 0,100% 0,100% 100%,8% 100%)}
.hero__count{position:absolute; bottom:var(--s-5); right:var(--s-5); z-index:3; cursor:pointer; background:rgba(29,29,27,0.72); color:var(--t-sand); border:1px solid rgba(228,221,211,0.4);
  font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; padding:var(--s-3) var(--s-4); display:inline-flex; align-items:center; gap:var(--s-2); transition:.3s}
.hero__count:hover{background:var(--t-ink)}
.hero__count svg{width:14px;height:14px}
@media(max-width:880px){.hero{grid-template-columns:1fr}.hero__media{min-height:52vh}.hero__panel{padding:var(--s-8) var(--s-6)}}

/* facts */
.facts{background:var(--t-ink); color:var(--t-sand)}
.facts__grid{max-width:var(--container-wide); margin:0 auto; padding:var(--s-7) var(--s-6); display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:var(--s-6)}
.fact{border-left:1px solid rgba(228,221,211,0.18); padding-left:var(--s-4)}
.fact__value{font-family:var(--f-display); font-size:2rem; line-height:1; color:var(--t-sand)}
.fact__label{font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; color:var(--t-sage-soft); margin-top:var(--s-2)}
@media(max-width:880px){.facts__grid{grid-template-columns:repeat(3,1fr);gap:var(--s-5)}}
@media(max-width:480px){.facts__grid{grid-template-columns:repeat(2,1fr)}}

/* gallery */
.gallery-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--s-3)}
.gallery-grid .g-item:first-child{grid-column:span 2; grid-row:span 2}
.g-item{position:relative; overflow:hidden; cursor:pointer; aspect-ratio:4/3; background:var(--t-sand-light)}
.g-item img{width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(0.65,0,0.35,1)}
.g-item:hover img{transform:scale(1.04)}
.g-item__sweep{position:absolute; inset:0; background:var(--t-sage); z-index:2; opacity:0; clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%); transition:.5s cubic-bezier(0.65,0,0.35,1); display:flex; align-items:flex-end; padding:var(--s-4)}
.g-item:hover .g-item__sweep{opacity:0.92; clip-path:polygon(0 64%,100% 50%,100% 100%,0 100%)}
.g-item__label{font-size:var(--fs-caption); letter-spacing:var(--ls-kicker); text-transform:uppercase; color:var(--t-sand); position:relative; z-index:3}
@media(max-width:880px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid .g-item:first-child{grid-column:span 2;grid-row:auto}}

/* spec + distribution */
.spec{border-top:1px solid var(--t-line)}
.spec__row{display:flex; justify-content:space-between; gap:var(--s-4); padding:var(--s-4) 0; border-bottom:1px solid var(--t-line)}
.spec__key{color:var(--t-ink-mute); font-size:var(--fs-small)}
.spec__val{text-align:right}
.dist{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s-4)}
.dist__cell{background:var(--t-sand-light); padding:var(--s-5); border:1px solid var(--t-line)}
.dist__cell h4{font-size:var(--fs-h4); margin-bottom:var(--s-2)}
.dist__cell span{font-size:var(--fs-small); color:var(--t-ink-mute)}
@media(max-width:680px){.dist{grid-template-columns:repeat(2,1fr)}}

/* device cropped */
.device-cropped{position:relative; background:var(--t-sienna); overflow:hidden; color:var(--t-sand)}
.device-cropped__mark{position:absolute; top:50%; right:-16%; width:78%; transform:translateY(-50%); color:var(--t-sienna-dark); aspect-ratio:301.55/282.9; height:auto}
.device-cropped__content{position:relative; z-index:2; padding:var(--s-9) var(--s-8); max-width:62%}
.device-cropped__content .kicker{color:var(--t-sand)}
.device-cropped__content h2{font-size:var(--fs-h2); margin:var(--s-3) 0 var(--s-5); color:var(--t-sand)}
.device-cropped__content p{max-width:52ch; line-height:1.7; color:rgba(228,221,211,0.9)}
.device-cropped__content p+p{margin-top:var(--s-4)}
@media(max-width:880px){.device-cropped__content{max-width:100%;padding:var(--s-8) var(--s-6)}.device-cropped__mark{opacity:.5;right:-30%}}

/* location */
.loc-list{list-style:none; columns:2; column-gap:var(--s-7)}
.loc-list li{padding:var(--s-3) 0; border-bottom:1px solid var(--t-line); break-inside:avoid; color:var(--t-ink-soft); font-size:var(--fs-small)}
.loc-list li strong{font-weight:500; color:var(--t-ink); display:block; font-size:var(--fs-caption); letter-spacing:var(--ls-small); text-transform:uppercase; margin-bottom:2px}
@media(max-width:680px){.loc-list{columns:1}}

/* CTA + detail feedback bar */
.cta{background:var(--t-sage); color:var(--t-sand); position:relative; overflow:hidden}
.cta__inner{max-width:var(--container); margin:0 auto; padding:var(--s-9) var(--s-6); position:relative; z-index:2}
.cta__grid{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:var(--s-8); align-items:center}
.cta h2{font-size:var(--fs-display); color:var(--t-sand); margin-bottom:var(--s-4)}
.cta p{max-width:46ch; color:rgba(228,221,211,0.92); line-height:1.65; margin-bottom:var(--s-6)}
.cta__actions{display:flex; gap:var(--s-4); flex-wrap:wrap}
@media(max-width:880px){.cta__grid{grid-template-columns:1fr;gap:var(--s-7)}}
.detail-fb{background:rgba(29,29,27,0.16); border:1px solid rgba(228,221,211,0.25); padding:var(--s-6)}
.detail-fb .fb__q{color:rgba(228,221,211,0.85)}
.detail-fb .fb{border-top:none; margin-top:0; padding-top:0}
.detail-fb .fb__btn{background:rgba(228,221,211,0.1); border-color:rgba(228,221,211,0.35); color:var(--t-sand)}
.detail-fb .fb__btn:hover{border-color:var(--t-sand)}
.detail-fb .fb__note{background:rgba(228,221,211,0.08); border-color:rgba(228,221,211,0.35); color:var(--t-sand)}
.detail-fb .fb__note::placeholder{color:rgba(228,221,211,0.55)}
.detail-fb .fb__note-toggle,.detail-fb .fb__star{color:rgba(228,221,211,0.8)}
.detail-fb .fb__saved{color:var(--t-sand)}
.detail-fb__title{font-family:var(--f-display); font-size:var(--fs-h3); color:var(--t-sand); margin-bottom:var(--s-5)}

/* footer */
.site-footer{background:var(--t-ink); color:var(--t-sand); position:relative; overflow:hidden}
.site-footer__watermark{position:absolute; right:-6%; bottom:-30%; width:46%; color:#fff; opacity:0.035; aspect-ratio:301.55/282.9; height:auto}
.site-footer__inner{max-width:var(--container); margin:0 auto; padding:var(--s-9) var(--s-6) var(--s-6); position:relative; z-index:2}
.site-footer__top{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:var(--s-7); padding-bottom:var(--s-7); border-bottom:1px solid rgba(228,221,211,0.16)}
.site-footer__tagline{color:rgba(228,221,211,0.7); margin-top:var(--s-4); max-width:34ch; font-size:var(--fs-small)}
.site-footer__group h4{font-size:var(--fs-caption); letter-spacing:var(--ls-kicker); text-transform:uppercase; color:var(--t-sage-soft); margin-bottom:var(--s-4); font-family:var(--f-body); font-weight:500}
.site-footer__group ul{list-style:none}
.site-footer__group li{margin-bottom:var(--s-3)}
.site-footer__group a{font-size:var(--fs-small); color:rgba(228,221,211,0.85)}
.site-footer__group a:hover{color:var(--t-sand)}
.site-footer__bottom{display:flex; justify-content:space-between; gap:var(--s-4); flex-wrap:wrap; padding-top:var(--s-5); font-size:var(--fs-caption); color:rgba(228,221,211,0.55)}
@media(max-width:880px){.site-footer__top{grid-template-columns:1fr 1fr}}

/* lightbox */
.lb{position:fixed; inset:0; z-index:100; background:rgba(20,20,18,0.97); display:none; align-items:center; justify-content:center}
.lb.is-open{display:flex}
.lb__img{max-width:88vw; max-height:82vh; object-fit:contain; box-shadow:0 0 0 1px rgba(228,221,211,0.08)}
.lb__btn{position:absolute; background:none; border:1px solid rgba(228,221,211,0.4); color:var(--t-sand); width:52px; height:52px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.3s}
.lb__btn:hover{background:rgba(228,221,211,0.12)}
.lb__prev{left:var(--s-6)} .lb__next{right:var(--s-6)}
.lb__close{top:var(--s-6); right:var(--s-6); width:46px; height:46px}
.lb__counter{position:absolute; bottom:var(--s-7); left:50%; transform:translateX(-50%); color:var(--t-sand); font-size:var(--fs-caption); letter-spacing:var(--ls-kicker)}
.lb__btn svg{width:20px;height:20px}
@media(max-width:680px){.lb__prev{left:var(--s-2)}.lb__next{right:var(--s-2)}}

/* reveal */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .9s cubic-bezier(0.65,0,0.35,1),transform .9s cubic-bezier(0.65,0,0.35,1)}
.reveal.in{opacity:1; transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .g-item img,.g-item__sweep,.card-listing__media img,*{transition:none!important}
  html{scroll-behavior:auto}
}
