/* ============================================================
   IMOBUENO — camadas específicas do site
   (por cima de design-system.css; tokens herdados de lá)
   ============================================================ */

/* ---- logo imagem ---- */
.nav-logo img{height:34px;width:auto;display:block;transition:filter .4s}
[data-theme="dark"] .nav-logo img{filter:brightness(1.9) saturate(.85)}
.footer-logo img{height:40px;width:auto}
[data-theme="dark"] .footer-logo img{filter:brightness(1.9) saturate(.85)}

/* ---- dropdown do nav (abre no hover) ---- */
.nav-drop{position:relative}
.nav-drop>.nav-link{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;font-size:inherit}
.nav-drop>.nav-link iconify-icon{font-size:.85em;transition:transform var(--dur-fast) var(--ease-out-expo)}
.nav-drop:hover>.nav-link iconify-icon,.nav-drop:focus-within>.nav-link iconify-icon{transform:rotate(180deg)}
.nav-drop-menu{
  position:absolute;top:100%;left:50%;transform:translate(-50%,8px);
  min-width:230px;padding:.6rem;border-radius:var(--radius-md);
  background:var(--nav-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--color-line);box-shadow:var(--shadow-card);
  opacity:0;visibility:hidden;transition:opacity var(--dur-fast) var(--ease-out-expo),transform var(--dur-fast) var(--ease-out-expo),visibility var(--dur-fast);
  z-index:110;
}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-drop-menu a{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.6rem .85rem;border-radius:var(--radius-sm);
  font-size:var(--fs-sm);color:var(--color-text-muted);
  transition:background var(--dur-fast),color var(--dur-fast),padding-left var(--dur-fast) var(--ease-out-expo);
}
.nav-drop-menu a:hover{background:rgba(1,110,205,0.1);color:var(--color-text);padding-left:1.1rem}
.nav-drop-menu a span{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-subtle)}
.nav-drop-menu a:hover span{color:var(--color-copper-light)}

/* ---- hero da home: banner da marca ancorado à direita, texto sobre gradiente ---- */
.hero-bg-image{background-position:80% center}
.hero-bg-overlay{
  background:
    linear-gradient(180deg,rgba(12,16,21,0.5) 0%,rgba(12,16,21,0.2) 35%,rgba(12,16,21,0.6) 65%,rgba(12,16,21,0.95) 100%),
    linear-gradient(90deg,rgba(12,16,21,0.95) 0%,rgba(12,16,21,0.72) 42%,rgba(12,16,21,0.18) 100%);
}
@media(max-width:767px){
  /* foto é paisagem larga (1920x1080, os dois lado a lado); o hero no
     mobile empilha bastante conteúdo (título, subtítulo, 5 stats, busca)
     e passa fácil de 1300px de altura — bem mais que a viewport. Com
     background-size:cover tentando cobrir essa altura toda, a imagem
     precisa esticar pra uma proporção extremamente vertical, sobrando só
     uma fatia fina e cortando os dois rostos quase por completo.

     Duas tentativas anteriores não funcionaram: (1) cover na altura
     inteira — só uma fatia mínima visível; (2) mostrar a largura toda
     (background-size:100% auto) dentro de uma faixa curta — os dois
     apareciam, mas a foto cortava em linha reta bem no meio da primeira
     dobra, um corte feio entre "tem foto" e "não tem foto".

     Solução: .hero-bg-image fica com ALTURA PRÓPRIA menor (58vh, não
     inset:0 herdado do pai) — um "cover" bem menos extremo que cobre
     100vh, mostrando os dois rostos sem cortar. O .hero-bg-overlay
     continua cobrindo o .hero-bg inteiro (100vh) com um gradiente que
     começa a escurecer ANTES do fim da foto e some em --color-bg só
     depois — dissolve a borda inferior da foto em vez de cortar reto. */
  .hero-bg{height:100vh}
  .hero-bg-image{
    inset:auto;top:0;left:0;right:0;height:58vh;
    background-position:55% 15%;
  }
  .hero-bg-overlay{
    background:linear-gradient(180deg,rgba(12,16,21,0.35) 0%,rgba(12,16,21,0.3) 25%,rgba(12,16,21,0.6) 45%,rgba(12,16,21,0.92) 62%,var(--color-bg) 75%);
  }
}

/* ---- breadcrumbs ---- */
.breadcrumbs{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-xs);color:var(--color-text-muted);margin-bottom:1.5rem}
.breadcrumbs a{transition:color var(--dur-fast)}
.breadcrumbs a:hover{color:var(--color-copper-light)}
.breadcrumbs iconify-icon{font-size:.75rem;color:var(--color-text-subtle)}
.breadcrumbs span{color:var(--color-text)}

/* ---- hero interno (páginas que não são a home) ---- */
.page-hero{padding:calc(76px + clamp(3rem,8vh,5.5rem)) 0 clamp(2.5rem,6vh,4rem);position:relative;overflow:hidden}
.page-hero .hero-orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}
.page-hero-title{font-family:var(--font-display);font-size:var(--fs-h2);line-height:1.1;letter-spacing:-0.01em;text-wrap:balance}
.page-hero-title em{font-style:italic;background:linear-gradient(135deg,var(--color-copper-light),var(--color-gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.page-hero-sub{max-width:56ch;margin-top:1.25rem;font-size:var(--fs-md);line-height:1.7;color:var(--color-text-muted)}
.page-hero-sub + .page-hero-sub{margin-top:.85rem}

/* ---- pilares (Quem Somos: "Uma equipe. O mesmo jeito de atender.";
   Trabalhe Conosco: "O que você encontra na ImoBueno") ---- */
.pilares-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;align-items:start}
.pilares-grid--2{grid-template-columns:repeat(2,1fr)}
.pilares-grid .service-card p{margin-bottom:1rem}
.pilares-grid .service-card p:last-child{margin-bottom:0}
@media(max-width:900px){.pilares-grid{grid-template-columns:1fr}}

/* foto de fundo opcional no hero interno: mesma lógica de overlay do hero da
   home (gradiente escuro por cima pra manter o texto legível), mas sem o
   min-height:100vh — este hero continua compacto */
.page-hero-photo{position:absolute;inset:0;z-index:0}
.page-hero-photo-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.5}
.page-hero-photo-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,var(--color-bg) 0%,rgba(12,16,21,.55) 35%,rgba(12,16,21,.75) 100%);
}
.page-hero .container{position:relative;z-index:1}

