/* ===========================================================================
   custom.css — camada propria do projeto.

   Unica folha de estilo do site, alem do normalize e do @font-face.
   Nada aqui depende de jQuery ou do runtime do Webflow: cabecalho, rodape,
   menu mobile, cards de area, FAQ, formulario e banner de cookies sao
   componentes proprios.

   Sumario
   -----------------------------------------------------------------------
   00  Tokens e base
   01  Ajustes de layout globais
   02  Acessibilidade (skip link, foco)
   03  Cabecalho e navegacao
   04  Rodape
   05  Hero da home
   06  Cards de areas de atuacao
   07  Paginas internas (hero, breadcrumb, conteudo)
   08  Socios
   09  FAQ
   10  Formulario de contato
   11  Botao flutuante de WhatsApp
   12  Banner de consentimento (LGPD)
   13  Utilitarios
   =========================================================================== */


/* ---------------------------------------------------------------------------
   00  Tokens e base

   Nota: webflow.css (37 KB) e lucass-awesome-site.webflow.css (60 KB) foram
   removidos do projeto. Depois de substituir navegacao, rodape, carrossel e
   secoes por componentes proprios, apenas 5 classes daqueles arquivos ainda
   eram usadas — reproduzidas abaixo. As duas folhas somavam 98 KB de CSS
   inteiramente morto.
   --------------------------------------------------------------------------- */
:root {
  --gp-black: #0a0a0a;
  --gp-ink: #1c1c1c;
  --gp-mute: #5f5a57;
  --gp-line: #e0d8d3;
  --gp-white: #ffffff;
  --gp-seashell: #faf3f0;
  --gp-antique: #f4e5d0;
  --gp-brown: #2a1816;
  --gp-accent: #7a5c4f;

  --gp-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --gp-sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --gp-shell: 1200px;
  --gp-gutter: clamp(1.25rem, 5vw, 4rem);
  --gp-header-h: 72px;
}

*, *::before, *::after { box-sizing: border-box; }

html { height: 100%; }

body {
  margin: 0;
  min-height: 100%;
  background-color: var(--gp-white);
  font-family: var(--gp-sans);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--gp-ink);
  overflow-x: hidden;
}

img, picture, svg, video { max-width: 100%; }
img, svg, video { vertical-align: middle; display: inline-block; }

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: var(--gp-serif);
  font-weight: 700;
  line-height: 1.2;
  text-wrap: balance;
}
h1 { font-size: 3.5rem; }
h2 { font-size: 3rem; }
h3 { font-size: 2.5rem; }
h4 { font-size: 2rem; line-height: 1.3; }

p { margin-top: 0; }
ul, ol { margin-top: 0; }

/* Links herdam a cor do contexto (cabecalho escuro, rodape, cards), mas
   links dentro de texto corrido continuam sublinhados: cor sozinha nao pode
   ser o unico indicador de que algo e um link (WCAG 1.4.1). */
a { color: inherit; text-decoration: none; }
.gp-prose a,
.gp-check a,
.gp-cookies a,
.gp-note a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Escalas de titulo herdadas do design original, agora com tamanho fluido
   (antes eram fixas em rem e estouravam em telas pequenas). */
.heading        { font-family: var(--gp-serif); margin-bottom: 0.1em; font-size: clamp(2.25rem, 6vw, 3.5rem); }
.heading-large  { font-family: var(--gp-serif); font-size: clamp(1.9rem, 4.5vw, 2.5rem); font-weight: 700; line-height: 1.2; }
.heading-xlarge { font-family: var(--gp-serif); font-size: clamp(2rem, 5vw, 3rem);       font-weight: 700; line-height: 1.2; }

