/* ==================================================================
   Residencial Clarisse Novelli Passos — landing de captação
   Paleta e medidas tiradas do layout aprovado.
================================================================== */

:root {
  --verde:        #0e3b2e;
  --verde-esc:    #0a2c22;
  --verde-claro:  #14503c;
  --amarelo:      #f5b720;
  --amarelo-esc:  #dda40f;
  --vermelho:     #e30613;
  --vermelho-esc: #c40510;
  --cinza:        #f4f5f4;
  --borda:        #e4e6e4;
  --texto:        #14201b;
  --texto-suave:  #5a6660;
  --branco:       #ffffff;

  --raio:      14px;
  --raio-sm:   10px;
  --wrap:      1160px;
  --sombra:    0 1px 2px rgba(20, 32, 27, .06), 0 8px 24px rgba(20, 32, 27, .05);
  --sombra-fm: 0 20px 50px rgba(0, 0, 0, .18);
}

/* ---------- reset enxuto ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--texto);
  background: var(--branco);
  -webkit-font-smoothing: antialiased;
}
img, svg, iframe { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3 { font-family: 'Inter Tight', 'Inter', sans-serif; margin: 0; line-height: 1.15; letter-spacing: -.02em; }
p  { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
a  { color: inherit; }

:focus-visible {
  outline: 3px solid var(--amarelo);
  outline-offset: 3px;
  border-radius: 4px;
}

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

/* ---------- estrutura ---------- */
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }
.wrap--narrow { max-width: 860px; }
.wrap--form   { max-width: 560px; }

.section { padding: 64px 0; }
.section--tight { padding: 56px 0; }
.section--gray  { background: var(--cinza); }
.section--green { background: var(--verde); color: var(--branco); text-align: center; }
.section--red   { background: var(--vermelho); }

.section__title {
  font-size: clamp(26px, 4.6vw, 34px);
  font-weight: 700;
  text-align: center;
  margin-bottom: 10px;
}
.section__title--left { text-align: left; }
.section__sub {
  text-align: center;
  color: var(--texto-suave);
  font-size: 15px;
  margin-bottom: 32px;
}
.section--green .section__sub { color: rgba(255, 255, 255, .78); }

.hl-yellow { color: var(--amarelo); }
.hl-red    { color: var(--vermelho); }
.dot       { opacity: .45; margin: 0 4px; }
.footnote  { text-align: center; font-size: 12px; color: var(--texto-suave); margin-top: 18px; }