/* ============ CATÁLOGO ============ */
.catalog-bar{
  position:relative;z-index:5;
  background:var(--color-bg-elevated);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);
}
.catalog-bar .container{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding-top:1rem;padding-bottom:1rem}
.catalog-count strong{font-family:var(--font-display);font-size:1.5rem;color:var(--color-copper-light);margin-right:.4rem}
.catalog-count span{font-size:var(--fs-sm);color:var(--color-text-muted)}
.catalog-tools{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.sort-field{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-xs);color:var(--color-text-muted)}
.sort-field select{
  background:var(--color-bg-card);color:var(--color-text);border:1px solid var(--color-line);
  border-radius:var(--radius-sm);padding:.5rem .75rem;font-family:inherit;font-size:var(--fs-sm);cursor:pointer;
}
.view-switch{display:flex;border:1px solid var(--color-line);border-radius:var(--radius-pill);overflow:hidden}
.view-switch button{
  display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:var(--fs-sm);
  color:var(--color-text-muted);transition:background var(--dur-fast),color var(--dur-fast);
}
.view-switch button.active{background:var(--color-copper);color:#fff}
.view-switch button:not(.active):hover{color:var(--color-text)}

.catalog-layout{display:grid;grid-template-columns:290px 1fr;gap:2rem;align-items:start;padding-top:2.5rem}

/* painel de filtros */
.filter-panel{
  position:sticky;top:96px;
  background:var(--color-bg-card);border:1px solid var(--color-line);border-radius:var(--radius-lg);
  padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;
  max-height:calc(100vh - 120px);overflow-y:auto;
}
.filter-panel fieldset{border:none;display:flex;flex-direction:column;gap:.6rem}
.filter-panel legend{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.6rem}
.filter-head{display:flex;justify-content:space-between;align-items:baseline}
.filter-head strong{font-family:var(--font-display);font-size:1.15rem;font-weight:400}
.filter-head button{font-size:var(--fs-xs);color:var(--color-text-muted);display:inline-flex;align-items:center;gap:.3rem;transition:color var(--dur-fast)}
.filter-head button:hover{color:var(--color-copper-light)}
.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}
.chip-row button{
  padding:.45rem .95rem;border-radius:var(--radius-pill);border:1px solid var(--color-line);
  font-size:var(--fs-sm);color:var(--color-text-muted);
  transition:all var(--dur-fast) var(--ease-out-expo);
}
.chip-row button:hover{border-color:var(--color-copper);color:var(--color-text)}
.chip-row button.active{background:var(--color-copper);border-color:var(--color-copper);color:#fff}
.filter-panel select,.filter-panel input[type="number"]{
  width:100%;background:var(--color-bg-elevated);color:var(--color-text);
  border:1px solid var(--color-line);border-radius:var(--radius-sm);
  padding:.65rem .8rem;font-family:inherit;font-size:var(--fs-sm);
  transition:border-color var(--dur-fast);
}
.filter-panel select:focus,.filter-panel input:focus{outline:none;border-color:var(--color-copper)}
.range-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.range-grid label span{display:block;font-size:var(--fs-xs);color:var(--color-text-subtle);margin-bottom:.3rem}
.filter-whats{
  border-top:1px solid var(--color-line);padding-top:1.25rem;
  display:flex;flex-direction:column;gap:.75rem;font-size:var(--fs-sm);color:var(--color-text-muted);
}
.filter-whats strong{color:var(--color-text);font-weight:400;font-family:var(--font-display);font-size:1.05rem}
.filter-whats a{color:var(--color-sage-light);display:inline-flex;align-items:center;gap:.4rem;transition:color var(--dur-fast)}
.filter-whats a:hover{color:var(--color-sage)}

/* grade de cards (reusa .listing-card do DS) */
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.5rem}
.catalog-grid .listing-card{min-width:0;width:auto}
.catalog-empty{
  grid-column:1/-1;text-align:center;padding:4rem 2rem;
  border:1px dashed var(--color-line);border-radius:var(--radius-lg);color:var(--color-text-muted);
}
.catalog-empty strong{display:block;font-family:var(--font-display);font-size:var(--fs-h4);font-weight:400;color:var(--color-text);margin-bottom:.5rem}

/* mapa */
.catalog-map-wrap{display:none;position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-line)}
.catalog-map-wrap.on{display:block}
.catalog-grid-wrap.off{display:none}
#catalogMap{height:min(72vh,640px);width:100%;background:var(--color-bg-elevated)}
.map-note{
  position:absolute;bottom:12px;left:12px;z-index:500;
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  background:var(--nav-bg);backdrop-filter:blur(10px);border:1px solid var(--color-line);
  color:var(--color-text-muted);padding:.4rem .7rem;border-radius:var(--radius-pill);
}
.leaflet-container{font-family:var(--font-body)}
.leaflet-popup-content-wrapper{background:var(--color-bg-card);color:var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-card);border:1px solid var(--color-line)}
.leaflet-popup-tip{background:var(--color-bg-card)}
.leaflet-popup-content{margin:0;width:230px !important}
.map-pop{display:block}
.map-pop img{width:100%;height:120px;object-fit:cover;border-radius:var(--radius-md) var(--radius-md) 0 0}
.map-pop>div{padding:.8rem .9rem 1rem}
.map-pop-title{display:block;font-family:var(--font-display);font-weight:400;font-size:1rem;line-height:1.3;margin-bottom:.2rem}
.map-pop p{font-size:.75rem;color:var(--color-text-muted);margin-bottom:.45rem}
.map-pop strong{color:var(--color-copper-light);font-weight:500;font-size:.9rem}
.map-pop a{display:inline-flex;align-items:center;gap:.3rem;margin-top:.5rem;font-size:.78rem;color:var(--color-copper-light)}
.marker-dot{
  width:14px;height:14px;border-radius:50%;
  background:var(--color-copper);border:2px solid #fff;
  box-shadow:0 0 0 4px rgba(1,110,205,0.35),0 2px 8px rgba(0,0,0,0.4);
}
[data-theme="light"] .marker-dot{box-shadow:0 0 0 4px rgba(1,110,205,0.25),0 2px 8px rgba(0,0,0,0.2)}

/* ---- badges de status: cores fixas, independentes do tema ----
   badge-solid usava --color-cream, que inverte no tema claro e virava tarja preta. */