.section-hero { background-color: #f1f5f6; }
.section-hero.background-color-black { background-color: var(--gp-black); }


/* ---------------------------------------------------------------------------
   01  Ajustes de layout globais
   --------------------------------------------------------------------------- */

/* O layout antigo travava secoes em 100vh e 140vh, produzindo telas inteiras
   de rolagem vazia. Agora a altura vem do conteudo; onde altura de viewport
   ainda faz sentido (o hero), usamos dvh, que nao pula quando a barra de
   endereco do celular aparece e some. */
.gp-hero { min-height: min(88dvh, 780px); }


/* ---------------------------------------------------------------------------
   02  Acessibilidade
   --------------------------------------------------------------------------- */

/* P5-04 — o CSS global zerava o outline de foco. Restaurado, e visivel. */
:focus-visible {
  outline: 3px solid var(--gp-accent);
  outline-offset: 3px;
  border-radius: 2px;
}
.gp-header :focus-visible,
.gp-footer :focus-visible,
.gp-page-hero :focus-visible,
.gp-cta-band :focus-visible,
.gp-cookies :focus-visible {
  outline-color: var(--gp-antique);
}

.gp-skip {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1000;
  transform: translateY(-120%);
  background: var(--gp-black);
  color: var(--gp-white);
  padding: 0.75rem 1.25rem;
  font-weight: 600;
  text-decoration: none;
}
.gp-skip:focus { transform: translateY(0); }

.gp-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;
}

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

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--gp-header-h) + 1rem); }


/* ---------------------------------------------------------------------------
   03  Cabecalho e navegacao  (substitui o .w-nav do Webflow)
   --------------------------------------------------------------------------- */
.gp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--gp-black);
  color: var(--gp-white);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.gp-header__inner {
  max-width: var(--gp-shell);
  margin-inline: auto;
  padding-inline: var(--gp-gutter);
  min-height: var(--gp-header-h);
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.gp-brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--gp-white);
  text-decoration: none;
  font-weight: 700;
  font-size: 1.0625rem;
  letter-spacing: -0.01em;
  white-space: nowrap;
  margin-right: auto;
}
.gp-brand img { width: 30px; height: 30px; display: block; }

.gp-nav { display: flex; align-items: center; gap: 1.75rem; }

.gp-nav__link {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 500;
  padding: 0.35rem 0;
  border-bottom: 2px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
  white-space: nowrap;
}
.gp-nav__link:hover { color: var(--gp-white); }
.gp-nav__link[aria-current="page"] {
  color: var(--gp-white);
  border-bottom-color: var(--gp-antique);
}

.gp-header__actions { display: flex; align-items: center; gap: 0.75rem; }

.gp-btn-header {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--gp-white);
  color: var(--gp-black);
  border: 1px solid var(--gp-white);
  padding: 0.55rem 1.1rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}
.gp-btn-header:hover { background: transparent; color: var(--gp-white); }

.gp-burger {
  display: none;
  background: none;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: var(--gp-white);
  width: 42px;
  height: 42px;
  padding: 0;
  cursor: pointer;
  align-items: center;
  justify-content: center;
}
.gp-burger svg { width: 20px; height: 20px; }
.gp-burger .gp-burger__close { display: none; }
.gp-burger[aria-expanded="true"] .gp-burger__close { display: block; }
.gp-burger[aria-expanded="true"] .gp-burger__open { display: none; }

@media (max-width: 900px) {
  .gp-burger { display: inline-flex; }
  .gp-header__inner { flex-wrap: wrap; }

  .gp-nav {
    order: 10;
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    display: none;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-block: 0.5rem 1rem;
  }
  .gp-nav[data-open="true"] { display: flex; }
  .gp-nav__link {
    padding: 0.85rem 0;
    font-size: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .gp-nav__link[aria-current="page"] { border-bottom-color: var(--gp-antique); }
  .gp-btn-header { display: none; }
}


/* ---------------------------------------------------------------------------
   04  Rodape
   --------------------------------------------------------------------------- */
.gp-footer {
  background: var(--gp-black);
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.9375rem;
}
.gp-footer__inner {
  max-width: var(--gp-shell);
  margin-inline: auto;
  padding: clamp(3rem, 7vw, 5rem) var(--gp-gutter) 2rem;
}

.gp-footer__grid {
  display: grid;
  gap: 2.5rem clamp(2rem, 5vw, 4rem);
  grid-template-columns: 1fr;
}
@media (min-width: 720px)  { .gp-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; } }
@media (min-width: 1000px) { .gp-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; } }

.gp-footer h2 {
  font-family: var(--gp-sans);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 700;
  margin: 0 0 1rem;
}

.gp-footer__brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--gp-white);
  text-decoration: none;
  font-weight: 700;
  font-size: 1.15rem;
  margin-bottom: 1rem;
}
.gp-footer__brand img { width: 32px; height: 32px; filter: invert(1) brightness(2); }

