/*
Theme Name: Altos do Horto
Theme URI: https://altosdohorto.casaelotefacil.com.br
Author: GTW Agência
Author URI: https://www.gtwagencia.com.br
Description: Tema sob medida para a landing page do loteamento Altos do Horto (Maracaju/MS), comercializado pela Casa e Lote Fácil. Captação de leads em dois formulários, planta interativa e painel de configuração no Personalizar.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: altos-do-horto
Tags: landing-page, one-column, custom-logo, custom-menu, translation-ready
*/
/* =========================================================
   Altos do Horto — Casa e Lote Fácil
   Paleta e tipografia derivadas da marca do empreendimento.
   ========================================================= */

:root{
  /* cor */
  --deep:    #17301A;  /* verde mata profundo — fundo dominante */
  --deep-2:  #102213;  /* mais escuro, para contraste dentro do escuro */
  --canopy:  #2F5230;  /* verde folha médio */
  --lime:    #A8BE3C;  /* verde-limão da marca — destaque principal */
  --lime-hi: #C2D75C;
  --clay:    #B4643C;  /* terra vermelha de Maracaju */
  --clay-dk: #8E4A2A;
  --paper:   #F2F0E6;  /* off-white levemente esverdeado */
  --paper-2: #E4E1D2;
  --ink:     #14200F;

  /* tipografia */
  --display: "Fraunces", "Georgia", serif;
  --body:    "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* escala fluida */
  --t-hero: clamp(2.3rem, 4.4vw, 4.15rem);
  --t-h2:   clamp(1.95rem, 4.1vw, 3.4rem);
  --t-h3:   clamp(1.15rem, 1.7vw, 1.4rem);
  --t-lead: clamp(1.02rem, 1.35vw, 1.19rem);

  /* ritmo */
  --gut:  clamp(1.25rem, 4vw, 2.5rem);
  --sect: clamp(4.5rem, 10vw, 9rem);
  --wrap: 1220px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--deep);
  color:var(--paper);
  font-family:var(--body);
  font-size:clamp(1rem,1.05vw,1.06rem);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
[hidden]{ display:none !important; }
h1,h2,h3{ margin:0; font-weight:400; line-height:1.05; letter-spacing:-.015em; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
a{ color:inherit; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--lime); color:var(--ink);
  padding:.75rem 1.25rem; font-weight:600; border-radius:0 0 6px 0;
}
.skip-link:focus{ left:0; }

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--lime-hi);
  outline-offset:3px;
  border-radius:2px;
}

.wrap{ width:min(100% - var(--gut)*2, var(--wrap)); margin-inline:auto; }
.wrap--narrow{ max-width:860px; }

/* =========================================================
   DEVICE ESTRUTURAL — "linha de testada"
   Traço com ticks verticais regulares, como a demarcação
   das frentes de lote no desenho de um loteamento.
   ========================================================= */
.eyebrow{
  display:flex; align-items:center; gap:.7rem;
  font-size:.72rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--canopy); margin:0 0 1.4rem;
}
.eyebrow--light{ color:var(--lime); }
.eyebrow::after{
  content:""; flex:1; height:7px; max-width:170px;
  background:
    repeating-linear-gradient(to right, currentColor 0 1px, transparent 1px 13px) top left/100% 7px no-repeat,
    linear-gradient(currentColor,currentColor) bottom left/100% 1px no-repeat;
  opacity:.55;
}
.eyebrow__dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--lime); flex:none;
  box-shadow:0 0 0 4px rgba(168,190,60,.2);
}

/* =========================================================
   BOTÕES
   ========================================================= */
.btn{
  --btn-bg:var(--lime); --btn-fg:var(--ink); --btn-bd:var(--lime);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.82rem 1.6rem;
  font-family:var(--body); font-size:.94rem; font-weight:600; letter-spacing:.005em;
  text-decoration:none; cursor:pointer; text-align:center;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid var(--btn-bd); border-radius:100px;
  transition:transform .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }
.btn--lime:hover{ --btn-bg:var(--lime-hi); --btn-bd:var(--lime-hi); }
.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--paper); --btn-bd:rgba(242,240,230,.4); }
.btn--ghost:hover{ --btn-bg:rgba(242,240,230,.1); --btn-bd:var(--paper); }
.btn--dark{ --btn-bg:var(--deep); --btn-fg:var(--paper); --btn-bd:var(--deep); }
.btn--dark:hover{ --btn-bg:var(--canopy); --btn-bd:var(--canopy); }
.btn--paper{ --btn-bg:var(--paper); --btn-fg:var(--clay-dk); --btn-bd:var(--paper); }
.btn--paper:hover{ --btn-bg:#fff; --btn-bd:#fff; }
.btn--lg{ padding:1.02rem 2rem; font-size:1rem; }
.btn--block{ width:100%; }

/* CTA repetido no fim das faixas */
.cta-inline{
  display:flex; flex-wrap:wrap; align-items:center; gap:.85rem 1.4rem;
  margin-top:clamp(2.5rem,5vw,3.75rem);
}
.cta-inline--center{ justify-content:center; text-align:center; flex-direction:column; }
.cta-inline span{ font-size:.9rem; opacity:.72; }
.cta-inline__note{ max-width:36ch; }

/* =========================================================
   TOPBAR
   ========================================================= */
.topbar{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background-color .35s var(--ease), box-shadow .35s var(--ease);
}
.topbar.is-stuck{
  background:rgba(16,34,19,.93);
  backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(242,240,230,.1);
}
.topbar__inner{
  width:min(100% - var(--gut)*2, var(--wrap)); margin-inline:auto;
  display:flex; align-items:center; gap:2rem;
  padding:1rem 0;
}
.topbar__brand img{ height:52px; width:auto; }
.topbar__nav{ display:flex; gap:2rem; margin-left:auto; }
.topbar__nav a{
  font-size:.87rem; font-weight:500; text-decoration:none;
  color:rgba(242,240,230,.82); position:relative; padding-block:.25rem;
}
.topbar__nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--lime); transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--ease);
}
.topbar__nav a:hover{ color:var(--paper); }
.topbar__nav a:hover::after{ transform:scaleX(1); }
.topbar__cta{ padding:.6rem 1.25rem; font-size:.86rem; }