.badge-solid{background:#F2F6FA;color:#101820}
[data-theme="light"] .badge-solid{background:#101820;color:#F2F6FA}
.listing-badge.badge-solid{background:#F2F6FA;color:#101820}
.listing-badge.badge-sage{background:#0E9A68;color:#fff;border:none}
.listing-badge.badge-copper{color:#fff}

/* ---- cards uniformes em qualquer contexto ---- */
.listing-card{width:380px;display:flex;flex-direction:column}
.listing-card .listing-media{flex:none}
.listing-card .listing-body{align-items:flex-start}
.listing-card .listing-body h4,
.listing-card .listing-body p{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.listing-card .listing-body>div{min-width:0;flex:1}
.listing-card .listing-price{white-space:nowrap}
.listing-card .listing-meta{min-height:2.2rem;align-items:center}
.catalog-grid .listing-card{width:auto}

/* ============ PAGINA DO IMOVEL ============
   Estrutura portada de "tamada imoveis/redesign-atlas-urbano" (imoveis.css):
   hero com tira de fotos, barra de preco e formulario sobrepostos a foto na
   juncao, formulario sticky durante a intro, e um segundo card de contato
   sticky ao longo do corpo. Medidas equivalentes, cores da marca Bueno. */

/* ---- hero: tira de fotos ---- */
.detail-hero{position:relative;height:clamp(420px,56vh,600px);background:var(--color-bg-elevated);overflow:hidden}
.detail-filmstrip{display:flex;height:100%;transition:transform .6s var(--ease-out-expo)}
.strip-cell{
  flex:0 0 33.3333%;height:100%;padding:0;position:relative;overflow:hidden;cursor:pointer;
  background:var(--color-bg-card);border-right:2px solid var(--color-bg);
}
.detail-filmstrip[data-fotos="1"] .strip-cell{flex-basis:100%}
.detail-filmstrip[data-fotos="2"] .strip-cell{flex-basis:50%}
.strip-cell img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out-expo)}
.strip-cell::after{content:'';position:absolute;inset:0;background:rgba(12,16,21,0);transition:background .3s}
.strip-cell:hover img{transform:scale(1.05)}
.strip-cell:hover::after{background:rgba(12,16,21,.18)}
.strip-cell:first-child img{animation:detailImg 1s var(--ease-out-expo) both}
@keyframes detailImg{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:none}}

.gallery-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  background:rgba(12,16,21,.6);backdrop-filter:blur(10px);color:var(--color-cream);
  border:1px solid rgba(255,255,255,.16);font-size:1.3rem;opacity:0;
  transition:opacity .3s,background .25s,transform .25s var(--ease-out-expo);
}
.detail-hero:hover .gallery-arrow{opacity:1}
.gallery-arrow:hover{background:var(--color-copper);transform:translateY(-50%) scale(1.08)}
.gallery-prev{left:20px}.gallery-next{right:20px}
.gallery-arrow[hidden]{display:none}

/* a barra de preço sobe 58px sobre a foto; os chips cruzam a borda dela:
   metade sobre a foto, metade sobre o cartão, sempre por cima (z-index 8) */
.strip-badges{
  position:absolute;left:0;bottom:38px;z-index:8;display:flex;gap:10px;flex-wrap:wrap;
  padding-left:max(calc((100vw - var(--container-max))/2 + var(--container-pad)),var(--container-pad));
}
.strip-chip{
  display:inline-flex;align-items:center;gap:8px;
  padding:.7rem 1.15rem;font-size:var(--fs-xs);letter-spacing:.03em;cursor:pointer;
  border-radius:var(--radius-pill);
  transition:background .25s,color .25s,transform .25s var(--ease-out-expo),border-color .25s;
  /* precisa ser legível sobre a foto e sobre o cartão de preço nos dois temas */
  background:rgba(12,16,21,.88);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.16);color:var(--color-cream);
  box-shadow:0 6px 20px rgba(0,0,0,.35);
}
[data-theme="light"] .strip-chip{
  background:rgba(255,255,255,.94);
  border-color:rgba(17,24,32,.14);color:#101820;
  box-shadow:0 6px 20px rgba(16,24,32,.18);
}
.strip-chip:hover,[data-theme="light"] .strip-chip:hover{
  background:var(--color-copper);border-color:transparent;color:#fff;transform:translateY(-2px);
}
.strip-chip iconify-icon{font-size:1.05rem}

/* ---- intro: preco e formulario na juncao da foto ---- */
.detail-intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4vw,3.5rem);align-items:start;padding-bottom:4rem}

.detail-pricebar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  /* padding-top maior: os chips invadem 20px do topo do cartão */
  margin-top:-58px;margin-bottom:2.25rem;padding:2.1rem 2.5rem 1.6rem;
  border-radius:20px;position:relative;overflow:hidden;z-index:6;
  background:linear-gradient(105deg,var(--color-bg-card) 0%,var(--color-surface) 60%,var(--color-bg-elevated) 100%);
  border:1px solid rgba(1,110,205,.28);
  box-shadow:0 30px 70px -20px rgba(0,0,0,.6),0 4px 16px rgba(0,0,0,.35);
  animation:pcIn 1s .25s var(--ease-out-expo) both;
}
.detail-pricebar::before{
  content:'';position:absolute;right:-50px;top:-70px;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle,rgba(1,110,205,.22),transparent 68%);pointer-events:none;
}
@keyframes pcIn{from{opacity:0;transform:translateY(34px) scale(.98)}to{opacity:1;transform:none}}
.pc-label{position:relative;display:block;font-size:var(--fs-base);color:var(--color-text-muted);margin-bottom:.4rem}
.pc-value{
  position:relative;display:block;font-family:var(--font-display);font-weight:400;
  font-size:var(--fs-h2);line-height:1;color:var(--color-text);
}
.pc-value small{font-family:var(--font-body);font-size:.35em;color:var(--color-text-muted)}
.pc-note{position:relative;font-size:var(--fs-xs);color:var(--color-text-subtle);padding-bottom:.3rem}

.detail-intro .breadcrumbs{margin-bottom:1rem}
.detail-badges{display:flex;gap:.5rem;margin:0 0 1rem}
.detail-purpose,.detail-type{
  display:inline-block;padding:.45rem .75rem;font-family:var(--font-mono);
  font-size:var(--fs-label);letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius-sm);
}
.detail-purpose{background:var(--color-copper);color:#fff}
.detail-type{background:var(--color-surface);color:var(--color-cream-muted)}
.detail-intro h1{
  font-family:var(--font-display);font-weight:400;
  font-size:var(--fs-h2);line-height:1.12;letter-spacing:0;
  margin:0;max-width:20ch;text-wrap:balance;
}
.detail-location{display:flex;align-items:center;gap:.5rem;margin:1rem 0 0;color:var(--color-text-muted);font-size:var(--fs-base)}
.detail-location iconify-icon{color:var(--color-copper-light);font-size:1.1rem}

.detail-share{margin-top:1.9rem}
.detail-share>span{
  display:block;font-family:var(--font-mono);font-size:var(--fs-label);
  letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.75rem;
}
.share-buttons{display:flex;gap:.6rem;flex-wrap:wrap}
.share-buttons a,.share-buttons button{
  width:44px;height:44px;border:1px solid var(--color-line);border-radius:50%;
  display:grid;place-items:center;color:var(--color-text-muted);font-size:1.15rem;cursor:pointer;
  transition:transform .25s var(--ease-out-expo),background .25s,color .25s,border-color .25s;
}
.share-buttons a:hover,.share-buttons button:hover{
  background:var(--color-copper);color:#fff;border-color:var(--color-copper);transform:translateY(-3px);
}
.share-toast{
  display:inline-block;margin-left:.75rem;font-size:var(--fs-xs);color:var(--color-sage-light);
  opacity:0;transform:translateX(-6px);
  transition:opacity var(--dur-fast),transform var(--dur-fast) var(--ease-out-expo);
}
.share-toast.on{opacity:1;transform:translateX(0)}

.detail-specs{
  display:flex;align-items:center;gap:clamp(1.5rem,3vw,2.2rem);flex-wrap:wrap;
  margin-top:2.2rem;padding-top:1.9rem;border-top:1px solid var(--color-line);
}
.detail-specs>div{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:.65rem;align-items:center}
.detail-specs iconify-icon{grid-row:1/3;font-size:1.65rem;color:var(--color-copper-light)}
.detail-specs b{font-weight:400;font-size:var(--fs-md);line-height:1.1;color:var(--color-text)}
.detail-specs span{font-size:var(--fs-label);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}

/* formulario: sobe sobre a foto e acompanha o scroll ate o fim da intro */
.detail-intro-form{margin-top:-58px;position:relative;z-index:4}
.lead-inline{
  background:var(--color-bg-card);border:1px solid var(--color-line);border-radius:var(--radius-md);
  padding:2.1rem 2.1rem 1.9rem;box-shadow:0 30px 70px -24px rgba(0,0,0,.55);
}
.lead-inline .section-label{margin-bottom:.4rem}
.lead-inline-sub{color:var(--color-text-muted);font-size:var(--fs-sm);line-height:1.6;margin:.4rem 0 1.4rem}
.lead-inline form{display:flex;flex-direction:column;gap:.9rem}
.lead-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.lead-field span{
  display:block;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.1em;
  text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.4rem;
}
.lead-field input{
  width:100%;background:var(--color-bg-elevated);border:1px solid var(--color-line);
  border-radius:var(--radius-sm);color:var(--color-text);
  font-family:inherit;font-weight:300;font-size:var(--fs-sm);padding:.75rem .9rem;
  transition:border-color var(--dur-fast);
}
.lead-field input:focus{outline:none;border-color:var(--color-copper)}
.lead-check{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--fs-xs);color:var(--color-text-subtle);line-height:1.5}
.lead-check input{margin-top:.2rem;accent-color:var(--color-copper)}
@media(min-width:1101px){
  .detail-intro-form{position:sticky;top:96px;max-height:calc(100vh - 116px);overflow-y:auto;scrollbar-width:thin}
  .detail-intro-form::-webkit-scrollbar{width:6px}
  .detail-intro-form::-webkit-scrollbar-thumb{background:rgba(1,110,205,.45);border-radius:99px}
}