.gp-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.65rem; }
.gp-footer__list a { color: rgba(255, 255, 255, 0.75); text-decoration: none; }
.gp-footer__list a:hover,
.gp-footer__list a:focus-visible { color: var(--gp-white); text-decoration: underline; }

.gp-footer address { font-style: normal; line-height: 1.7; }

.gp-social { display: flex; gap: 0.75rem; margin-top: 1.25rem; }
.gp-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: rgba(255, 255, 255, 0.8);
  transition: background 0.15s ease, color 0.15s ease;
}
.gp-social a:hover { background: var(--gp-white); color: var(--gp-black); }
.gp-social svg { width: 20px; height: 20px; }

.gp-footer__legal {
  margin-top: 3rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.8;
}
.gp-footer__legal p { margin: 0 0 0.4rem; }
.gp-footer__legal a { color: rgba(255, 255, 255, 0.75); }

/* Aviso exigido pelo Codigo de Etica: o site e informativo, nao capta clientela */
.gp-footer__disclaimer {
  margin-top: 1.25rem;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.42);
  max-width: 70ch;
  line-height: 1.7;
}


/* ---------------------------------------------------------------------------
   05  Hero da home
   --------------------------------------------------------------------------- */
.gp-hero {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
}
@media (min-width: 992px) {
  .gp-hero { grid-template-columns: 1fr 1fr; }
}

.gp-hero__text {
  display: flex;
  align-items: center;
  padding-block: clamp(3.5rem, 9vw, 6rem);
}
.gp-hero__inner { max-width: 56ch; margin-inline: auto; text-align: center; }

.gp-hero__media { position: relative; min-height: 320px; }
.gp-hero__media picture { display: block; height: 100%; }
.gp-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gp-hero h1 { color: var(--gp-white); }

.gp-hero__eyebrow {
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gp-antique);
  font-weight: 700;
  margin: 0 0 1.25rem;
}
.gp-hero__sub {
  font-family: var(--gp-sans);
  font-size: clamp(1rem, 2.2vw, 1.1875rem);
  font-weight: 400;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.82);
  max-width: 48ch;
  margin: 1.25rem auto 0;
}
.gp-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  justify-content: center;
  margin-top: 2rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.7);
}
.gp-hero__trust li {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
.gp-hero__trust svg { width: 16px; height: 16px; color: var(--gp-antique); flex: none; }
.gp-hero__trust ul { margin: 0; padding: 0; }


/* ---------------------------------------------------------------------------
   06  Cards de areas de atuacao  (substitui o carrossel — P1-06)
   --------------------------------------------------------------------------- */
.gp-areas {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 1fr;
}
@media (min-width: 700px)  { .gp-areas { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .gp-areas { grid-template-columns: repeat(3, 1fr); } }

.gp-area {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 420px;
  color: var(--gp-white);
  text-decoration: none;
  overflow: hidden;
  background: var(--gp-black);
  isolation: isolate;
}
.gp-area img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  transition: transform 0.5s ease;
}
.gp-area::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  /* gradiente mais forte na base garante contraste AA sobre qualquer foto (P5-03) */
  background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.62) 45%, rgba(0,0,0,0.88) 100%);
}
.gp-area:hover img { transform: scale(1.04); }

.gp-area__body { margin-top: auto; padding: clamp(1.5rem, 3vw, 2rem); }
.gp-area__title {
  font-family: var(--gp-serif);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 0.75rem;
  color: var(--gp-white);
}
.gp-area__text {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
  margin: 0 0 1.25rem;
}
.gp-area__topics {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.gp-area__topics li {
  font-size: 0.75rem;
  padding: 0.25rem 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: rgba(255, 255, 255, 0.9);
}
.gp-area__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--gp-antique);
}
.gp-area:hover .gp-area__cta { text-decoration: underline; }
.gp-area__cta svg { width: 16px; height: 16px; transition: transform 0.2s ease; }
.gp-area:hover .gp-area__cta svg { transform: translateX(3px); }


/* ---------------------------------------------------------------------------
   07  Paginas internas
   --------------------------------------------------------------------------- */
.gp-shell {
  max-width: var(--gp-shell);
  margin-inline: auto;
  padding-inline: var(--gp-gutter);
}
.gp-shell--narrow { max-width: 820px; }