.topbar__toggle{
  display:none; margin-left:auto;
  width:44px; height:44px; padding:0;
  background:none; border:1px solid rgba(242,240,230,.3); border-radius:50%;
  cursor:pointer; position:relative;
}
.topbar__toggle span{
  position:absolute; left:13px; width:18px; height:1.5px; background:var(--paper);
  transition:transform .3s var(--ease), opacity .2s;
}
.topbar__toggle span:nth-child(1){ top:19px; }
.topbar__toggle span:nth-child(2){ top:25px; }
.topbar__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(3px) rotate(45deg); }
.topbar__toggle[aria-expanded="true"] span:nth-child(2){ transform:translateY(-3px) rotate(-45deg); }

.menu-mobile{
  background:var(--deep-2);
  border-top:1px solid rgba(242,240,230,.12);
  padding:1rem var(--gut) 1.75rem;
  display:flex; flex-direction:column; gap:.25rem;
}
.menu-mobile a{
  text-decoration:none; padding:.85rem 0; font-size:1.05rem;
  border-bottom:1px solid rgba(242,240,230,.09);
}
.menu-mobile__cta{
  margin-top:1rem; border:none !important;
  background:var(--lime); color:var(--ink);
  text-align:center; border-radius:100px; font-weight:600;
}

@media (max-width:1040px){
  .topbar__nav{ gap:1.4rem; }
  .topbar__nav a{ font-size:.82rem; }
}
@media (max-width:900px){
  .topbar__nav, .topbar__cta{ display:none; }
  .topbar__toggle{ display:block; }
  .topbar.is-open{ background:var(--deep-2); }
  .topbar__brand img{ height:44px; }
}
@media (min-width:901px){ .menu-mobile{ display:none !important; } }

/* =========================================================
   HERO + FORMULÁRIO
   ========================================================= */
.hero{
  position:relative; isolation:isolate;
  padding:clamp(6.25rem,11vh,8rem) var(--gut) clamp(2.75rem,5vw,4rem);
}
.hero__bg{ position:absolute; inset:0; z-index:-2; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(9,20,11,.82) 0%, rgba(9,20,11,.45) 30%, rgba(16,34,19,.72) 72%, var(--deep) 100%),
    linear-gradient(100deg, rgba(9,20,11,.8) 0%, rgba(9,20,11,.25) 55%, rgba(9,20,11,.05) 100%);
}
/* Duas colunas: à esquerda o discurso e a ficha técnica, à direita o cadastro.
   No mobile o cadastro sobe à frente da ficha técnica, para ficar ao alcance. */