/* ---------- ícones (máscara SVG, herdam a cor do texto) ---------- */
.ico {
  display: inline-block;
  width: 1em; height: 1em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center;  mask-position: center;
  -webkit-mask-size: contain;     mask-size: contain;
  vertical-align: -.13em;
  flex: none;
}
.ico--wa        { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.3 14c-.2.6-1.2 1.2-1.7 1.2-.5.1-1 .1-1.6-.1-.4-.1-.9-.3-1.5-.5-2.7-1.2-4.4-3.9-4.5-4-.1-.2-1-1.4-1-2.6 0-1.2.6-1.8.9-2 .2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 1.9c.1.2 0 .4-.1.5l-.3.4c-.1.1-.3.3-.1.6.1.2.6 1 1.3 1.7.9.8 1.6 1 1.9 1.2.2.1.4 0 .5-.1l.7-.9c.2-.2.3-.2.6-.1l1.8.8c.2.1.4.2.5.3.1.2.1.6-.1 1.2Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm5.3 14c-.2.6-1.2 1.2-1.7 1.2-.5.1-1 .1-1.6-.1-.4-.1-.9-.3-1.5-.5-2.7-1.2-4.4-3.9-4.5-4-.1-.2-1-1.4-1-2.6 0-1.2.6-1.8.9-2 .2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 1.9c.1.2 0 .4-.1.5l-.3.4c-.1.1-.3.3-.1.6.1.2.6 1 1.3 1.7.9.8 1.6 1 1.9 1.2.2.1.4 0 .5-.1l.7-.9c.2-.2.3-.2.6-.1l1.8.8c.2.1.4.2.5.3.1.2.1.6-.1 1.2Z'/%3E%3C/svg%3E"); }
.ico--pin       { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.ico--road      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 21 7 3M20 21 17 3M12 4v3M12 11v3M12 18v3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 21 7 3M20 21 17 3M12 4v3M12 11v3M12 18v3'/%3E%3C/svg%3E"); }
.ico--expand    { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E"); }
.ico--shield    { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3l8 3v6c0 5-3.4 8.4-8 9-4.6-.6-8-4-8-9V6l8-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 3l8 3v6c0 5-3.4 8.4-8 9-4.6-.6-8-4-8-9V6l8-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.ico--pin-solid { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a8 8 0 0 0-8 8c0 6 8 12 8 12s8-6 8-12a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a8 8 0 0 0-8 8c0 6 8 12 8 12s8-6 8-12a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E"); }
.ico--alert     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2 1 21h22L12 2Zm0 6 .9 7h-1.8L12 8Zm0 9.5a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2 1 21h22L12 2Zm0 6 .9 7h-1.8L12 8Zm0 9.5a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4Z'/%3E%3C/svg%3E"); }
.ico--stack     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 3 9 5-9 5-9-5 9-5Z'/%3E%3Cpath d='m3 13 9 5 9-5'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 3 9 5-9 5-9-5 9-5Z'/%3E%3Cpath d='m3 13 9 5 9-5'/%3E%3C/svg%3E"); }
.ico--clock     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.ico--trend     { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m3 17 6-6 4 4 8-8'/%3E%3Cpath d='M15 7h6v6'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m3 17 6-6 4 4 8-8'/%3E%3Cpath d='M15 7h6v6'/%3E%3C/svg%3E"); }
.ico--lock      { -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='4' y='10' width='16' height='11' rx='2'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); }

/* ---------- botões ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: 'Inter Tight', 'Inter', sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 15px 26px;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn:active { transform: translateY(1px); }

.btn--yellow { background: var(--amarelo); color: #2a1d00; box-shadow: 0 6px 18px rgba(245, 183, 32, .28); }
.btn--yellow:hover { background: var(--amarelo-esc); }

.btn--red { background: var(--vermelho); color: var(--branco); }
.btn--red:hover { background: var(--vermelho-esc); }

.btn--outline {
  background: var(--branco);
  color: var(--texto);
  border: 1px solid var(--borda);
  box-shadow: var(--sombra);
  text-transform: none;
  letter-spacing: 0;
  font-size: 15px;
}
.btn--outline:hover { border-color: #cdd2ce; }

.btn--sm    { padding: 11px 20px; font-size: 12px; }
.btn--lg    { padding: 21px 44px; font-size: 16.5px; }
.btn--block { display: flex; width: 100%; }

/* ---------- CTA: elevação no hover ---------- */
.btn--yellow:hover,
.btn--red:hover { transform: translateY(-2px); }
.btn--yellow:hover { box-shadow: 0 12px 30px rgba(245, 183, 32, .5); }
.btn--red:hover    { box-shadow: 0 12px 30px rgba(200, 30, 45, .38); }

/* ---------- CTA principal: pulso de atenção (brilho, sem mexer no layout) ---------- */
.btn--lg.btn--yellow { animation: cta-pulso-amarelo 2.1s ease-in-out infinite; }
.btn--block.btn--red { animation: cta-pulso-vermelho 2.1s ease-in-out infinite; }
.btn--lg.btn--yellow:hover,
.btn--block.btn--red:hover { animation: none; }

@keyframes cta-pulso-amarelo {
  0%, 100% { box-shadow: 0 6px 18px rgba(245, 183, 32, .30); }
  50%      { box-shadow: 0 8px 30px rgba(245, 183, 32, .80); }
}
@keyframes cta-pulso-vermelho {
  0%, 100% { box-shadow: 0 6px 18px rgba(200, 30, 45, .22); }
  50%      { box-shadow: 0 8px 30px rgba(200, 30, 45, .55); }
}

@media (prefers-reduced-motion: reduce) {
  .btn--lg.btn--yellow, .btn--block.btn--red { animation: none; }
  .btn--yellow:hover, .btn--red:hover { transform: none; }
}

.link-under {
  display: block;
  margin-top: 14px;
  font-size: 14px;
  color: var(--texto-suave);
  text-decoration: none;
}
.link-under:hover { text-decoration: underline; }
.link-under--light { color: rgba(255, 255, 255, .72); }

/* ---------- topbar ---------- */
.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--branco);
  border-bottom: 1px solid var(--borda);
}
.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
}
.brand img { height: 26px; width: auto; }
.topbar__cta { white-space: nowrap; }

/* ---------- hero ---------- */
.hero {
  background: var(--verde);
  color: var(--branco);
  padding: 44px 0 56px;
}
.hero__grid { display: grid; gap: 30px; }

.eyebrow {
  font-family: 'Inter Tight', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--amarelo);
  margin-bottom: 14px;
}
.hero__title {
  font-size: clamp(31px, 6.4vw, 47px);
  font-weight: 800;
  margin-bottom: 16px;
}
.hero__lead  { font-size: 16px; color: rgba(255, 255, 255, .9); }
.hero__sub   { font-size: 16px; color: rgba(255, 255, 255, .9); margin-bottom: 12px; }
.hero__micro { font-size: 13px; color: rgba(255, 255, 255, .6); margin-bottom: 26px; }

.hero__media { margin: 0; position: relative; }
.media--hero { border-radius: var(--raio); overflow: hidden; }
.media--hero img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.hero__caption {
  position: absolute;
  left: 14px; right: 14px; bottom: 14px;
  background: rgba(10, 44, 34, .82);
  backdrop-filter: blur(4px);
  border-radius: var(--raio-sm);
  padding: 10px 14px;
  font-size: 12px;
  line-height: 1.4;
}
.hero__caption strong { display: block; font-size: 13px; }
.hero__caption span   { color: rgba(255, 255, 255, .68); }

/* ---------- cards de diferenciais ---------- */
.cards { display: grid; gap: 16px; }
.card {
  background: var(--branco);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  padding: 24px 20px;
  text-align: center;
  box-shadow: var(--sombra);
}
.card__icon {
  width: 24px; height: 24px;
  background-color: var(--vermelho);
  margin: 0 auto 14px;
  display: block;
}
.card__title { font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.card__text  { font-size: 13px; color: var(--texto-suave); line-height: 1.55; }

/* ---------- mosaico da galeria ---------- */
.mosaico { display: grid; grid-template-columns: repeat(12, 1fr); gap: 12px; }
.tile { position: relative; margin: 0; grid-column: span 12; }
.tile .media {
  border-radius: var(--raio-sm);
  overflow: hidden;
  background: var(--cinza);
}
.tile img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .45s ease; }
.tile:hover img, .tile:focus-within img { transform: scale(1.05); }
@media (prefers-reduced-motion: reduce) {
  .tile img { transition: none; }
  .tile:hover img, .tile:focus-within img { transform: none; }
}
.tile figcaption {
  position: absolute;
  left: 10px; bottom: 10px;
  background: rgba(10, 24, 18, .74);
  color: var(--branco);
  font-size: 11px;
  font-weight: 500;
  padding: 5px 10px;
  border-radius: 6px;
}

/* ---------- checklist ---------- */
.checklist {
  display: inline-block;
  text-align: left;
  margin-bottom: 10px;
}
.checklist li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 12px;
  font-size: 15px;
}
.checklist li::before {
  content: '';
  position: absolute;
  left: 0; top: 5px;
  width: 17px; height: 17px;
  background-color: var(--amarelo);
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m4 12 6 6 10-12'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m4 12 6 6 10-12'/%3E%3C/svg%3E") center/contain no-repeat;
}
.checklist__note {
  font-size: 13px;
  color: rgba(255, 255, 255, .62);
  margin-bottom: 28px;
}