/* ---- corpo: blocos + card de contato que acompanha o scroll ---- */
.detail-body{background:var(--color-bg-elevated);padding:clamp(3.5rem,9vh,5.5rem) 0}
.detail-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2.5rem,5vw,4.4rem);align-items:start}
.detail-block{margin-bottom:clamp(3rem,7vh,5rem)}
.detail-block:last-child{margin-bottom:0}
.detail-about{font-size:var(--fs-base);line-height:1.8;color:var(--color-cream-muted);white-space:pre-line;max-width:64ch;margin:1.25rem 0 0}

.amenity-grid{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1.5rem}
.amenity-grid li{
  display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;
  background:var(--color-bg-card);border:1px solid var(--color-line);border-radius:var(--radius-sm);
  font-size:var(--fs-sm);line-height:1.4;color:var(--color-cream-muted);
  transition:transform .4s var(--ease-out-expo),box-shadow .4s,border-color .4s;
}
.amenity-grid li:hover{transform:translateY(-4px);box-shadow:var(--shadow-card);border-color:rgba(1,110,205,.45)}
.amenity-grid iconify-icon{font-size:1.4rem;color:var(--color-copper-light);flex:none;transition:transform .35s var(--ease-out-expo)}
.amenity-grid li:hover iconify-icon{transform:scale(1.1) rotate(-3deg)}

.detail-facts{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:1.5rem 0 0;
  border-top:1px solid var(--color-line);border-left:1px solid var(--color-line);
}
.detail-facts>div{border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line);padding:1rem 1.15rem}
.detail-facts dt{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .35rem}
.detail-facts dd{margin:0;font-size:var(--fs-base);color:var(--color-text)}
.detail-map{height:420px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-line);margin-top:1.5rem}
.property-map{height:300px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-line)}

.detail-aside{position:sticky;top:96px}
.detail-contact-card{
  background:var(--color-bg-card);border:1px solid var(--color-line);border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);padding:2.1rem;
}
.detail-contact-price{
  display:block;font-family:var(--font-display);font-weight:400;
  font-size:var(--fs-h3);line-height:1;color:var(--color-text);
}
.detail-contact-price small{font-family:var(--font-body);font-size:.42em;color:var(--color-text-muted)}
.detail-contact-purpose{display:block;color:var(--color-text-muted);font-size:var(--fs-sm);margin:.5rem 0 1.6rem}
.btn-whats{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95rem 1.5rem;border-radius:var(--radius-pill);
  background:var(--color-sage);color:#07130D;font-weight:500;font-size:var(--fs-sm);
  transition:background var(--dur-fast),transform var(--dur-fast) var(--ease-out-expo),box-shadow var(--dur-fast);
}
.btn-whats:hover{background:var(--color-sage-light);transform:translateY(-2px);box-shadow:0 8px 30px rgba(23,199,136,0.25)}
.btn-whats iconify-icon{font-size:1.2rem}
.detail-contact-card .btn,.detail-contact-card .btn-whats{width:100%;justify-content:center;margin-bottom:.6rem}
.detail-contact-note{
  margin:1.1rem 0 0;padding-top:1rem;border-top:1px solid var(--color-line);
  font-size:var(--fs-xs);line-height:1.6;color:var(--color-text-subtle);
}

.detail-similar{padding:clamp(3.5rem,9vh,5.5rem) 0}

/* ---- lightbox ---- */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(8,11,15,.96);display:flex;flex-direction:column}
.lightbox[hidden]{display:none}
.lightbox-bar{display:flex;align-items:center;gap:1rem;justify-content:space-between;padding:.9rem clamp(1rem,3vw,2rem);color:var(--color-cream)}
.lightbox-bar .lightbox-title{font-family:var(--font-display);font-size:var(--fs-md)}
.lightbox-counter{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.12em;color:var(--color-text-muted)}
.lightbox-tools{display:flex;gap:.4rem}
.lightbox-tools button{
  width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:var(--color-cream-muted);font-size:1.05rem;border:1px solid rgba(255,255,255,.14);
  transition:background var(--dur-fast),color var(--dur-fast);
}
.lightbox-tools button:hover{background:rgba(1,110,205,.5);color:#fff}
.lightbox-stage{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:1rem}
.lightbox-stage img{max-width:92%;max-height:100%;object-fit:contain;user-select:none;transition:transform .35s var(--ease-out-expo)}
.lb-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);color:var(--color-cream);font-size:1.3rem;transition:background var(--dur-fast);
}
.lb-nav:hover{background:rgba(1,110,205,.6)}
.lb-prev{left:1rem}.lb-next{right:1rem}
.lb-nav[hidden]{display:none}