.gp-section { padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.gp-section--tight { padding-block: clamp(2.5rem, 5vw, 4rem); }
.gp-section--seashell { background: var(--gp-seashell); }
.gp-section--antique { background: var(--gp-antique); }

.gp-page-hero {
  background: var(--gp-black);
  color: var(--gp-white);
  padding-block: clamp(3rem, 7vw, 5.5rem);
}
.gp-page-hero h1 {
  font-size: clamp(2.1rem, 5.5vw, 3.25rem);
  line-height: 1.12;
  margin: 0.75rem 0 1rem;
  color: var(--gp-white);
}
.gp-page-hero p {
  font-size: clamp(1rem, 2vw, 1.1875rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.8);
  max-width: 62ch;
  margin: 0;
}

.gp-breadcrumb { font-size: 0.8125rem; color: rgba(255, 255, 255, 0.6); }
.gp-breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
}
.gp-breadcrumb li:not(:last-child)::after { content: "/"; margin-left: 0.5rem; opacity: 0.5; }
.gp-breadcrumb a { color: rgba(255, 255, 255, 0.75); text-decoration: none; }
.gp-breadcrumb a:hover { color: var(--gp-white); text-decoration: underline; }

.gp-prose { max-width: 68ch; }
.gp-prose h2 {
  font-size: clamp(1.6rem, 3.4vw, 2.1rem);
  line-height: 1.2;
  margin: 3rem 0 1rem;
}
.gp-prose h2:first-child { margin-top: 0; }
.gp-prose h3 {
  font-size: clamp(1.2rem, 2.4vw, 1.4rem);
  line-height: 1.3;
  margin: 2rem 0 0.65rem;
}
.gp-prose p { font-size: 1.0625rem; line-height: 1.75; margin: 0 0 1.15rem; color: var(--gp-ink); }
.gp-prose ul { margin: 0 0 1.5rem; padding-left: 1.25rem; display: grid; gap: 0.6rem; }
.gp-prose li { font-size: 1.0625rem; line-height: 1.65; }
.gp-prose a { color: var(--gp-accent); }

/* Grade de sub-temas dentro de uma area de atuacao */
.gp-topics {
  display: grid;
  gap: 1px;
  grid-template-columns: 1fr;
  background: var(--gp-line);
  border: 1px solid var(--gp-line);
}
@media (min-width: 640px) { .gp-topics { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px) { .gp-topics { grid-template-columns: repeat(3, 1fr); } }
.gp-topic { background: var(--gp-white); padding: 1.5rem; }
.gp-topic h3 {
  font-family: var(--gp-serif);
  font-size: 1.125rem;
  line-height: 1.3;
  margin: 0 0 0.5rem;
}
.gp-topic p { font-size: 0.9375rem; line-height: 1.6; color: var(--gp-mute); margin: 0; }

/* Faixa de CTA reaproveitavel */
.gp-cta-band { background: var(--gp-black); color: var(--gp-white); text-align: center; }
.gp-cta-band h2 {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  line-height: 1.25;
  margin: 0 0 1rem;
  color: var(--gp-white);
}
.gp-cta-band p {
  color: rgba(255, 255, 255, 0.78);
  max-width: 56ch;
  margin: 0 auto 2rem;
  font-size: 1.0625rem;
  line-height: 1.65;
}
.gp-cta-band .gp-btn-row { justify-content: center; }

.gp-btn-row { display: flex; flex-wrap: wrap; gap: 0.85rem; }

.gp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.9rem 1.75rem;
  font-weight: 700;
  font-size: 0.9375rem;
  text-decoration: none;
  border: 2px solid var(--gp-black);
  background: var(--gp-black);
  color: var(--gp-white);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.gp-btn:hover { background: transparent; color: var(--gp-black); }
.gp-btn svg { width: 18px; height: 18px; flex: none; }

.gp-btn--light { background: var(--gp-white); border-color: var(--gp-white); color: var(--gp-black); }
.gp-btn--light:hover { background: transparent; color: var(--gp-white); }

.gp-btn--ghost { background: transparent; color: var(--gp-black); }
.gp-btn--ghost:hover { background: var(--gp-black); color: var(--gp-white); }

.gp-btn--ghost-light { background: transparent; border-color: var(--gp-white); color: var(--gp-white); }
.gp-btn--ghost-light:hover { background: var(--gp-white); color: var(--gp-black); }


/* ---------------------------------------------------------------------------
   08  Socios
   --------------------------------------------------------------------------- */
.gp-people { display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 800px) { .gp-people { grid-template-columns: repeat(2, 1fr); } }

/* align-content: start e obrigatorio aqui. Os cartoes sao esticados ate a
   altura do mais alto pelo grid de .gp-people; sem isso, a sobra de altura do
   cartao mais curto e distribuida entre as linhas e abre um vao entre a foto e
   o nome. A sobra tem de ficar toda embaixo. */
.gp-person { display: grid; gap: 1.25rem; align-content: start; }
.gp-person__photo {
  aspect-ratio: 4 / 5;
  width: 100%;
  max-width: 320px;
  object-fit: cover;
  background: var(--gp-line);
  /* Sem grayscale: os retratos sao fotos profissionais e vao coloridas,
     por decisao dos socios (14/08/2026). */
}
.gp-person h3 { font-size: 1.5rem; margin: 0 0 0.25rem; }
.gp-person__role {
  font-size: 0.8125rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gp-accent);
  font-weight: 700;
  margin: 0 0 0.25rem;
}
.gp-person__oab {
  font-size: 0.875rem;
  color: var(--gp-mute);
  margin: 0 0 1rem;
  font-variant-numeric: tabular-nums;
}
.gp-person p { font-size: 1rem; line-height: 1.7; margin: 0 0 0.9rem; }