/* ---------- localização ---------- */
.chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 26px;
}
.chips li {
  border: 1px solid var(--borda);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 13px;
  color: var(--texto-suave);
  background: var(--branco);
}
.mapas { display: grid; gap: 14px; }
.mapa__foto .media { border-radius: var(--raio); overflow: hidden; background: var(--cinza); }
.mapa__foto img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.mapa__embed {
  border-radius: var(--raio);
  overflow: hidden;
  border: 1px solid var(--borda);
  background: #e8f2ea;
}
.mapa__embed iframe { width: 100%; height: 100%; min-height: 260px; border: 0; }
.mapa__cta { text-align: center; margin-top: 22px; }

/* ---------- construtora ---------- */
.construtora { display: grid; gap: 26px; align-items: center; }
.construtora__logo {
  background: var(--branco);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra);
  padding: 30px;
  display: grid;
  place-items: center;
}
.construtora__texto p {
  color: var(--texto-suave);
  font-size: 15px;
  margin: 10px 0 22px;
  line-height: 1.65;
}
.construtora__texto strong { color: var(--vermelho); }

.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.stats li {
  background: var(--cinza);
  border-radius: var(--raio-sm);
  padding: 16px 12px;
  text-align: center;
}
.stats strong {
  display: block;
  font-family: 'Inter Tight', sans-serif;
  font-size: 24px;
  font-weight: 800;
  color: var(--vermelho);
  letter-spacing: -.02em;
}
.stats span { font-size: 11px; color: var(--texto-suave); }