/* ============ CONTATO / QUEM SOMOS / ANUNCIE ============ */
.split-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,5vw,5rem);align-items:start}
.contact-list{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}
.contact-item{
  display:flex;gap:1.1rem;align-items:flex-start;
  padding:1.25rem 1.4rem;border:1px solid var(--color-line);border-radius:var(--radius-md);
  transition:border-color var(--dur-fast),transform var(--dur-fast) var(--ease-out-expo);
}
.contact-item:hover{border-color:rgba(1,110,205,0.4);transform:translateY(-2px)}
.contact-item iconify-icon{font-size:1.4rem;color:var(--color-copper-light);margin-top:.15rem}
.contact-item strong{display:block;font-weight:400;font-family:var(--font-display);font-size:1.05rem;margin-bottom:.25rem}
.contact-item p,.contact-item a{font-size:var(--fs-sm);color:var(--color-text-muted);line-height:1.6}
.contact-item a:hover{color:var(--color-copper-light)}
.contact-form{
  background:var(--color-bg-card);border:1px solid var(--color-line);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,3vw,2.5rem);display:flex;flex-direction:column;gap:1.1rem;
}
.contact-form textarea{
  background:var(--color-bg-elevated);border:1px solid var(--color-line);border-radius:var(--radius-md);
  color:var(--color-text);font-family:inherit;font-size:var(--fs-base);font-weight:300;
  padding:.9rem 1.1rem;min-height:120px;resize:vertical;transition:border-color var(--dur-fast);
}
.contact-form textarea:focus{outline:none;border-color:var(--color-copper)}
.contact-form textarea::placeholder{color:var(--color-text-muted)}
.form-note{font-size:var(--fs-xs);color:var(--color-text-subtle);line-height:1.5}

.person-card{display:flex;align-items:center;gap:1.25rem;margin-top:2.5rem}
.person-card img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:2px solid var(--color-line)}
.person-card strong{display:block;font-family:var(--font-display);font-weight:400;font-size:1.15rem}
.person-card span{font-size:var(--fs-sm);color:var(--color-text-muted)}
.person-card .mono{display:block;margin-top:.3rem;color:var(--color-copper-light)}

/* ---- whatsapp flutuante ---- */
.floating-whats{
  position:fixed;right:1.5rem;bottom:1.5rem;z-index:600;
  width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--color-sage);color:#07130D;font-size:1.7rem;
  box-shadow:0 8px 30px rgba(23,199,136,0.35);
  transition:transform var(--dur-fast) var(--ease-out-expo),box-shadow var(--dur-fast);
}
.floating-whats:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 14px 44px rgba(23,199,136,0.45)}
.floating-whats::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(23,199,136,0.5);animation:whatsPulse 2.4s var(--ease-out-expo) infinite;
}
@keyframes whatsPulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}

/* Sem JS o IntersectionObserver nunca roda e os reveals ficariam invisíveis
   para sempre. interactions.js marca html.js; sem essa marca, mostra tudo. */
html:not(.js) .reveal,
html:not(.js) .reveal-clip-left,
html:not(.js) .reveal-clip-up,
html:not(.js) .reveal-slide-right,
html:not(.js) .reveal-pop,
html:not(.js) .reveal-zoom,
html:not(.js) .reveal-soft,
html:not(.js) [class*="stagger-"]>*{
  opacity:1;transform:none;clip-path:none;filter:none;
}

/* ---- responsivo ---- */
@media(max-width:1100px){
  .detail-intro-grid,.detail-columns{grid-template-columns:1fr;gap:2.75rem}
  .detail-intro-form{margin-top:0}
  .lead-inline{max-width:560px}
  .detail-aside{position:static;max-width:560px}
  .detail-facts{grid-template-columns:repeat(2,1fr)}
  .amenity-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1024px){
  .catalog-layout{grid-template-columns:1fr}
  .filter-panel{position:static;max-height:none}
  .property-aside{position:static}
  .split-section{grid-template-columns:1fr}
  .strip-cell{flex-basis:50%}
}
@media(max-width:767px){
  .catalog-bar .container{flex-direction:column;align-items:flex-start}
  .nav-logo img{height:28px}
  .listing-card{width:min(85vw,380px)}
  .detail-hero{height:clamp(320px,44vh,440px)}
  .strip-cell{flex-basis:100%}
  .detail-pricebar{margin-top:-48px;padding:1.9rem 1.6rem 1.4rem}
  .strip-badges{bottom:32px}
  .detail-facts,.amenity-grid{grid-template-columns:1fr}
  .lead-row{grid-template-columns:1fr}
  .lightbox-bar .lightbox-title{display:none}
  .lb-nav{width:44px;height:44px}
  .lb-prev{left:6px}.lb-next{right:6px}
}
@media(prefers-reduced-motion:reduce){
  .floating-whats::after{animation:none}
}

/* ============================================================
   JORNADA DE BAIRROS — galeria horizontal pinada (efeito portado
   do design system Novivere/imobueno-premium, recolorido nos
   tokens da v1). Header com etapa/bairro que troca por progresso,
   tiles com reveals por clip-path e finale "VIVA BEM FORMOSA".
   ============================================================ */
.jornada{background:var(--color-bg);color:var(--color-text);position:relative}
.jornada-pin{flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}
.jornada-head{flex:none;padding:clamp(92px,12vh,120px) clamp(28px,5vw,100px) clamp(14px,2vh,24px)}
.jornada-headbox{will-change:transform,filter,opacity;flex-direction:column;gap:clamp(10px,1.4vh,18px);display:flex}
.jornada-headrow{justify-content:flex-start;align-items:center;gap:clamp(12px,1.5vw,26px);display:flex}
.jornada-step{font-family:var(--font-body);letter-spacing:.26em;text-transform:uppercase;color:var(--color-gold);white-space:nowrap;flex-shrink:0;font-size:clamp(12px,.95vw,15px);font-weight:600}
.jornada-dot{background:var(--color-text);border-radius:50%;flex-shrink:0;width:6px;height:6px}
.jornada-heading{font-family:var(--font-display);letter-spacing:.01em;color:var(--color-text);text-align:left;white-space:nowrap;margin:0;font-size:clamp(20px,2.25vw,40px);font-weight:400;line-height:1.1}
.jornada-desc{font-family:var(--font-body);letter-spacing:-.01em;color:var(--color-text-muted);white-space:nowrap;margin:0;font-size:clamp(14px,1.05vw,18px);font-weight:400;line-height:1.5}
.jornada-track{will-change:transform;flex:1 1 0;align-items:center;gap:clamp(16px,2.4vw,44px);min-height:0;padding:0 clamp(28px,6vw,120px);display:flex}
.jornada-tile{flex:none}
.jornada-tile-inner{will-change:transform,clip-path,opacity;background:var(--color-bg-card);border-radius:12px;width:100%;height:100%;position:relative;overflow:hidden}
.jornada-tile-inner:after{content:"";mix-blend-mode:soft-light;pointer-events:none;background:linear-gradient(158deg,rgba(41,182,232,.14) 0%,rgba(1,110,205,.04) 52%,rgba(4,9,18,.26) 100%);position:absolute;inset:0}
.jornada-tile-inner--plain{background:0 0}
.jornada-tile-inner--plain:after{content:none}
.jornada-tile-img{object-fit:cover;will-change:transform;filter:contrast(1.05)saturate(.96);width:100%;height:100%;display:block}
.jornada-finale{flex:none;align-self:stretch;width:92vw;position:relative}
.jornada-fword{position:absolute;overflow:hidden}
.jornada-finner{font-family:var(--font-display);letter-spacing:.01em;color:var(--color-text);will-change:transform;font-size:clamp(64px,13vw,240px);font-weight:400;line-height:1;display:block}
.jornada-fword--a{top:0;left:1%}
.jornada-fword--b{top:34%;left:40%}
.jornada-fword--b .jornada-finner{color:var(--color-gold);font-style:italic}
.jornada-fword--c{bottom:0;right:1%}
@media (max-width:860px){
  .jornada-pin{height:auto;display:block;overflow:visible}
  .jornada-head{padding:12vh 6vw 4vh}
  .jornada-headrow{flex-direction:column;align-items:flex-start;gap:10px}
  .jornada-dot{display:none}
  .jornada-heading{white-space:normal;max-width:16ch}
  .jornada-desc{white-space:normal}
  .jornada-track{will-change:auto;flex-direction:column;gap:16px;padding:0 6vw 10vh}
  .jornada-finale{flex-direction:column;align-self:stretch;gap:0;width:100%;padding:7vh 0 8vh;display:flex}
  .jornada-fword{max-width:100%;padding-bottom:.06em;position:static;overflow:hidden}
  .jornada-fword+.jornada-fword{margin-top:-.08em}
  .jornada-fword--a{align-self:flex-start}
  .jornada-fword--b{align-self:center}
  .jornada-fword--c{align-self:flex-end}
  .jornada-finner{font-size:clamp(40px,15vw,120px);line-height:.98}
  .jornada-tile{width:100%;aspect-ratio:3/2!important;align-self:stretch!important;height:auto!important;transform:none!important}
}
@media (prefers-reduced-motion:reduce){
  .jornada-pin{height:auto;display:block;overflow:visible}
  .jornada-heading{white-space:normal}
  .jornada-track{will-change:auto;flex-direction:column;gap:16px;padding:0 5vw 10vh}
  .jornada-finale{flex-direction:column;align-self:stretch;gap:4px;width:100%;padding:6vh 0;display:flex}
  .jornada-fword{position:static;overflow:visible}
  .jornada-tile{width:100%;aspect-ratio:3/2!important;align-self:stretch!important;height:auto!important;transform:none!important}
}

