/* ==========================================================================
   Jardins Genebra — Landing Page
   1. Tokens  2. Base  3. Utilitários  4. Componentes  5. Seções
   6. Elementos flutuantes  7. Animações e interações  8. Responsivo
   ========================================================================== */

/* 1. TOKENS ---------------------------------------------------------------- */
:root {
  /* Cores */
  --color-primary: #6fae96;
  --color-primary-dark: #4f8f78;
  --color-primary-soft: #e6f1ed;
  --color-dark: #1c1c1c;
  --color-nav: #1f2b28;
  --color-text: #3a3a3a;
  --color-muted: #6b6b6b;
  --color-line: #cfcfcf;
  --color-bg: #ffffff;
  --color-bg-soft: #f4f4f3;
  --color-star: #e8b931;
  --color-error: #f0a597;
  --color-white: #ffffff;

  /* Tipografia */
  --font-title: "Marcellus", "Times New Roman", serif;
  --font-body: "Mulish", "Helvetica Neue", Arial, sans-serif;

  --fs-hero: clamp(2rem, 1.2rem + 2.4vw, 3rem);
  --fs-h2: clamp(1.9rem, 1.2rem + 2.2vw, 3.1rem);
  --fs-h2-sm: clamp(1.45rem, 1.1rem + 1.1vw, 2rem);
  --fs-h3: clamp(1.35rem, 1.05rem + 1vw, 1.9rem);
  --fs-tile: clamp(1.4rem, 0.9rem + 1.6vw, 2.35rem);
  --fs-big: clamp(2.4rem, 1.4rem + 3.2vw, 4rem);
  --fs-body: clamp(0.875rem, 0.84rem + 0.15vw, 0.95rem);
  --fs-small: 0.8125rem;
  --fs-btn: 0.72rem;

  /* Layout */
  --container: 1040px;
  --gutter: clamp(20px, 4vw, 40px);
  --section-y: clamp(64px, 8vw, 120px);
  --radius: 14px;
  --radius-pill: 999px;
  --header-h: 92px;
  --header-h-compact: 72px;

  /* Movimento */
  --ease: cubic-bezier(.22, .61, .36, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-soft: cubic-bezier(.45, .05, .25, 1); /* entrada e saída suaves */
  --dur: .9s;
  --stagger: 110ms;
  --shadow-card: 0 18px 40px -18px rgba(37, 84, 66, .45);
  --shadow-soft: 0 10px 30px -15px rgba(0, 0, 0, .18);
}

/* 2. BASE ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--color-primary-dark); }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: var(--font-title); font-weight: 400; line-height: 1.15; letter-spacing: -.005em; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
[id] { scroll-margin-top: var(--header-h-compact); }
body.menu-open, body.chat-open { overflow: hidden; }

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 200;
  background: var(--color-primary); color: #fff; padding: 10px 16px; border-radius: 8px;
}
.skip-link:focus { top: 16px; color: #fff; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* 3. UTILITÁRIOS ----------------------------------------------------------- */
.container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section-y); }
.text-accent { color: var(--color-primary); }

/* Mídia: placeholder + imagem por cima.
   Se o arquivo não existir, o script.js oculta o <img> e o placeholder aparece. */