/* ---------- FAQ ---------- */
.faq { display: grid; gap: 10px; }
.faq__item {
  background: var(--branco);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  overflow: hidden;
}
.faq__item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: '';
  width: 14px; height: 14px;
  flex: none;
  background-color: var(--texto-suave);
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5 9 7 7 7-7'/%3E%3C/svg%3E") center/contain no-repeat;
  transition: transform .2s ease;
}
.faq__item[open] summary::after { transform: rotate(180deg); }
.faq__item[open] summary { color: var(--vermelho); }
.faq__body {
  padding: 0 18px 18px;
  font-size: 14px;
  color: var(--texto-suave);
  line-height: 1.65;
}

/* ---------- escassez ---------- */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(245, 183, 32, .14);
  border: 1px solid rgba(245, 183, 32, .35);
  color: var(--amarelo);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  padding: 8px 16px;
  border-radius: 999px;
  margin-bottom: 20px;
}
.minicards {
  display: grid;
  gap: 12px;
  margin: 26px 0 30px;
}
.minicards li {
  background: var(--verde-claro);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: var(--raio-sm);
  padding: 18px 14px;
  font-size: 13px;
  color: rgba(255, 255, 255, .88);
  display: grid;
  justify-items: center;
  gap: 10px;
}
.minicards .ico { font-size: 20px; color: var(--amarelo); }