.hero__grid{
  width:min(100%, var(--wrap)); margin-inline:auto;
  display:grid;
  grid-template-columns:1fr minmax(380px, 460px);
  grid-template-areas:
    "copy  form"
    "facts form";
  column-gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.hero__copy { grid-area:copy;  align-self:end; }
.hero__facts{ grid-area:facts; align-self:start; }
.formcard--hero{ grid-area:form; align-self:center; }
.hero__title{
  font-family:var(--display);
  font-size:var(--t-hero);
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 120;
  font-weight:340;
  letter-spacing:-.028em;
  margin-bottom:1.4rem;
}
.hero__title em{
  font-style:italic; font-weight:400;
  color:var(--lime);
  font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 100;
}
.hero__lead{
  font-size:var(--t-lead); max-width:48ch;
  color:rgba(242,240,230,.88);
}

.hero__facts{
  margin:clamp(2.25rem,4.5vw,3.25rem) 0 0;
  display:grid; grid-template-columns:repeat(4,auto); justify-content:start;
  gap:0;
  border-top:1px solid rgba(242,240,230,.24);
  padding-top:1.1rem;
}
.hero__fact{ position:relative; padding-inline:clamp(.9rem,2vw,1.6rem); }
.hero__fact:first-child{ padding-left:0; }
.hero__fact::before{
  content:""; position:absolute; top:-1.1rem; left:0;
  width:1px; height:9px; background:var(--lime);
}
.hero__fact:first-child::before{ display:none; }
.hero__fact dt{
  font-size:.66rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:rgba(242,240,230,.62); margin-bottom:.25rem;
}
.hero__fact dd{
  margin:0; font-family:var(--display); font-size:clamp(1.15rem,1.9vw,1.6rem);
  font-variation-settings:"SOFT" 50,"WONK" 0,"opsz" 90; font-weight:350; line-height:1;
}
.hero__fact dd span{ font-family:var(--body); font-size:.58em; font-weight:500; color:var(--lime); }

@media (max-width:980px){
  .hero__grid{
    grid-template-columns:1fr;
    grid-template-areas:"copy" "form" "facts";
    row-gap:clamp(2rem,5vw,2.75rem);
  }
  .hero__copy{ max-width:640px; }
  .hero__facts{ margin-top:0; }
}
@media (max-width:560px){
  .hero__facts{ grid-template-columns:repeat(2,1fr); gap:1.2rem 0; justify-content:stretch; }
  .hero__fact{ padding-inline:0 .75rem; }
  .hero__fact:nth-child(even){ padding-left:1rem; }
  .hero__fact:nth-child(even)::before{ display:block; }
  .hero__fact:nth-child(odd)::before{ display:none; }
  .hero__fact:nth-child(3),.hero__fact:nth-child(4){ padding-top:1.1rem; }
  .hero__fact:nth-child(4)::before{ top:0; }
  .hero__fact dt{ font-size:.62rem; }
}

/* =========================================================
   MANIFESTO
   ========================================================= */
.manifesto{
  background:var(--deep);
  padding:clamp(3.5rem,7vw,6rem) var(--gut) var(--sect);
}
.manifesto__open{
  font-family:var(--display);
  font-size:clamp(1.35rem,2.5vw,2.05rem);
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 100;
  font-weight:330; line-height:1.35; letter-spacing:-.015em;
  color:rgba(242,240,230,.94);
  text-wrap:balance;
}
.claims{ margin-top:clamp(2.75rem,6vw,4.25rem); display:grid; gap:0; }
.claim{
  display:grid; grid-template-columns:minmax(0,90px) 1fr; align-items:center; gap:clamp(1rem,3vw,2.25rem);
  padding:clamp(1.1rem,2.4vw,1.6rem) 0;
  border-bottom:1px solid rgba(242,240,230,.14);
}
.claim:first-child{ border-top:1px solid rgba(242,240,230,.14); }
.claim__rule{
  height:7px;
  background:
    repeating-linear-gradient(to right, var(--lime) 0 1px, transparent 1px 12px) top left/100% 7px no-repeat,
    linear-gradient(var(--lime),var(--lime)) bottom left/100% 1px no-repeat;
  opacity:.75;
}
.claim__text{
  font-family:var(--display);
  font-size:clamp(1.4rem,3.4vw,2.5rem);
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 110;
  font-weight:330; line-height:1.15; letter-spacing:-.02em;
}
.claim__text em{ font-style:italic; color:var(--lime); font-weight:380; }

/* =========================================================
   SEÇÕES GENÉRICAS
   ========================================================= */
.section{ padding:var(--sect) var(--gut); }
.section--dark{ background:var(--deep-2); }
.section--paper{ background:var(--paper); color:var(--ink); }
.section--clay{ background:var(--clay); color:var(--paper); }

.section__head{ max-width:760px; margin-bottom:clamp(2.75rem,6vw,4.5rem); }
.section__head--center{ margin-inline:auto; text-align:center; }
.section__head--center .eyebrow{ justify-content:center; }
.section__head--center .eyebrow::after{ display:none; }

.section__title{
  font-family:var(--display);
  font-size:var(--t-h2);
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 130;
  font-weight:340; letter-spacing:-.025em;
  text-wrap:balance;
}
.section__title em{ font-style:italic; color:var(--lime); font-weight:380; }
.section--paper .section__title em{ color:var(--clay-dk); }
.section--clay .section__title em{ color:var(--paper); }

.section__lead{
  font-size:var(--t-lead); max-width:58ch; margin-top:1.4rem;
  color:rgba(242,240,230,.8);
}
.section--paper .section__lead{ color:rgba(20,32,15,.74); }
.section--clay .section__lead{ color:rgba(242,240,230,.9); }
.section--paper .eyebrow{ color:var(--clay-dk); }
.section--clay .eyebrow{ color:var(--paper); }
.section--paper .cta-inline span{ color:rgba(20,32,15,.7); }

/* =========================================================
   MOSAICO DO PROJETO
   ========================================================= */
.mosaic{
  display:grid; gap:clamp(1rem,2.2vw,1.75rem);
  grid-template-columns:repeat(3,1fr);
  align-items:start;
}
.mosaic__item{ margin:0; }
.mosaic__item--drop{ margin-top:clamp(1.5rem,4vw,3.5rem); }
.mosaic__item > img{
  width:100%; border-radius:3px;
  aspect-ratio:4/5; object-fit:cover;
  transition:transform .7s var(--ease);
}
.mosaic__item{ overflow:clip; }
.mosaic__item:hover > img{ transform:scale(1.035); }
.mosaic__item figcaption{
  margin-top:1rem; font-size:.93rem; line-height:1.5;
  color:rgba(242,240,230,.72); max-width:42ch;
}
.figlabel{
  display:block; font-size:.68rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--lime); margin-bottom:.35rem;
}
@media (max-width:820px){
  .mosaic{ grid-template-columns:1fr 1fr; }
  .mosaic__item--drop{ margin-top:0; }
  .mosaic__item:last-child{ grid-column:span 2; }
  .mosaic__item:last-child > img{ aspect-ratio:16/9; }
}
@media (max-width:540px){
  .mosaic{ grid-template-columns:1fr; }
  .mosaic__item:last-child{ grid-column:auto; }
  .mosaic__item:last-child > img{ aspect-ratio:4/5; }
}