.media {
  position: relative; overflow: hidden;
  background: var(--ph, linear-gradient(150deg, #9fb2a8, #7d9488));
}
.media::before {
  content: attr(data-label);
  position: absolute; top: 16px; right: 16px; z-index: 0;
  font: 600 10px/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255, 255, 255, .85); background: rgba(0, 0, 0, .22);
  padding: 7px 10px; border-radius: 6px;
}
.media > img {
  position: absolute; inset: 0; z-index: 1;
  width: 100%; height: 100%; object-fit: cover;
  color: transparent; font-size: 0; /* esconde o texto alt enquanto carrega */
}
.media > img[hidden] { display: none; }
.overlay { position: absolute; inset: 0; z-index: 2; pointer-events: none; }

/* Fundo com parallax: a mídia é maior que a seção e o JS move via --py */
.bg-parallax { position: absolute; inset: -9% 0; z-index: -1; transform: translate3d(0, var(--py, 0px), 0); will-change: transform; }

/* 4. COMPONENTES ----------------------------------------------------------- */
/* Botão: "tinta" circular que se espalha a partir do ponto onde o cursor entra
   e recolhe para o ponto onde ele sai (--x/--y definidos pelo script.js; sem JS,
   nasce do centro). O botão fica parado; só a cor e o brilho mudam. */
.btn {
  --x: 50%; --y: 50%; --s: 1;
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 40px; padding: 11px 26px;
  border: 1px solid transparent; border-radius: var(--radius-pill);
  font: 700 var(--fs-btn)/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase;
  color: #fff; background: var(--color-primary);
  transform: scale(var(--s));
  transition: transform .3s var(--ease-out), box-shadow .9s var(--ease-soft), border-color .9s var(--ease-soft), background-color .9s var(--ease-soft);
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}
.btn::after {
  content: ""; position: absolute; z-index: -1;
  left: var(--x); top: var(--y);
  width: 360%; aspect-ratio: 1; border-radius: 50%;
  /* borda difusa (degradê + blur) para a cor "escorrer" em vez de um círculo duro */
  background: radial-gradient(circle, var(--color-primary-dark) 0%, var(--color-primary-dark) 38%, rgba(79, 143, 120, .7) 54%, rgba(79, 143, 120, .25) 64%, rgba(79, 143, 120, 0) 72%);
  filter: blur(6px);
  transform: translate(-50%, -50%) scale(0);
  transition: transform 1.8s cubic-bezier(.4, 0, .25, 1);
  pointer-events: none;
}
.btn:hover, .btn:focus-visible { color: #fff; box-shadow: 0 14px 28px -14px rgba(47, 100, 80, .75), 0 0 0 4px rgba(111, 174, 150, .14); }
.btn:hover::after, .btn:focus-visible::after { transform: translate(-50%, -50%) scale(1); }
.btn:active { --s: .97; transition-duration: .15s; }
.btn--ghost { background: rgba(20, 30, 28, .35); border-color: rgba(255, 255, 255, .35); }
.btn--ghost::after, .btn--outline::after { background: radial-gradient(circle, var(--color-primary) 0%, var(--color-primary) 38%, rgba(111, 174, 150, .7) 54%, rgba(111, 174, 150, .25) 64%, rgba(111, 174, 150, 0) 72%); }
.btn--ghost:hover, .btn--outline:hover, .btn--ghost:focus-visible, .btn--outline:focus-visible { border-color: rgba(111, 174, 150, .9); }
.btn--outline { background: transparent; border-color: rgba(255, 255, 255, .6); }
.btn__spinner { display: none; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, .45); border-top-color: #fff; border-radius: 50%; animation: spin .8s linear infinite; }
.btn.is-loading { pointer-events: none; opacity: .85; }
.btn.is-loading .btn__spinner { display: inline-block; }

.icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.icon--fill { fill: currentColor; stroke: none; }
/* Ícone do WhatsApp (assets/whatsapp.png, branco). No rodapé fica cinza escuro via filtro e volta a branco no hover */
.wa-icon { display: block; object-fit: contain; }
.social .wa-icon { width: 22px; height: 22px; filter: brightness(0) opacity(.78); transition: filter .3s; }
.social a:hover .wa-icon { filter: none; }

/* Logo — assets/logo-branca.png (fundos escuros) e assets/logo-colorida.png (fundos claros).
   A altura de cada uso é controlada por --logo-h. */
.logo { --logo-h: 44px; display: inline-flex; align-items: center; line-height: 0; transition: opacity .3s, transform .4s var(--ease-out); }
.logo img { display: block; height: var(--logo-h); width: auto; max-width: 100%; }
a.logo:hover { opacity: .85; transform: translateY(-1px); }

/* 5. SEÇÕES ---------------------------------------------------------------- */

/* Header: fixo, transparente no topo, sólido ao rolar, some ao descer */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  transition: background-color .4s var(--ease), box-shadow .4s var(--ease), transform .45s var(--ease-out);
}
.site-header.is-scrolled { background: rgba(23, 38, 34, .94); box-shadow: 0 6px 24px rgba(0, 0, 0, .12); }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); transition: height .4s var(--ease); }
.site-header.is-scrolled .site-header__inner { height: var(--header-h-compact); }
.site-header .logo { --logo-h: 46px; transition: opacity .3s; }
.site-header.is-scrolled .logo { --logo-h: 38px; }
.site-header .logo img { transition: height .4s var(--ease); }