/* ---------------------------------------------------------------------------
   09  FAQ  (details/summary — sem JavaScript)
   --------------------------------------------------------------------------- */
.gp-faq { max-width: 800px; border-top: 1px solid var(--gp-line); }
.gp-faq details { border-bottom: 1px solid var(--gp-line); }
.gp-faq summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.35rem 0;
  cursor: pointer;
  font-family: var(--gp-serif);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  list-style: none;
}
.gp-faq summary::-webkit-details-marker { display: none; }
.gp-faq summary::after {
  content: "";
  flex: none;
  width: 14px;
  height: 14px;
  margin-top: 0.35rem;
  border-right: 2px solid var(--gp-accent);
  border-bottom: 2px solid var(--gp-accent);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.gp-faq details[open] summary::after { transform: rotate(-135deg); margin-top: 0.6rem; }
.gp-faq .gp-faq__answer { padding: 0 0 1.5rem; max-width: 66ch; }
.gp-faq .gp-faq__answer p { font-size: 1rem; line-height: 1.7; margin: 0 0 0.85rem; color: var(--gp-mute); }
.gp-faq .gp-faq__answer p:last-child { margin-bottom: 0; }


/* ---------------------------------------------------------------------------
   10  Formulario de contato
   --------------------------------------------------------------------------- */
.gp-contact-grid { display: grid; gap: clamp(2.5rem, 6vw, 4rem); grid-template-columns: 1fr; }
@media (min-width: 900px) { .gp-contact-grid { grid-template-columns: 1.1fr 0.9fr; } }

.gp-form { display: grid; gap: 1.25rem; }
.gp-field { display: grid; gap: 0.4rem; }
.gp-field label { font-size: 0.875rem; font-weight: 700; }
.gp-field .gp-hint { font-size: 0.8125rem; color: var(--gp-mute); font-weight: 400; }

.gp-field input,
.gp-field select,
.gp-field textarea {
  font-family: inherit;
  font-size: 1rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid #b9b1ac;
  background: var(--gp-white);
  color: var(--gp-ink);
  width: 100%;
  border-radius: 0;
}
.gp-field textarea { min-height: 150px; resize: vertical; }
.gp-field input:focus-visible,
.gp-field select:focus-visible,
.gp-field textarea:focus-visible { border-color: var(--gp-accent); }

.gp-check { display: flex; gap: 0.65rem; align-items: flex-start; font-size: 0.875rem; line-height: 1.6; }
.gp-check input { margin-top: 0.25rem; flex: none; width: 18px; height: 18px; }

.gp-form__status { font-size: 0.9375rem; padding: 0.9rem 1rem; display: none; }
.gp-form__status[data-state="ok"]   { display: block; background: #e6f0e4; border-left: 3px solid #3d6b2e; }
.gp-form__status[data-state="erro"] { display: block; background: #f8e3e0; border-left: 3px solid #a32b1c; }

.gp-contact-card { background: var(--gp-white); border: 1px solid var(--gp-line); padding: clamp(1.5rem, 3vw, 2rem); }
.gp-contact-card h2 { font-size: 1.35rem; margin: 0 0 1.25rem; }
.gp-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.gp-contact-list dt {
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gp-mute);
  font-weight: 700;
  margin-bottom: 0.2rem;
}
.gp-contact-list a { color: var(--gp-ink); text-decoration: none; font-weight: 600; }
.gp-contact-list a:hover { text-decoration: underline; }
.gp-map {
  width: 100%;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--gp-line);
  margin-top: 1.5rem;
  display: block;
}


/* ---------------------------------------------------------------------------
   11  Botao flutuante de WhatsApp
   --------------------------------------------------------------------------- */
.gp-whatsapp {
  position: fixed;
  right: clamp(1rem, 3vw, 1.75rem);
  bottom: clamp(1rem, 3vw, 1.75rem);
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: #1fa855;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9375rem;
  padding: 0.85rem 1.25rem;
  border-radius: 999px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
  transition: transform 0.18s ease, background 0.18s ease;
}
.gp-whatsapp:hover { background: #17944a; transform: translateY(-2px); }
.gp-whatsapp svg { width: 22px; height: 22px; flex: none; }

/* No mobile vira so o icone, para nao cobrir o conteudo */
@media (max-width: 600px) {
  .gp-whatsapp { padding: 0.9rem; border-radius: 50%; }
  .gp-whatsapp span { display: none; }
}

/* Sobe quando o banner de cookies esta visivel */
body[data-cookie-banner="visivel"] .gp-whatsapp { bottom: calc(clamp(1rem, 3vw, 1.75rem) + 128px); }


/* ---------------------------------------------------------------------------
   12  Banner de consentimento (LGPD)
   --------------------------------------------------------------------------- */
.gp-cookies {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 95;
  background: var(--gp-black);
  color: rgba(255, 255, 255, 0.85);
  padding: 1.25rem var(--gp-gutter);
  display: none;
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.25);
}
.gp-cookies[data-visible="true"] { display: block; }
.gp-cookies__inner {
  max-width: var(--gp-shell);
  margin-inline: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
}
.gp-cookies p { margin: 0; font-size: 0.875rem; line-height: 1.6; flex: 1 1 340px; }
.gp-cookies a { color: var(--gp-antique); }
.gp-cookies__actions { display: flex; gap: 0.65rem; flex-wrap: wrap; }
.gp-cookies button {
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.65rem 1.25rem;
  border: 1px solid var(--gp-white);
  cursor: pointer;
  background: var(--gp-white);
  color: var(--gp-black);
}
.gp-cookies button.gp-cookies__reject { background: transparent; color: var(--gp-white); }


/* ---------------------------------------------------------------------------
   13  Utilitarios
   --------------------------------------------------------------------------- */
.gp-eyebrow {
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--gp-accent);
  margin: 0 0 0.85rem;
}
.gp-page-hero .gp-eyebrow,
.gp-cta-band .gp-eyebrow { color: var(--gp-antique); }