/* =========================================================
   GALERIA — vídeos e fotos da praça
   ========================================================= */
.galeria{ background:var(--deep); }

/* Player grande + lista. No desktop a lista fica ao lado; no tablet
   vira uma fileira de cinco embaixo; no celular, uma lista de novo. */
.videos{
  display:grid; gap:clamp(1rem,2vw,1.5rem);
  grid-template-columns:minmax(0,2fr) minmax(0,1fr);
  align-items:start;
}
.videos__player{
  position:relative; aspect-ratio:16/9;
  background:var(--deep-2); border-radius:3px; overflow:hidden;
}
.videos__player iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.videos__capa{ position:absolute; inset:0; display:block; color:var(--paper); text-decoration:none; }
.videos__capa img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.videos__capa::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(9,20,11,.78) 0%, rgba(9,20,11,.1) 45%, rgba(9,20,11,0) 70%);
}
.videos__capa:hover img{ transform:scale(1.03); }
.videos__play{
  position:absolute; left:50%; top:50%; z-index:1;
  width:clamp(62px,7vw,84px); aspect-ratio:1; border-radius:50%;
  display:grid; place-items:center;
  background:var(--lime); color:var(--ink);
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 10px rgba(168,190,60,.22), 0 14px 34px rgba(0,0,0,.35);
  transition:transform .3s var(--ease), background-color .3s var(--ease);
}
.videos__play svg{ margin-left:3px; } /* o triângulo parece torto no centro exato */
.videos__capa:hover .videos__play{ transform:translate(-50%,-50%) scale(1.07); background:var(--lime-hi); }
.videos__rotulo{
  position:absolute; left:clamp(1rem,2.4vw,1.75rem); right:1rem; bottom:clamp(.9rem,2.2vw,1.5rem); z-index:1;
}
.videos__rotulo-nome{
  display:block; font-family:var(--display);
  font-size:clamp(1.15rem,2vw,1.6rem); line-height:1.15;
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 60; font-weight:380;
}

.videos__lista{ display:grid; gap:.4rem; margin:0; padding:0; list-style:none; }
.videos__item{
  display:grid; grid-template-columns:112px 1fr; gap:.9rem; align-items:center;
  padding:.45rem; border-radius:4px; text-decoration:none;
  border:1px solid transparent;
  transition:background-color .25s var(--ease), border-color .25s var(--ease);
}
.videos__item:hover{ background:rgba(242,240,230,.06); }
.videos__item.is-on{ background:rgba(168,190,60,.1); border-color:rgba(168,190,60,.45); }
.videos__thumb{ position:relative; display:block; aspect-ratio:16/9; border-radius:2px; overflow:hidden; }
.videos__thumb img{ width:100%; height:100%; object-fit:cover; }
.videos__num{
  display:block; margin-bottom:.15rem;
  font-size:.64rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--lime);
}
.videos__nome{ display:block; font-size:.92rem; line-height:1.35; color:rgba(242,240,230,.9); }

@media (max-width:1100px){
  .videos{ grid-template-columns:1fr; }
  .videos__lista{ grid-template-columns:repeat(5,minmax(0,1fr)); gap:.6rem; }
  .videos__item{ grid-template-columns:1fr; gap:.55rem; align-items:start; padding:.4rem .4rem .6rem; }
  .videos__nome{ font-size:.84rem; }
}
@media (max-width:640px){
  .videos__lista{ grid-template-columns:1fr; gap:.3rem; }
  .videos__item{ grid-template-columns:104px 1fr; gap:.85rem; align-items:center; padding:.4rem; }
  .videos__nome{ font-size:.9rem; }
  .videos__rotulo .figlabel{ display:none; }
}