/* ============================================================
   DESTAQUES PREMIUM (.db-*) — head em duas colunas com eyebrow,
   título display com "dim" em itálico, texto de apoio + CTA pill
   com círculo de seta dupla, e grid de 3 cards com reveal por
   clip-path (efeito portado do design system Novivere).
   ============================================================ */
.db-head{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:clamp(24px,4vw,72px);margin-bottom:clamp(28px,4.5vh,52px)}
.db-headleft{display:flex;flex-direction:column;gap:clamp(10px,1.6vh,18px)}
.db-eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.3em;color:var(--color-gold);font-size:clamp(11px,.85vw,13px);font-weight:600}
.db-title{font-family:var(--font-display);font-weight:400;font-size:clamp(34px,4.6vw,64px);line-height:1.05;color:var(--color-text);margin:0}
.db-title em{color:var(--color-gold)}
.db-headright{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(14px,2vh,22px);padding-bottom:.35em}
.db-text{font-family:var(--font-body);color:var(--color-text-muted);font-size:clamp(14px,1.05vw,17px);line-height:1.6;margin:0;max-width:44ch}
.db-btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-body);font-weight:500;font-size:clamp(13px,.95vw,15px);color:var(--color-text);border:1px solid var(--color-line);border-radius:999px;padding:10px 12px 10px 20px;text-decoration:none;transition:border-color .4s,background .4s}
.db-btn:hover{border-color:var(--color-copper);background:rgba(1,110,205,.07)}
.db-arrowcircle{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--color-copper);color:#fff;position:relative;overflow:hidden}
.db-slot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.db-ico{will-change:transform;transition:transform .55s cubic-bezier(.16,1,.3,1)}
.db-ico--in{transform:translateX(-210%)}
.db-btn:hover .db-ico--out,.db-btn:focus-visible .db-ico--out{transform:translateX(210%)}
.db-btn:hover .db-ico--in,.db-btn:focus-visible .db-ico--in{transform:translateX(0)}
.db-grid{--db-gap:clamp(14px,1.6vw,26px);display:flex;gap:var(--db-gap)}
.db-grid .listing-card{flex:none;min-width:0;max-width:none;width:calc((100% - 2*var(--db-gap))/3);will-change:width}
.db-grid .listing-media{aspect-ratio:auto;height:clamp(340px,38vw,520px)}
.db-grid .listing-media img{transition:filter .6s}
.db-grid .listing-body h4,.db-grid .listing-body p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* tag liquid-glass: fundo ondula via filtro SVG #liquidGlass (feTurbulence +
   feDisplacementMap) encadeado no backdrop-filter — receita do Novivere */
.db-grid .listing-badge{
  -webkit-backdrop-filter:blur(2px) saturate(185%) brightness(1.06);
  backdrop-filter:blur(2px) saturate(185%) brightness(1.06) url(#liquidGlass);
  background:#ffffff0f linear-gradient(135deg,#ffffff8c 0%,#ffffff1a 28%,#fff0 52%);
  border:1px solid #ffffff9e;border-radius:999px;color:#10151c;
  box-shadow:inset 1px 1px 2px #ffffffeb,inset -1px -2px 5px #ffffff47,inset 0 0 10px #ffffff29,0 8px 24px #00000038;
}
@media (max-width:860px){
  .db-head{grid-template-columns:1fr;align-items:start}
  .db-headright{padding-bottom:0}
  .db-grid{flex-direction:column}
  .db-grid .listing-card{flex:none}
  .db-grid .listing-media{height:clamp(260px,52vw,360px)}
}
@media (prefers-reduced-motion:reduce){.db-ico{transition:none}}

/* parallax: folga simétrica na imagem (130% com -15% no topo) — o design-system
   dava 115% só para baixo e o yPercent ±12 do parallax abria fresta no topo
   com imagens de proporção exata (visto no retrato do Rodrigo) */
.parallax-media img{height:130%;position:relative;top:-15%}

/* serviços: foto de fundo apagada que acende no hover (mesmo efeito dos
   product-cards de categorias — opacity .25 + grayscale, hover .55 + cor) */
.service-card .svc-bg{position:absolute;inset:0;z-index:0;opacity:.25;transition:opacity .6s var(--ease-out-expo),transform .8s var(--ease-out-expo)}
.service-card .svc-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .8s}
.service-card:hover .svc-bg{opacity:.55;transform:scale(1.05)}
.service-card:hover .svc-bg img{filter:grayscale(.2)}
.service-card>*:not(.svc-bg){position:relative;z-index:1}

/* contenção do scroll lateral: o body já tinha overflow-x:clip, mas sem a
   mesma regra no html o viewport continuava rolando ~150px (faixa deslizante
   e zoom do hero). `clip` em vez de `hidden` porque hidden cria scroll
   container e mata o position:sticky do filtro do catálogo. */
html{overflow-x:clip}