.gp-lead { font-size: clamp(1.0625rem, 2vw, 1.1875rem); line-height: 1.7; color: var(--gp-mute); max-width: 64ch; }

.gp-stats { display: flex; flex-wrap: wrap; gap: clamp(2rem, 6vw, 5rem); }
.gp-stat__value {
  font-family: var(--gp-serif);
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  line-height: 1;
  margin: 0 0 0.5rem;
}
.gp-stat__label { font-size: 0.9375rem; color: var(--gp-mute); margin: 0; }

.gp-split { display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: 1fr; align-items: center; }
@media (min-width: 860px) { .gp-split { grid-template-columns: 1fr 1fr; } }
.gp-split img { width: 100%; height: auto; display: block; }

.gp-note {
  background: var(--gp-seashell);
  border-left: 3px solid var(--gp-accent);
  padding: 1.25rem 1.5rem;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--gp-mute);
}

/* Pagina 404 */
.gp-utility {
  min-height: 60vh;
  display: grid;
  place-items: center;
  text-align: center;
  padding: clamp(3rem, 10vw, 7rem) var(--gp-gutter);
}
.gp-utility__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: center;
  font-size: 0.9375rem;
}
.gp-utility__links a {
  color: var(--gp-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.gp-utility__code {
  font-family: var(--gp-serif);
  font-size: clamp(4rem, 14vw, 8rem);
  line-height: 1;
  color: var(--gp-line);
  margin: 0 0 1rem;
}