.menu-toggle {
  position: relative;
  display: grid; place-items: center; width: 48px; height: 48px; margin-right: -12px;
  background: none; border: 0; color: #fff; border-radius: 50%;
  transition: background-color .3s;
}
.menu-toggle:hover { background: rgba(255, 255, 255, .1); }
.menu-toggle__bars { position: relative; width: 22px; height: 12px; }
.menu-toggle__bars span { position: absolute; right: 0; width: 100%; height: 1.5px; background: currentColor; border-radius: 2px; transition: transform .35s var(--ease), opacity .2s, width .35s var(--ease); }
.menu-toggle__bars span:nth-child(1) { top: 0; }
.menu-toggle__bars span:nth-child(2) { top: 5.25px; width: 70%; }
.menu-toggle__bars span:nth-child(3) { bottom: 0; }
.menu-toggle:hover .menu-toggle__bars span:nth-child(2) { width: 100%; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(1) { transform: translateY(5.25px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:nth-child(3) { transform: translateY(-5.25px) rotate(-45deg); }

/* Painel do menu (fica fora do header para o position: fixed funcionar) */
.main-nav {
  position: fixed; inset: 0 0 0 auto; z-index: 45;
  width: min(400px, 100%);
  display: flex; flex-direction: column; justify-content: center;
  padding: 110px 48px 48px;
  background: var(--color-nav); color: #fff;
  transform: translateX(100%); visibility: hidden;
  transition: transform .55s var(--ease-out), visibility 0s linear .55s;
}
.main-nav.is-open { transform: none; visibility: visible; transition: transform .55s var(--ease-out); }
.main-nav ul { display: grid; gap: 4px; }
.main-nav li { opacity: 0; transform: translateX(24px); transition: opacity .4s var(--ease), transform .5s var(--ease-out); }
.main-nav.is-open li { opacity: 1; transform: none; }
.main-nav.is-open li:nth-child(1) { transition-delay: .12s; }
.main-nav.is-open li:nth-child(2) { transition-delay: .17s; }
.main-nav.is-open li:nth-child(3) { transition-delay: .22s; }
.main-nav.is-open li:nth-child(4) { transition-delay: .27s; }
.main-nav.is-open li:nth-child(5) { transition-delay: .32s; }
.main-nav.is-open li:nth-child(6) { transition-delay: .37s; }
.main-nav a:not(.btn) {
  position: relative; display: inline-flex; align-items: center;
  padding: 10px 0; font-family: var(--font-title); font-size: 1.6rem; color: rgba(255, 255, 255, .82);
  transition: color .3s, transform .35s var(--ease-out);
}
.main-nav a:not(.btn)::before { content: ""; width: 0; height: 1px; margin-right: 0; background: var(--color-primary); transition: width .35s var(--ease-out), margin .35s var(--ease-out); }
.main-nav a:not(.btn):hover, .main-nav a.is-active { color: #fff; }
.main-nav a:not(.btn):hover::before, .main-nav a.is-active::before { width: 22px; margin-right: 14px; }
.main-nav .btn { margin-top: 32px; align-self: flex-start; }
.nav-backdrop { position: fixed; inset: 0; z-index: 44; background: rgba(0, 0, 0, .45); opacity: 0; visibility: hidden; transition: opacity .4s, visibility 0s linear .4s; border: 0; padding: 0; cursor: default; }
.nav-backdrop.is-open { opacity: 1; visibility: visible; transition: opacity .4s; }

/* Hero */
.hero {
  position: relative; display: flex; align-items: flex-end; overflow: hidden;
  /* 100% da altura da tela (svh = altura visível no celular, sem a barra do navegador).
     O mínimo de 520px só entra em telas muito baixas (celular deitado) para o conteúdo caber. */
  height: 100vh; height: 100svh; min-height: 520px;
  color: #fff; isolation: isolate;
}
.hero .bg-parallax { --ph: linear-gradient(170deg, #1c3f73 0%, #3f6c86 38%, #7c9a5a 70%, #9d8b5c 100%); }
.hero .bg-parallax img { object-position: 50% 50%; }
.hero .bg-parallax::before { top: auto; bottom: 16px; }
/* a foto do hero já tem o degradê escuro à esquerda; o overlay só reforça a leitura do texto */
.hero .overlay { background: linear-gradient(90deg, rgba(8, 20, 30, .35) 0%, rgba(8, 20, 30, .08) 50%, rgba(8, 20, 30, 0) 100%), linear-gradient(0deg, rgba(8, 20, 30, .35) 0%, rgba(8, 20, 30, 0) 45%); }
.hero__content { position: relative; z-index: 3; padding-top: 140px; padding-bottom: clamp(88px, 19vh, 190px); }
.hero__title { font-size: var(--fs-hero); max-width: 14em; }
.hero__text { margin-top: 14px; max-width: 34em; font-size: var(--fs-small); line-height: 1.55; color: rgba(255, 255, 255, .88); }
.hero .btn { margin-top: 26px; }
.scroll-cue {
  position: absolute; z-index: 3; left: 0; right: 0; bottom: 28px; width: max-content; margin-inline: auto;
  display: grid; justify-items: center; gap: 8px;
  font: 600 10px/1 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .8);
}
.scroll-cue:hover { color: #fff; }
.scroll-cue__line { position: relative; width: 1px; height: 38px; background: rgba(255, 255, 255, .3); overflow: hidden; }
.scroll-cue__line::after { content: ""; position: absolute; inset: 0; background: #fff; animation: cue 2.2s var(--ease) infinite; }

/* Texto + imagem */
.split { display: grid; grid-template-columns: 53fr 47fr; min-height: clamp(520px, 47vw, 700px); }
.split__content {
  position: relative; display: flex; align-items: center;
  background: radial-gradient(120% 90% at 90% 60%, #ececea 0%, rgba(236, 236, 234, 0) 60%), var(--color-bg-soft);
  padding-block: var(--section-y);
  padding-left: max(var(--gutter), calc((100vw - var(--container)) / 2));
  padding-right: clamp(32px, 6vw, 96px);
}
.split__inner { max-width: 440px; }
.split__title { font-size: var(--fs-h2); color: #333; }
.split__text { margin-top: 22px; display: grid; gap: 14px; font-size: var(--fs-small); color: var(--color-muted); }
.split .btn { margin-top: 30px; }
.split__media { min-height: 320px; --ph: linear-gradient(180deg, #2f73c9 0%, #7fa8d8 28%, #5f7d4c 45%, #b45c3a 75%, #7f4a33 100%); }
.split__media img { transition: transform 1.2s var(--ease-out); }
.split:hover .split__media img { transform: scale(1.03); }
/* enquadramento igual ao protótipo: céu no topo, quadras de tênis em destaque */
.split__media img { object-position: 60% 50%; }

/* Paisagismo (imagem de impacto) */
.feature-banner {
  position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden;
  min-height: clamp(460px, 52vw, 760px); color: #fff; text-align: center; isolation: isolate;
}
.feature-banner .bg-parallax { --ph: linear-gradient(180deg, #2c6cc0 0%, #8fb0d4 28%, #4d5f3e 42%, #6a5a45 70%, #3a3a33 100%); }
/* escurece a foto por igual + degradê preto subindo da base */
.feature-banner .overlay { background: linear-gradient(0deg, rgba(0, 0, 0, .7) 0%, rgba(0, 0, 0, .35) 35%, rgba(0, 0, 0, 0) 70%), rgba(0, 0, 0, .3); }
.feature-banner .bg-parallax img { object-position: 50% 58%; }
.feature-banner__content { position: relative; z-index: 3; max-width: 640px; padding-block: 80px; transform: translateY(-6%); }
.feature-banner__icon { width: 34px; height: 34px; margin: 0 auto 14px; stroke-width: 1.2; }
.feature-banner__title { font-size: clamp(1.8rem, 1.1rem + 2.1vw, 2.75rem); }
.feature-banner__text { margin: 12px auto 0; max-width: 30em; font-size: var(--fs-small); color: rgba(255, 255, 255, .9); }
.feature-banner .btn { margin-top: clamp(36px, 6.5vw, 96px); }

/* Diferenciais (cards) — o destaque verde acompanha o card em hover/foco */
.highlights { text-align: center; }
.highlights__title { font-size: var(--fs-h2-sm); color: #2f2f2f; }
.cards {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 32px);
  max-width: 880px; margin: clamp(40px, 5vw, 64px) auto 0; text-align: left;
}
.card {
  position: relative; padding: 26px 22px 30px; border-radius: var(--radius);
  background-color: var(--color-bg-soft);
}
.card::before { /* camada verde, aparece por opacidade (gradiente não anima) */
  content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 0;
  background: linear-gradient(170deg, #84bfa9 0%, #5f9d85 100%);
  opacity: 0; transition: opacity .45s var(--ease);
}
.card > * { position: relative; z-index: 1; }
.card__icon { width: 26px; height: 26px; color: var(--color-primary); transition: color .45s, transform .5s var(--ease-out); }
.card__divider { height: 1px; margin: 16px 0 30px; background: rgba(0, 0, 0, .08); transition: background-color .45s; }
.card__title { font-family: var(--font-body); font-size: .95rem; font-weight: 700; color: #2c2c2c; transition: color .45s; }
.card__text { margin-top: 8px; font-size: .78rem; line-height: 1.5; color: var(--color-muted); transition: color .45s; }
.card.is-active { transform: translateY(-6px); box-shadow: var(--shadow-card); }
.card.is-active::before { opacity: 1; }
.card.is-active .card__icon, .card.is-active .card__title { color: #fff; }
.card.is-active .card__icon { transform: translateY(-2px); }
.card.is-active .card__text { color: rgba(255, 255, 255, .92); }
.card.is-active .card__divider { background: rgba(255, 255, 255, .3); }
/* sem JS: o hover já faz a troca */
@media (hover: hover) {
  .cards:hover .card.is-active:not(:hover) { transform: none; box-shadow: none; }
  .cards:hover .card.is-active:not(:hover)::before { opacity: 0; }
  .cards:hover .card.is-active:not(:hover) .card__icon { color: var(--color-primary); transform: none; }
  .cards:hover .card.is-active:not(:hover) .card__title { color: #2c2c2c; }
  .cards:hover .card.is-active:not(:hover) .card__text { color: var(--color-muted); }
  .cards:hover .card.is-active:not(:hover) .card__divider { background: rgba(0, 0, 0, .08); }
  .card:hover { transform: translateY(-6px); box-shadow: var(--shadow-card); }
  .card:hover::before { opacity: 1; }
  .card:hover .card__icon, .card:hover .card__title { color: #fff; }
  .card:hover .card__text { color: rgba(255, 255, 255, .92); }
  .card:hover .card__divider { background: rgba(255, 255, 255, .3); }
}
.highlights .btn { margin-top: clamp(48px, 6vw, 80px); }

/* Grid de experiências */
.experiences { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tile { position: relative; aspect-ratio: 1 / 1; color: #fff; overflow: hidden; isolation: isolate; }
.tile > .media { position: absolute; inset: 0; z-index: -1; }
/* P&B -> cor por crossfade: a cópia P&B (.tile__gray) tem filtro fixo e só a
   opacidade anima — é composta pela GPU, então a transição fica fluida
   (animar o filter direto força repintura a cada quadro e "engasga"). */
.tile > .media img { transition: transform 1.8s var(--ease-soft); will-change: transform; }
.tile > .media .tile__gray {
  z-index: 2; filter: grayscale(1) brightness(.92);
  opacity: 1; transition: opacity 1.4s var(--ease-soft), transform 1.8s var(--ease-soft);
  will-change: opacity, transform;
}
.tile:hover .tile__gray, .tile:focus-within .tile__gray, .tile.is-color .tile__gray { opacity: 0; }
.tile:hover > .media img { transform: scale(1.04); }
.tile.is-color .tile__title::after { transform: scaleX(1); }
.tile .overlay { background: linear-gradient(180deg, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .55) 100%); transition: opacity 1.4s var(--ease-soft); }
.tile:hover .overlay { opacity: .8; }
.tile__caption {
  position: absolute; z-index: 3; bottom: clamp(24px, 3.4vw, 48px);
  display: flex; flex-direction: column; gap: 10px;
  transition: transform 1s var(--ease-soft);
}
.tile:hover .tile__caption { transform: translateY(-6px); }
.tile:nth-child(odd) .tile__caption { right: clamp(24px, 3vw, 44px); align-items: flex-end; text-align: right; }
.tile:nth-child(even) .tile__caption { left: clamp(24px, 3vw, 44px); align-items: flex-start; }
.tile__icon { width: 26px; height: 26px; transition: transform 1s var(--ease-soft); }
.tile:hover .tile__icon { transform: rotate(-8deg) scale(1.06); }
.tile__title { font-size: var(--fs-tile); }
.tile__title::after { content: ""; display: block; height: 1px; margin-top: 10px; background: rgba(255, 255, 255, .7); transform: scaleX(0); transition: transform 1.1s var(--ease-soft) .1s; }
.tile:nth-child(odd) .tile__title::after { transform-origin: right; }
.tile:nth-child(even) .tile__title::after { transform-origin: left; }
.tile:hover .tile__title::after { transform: scaleX(1); }
.tile--sport .media { --ph: linear-gradient(180deg, #8bb0c4 0%, #2f8a5a 30%, #e29a3f 45%, #2f8a5a 70%, #1e5c3e 100%); }
.tile--party .media { --ph: linear-gradient(160deg, #c99a62 0%, #8a5a36 45%, #3b2a20 100%); }
.tile--kids .media { --ph: linear-gradient(160deg, #f2c97a 0%, #e48a6a 40%, #6c8fc4 75%, #34508a 100%); }
.tile--nature .media { --ph: linear-gradient(180deg, #8fb6dc 0%, #c9d8b0 40%, #6f9a4a 65%, #2f4f2a 100%); }

/* Depoimentos */
.testimonials { position: relative; overflow: hidden; isolation: isolate; }
/* foto esmaecida à direita, como no protótipo (fachada da portaria) */
.testimonials__bg { position: absolute; inset: 0 0 0 auto; width: 52%; z-index: -1; --ph: transparent; }
.testimonials__bg img { object-position: 70% 50%; filter: saturate(.7); }
.testimonials__bg::after { content: ""; position: absolute; inset: 0; z-index: 2; background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .85) 35%, rgba(255, 255, 255, .62) 100%), linear-gradient(0deg, #fff 0%, rgba(255, 255, 255, 0) 30%), linear-gradient(180deg, #fff 0%, rgba(255, 255, 255, 0) 25%); }
.testimonials__title { text-align: center; font-size: var(--fs-h2-sm); color: #444; }
.quotes {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(40px, 10vw, 150px); row-gap: clamp(40px, 4vw, 56px);
  max-width: 840px; margin: clamp(32px, 4vw, 48px) auto 0;
}
.quote { display: flex; flex-direction: column; margin: 0; }
.quote__text { margin: 0; font-size: .875rem; line-height: 1.5; color: #555; transition: color .4s; }
.quote:hover .quote__text { color: #2d2d2d; }
.quote__footer { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; padding-top: 14px; }
.quote__footer::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 1px; background: #9a9a9a; transform-origin: left; transition: background-color .4s; }
.quote:hover .quote__footer::before { background: var(--color-primary); }
.quote__name { font-style: normal; font-weight: 700; font-size: var(--fs-small); color: #2d2d2d; }
.stars { display: flex; gap: 4px; color: var(--color-star); }
.stars svg { width: 12px; height: 12px; fill: currentColor; }
.testimonials .btn { display: flex; width: max-content; margin: clamp(48px, 5vw, 64px) auto 0; }

/* Masterplan */
.masterplan { position: relative; display: flex; align-items: flex-end; overflow: hidden; min-height: clamp(520px, 57vw, 830px); color: #fff; isolation: isolate; }
.masterplan .bg-parallax { --ph: radial-gradient(60% 60% at 55% 40%, #9aa25a 0%, #5f7a3e 45%, #3e5a33 70%, #d7d9d6 100%); }
/* topo funde com a seção branca anterior; base escurece para destacar o texto branco */
.masterplan .overlay { background: linear-gradient(180deg, rgba(255, 255, 255, .45) 0%, rgba(255, 255, 255, 0) 12%, rgba(10, 20, 15, 0) 42%, rgba(10, 20, 15, .38) 68%, rgba(10, 20, 15, .78) 100%); }
.masterplan__inner { position: relative; z-index: 3; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; padding-bottom: clamp(48px, 6vw, 80px); }
.masterplan__number { font-size: var(--fs-big); line-height: 1.02; }
.masterplan__number [data-count] { font-variant-numeric: tabular-nums; }
.masterplan__number sup { font-size: .45em; vertical-align: super; line-height: 0; }
.masterplan__aside { max-width: 300px; padding-bottom: 6px; }
.masterplan__aside p { font-size: var(--fs-small); line-height: 1.5; color: rgba(255, 255, 255, .9); }
.masterplan__aside .btn { margin-top: 14px; }

/* Diferenciais detalhados */
.details__list { display: grid; gap: clamp(48px, 5vw, 64px); max-width: 1020px; margin-inline: auto; }
.detail { display: grid; grid-template-columns: minmax(0, 430fr) minmax(0, 525fr); gap: clamp(32px, 5vw, 66px); align-items: center; }
.detail__badge { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--color-primary); color: #fff; transition: transform .5s var(--ease-out), box-shadow .5s; }
.detail:hover .detail__badge { transform: scale(1.12); box-shadow: 0 0 0 6px var(--color-primary-soft); }
.detail__badge .icon { width: 15px; height: 15px; stroke-width: 1.6; }
.detail__title { position: relative; margin-top: 18px; padding-bottom: 14px; font-size: var(--fs-h3); color: #4a4a4a; transition: color .4s; }
.detail__title::before, .detail__title::after { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; }
.detail__title::before { background: #bdbdbd; }
.detail__title::after { background: var(--color-primary); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--ease-out); }
.detail:hover .detail__title { color: #2d2d2d; }
.detail:hover .detail__title::after { transform: scaleX(1); }
.detail__text { margin-top: 18px; font-size: var(--fs-small); line-height: 1.5; color: var(--color-muted); max-width: 30em; }
.detail__media { aspect-ratio: 2.2 / 1; border-radius: 2px; }
.detail__media img { transition: transform 1.2s var(--ease-out); }
.detail:hover .detail__media img { transform: scale(1.05); }
.detail--1 .detail__media { --ph: linear-gradient(180deg, #3d7fd0 0%, #7fa8d8 35%, #5d8a3e 60%, #9cba57 100%); }
.detail--2 .detail__media { --ph: linear-gradient(160deg, #6f8a5a, #a9b38b 60%, #e3e0d6); }
.detail--3 .detail__media { --ph: linear-gradient(180deg, #8b6b52 0%, #586874 40%, #2d3b44 100%); }
.detail--4 .detail__media { --ph: linear-gradient(180deg, #3d7fd0 0%, #9cc1e3 40%, #5d8a3e 60%, #b46a3e 100%); }
.detail--5 .detail__media { --ph: linear-gradient(180deg, #4b84cc 0%, #a9c3df 35%, #2f8f44 62%, #8a8a7a 100%); }
/* enquadramento de cada foto no recorte 2.2:1 */
.detail--1 .detail__media img { object-position: 50% 62%; }
.detail--2 .detail__media img { object-position: 50% 45%; }
.detail--3 .detail__media img { object-position: 50% 55%; }
.detail--4 .detail__media img { object-position: 50% 58%; }
.detail--5 .detail__media img { object-position: 50% 60%; }

/* Formulário */
.contact { position: relative; overflow: hidden; color: #fff; isolation: isolate; }
.contact .bg-parallax { --ph: linear-gradient(180deg, #7a5a3a 0%, #6d6f68 30%, #3b3d3a 70%, #262626 100%); }
/* escurece a foto + degradê preto subindo da base (texto à esquerda fica embaixo) */
.contact .overlay { background: linear-gradient(0deg, rgba(0, 0, 0, .75) 0%, rgba(0, 0, 0, .35) 40%, rgba(0, 0, 0, 0) 75%), linear-gradient(90deg, rgba(0, 0, 0, .2) 0%, rgba(0, 0, 0, 0) 60%), rgba(0, 0, 0, .4); }
.contact .bg-parallax img { object-position: 45% 50%; }
.contact__inner {
  position: relative; z-index: 3;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 490px); align-items: end; gap: 48px;
  padding-block: clamp(64px, 10vw, 145px) clamp(64px, 8vw, 120px);
}
.contact__intro { padding-bottom: 40px; }
.contact__icon { width: 30px; height: 30px; margin-bottom: 14px; }
.contact__title { font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.4rem); line-height: 1.3; }
.form-card { margin-right: clamp(0px, 4.5vw, 66px); padding: clamp(32px, 4vw, 48px) clamp(24px, 4vw, 52px) clamp(36px, 4vw, 52px); border-radius: 18px; background: rgba(38, 38, 38, .96); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }
.form-card .logo { --logo-h: 52px; display: flex; justify-content: center; margin-bottom: 18px; }

/* Campo com label flutuante (no protótipo o rótulo fica dentro da linha) */
.field { --field-h: 48px; position: relative; margin-top: 22px; }
.field input {
  width: 100%; height: var(--field-h); padding: 18px 0 6px;
  background: transparent; border: 0; border-bottom: 1px solid rgba(255, 255, 255, .45); border-radius: 0;
  color: #fff; font: inherit; font-size: 1rem;
  transition: border-color .3s;
}
.field label {
  position: absolute; left: 0; top: 18px;
  font-size: .82rem; color: rgba(255, 255, 255, .72);
  pointer-events: none; transform-origin: left top;
  transition: transform .3s var(--ease-out), color .3s;
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label { transform: translateY(-17px) scale(.85); color: rgba(255, 255, 255, .9); }
.field input::placeholder { color: transparent; transition: color .3s; }
.field input:focus::placeholder { color: rgba(255, 255, 255, .3); }
.field::after { /* linha verde que cresce no foco */
  content: ""; position: absolute; left: 0; right: 0; top: calc(var(--field-h) - 2px); height: 2px; background: var(--color-primary);
  transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease-out);
}
.field:focus-within::after { transform: scaleX(1); }
.field input:focus { outline: none; }
.field.is-invalid input { border-bottom-color: var(--color-error); }
.field.is-invalid::after { background: var(--color-error); }
.field__error { display: block; min-height: 0; max-height: 0; overflow: hidden; font-size: .72rem; color: var(--color-error); transition: max-height .3s var(--ease), margin .3s; }
.field.is-invalid .field__error { max-height: 40px; margin-top: 6px; }
.form-card .btn { display: flex; width: min(100%, 250px); min-height: 44px; margin: 34px auto 0; }
.form-status { min-height: 1.2em; margin-top: 14px; text-align: center; font-size: var(--fs-small); color: #bfe3d5; }
.form-success { display: none; text-align: center; padding: 26px 0 8px; }
.form-success__icon { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 16px; border-radius: 50%; background: var(--color-primary); color: #fff; }
.form-success__icon .icon { width: 26px; height: 26px; stroke-width: 2; stroke-dasharray: 30; stroke-dashoffset: 30; }
.form-success h3 { font-size: 1.5rem; }
.form-success p { margin-top: 8px; font-size: var(--fs-small); color: rgba(255, 255, 255, .78); }
.form-success .btn { margin-top: 22px; }
.form-success__reset { display: block; margin: 14px auto 0; padding: 8px 12px; background: none; border: 0; color: rgba(255, 255, 255, .7); font-size: .78rem; text-decoration: underline; text-underline-offset: 3px; }
.form-success__reset:hover { color: #fff; }
.form-card.is-sent .form-fields { display: none; }
.form-card.is-sent .form-success { display: block; animation: fadeUp .6s var(--ease-out) both; }
.form-card.is-sent .form-success__icon .icon { animation: draw .6s .2s var(--ease-out) forwards; }

/* Footer */
.site-footer { padding-top: clamp(56px, 6vw, 80px); }
.footer__grid { display: grid; grid-template-columns: 1.1fr .8fr 1.1fr; gap: 40px; padding-bottom: clamp(56px, 6vw, 88px); }
.site-footer .logo { --logo-h: 72px; }
.footer__tagline { margin-top: 18px; max-width: 220px; font-size: .78rem; line-height: 1.45; color: var(--color-muted); }
.social { display: flex; gap: 10px; margin-top: 18px; margin-left: -10px; }
.social a { display: grid; place-items: center; width: 44px; height: 44px; color: #3a3a3a; border-radius: 50%; transition: color .3s, background-color .3s, transform .4s var(--ease-out); }
.social a:hover { color: #fff; background: var(--color-primary); transform: translateY(-3px); }
.footer__heading { font-family: var(--font-body); font-weight: 700; font-size: .85rem; color: #2d2d2d; }
.footer__links { margin-top: 10px; }
.footer__links a { position: relative; display: inline-block; padding: 4px 0; font-size: .82rem; color: var(--color-muted); transition: color .3s, transform .3s var(--ease-out); }
.footer__links a:hover { color: var(--color-primary-dark); transform: translateX(4px); }
.footer__cta h2 { font-size: var(--fs-h3); color: #2d2d2d; line-height: 1.3; }
.footer__cta .btn { margin-top: 20px; }
.footer__bar { background: var(--color-primary); color: #fff; font-size: .74rem; }
.footer__bar .container { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; min-height: 64px; padding-block: 14px; }
.footer__bar a { color: #fff; }
.footer__bar a:hover { color: #fff; text-decoration: underline; }
.footer__legal { display: flex; gap: 8px; }

/* 6. ELEMENTOS FLUTUANTES -------------------------------------------------- */
.scroll-progress { position: fixed; inset: 0 0 auto 0; z-index: 60; height: 2px; background: var(--color-primary); transform-origin: left; transform: scaleX(var(--progress, 0)); pointer-events: none; }

.float-actions { position: fixed; right: clamp(16px, 2.4vw, 32px); bottom: clamp(16px, 2.4vw, 32px); z-index: 40; display: grid; gap: 12px; justify-items: center; }
.to-top, .wa-float {
  display: grid; place-items: center; border-radius: 50%;
  transition: transform .45s var(--ease-out), opacity .35s, visibility 0s, background-color .3s, box-shadow .3s;
}
.to-top { width: 44px; height: 44px; background: #fff; color: var(--color-primary-dark); box-shadow: var(--shadow-soft); border: 1px solid rgba(0, 0, 0, .06); opacity: 0; visibility: hidden; transform: translateY(12px); }
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--color-primary); color: #fff; }
.wa-float { width: 56px; height: 56px; background: var(--color-primary); color: #fff; box-shadow: 0 12px 26px -10px rgba(47, 100, 80, .7); }
/* Botão e painel do chat do CRM */
.chat-float {
  display: grid; place-items: center; width: 48px; height: 48px; padding: 0;
  border: 1px solid rgba(0, 0, 0, .06); border-radius: 50%;
  background: #fff; color: var(--color-primary-dark); box-shadow: var(--shadow-soft);
  transition: background-color .3s, color .3s, transform .4s var(--ease-out);
}
.chat-float:hover, .chat-float[aria-expanded="true"] { background: var(--color-primary-dark); color: #fff; }
.chat-float .icon { width: 22px; height: 22px; stroke-width: 1.7; }
.crm-chat {
  position: fixed; z-index: 48;
  /* abre ao lado da coluna de botões flutuantes, sem cobri-los */
  right: calc(clamp(16px, 2.4vw, 32px) + 72px); bottom: clamp(16px, 2.4vw, 32px);
  width: min(420px, calc(100vw - 120px)); height: min(680px, calc(100svh - 120px));
  display: flex; flex-direction: column; overflow: hidden;
  border-radius: 12px; background: #fff;
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .35), 0 0 0 1px rgba(0, 0, 0, .06);
  transform-origin: bottom right;
  animation: chatIn .45s var(--ease-out) both;
}
.crm-chat[hidden] { display: none; }
@keyframes chatIn { from { opacity: 0; transform: translateY(16px) scale(.96); } to { opacity: 1; transform: none; } }
.crm-chat__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; background: var(--color-nav); color: #fff; }
.crm-chat__title { font-family: var(--font-title); font-size: 1.05rem; }
.crm-chat__close { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: none; color: #fff; }
.crm-chat__close:hover { background: rgba(255, 255, 255, .12); }
.crm-chat__close .icon { width: 20px; height: 20px; }
.crm-chat__frame { flex: 1; width: 100%; border: 0; background: #fff; }
@media (max-width: 576px) {
  /* no celular o chat ocupa a tela, como um app */
  .crm-chat { inset: 0; z-index: 70; width: 100%; height: 100%; height: 100svh; border-radius: 0; }
}
.wa-float:hover { color: #fff; background: var(--color-primary-dark); transform: scale(1.06); }
.wa-float .icon { width: 27px; height: 27px; }
.wa-float::before { content: ""; position: absolute; width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--color-primary); animation: pulse 2.8s var(--ease) infinite; pointer-events: none; }

/* 7. ANIMAÇÕES E INTERAÇÕES ----------------------------------------------- */
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes cue { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }
@keyframes pulse { 0% { transform: scale(1); opacity: .7; } 70%, 100% { transform: scale(1.5); opacity: 0; } }
@keyframes fadeUp { from { opacity: 0; translate: 0 16px; } to { opacity: 1; translate: none; } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes kenburns { from { scale: 1.1; } to { scale: 1; } }

/* Entrada do hero (no carregamento) */
.hero .bg-parallax { animation: kenburns 2.6s var(--ease-out) both; }
.hero__content > * { animation: fadeUp 1s var(--ease-out) both; }
.hero__content > :nth-child(1) { animation-delay: .25s; }
.hero__content > :nth-child(2) { animation-delay: .4s; }
.hero__content > :nth-child(3) { animation-delay: .55s; }
.scroll-cue { animation: fadeUp 1s .9s var(--ease-out) both; }

/* Revelação ao rolar — só ativa quando o JS marca <html data-anim>.
   Usa as propriedades individuais translate/scale para não brigar com os
   transform de hover; :where() zera a especificidade para que transições
   próprias dos componentes (ex.: .card) prevaleçam.
   A cascata (stagger) é feita pelo JS nos grupos marcados com data-stagger. */
:where([data-anim]) :where([data-reveal]) { opacity: 0; translate: 0 26px; transition: opacity var(--dur) var(--ease), translate var(--dur) var(--ease-out), scale var(--dur) var(--ease-out); }
:where([data-anim]) :where([data-reveal="left"]) { translate: -32px 0; }
:where([data-anim]) :where([data-reveal="right"]) { translate: 32px 0; }
:where([data-anim]) :where([data-reveal="zoom"]) { translate: none; scale: .96; }
:where([data-anim]) :where([data-reveal][data-in]) { opacity: 1; translate: none; scale: none; }
.card { transition: transform .45s var(--ease-out), box-shadow .45s var(--ease), opacity var(--dur) var(--ease), translate var(--dur) var(--ease-out); }

/* Imagens dos diferenciais: abertura em cortina */
[data-anim] .detail .detail__media { clip-path: inset(0 100% 0 0); transition: clip-path 1.2s var(--ease-out) .15s; }
[data-anim] .detail[data-in] .detail__media { clip-path: inset(0 0 0 0); }
[data-anim] .detail:nth-child(even) .detail__media { clip-path: inset(0 0 0 100%); }
[data-anim] .detail:nth-child(even)[data-in] .detail__media { clip-path: inset(0 0 0 0); }
[data-anim] .detail .detail__title::before { transform: scaleX(0); transform-origin: left; transition: transform 1s var(--ease-out) .3s; }
[data-anim] .detail[data-in] .detail__title::before { transform: none; }

/* Linha dos depoimentos se desenha; estrelas aparecem em sequência */
[data-anim] .quote .quote__footer::before { transform: scaleX(0); transition: transform 1s var(--ease-out) .25s, background-color .4s; }
[data-anim] .quote[data-in] .quote__footer::before { transform: none; }
[data-anim] .quote .stars svg { opacity: 0; transform: scale(.4); transition: opacity .3s, transform .4s var(--ease-out); }
[data-anim] .quote[data-in] .stars svg { opacity: 1; transform: none; }
[data-anim] .quote[data-in] .stars svg:nth-of-type(1) { transition-delay: .45s; }
[data-anim] .quote[data-in] .stars svg:nth-of-type(2) { transition-delay: .55s; }
[data-anim] .quote[data-in] .stars svg:nth-of-type(3) { transition-delay: .65s; }
[data-anim] .quote[data-in] .stars svg:nth-of-type(4) { transition-delay: .75s; }
[data-anim] .quote[data-in] .stars svg:nth-of-type(5) { transition-delay: .85s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; transition-delay: 0s !important; animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; }
  :where([data-anim]) :where([data-reveal]) { opacity: 1; translate: none; scale: none; }
  [data-anim] .detail .detail__media { clip-path: none; }
  .bg-parallax { transform: none; }
}

/* 8. RESPONSIVO ------------------------------------------------------------ */
@media (min-width: 1440px) {
  :root { --container: 1080px; }
}

@media (max-width: 1200px) {
  .masterplan__aside { max-width: 280px; }
}

@media (max-width: 992px) {
  .split { grid-template-columns: 1fr 1fr; }
  .split__content { padding-right: 40px; }
  .cards { gap: 16px; }
  .card { padding: 22px 18px 26px; }
  .contact__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 32px; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__cta { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
  :root { --header-h: 76px; --header-h-compact: 64px; }
  .site-header .logo { --logo-h: 40px; }
  .site-header.is-scrolled .logo { --logo-h: 34px; }
  .hero .bg-parallax img { object-position: 58% 50%; }
  .hero .overlay { background: linear-gradient(180deg, rgba(8, 20, 30, .35) 0%, rgba(8, 20, 30, .05) 35%, rgba(8, 20, 30, .7) 100%); }
  .hero__content { padding-bottom: 96px; }
  .scroll-cue { bottom: 20px; }
  .scroll-cue__label { display: none; }

  .split { grid-template-columns: 1fr; min-height: 0; }
  .split__content { padding-inline: var(--gutter); }
  .split__inner { max-width: 560px; }
  .split__media { aspect-ratio: 4 / 3; min-height: 0; }

  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 560px; }
  .cards > :last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 8px); }

  .quotes { column-gap: 40px; }
  .testimonials__bg { width: 100%; opacity: .5; }

  .masterplan { min-height: 640px; }
  .masterplan__inner { flex-direction: column; align-items: flex-start; gap: 22px; }
  .masterplan__aside { max-width: 420px; }

  .detail { grid-template-columns: 1fr; gap: 24px; }
  .detail__media { order: -1; aspect-ratio: 16 / 9; }
  .details__list { max-width: 560px; }
  [data-anim] .detail:nth-child(even) .detail__media { clip-path: inset(0 100% 0 0); }

  .contact__inner { grid-template-columns: 1fr; gap: 32px; }
  .contact__intro { padding-bottom: 0; }
  .form-card { margin-right: 0; }
}

@media (max-width: 576px) {
  :root { --gutter: 22px; }
  .hero__title { max-width: 11em; }
  .hero .btn, .split .btn, .highlights .btn, .testimonials .btn, .footer__cta .btn, .feature-banner .btn { min-height: 48px; padding-inline: 28px; }

  .cards { grid-template-columns: 1fr; max-width: 380px; }
  .cards > :last-child:nth-child(odd) { width: auto; justify-self: stretch; }

  .experiences { grid-template-columns: 1fr; }
  .tile { aspect-ratio: 4 / 3.4; }
  .tile:nth-child(odd) .tile__caption { right: auto; left: 24px; align-items: flex-start; text-align: left; }
  .tile:nth-child(odd) .tile__title::after { transform-origin: left; }

  .quotes { grid-template-columns: 1fr; row-gap: 44px; max-width: 420px; }

  .masterplan { min-height: 600px; }
  .masterplan__aside .btn { min-height: 48px; }

  .form-card { border-radius: 14px; }
  .field { --field-h: 52px; }
  .form-card .btn { width: 100%; min-height: 50px; }

  .footer__grid { grid-template-columns: 1fr; gap: 36px; }
  .site-footer .logo { --logo-h: 60px; }
  .form-card .logo { --logo-h: 46px; }
  .footer__links { display: grid; grid-template-columns: 1fr 1fr; }
  .footer__links a { padding: 8px 0; }
  .footer__bar .container { flex-direction: column; justify-content: center; text-align: center; padding-block: 18px 90px; }

  .wa-float { width: 52px; height: 52px; }
  .wa-float::before { width: 52px; height: 52px; }
}

@media (max-width: 389px) {
  :root { --gutter: 18px; }
  .site-header .logo { --logo-h: 36px; }
  .site-header.is-scrolled .logo { --logo-h: 32px; }
  .btn { padding-inline: 20px; letter-spacing: .1em; }
  .quote__footer { flex-direction: column; align-items: flex-start; gap: 8px; }
  .main-nav { padding-inline: 32px; }
  .main-nav a:not(.btn) { font-size: 1.4rem; }
}