/* ---- retrato dissolvido no fundo ----
   Sem moldura e sem parallax: em retrato o zoom+deslocamento do parallax
   corta cabeça e queixo. A dissolução tem duas camadas: a máscara apaga as
   bordas da imagem e o véu por cima devolve a cor exata do fundo da seção
   (var(--color-bg)), o que faz a foto fundir nos dois temas — sem ele, no
   tema claro o fundo escuro do estúdio recorta um bloco na página. */
.photo-blend{position:relative}
.photo-blend img{
  display:block;width:100%;height:auto;
  -webkit-mask-image:radial-gradient(ellipse 66% 62% at 50% 42%,#000 18%,rgba(0,0,0,.85) 45%,rgba(0,0,0,.35) 72%,transparent 92%);
  mask-image:radial-gradient(ellipse 66% 62% at 50% 42%,#000 18%,rgba(0,0,0,.85) 45%,rgba(0,0,0,.35) 72%,transparent 92%);
}
/* foto já vem com fundo removido (canal alpha) — tanto a máscara radial
   acima quanto o ::after abaixo foram pensados pra dissolver as bordas de
   um fundo de estúdio OPACO, cobrindo gradualmente a foto com --color-bg.
   Numa foto sem fundo isso não dissolve moldura nenhuma: dissolve as
   PESSOAS (mão, base do corpo, ombro), porque os dois cortam por posição
   geométrica, não por conteúdo. Foto recortada mostra 100% sólida. */
.photo-blend.photo-blend--cutout img{-webkit-mask-image:none;mask-image:none}
.photo-blend.photo-blend--cutout::after{content:none}
.photo-blend::after{
  content:'';position:absolute;inset:-1px;pointer-events:none;
  background:radial-gradient(ellipse 60% 56% at 50% 42%,transparent 22%,rgba(0,0,0,0) 46%,var(--color-bg) 86%);
}
/* no tema claro o fundo do estúdio é bem mais escuro que a página: véu mais
   fechado e leve clareada na foto para o halo não virar mancha */
[data-theme="light"] .photo-blend img{filter:brightness(1.05) contrast(.97)}
[data-theme="light"] .photo-blend::after{
  background:radial-gradient(ellipse 52% 50% at 50% 40%,transparent 12%,rgba(0,0,0,0) 34%,var(--color-bg) 76%);
}

/* ---- bloco do fundador (Quem somos) ---- */
.founder-quote{
  position:relative;margin:2rem 0;padding:.2rem 0 .2rem 1.6rem;
  border-left:2px solid var(--color-copper);
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1.55;color:var(--color-cream);
}
.founder-sign{
  margin:2rem 0;padding-top:1.5rem;border-top:1px solid var(--color-line);
  display:flex;flex-direction:column;gap:.2rem;
}
.founder-sign strong{
  font-family:var(--font-display);font-weight:400;font-style:italic;
  font-size:clamp(1.3rem,2vw,1.6rem);color:var(--color-cream);
}
.founder-sign span{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-subtle)}

/* ---- grid de duas colunas (foto + texto) ----
   Estava como style inline nas páginas, o que impedia media query: no celular
   as duas colunas continuavam lado a lado e o texto ficava numa faixa estreita. */
.split-grid{display:grid;gap:clamp(3rem,6vw,6rem);align-items:center}
.split-grid--photo{grid-template-columns:1fr 1.3fr}
.split-grid--even{grid-template-columns:1fr 1fr}
@media (max-width:900px){
  .split-grid{grid-template-columns:1fr!important;gap:2.5rem}
  .split-grid .photo-blend{max-width:min(360px,78vw)!important;margin:0 auto}
  .founder-quote{font-size:clamp(1.05rem,4.4vw,1.3rem)}
}

/* itálico dentro de título com background-clip:text: a inclinação joga a
   última letra para fora da caixa de texto e o clip corta o rabo do glifo.
   A folga devolve o espaço sem deslocar o layout. */
.page-hero-title em,.hero-title em,.cta-title em{padding-right:.1em;margin-right:-.1em}

/* ---- lista como seção inteira (componente do design system) ----
   Cada linha ocupa a largura toda e revela a foto no hover; a palavra grande
   é o alvo de leitura e o texto explicativo fica à esquerda, em corpo menor,
   para nunca competirem pelo mesmo peso. */
.rowlist{background:var(--color-bg-elevated);position:relative;overflow:hidden;padding:clamp(4rem,10vh,8rem) 0 clamp(3rem,7vh,6rem)}
.rowlist-inner{padding:0 clamp(1.25rem,5vw,4rem)}
.rowlist-head{display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);gap:clamp(1.5rem,4vw,4rem);align-items:start;margin-bottom:clamp(2.5rem,7vh,6rem)}
.rowlist-caption{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--color-copper-light);padding-top:.9rem}
.rowlist-title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,4.6rem);font-weight:400;line-height:1.05;letter-spacing:-.01em;color:var(--color-text);margin:0}
.rowlist-title em{font-style:italic;color:var(--color-text-subtle);padding-right:.1em;margin-right:-.1em}
.rowlist-items{border-top:1px solid var(--color-line)}
.rowlist-item{
  display:block;position:relative;width:100%;overflow:hidden;text-align:left;
  border:none;border-bottom:1px solid var(--color-line);background:0 0;
  color:inherit;font:inherit;cursor:pointer;text-decoration:none;
}
.rowlist-bg{position:absolute;inset:0;z-index:0;pointer-events:none;clip-path:inset(0 0 0 100%);transition:clip-path 1s var(--ease-out-expo)}
.rowlist-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 1.2s var(--ease-out-expo)}
.rowlist-bg::after{content:'';position:absolute;inset:0;background:rgba(12,16,21,.62)}
.rowlist-item:hover .rowlist-bg,.rowlist-item:focus-visible .rowlist-bg{clip-path:inset(0 0 0 0%)}
.rowlist-item:hover .rowlist-bg img,.rowlist-item:focus-visible .rowlist-bg img{transform:scale(1)}
.rowlist-row{
  position:relative;z-index:1;display:grid;align-items:center;
  grid-template-columns:minmax(0,42%) minmax(0,58%);gap:clamp(1.25rem,4vw,4rem);
  padding:clamp(1.6rem,4.5vh,3.2rem) clamp(1.25rem,5vw,4rem);min-height:168px;
}
.rowlist-left{display:flex;align-items:flex-start;gap:clamp(1rem,2.4vw,2.5rem)}
.rowlist-num{
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  width:60px;height:60px;border:1px solid var(--color-line);border-radius:50%;
  font-family:var(--font-mono);font-size:1rem;color:var(--color-text);
  transition:border-color .4s,background .4s,color .4s;
}
.rowlist-item:hover .rowlist-num,.rowlist-item:focus-visible .rowlist-num{background:var(--color-copper);border-color:var(--color-copper);color:#fff}
.rowlist-text{max-width:34ch;margin:0;font-size:var(--fs-sm);line-height:1.55;color:var(--color-text-muted);transition:color .4s}
.rowlist-item:hover .rowlist-text,.rowlist-item:focus-visible .rowlist-text{color:var(--color-text)}
.rowlist-right{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-width:0}
.rowlist-word{
  position:relative;font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.1rem,5vw,4.6rem);line-height:1;letter-spacing:-.02em;color:var(--color-text);white-space:nowrap;
}
.rowlist-word::after{content:'';position:absolute;left:0;bottom:.1em;width:100%;height:2px;background:currentColor;transform:scaleX(0);transform-origin:0;transition:transform .9s var(--ease-out-expo)}
.rowlist-item:hover .rowlist-word::after,.rowlist-item:focus-visible .rowlist-word::after{transform:scaleX(1)}
.rowlist-arrow{flex-shrink:0;color:var(--color-text);opacity:0;transform:translateX(-24px);transition:opacity .45s var(--ease-out-expo),transform .45s var(--ease-out-expo)}
.rowlist-item:hover .rowlist-arrow,.rowlist-item:focus-visible .rowlist-arrow{opacity:1;transform:translateX(0)}
@media (max-width:860px){
  .rowlist-head,.rowlist-row{grid-template-columns:1fr;gap:1.25rem}
  .rowlist-caption{padding-top:0}
  .rowlist-right{justify-content:flex-start}
  .rowlist-arrow{display:none}
  .rowlist-row{min-height:0}
  .rowlist-bg{clip-path:none;opacity:.22}
  .rowlist-bg img{transform:scale(1)}
}