/* ---------- formulário ---------- */
.formcard {
  background: var(--branco);
  border-radius: 18px;
  padding: 30px 24px;
  box-shadow: var(--sombra-fm);
}
.formcard__title {
  font-size: 23px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 8px;
}
.formcard__sub {
  text-align: center;
  font-size: 14px;
  color: var(--texto-suave);
  margin-bottom: 24px;
}
.field { margin-bottom: 16px; }
.field label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
}
.field__opt { font-weight: 400; color: var(--texto-suave); }
.field input {
  width: 100%;
  font: inherit;
  font-size: 15px;
  padding: 13px 14px;
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  background: #fbfbfb;
  color: var(--texto);
  transition: border-color .15s ease, background-color .15s ease;
}
.field input::placeholder { color: #a8b0aa; }
.field input:focus {
  border-color: var(--vermelho);
  background: var(--branco);
  outline: none;
}
.field input.is-invalido { border-color: var(--vermelho); background: #fff6f6; }
.field__erro { font-size: 12px; color: var(--vermelho); margin-top: 6px; }

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

.formcard__micro {
  font-size: 11px;
  color: var(--texto-suave);
  text-align: center;
  margin-top: 14px;
  line-height: 1.5;
}
.formcard__alt { text-align: center; margin-top: 12px; }
.formcard__alt a {
  font-size: 13px;
  color: var(--vermelho);
  font-weight: 600;
  text-decoration: none;
}
.formcard__alt a:hover { text-decoration: underline; }
.form__status { text-align: center; font-size: 13px; color: var(--branco); margin-top: 14px; }

/* ---------- rodapé ---------- */
.rodape {
  background: var(--verde);
  color: rgba(255, 255, 255, .72);
  padding: 34px 0;
  font-size: 12px;
}
.rodape__inner { display: grid; gap: 20px; }
.rodape__marca img { height: 22px; width: auto; margin-bottom: 12px; }
.rodape__marca strong { color: var(--branco); font-size: 13px; }
.rodape__legal a { color: rgba(255, 255, 255, .9); }

/* ---------- placeholder enquanto a imagem não existe ---------- */
.sem-imagem {
  position: relative;
  background: repeating-linear-gradient(45deg, #eceeec, #eceeec 10px, #e3e6e3 10px, #e3e6e3 20px);
  min-height: 160px;
}
.sem-imagem img { visibility: hidden; }
.sem-imagem::after {
  content: attr(data-arquivo);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: ui-monospace, 'SFMono-Regular', Menlo, monospace;
  font-size: 11px;
  color: #7b847d;
  padding: 8px;
  text-align: center;
}

/* ==================================================================
   TABLET
================================================================== */
@media (min-width: 640px) {
  .section { padding: 76px 0; }
  .cards--4 { grid-template-columns: repeat(2, 1fr); }
  .minicards { grid-template-columns: repeat(3, 1fr); }
  .stats { grid-template-columns: repeat(4, 1fr); }
  .mapas { grid-template-columns: 1fr 1fr; }
  .formcard { padding: 38px 34px; }

  .mosaico { grid-auto-rows: 230px; }
  .tile .media { height: 100%; }
  .tile img { height: 100%; aspect-ratio: auto; }

  .tile { grid-column: span 6; }
  .tile--planta  { grid-column: span 7; }
  .tile--fachada { grid-column: span 5; }
  .tile--solteiro{ grid-column: span 5; }
  .tile--quintal { grid-column: span 7; }

  .rodape__inner { grid-template-columns: 1fr auto; align-items: end; }
  .rodape__legal { text-align: right; }
}

/* ==================================================================
   DESKTOP
================================================================== */
@media (min-width: 960px) {
  .hero { padding: 66px 0 78px; }
  .hero__grid { grid-template-columns: 1.05fr .95fr; align-items: center; gap: 48px; }
  .media--hero img { aspect-ratio: 7 / 5; }

  .cards--4 { grid-template-columns: repeat(4, 1fr); }
  .construtora { grid-template-columns: 300px 1fr; gap: 44px; }

  .mosaico { gap: 14px; grid-auto-rows: 300px; }
  .tile { grid-column: span 4; }
  .tile--planta  { grid-column: span 7; }
  .tile--fachada { grid-column: span 5; }
  .tile--solteiro{ grid-column: span 5; }
  .tile--quintal { grid-column: span 7; }
}

/* ==================================================================
   WHATSAPP FLUTUANTE
================================================================== */
.wa-float {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 200;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 20px;
  background: #25D366;
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  line-height: 1;
  text-decoration: none;
  border-radius: 999px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .28);
  transition: transform .2s ease, box-shadow .2s ease;
}
.wa-float:hover,
.wa-float:focus-visible {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 10px 26px rgba(0, 0, 0, .34);
}
.wa-float .ico { font-size: 24px; }
.wa-float__txt { white-space: nowrap; }

/* pulso de atenção */
.wa-float::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, .55);
  animation: wa-pulso 2.2s ease-out infinite;
  z-index: -1;
}
@keyframes wa-pulso {
  0%   { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); }
  70%  { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

/* telas estreitas: só o ícone, pra não cobrir o conteúdo */
@media (max-width: 479px) {
  .wa-float { padding: 15px; right: 16px; bottom: 16px; }
  .wa-float__txt { display: none; }
  .wa-float .ico { font-size: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  .wa-float { transition: none; }
  .wa-float:hover, .wa-float:focus-visible { transform: none; }
  .wa-float::before { animation: none; }
}