/* Fotos: a aérea ocupa duas colunas ao lado de uma foto; embaixo, três. */
.fotos{
  margin-top:clamp(1.75rem,3.5vw,2.75rem);
  display:grid; gap:clamp(.6rem,1.4vw,1.1rem);
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.fotos__item--wide{ grid-column:span 2; }
.fotos__item a{
  position:relative; display:block;
  aspect-ratio:16/9; border-radius:3px; overflow:hidden;
  color:var(--paper); text-decoration:none; cursor:zoom-in;
}
.fotos__item img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
/* A aérea acompanha a altura da foto ao lado. Solta no fluxo, a proporção
   dela (quase 3:1) decidiria a altura da fileira e esticaria a vizinha. */
.fotos__item--wide a{ aspect-ratio:auto; height:100%; }
.fotos__item--wide img{ position:absolute; inset:0; }
.fotos__item a:hover img{ transform:scale(1.04); }
.fotos__item a::after{
  content:""; position:absolute; inset:auto 0 0 0; height:60%;
  background:linear-gradient(to top, rgba(9,20,11,.72), rgba(9,20,11,0));
  pointer-events:none;
}
.fotos__legenda{
  position:absolute; left:1rem; right:1rem; bottom:.8rem; z-index:1;
  font-size:.86rem; font-weight:500; line-height:1.35;
}
.galeria__nota{
  margin-top:1.1rem; font-size:.84rem;
  color:rgba(242,240,230,.55);
}
@media (max-width:820px){
  .fotos{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fotos__item--wide a{ height:auto; aspect-ratio:1920/659; }
}
@media (max-width:540px){
  .fotos__item:not(.fotos__item--wide) .fotos__legenda,
  .fotos__item:not(.fotos__item--wide) a::after{ display:none; }
  .fotos__legenda{ font-size:.8rem; left:.8rem; bottom:.6rem; }
}

/* Foto ampliada — <dialog> nativo */
.lightbox{
  width:100%; height:100%; max-width:none; max-height:none;
  margin:0; padding:clamp(4rem,7vw,4.5rem) clamp(.75rem,7vw,5.5rem);
  border:0; background:transparent; color:var(--paper);
  overflow:hidden;
}
.lightbox[open]{ display:grid; place-items:center; }
.lightbox::backdrop{ background:rgba(9,20,11,.94); }
.lightbox__fig{ margin:0; display:grid; gap:.9rem; justify-items:center; max-width:100%; }
.lightbox__img{
  width:auto; height:auto; max-width:100%;
  max-height:calc(100dvh - 10rem);
  border-radius:3px;
}
.lightbox__cap{ font-size:.92rem; text-align:center; color:rgba(242,240,230,.86); }
.lightbox__conta{
  margin-left:.6rem; font-size:.72rem; font-weight:700; letter-spacing:.12em;
  color:var(--lime);
}
.lightbox__btn{
  position:absolute; width:48px; height:48px; padding:0; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(242,240,230,.08); color:var(--paper);
  border:1px solid rgba(242,240,230,.3); cursor:pointer;
  transition:background-color .2s var(--ease), border-color .2s var(--ease);
}
.lightbox__btn:hover{ background:rgba(242,240,230,.18); border-color:var(--paper); }
.lightbox__fechar{ top:clamp(.75rem,2vw,1.25rem); right:clamp(.75rem,2vw,1.25rem); }
.lightbox__ant, .lightbox__prox{ top:50%; transform:translateY(-50%); }
.lightbox__ant{ left:clamp(.75rem,2vw,1.5rem); }
.lightbox__prox{ right:clamp(.75rem,2vw,1.5rem); }
/* no celular as setas descem para não cobrir a foto */
@media (max-width:700px){
  .lightbox{ padding-bottom:5.5rem; }
  .lightbox__ant, .lightbox__prox{ top:auto; bottom:1.25rem; transform:none; }
  .lightbox__ant{ left:calc(50% - 60px); }
  .lightbox__prox{ right:calc(50% - 60px); }
}
html.lightbox-aberto{ overflow:hidden; }

/* =========================================================
   PLANTA — elemento assinatura
   ========================================================= */
.planta__dado{
  margin-top:1.5rem;
  font-size:clamp(1rem,1.3vw,1.13rem);
  color:rgba(20,32,15,.72);
}
.planta__dado strong{
  font-family:var(--display);
  font-size:1.9em; font-weight:400; line-height:1;
  font-variation-settings:"SOFT" 50,"WONK" 0,"opsz" 90;
  color:var(--clay-dk);
  vertical-align:-.12em; margin-right:.12em;
}

.plantafig{ margin:0; }
.plantafig__frame{
  position:relative;
  border:1px solid rgba(20,32,15,.18);
  border-radius:4px;
  background:var(--paper-2);
  padding:clamp(.5rem,1.2vw,1rem);
}
.plantafig__frame img{ width:100%; border-radius:2px; }
.plantafig__cap{
  margin-top:1.1rem; font-size:.84rem;
  color:rgba(20,32,15,.6); text-align:center;
}

.pin{
  position:absolute; left:var(--x); top:var(--y);
  transform:translate(-50%,-50%);
  width:auto; padding:0; margin:0;
  background:none; border:0; cursor:pointer;
  display:flex; align-items:center; gap:.6rem;
}
.pin__dot{
  flex:none; width:13px; height:13px; border-radius:50%;
  background:var(--paper); border:3px solid var(--clay);
  box-shadow:0 0 0 0 rgba(180,100,60,.45);
  animation:pulse 2.8s var(--ease) infinite;
}
@keyframes pulse{
  0%,70%,100%{ box-shadow:0 0 0 0 rgba(180,100,60,.45); }
  35%{ box-shadow:0 0 0 9px rgba(180,100,60,0); }
}
.pin__label{
  white-space:nowrap;
  background:var(--deep); color:var(--paper);
  font-size:.73rem; font-weight:600; letter-spacing:.02em;
  padding:.42rem .7rem; border-radius:3px;
  opacity:0; transform:translateX(-6px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
  pointer-events:none;
}
.pin:hover .pin__label,
.pin:focus-visible .pin__label,
.pin.is-on .pin__label{ opacity:1; transform:translateX(0); }

/* variantes de direção do rótulo, para não sair do quadro */
.pin--left{ flex-direction:row-reverse; }
.pin--left .pin__label{ transform:translateX(6px); }
.pin--left:hover .pin__label,
.pin--left:focus-visible .pin__label,
.pin--left.is-on .pin__label{ transform:translateX(0); }
.pin--up{ flex-direction:column-reverse; gap:.45rem; }
.pin--up .pin__label{ transform:translateY(6px); }
.pin--up:hover .pin__label,
.pin--up:focus-visible .pin__label,
.pin--up.is-on .pin__label{ transform:translateY(0); }

/* Em tela estreita a planta fica ilegível encolhida, então ela mantém
   uma largura mínima e a pessoa arrasta para percorrer o terreno. */
@media (max-width:760px){
  .plantafig__scroll{
    overflow-x:auto; overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  .plantafig__frame{ min-width:680px; }
  .plantafig__cap::after{ content:" Arraste para o lado para ver o terreno inteiro."; }
}
@media (max-width:700px){
  .pin__label{ font-size:.66rem; padding:.32rem .55rem; }
  .pin__dot{ width:12px; height:12px; border-width:3px; }
}

/* =========================================================
   MOTIVOS
   ========================================================= */
.reasons{
  display:grid; gap:0;
  grid-template-columns:repeat(2,1fr);
  border-top:1px solid rgba(242,240,230,.28);
}
.reason{
  padding:clamp(1.9rem,3.6vw,2.9rem) clamp(1.5rem,3vw,2.75rem) clamp(1.9rem,3.6vw,2.9rem) 0;
  border-bottom:1px solid rgba(242,240,230,.28);
  position:relative;
}
.reason:nth-child(odd){ border-right:1px solid rgba(242,240,230,.28); }
.reason:nth-child(even){ padding-left:clamp(1.5rem,3vw,2.75rem); }
.reason::before{
  content:""; position:absolute; top:-1px; left:0;
  width:34px; height:2px; background:var(--paper);
}
.reason:nth-child(even)::before{ left:clamp(1.5rem,3vw,2.75rem); }
.reason h3{
  font-family:var(--display); font-size:var(--t-h3);
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 40;
  font-weight:450; margin-bottom:.7rem;
}
.reason p{ color:rgba(242,240,230,.86); font-size:.99rem; max-width:40ch; }
@media (max-width:680px){
  .reasons{ grid-template-columns:1fr; }
  .reason,.reason:nth-child(even){ padding-inline:0; }
  .reason:nth-child(odd){ border-right:0; }
  .reason:nth-child(even)::before{ left:0; }
}

/* =========================================================
   VIDA NO BAIRRO
   ========================================================= */
.vida__grid{
  display:grid; gap:clamp(1.5rem,4vw,3.25rem);
  grid-template-columns:1fr 1.15fr 1fr;
  align-items:center;
}
.vida__img{ margin:0; overflow:clip; border-radius:3px; }
.vida__img img{ width:100%; aspect-ratio:3/4; object-fit:cover; }
.vida__img--a{ margin-top:clamp(2rem,7vw,5rem); }
.vida__img--b{ margin-bottom:clamp(2rem,7vw,5rem); }
.vida__text{ text-align:center; }
.vida__text .eyebrow{ justify-content:center; }
.vida__text .eyebrow::after{ display:none; }
.vida__text .section__lead{ margin-inline:auto; }
.vida__text .btn{ margin-top:2rem; }
@media (max-width:900px){
  .vida__grid{ grid-template-columns:1fr 1fr; }
  .vida__text{ grid-column:span 2; order:-1; margin-bottom:1rem; }
  .vida__img--a,.vida__img--b{ margin:0; }
}

/* =========================================================
   LOCALIZAÇÃO
   ========================================================= */
.local{
  display:grid; gap:clamp(2rem,5vw,4rem);
  grid-template-columns:.85fr 1.15fr;
  align-items:start;
}
.local__note{
  margin-top:1.4rem; padding-left:1rem;
  border-left:2px solid var(--clay);
  font-size:.95rem; color:rgba(20,32,15,.68);
}
.local .btn{ margin-top:2rem; }
.local__media{ display:grid; gap:1.25rem; }
.local__media figure{ margin:0; }
.local__media img{ width:100%; border-radius:3px; aspect-ratio:2/1; object-fit:cover; }
.local__media figcaption{
  margin-top:.6rem; font-size:.82rem; color:rgba(20,32,15,.58);
}
@media (max-width:820px){ .local{ grid-template-columns:1fr; } }

/* =========================================================
   CADASTRO (bloco de fechamento)
   ========================================================= */
.cadastro{ background:var(--deep); }
.cadastro__grid{
  display:grid; gap:clamp(2.25rem,5vw,4.5rem);
  grid-template-columns:1fr 1fr;
  align-items:start;
}
.cadastro__list{ margin-top:2rem; display:grid; gap:.1rem; }
.cadastro__list li{
  padding:.85rem 0 .85rem 1.75rem;
  border-bottom:1px solid rgba(242,240,230,.14);
  font-size:.97rem; color:rgba(242,240,230,.85);
  position:relative;
}
.cadastro__list li::before{
  content:""; position:absolute; left:0; top:1.32rem;
  width:9px; height:1px; background:var(--lime);
}
.cadastro__wpp{
  display:inline-flex; flex-direction:column; gap:.15rem;
  margin-top:2.25rem; text-decoration:none;
}
.cadastro__wpp span{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(242,240,230,.6); }
.cadastro__wpp strong{
  font-family:var(--display); font-size:clamp(1.35rem,2.6vw,1.85rem);
  font-variation-settings:"SOFT" 50,"WONK" 0,"opsz" 60; font-weight:400;
  color:var(--lime);
}
.cadastro__wpp:hover strong{ color:var(--lime-hi); }
@media (max-width:860px){ .cadastro__grid{ grid-template-columns:1fr; } }

/* =========================================================
   CARD DE FORMULÁRIO
   ========================================================= */
.formcard{
  background:var(--paper); color:var(--ink);
  border-radius:5px;
  padding:clamp(1.5rem,3vw,2.25rem);
}
.formcard--hero{
  box-shadow:0 24px 60px rgba(0,0,0,.35);
  border-top:4px solid var(--lime);
}
.formcard__head{
  padding-bottom:1.25rem; margin-bottom:1.5rem;
  border-bottom:1px solid rgba(20,32,15,.13);
}
.formcard__kicker{
  display:inline-block;
  font-size:.66rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
  color:var(--clay-dk);
  margin-bottom:.7rem;
}
.formcard__title{
  font-family:var(--display); font-size:clamp(1.45rem,2.2vw,1.85rem);
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 60;
  font-weight:400; letter-spacing:-.02em;
}
.formcard__sub{
  margin-top:.75rem; font-size:.89rem; line-height:1.5;
  color:rgba(20,32,15,.66);
}

.form__intro{
  font-size:.88rem; color:rgba(20,32,15,.62);
  padding-bottom:1.25rem; margin-bottom:1.5rem;
  border-bottom:1px solid rgba(20,32,15,.13);
}
.field{ margin-bottom:1.05rem; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.field label{
  display:block; font-size:.76rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
  color:rgba(20,32,15,.72); margin-bottom:.4rem;
}
.field__opt{ text-transform:none; letter-spacing:0; font-weight:400; opacity:.6; }
.field input, .field select, .field textarea{
  width:100%; padding:.72rem .85rem;
  font-family:var(--body); font-size:1rem; color:var(--ink);
  background:#fff;
  border:1px solid rgba(20,32,15,.2); border-radius:3px;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field textarea{ resize:vertical; min-height:84px; }
.field select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2314200F' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9rem center; padding-right:2.2rem;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--canopy);
  box-shadow:0 0 0 3px rgba(47,82,48,.16);
}
.field.has-error input, .field.has-error select{ border-color:#B23B2E; }
.field__error{
  display:none; margin-top:.35rem; font-size:.8rem; color:#B23B2E;
}
.field.has-error .field__error{ display:block; }

.field--check{
  display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:start;
  margin-block:1.35rem;
}
.field--check input{ width:18px; height:18px; margin-top:.15rem; accent-color:var(--canopy); }
.field--check label{
  text-transform:none; letter-spacing:0; font-size:.85rem; font-weight:400;
  line-height:1.5; margin:0; color:rgba(20,32,15,.78);
}
.field--check .field__error{ grid-column:1/-1; margin-top:0; }

.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.form__status{
  margin-top:1rem; font-size:.9rem; line-height:1.5;
  padding:.85rem 1rem; border-radius:3px; display:none;
}
.form__status.is-ok{ display:block; background:rgba(47,82,48,.1); color:var(--canopy); border:1px solid rgba(47,82,48,.25); }
.form__status.is-err{ display:block; background:rgba(178,59,46,.08); color:#B23B2E; border:1px solid rgba(178,59,46,.25); }

.form__wpp{
  display:block; margin-top:1.1rem; text-align:center;
  font-size:.85rem; color:rgba(20,32,15,.62); text-decoration:none;
}
.form__wpp strong{ color:var(--canopy); white-space:nowrap; }
.form__wpp:hover strong{ text-decoration:underline; }

.btn[aria-busy="true"]{ opacity:.65; pointer-events:none; }

@media (max-width:420px){ .field-row{ grid-template-columns:1fr; gap:0; } }

/* =========================================================
   RODAPÉ
   ========================================================= */
.footer{
  background:var(--deep-2); padding:clamp(3.5rem,7vw,5.5rem) var(--gut) 2.5rem;
  border-top:1px solid rgba(242,240,230,.1);
}
.footer__grid{
  display:grid; gap:clamp(2rem,4vw,3.5rem);
  grid-template-columns:1.5fr 1fr 1fr;
}
.footer__brand img{ height:66px; width:auto; margin-bottom:1.25rem; }
.footer__brand p{ font-size:.92rem; color:rgba(242,240,230,.68); }
.footer__col h3{
  font-family:var(--body); font-size:.7rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--lime); margin-bottom:.9rem;
}
.footer__col p{ font-size:.93rem; color:rgba(242,240,230,.75); }
.footer__col a{ text-decoration:none; }
.footer__col a:hover{ color:var(--lime); }
.footer__logo{ height:96px; width:auto; margin-bottom:1.1rem; }
.footer__realtor{
  font-family:var(--display); font-size:1.2rem; font-weight:400;
  font-variation-settings:"SOFT" 50,"opsz" 40; margin-bottom:.4rem !important;
}

.footer__base{
  margin-top:clamp(2.5rem,5vw,4rem); padding-top:1.5rem;
  border-top:1px solid rgba(242,240,230,.1);
  display:flex; flex-wrap:wrap; gap:.75rem 2rem; justify-content:space-between;
  font-size:.78rem; line-height:1.7; color:rgba(242,240,230,.5);
}
.footer__legal{ max-width:52ch; }
.footer__credit{ color:rgba(242,240,230,.72); text-decoration:none; border-bottom:1px solid rgba(168,190,60,.45); }
.footer__credit:hover{ color:var(--lime); border-bottom-color:var(--lime); }
@media (max-width:820px){ .footer__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer__grid{ grid-template-columns:1fr; } }

/* =========================================================
   AÇÕES FLUTUANTES
   ========================================================= */
.wpp-float{
  position:fixed; right:clamp(1rem,3vw,1.75rem); bottom:clamp(1rem,3vw,1.75rem);
  z-index:90;
  width:54px; height:54px; border-radius:50%;
  display:grid; place-items:center;
  background:#25A65B; color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  transition:transform .25s var(--ease);
}
.wpp-float:hover{ transform:scale(1.08); }

/* barra fixa no mobile: só aparece depois que o hero sai da tela */
.actionbar{
  position:fixed; inset:auto 0 0 0; z-index:95;
  display:none; gap:.6rem;
  padding:.7rem var(--gut) calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(16,34,19,.96);
  backdrop-filter:blur(12px);
  border-top:1px solid rgba(242,240,230,.14);
  transform:translateY(110%);
  transition:transform .35s var(--ease);
}
.actionbar.is-up{ transform:none; }
.actionbar a{
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  padding:.8rem 1rem; border-radius:100px;
  font-size:.92rem; font-weight:600; text-decoration:none;
}
.actionbar__wpp{ background:#25A65B; color:#fff; flex:0 0 auto !important; padding-inline:1.15rem !important; }
.actionbar__cta{ background:var(--lime); color:var(--ink); }

@media (max-width:720px){
  .actionbar{ display:flex; }
  .wpp-float{ display:none; }
  .footer{ padding-bottom:6rem; }
}

/* =========================================================
   REVEAL
   ========================================================= */
.reveal{ opacity:0; transform:translateY(18px); }
.reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .75s var(--ease), transform .75s var(--ease);
  transition-delay:calc(var(--d,0) * 110ms);
}
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; }
}

/* =========================================================
   AJUSTES DO WORDPRESS
   ========================================================= */

/* barra de administração fixa não pode cobrir o topo do site */
.admin-bar .topbar{ top:32px; }
@media screen and (max-width:782px){ .admin-bar .topbar{ top:46px; } }

/* texto só para leitores de tela */
.screen-reader-text{
  border:0; clip-path:inset(50%); height:1px; width:1px;
  margin:-1px; overflow:hidden; padding:0; position:absolute; white-space:nowrap;
}
.screen-reader-text:focus{
  clip-path:none; height:auto; width:auto; z-index:200;
  background:var(--lime); color:var(--ink);
  padding:.75rem 1.25rem; font-weight:600; left:0; top:0;
}

/* logo enviada pelo Personalizar */
.topbar__brand .custom-logo{ height:52px; width:auto; }
.footer__brand .custom-logo{ height:66px; width:auto; }
@media (max-width:900px){ .topbar__brand .custom-logo{ height:44px; } }

/* menu gerado pelo WordPress dentro da barra de navegação */
.topbar__nav .menu{ display:flex; gap:2rem; margin:0; padding:0; list-style:none; }
.topbar__nav .menu a{
  font-size:.87rem; font-weight:500; text-decoration:none;
  color:rgba(242,240,230,.82); position:relative; padding-block:.25rem;
}
.topbar__nav .menu a:hover{ color:var(--paper); }
.menu-mobile .menu{ display:flex; flex-direction:column; gap:.25rem; margin:0; padding:0; list-style:none; }
.menu-mobile .menu a{
  display:block; text-decoration:none; padding:.85rem 0; font-size:1.05rem;
  border-bottom:1px solid rgba(242,240,230,.09);
}
@media (max-width:1040px){ .topbar__nav .menu{ gap:1.4rem; } .topbar__nav .menu a{ font-size:.82rem; } }

/* páginas internas (política de privacidade, 404) */
.pagina{ padding:calc(var(--sect) + 4rem) var(--gut) var(--sect); background:var(--paper); color:var(--ink); }
.pagina__inner{ width:min(100% - var(--gut)*2, 760px); margin-inline:auto; }
.pagina h1{
  font-family:var(--display); font-size:var(--t-h2); font-weight:340;
  font-variation-settings:"SOFT" 50,"WONK" 1,"opsz" 130;
  letter-spacing:-.025em; margin-bottom:1.75rem;
}
.pagina h2{ font-family:var(--display); font-size:1.6rem; font-weight:400; margin:2.5rem 0 .85rem; }
.pagina p, .pagina li{ color:rgba(20,32,15,.78); margin-bottom:1rem; }
.pagina ul{ list-style:disc; padding-left:1.25rem; margin-bottom:1.5rem; }
.pagina a{ color:var(--clay-dk); }
.pagina .btn{ margin-top:1.5rem; }

/* alinhamentos do editor de blocos */
.pagina img{ border-radius:3px; }
.alignleft{ float:left; margin:.4rem 1.5rem 1rem 0; }
.alignright{ float:right; margin:.4rem 0 1rem 1.5rem; }
.aligncenter{ margin-inline:auto; }
.wp-caption-text{ font-size:.85rem; color:rgba(20,32,15,.6); }