/* ---- formulário de candidatura (Trabalhe conosco) ---- */
.work-form{background:var(--color-bg-card);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:clamp(1.5rem,3vw,2.5rem);display:flex;flex-direction:column;gap:1.75rem}
.work-form fieldset{border:none;display:flex;flex-direction:column;gap:1rem;padding:0}
.work-form legend{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--color-copper-light);margin-bottom:.75rem}
.wf-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.wf-field{display:flex;flex-direction:column;gap:.45rem}
.wf-field>span{font-size:var(--fs-xs);color:var(--color-text-muted)}
.wf-field input,.wf-field select,.wf-field textarea{
  width:100%;background:var(--color-bg-elevated);color:var(--color-text);
  border:1px solid var(--color-line);border-radius:var(--radius-sm);
  padding:.7rem .85rem;font-family:inherit;font-size:var(--fs-sm);
  transition:border-color var(--dur-fast);
}
.wf-field input:focus,.wf-field select:focus,.wf-field textarea:focus{outline:none;border-color:var(--color-copper)}
.wf-field input[type="file"]{padding:.55rem .6rem;font-size:var(--fs-xs);color:var(--color-text-muted)}
.wf-hint{font-size:var(--fs-xs);color:var(--color-text-subtle);line-height:1.4}
.wf-check{display:flex;gap:.7rem;align-items:flex-start;font-size:var(--fs-xs);color:var(--color-text-muted);line-height:1.5}
.wf-check input{margin-top:.15rem;accent-color:var(--color-copper);flex-shrink:0}
.wf-note{font-size:var(--fs-xs);color:var(--color-text-subtle);text-align:center}
.wf-error{color:var(--color-coral,#ED4040)}
@media (max-width:600px){.wf-row{grid-template-columns:1fr}}

/* ---- localização da loja (Quem somos) ---- */
.place-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,3rem);align-items:stretch}
.place-info{display:flex;flex-direction:column;gap:1.75rem;justify-content:center}
.place-item{display:flex;gap:1rem;align-items:flex-start}
.place-item>iconify-icon{font-size:1.5rem;color:var(--color-copper-light);flex-shrink:0;margin-top:.15rem}
.place-item strong{display:block;font-family:var(--font-display);font-weight:400;font-size:1.15rem;color:var(--color-cream);margin-bottom:.4rem}
.place-item p{font-size:var(--fs-sm);line-height:1.7;color:var(--color-text-muted);margin-bottom:.5rem}
.place-map{border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;min-height:340px}
.place-map #storeMap{width:100%;height:100%;min-height:340px;background:var(--color-bg-elevated)}
.store-pin span{display:block;width:22px;height:22px;border-radius:50%;background:var(--color-copper);border:3px solid var(--color-cream);box-shadow:0 0 0 6px rgba(1,110,205,.28)}
.leaflet-container{background:var(--color-bg-elevated)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--color-bg-card);color:var(--color-text);border:1px solid var(--color-line)}
.leaflet-popup-content{font-family:var(--font-body);font-size:var(--fs-xs);line-height:1.5}
@media (max-width:860px){.place-grid{grid-template-columns:1fr}.place-map{min-height:280px}}

/* ---- depoimentos (bloco preparado para as avaliações do Google) ---- */
.quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}
.quote-card{background:var(--color-bg-card);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:clamp(1.5rem,2.5vw,2rem);display:flex;flex-direction:column;gap:1rem;margin:0}
.quote-stars{display:flex;gap:.2rem;color:var(--color-copper-light);font-size:1.05rem}
.quote-card blockquote{margin:0;font-size:var(--fs-sm);line-height:1.75;color:var(--color-text-muted)}
.quote-card figcaption{display:flex;flex-direction:column;gap:.15rem;padding-top:1rem;border-top:1px solid var(--color-line)}
.quote-card figcaption strong{font-family:var(--font-display);font-weight:400;font-size:1.05rem;color:var(--color-cream)}
.quote-card figcaption span{font-size:var(--fs-xs);color:var(--color-text-subtle)}

/* ---- retrato que acompanha a leitura ----
   O texto do fundador é bem mais alto que a foto. Centralizado, sobrava um
   vão no topo da coluna esquerda e a foto sumia antes do fim do texto. Com
   a coluna alinhada ao topo e a foto em sticky, ela entra junto com a seção
   e desce acompanhando o scroll até o último parágrafo. */
.split-grid--sticky{align-items:stretch}
/* a coluna precisa esticar por toda a altura do texto: se o proprio elemento
   sticky for o grid item com align-self:start, a area de encaixe fica do
   tamanho exato da foto e nao sobra percurso para ela grudar */
.split-grid--sticky .photo-col{position:relative;height:100%}
.split-grid--sticky .photo-blend{position:sticky;top:calc(76px + 1.5rem)}
.split-grid--sticky .photo-blend img{max-height:calc(100vh - 76px - 4rem);width:auto;margin-inline:auto}
@media (max-width:900px){
  .split-grid--sticky{align-items:start}
  .split-grid--sticky .photo-col{height:auto}
  .split-grid--sticky .photo-blend{position:static;top:auto}
  .split-grid--sticky .photo-blend img{max-height:none;width:100%}
}

/* coluna de texto que acompanha o formulário longo (Trabalhe conosco).
   Mesma armadilha do retrato: o grid item precisa esticar por toda a altura
   do formulário e quem gruda é o filho, senão não sobra percurso. */
.split-grid--sticky .sticky-wrap{height:100%}
.split-grid--sticky .sticky-col{position:sticky;top:calc(76px + 2rem)}
@media (max-width:900px){
  .split-grid--sticky .sticky-wrap{height:auto}
  .split-grid--sticky .sticky-col{position:static;top:auto}
}
