/* ===========================================================
   Sthéfany Alvarenga — Psicóloga
   Persona visual: B — Acolhedor Orgânico
   =========================================================== */

:root{
  --primaria: #1E5A63;
  --primaria-escura: #143f46;
  --secundaria: #36584C;
  --acento: #B08D57;
  --acento-suave: #E4D3B4;
  --superficie: #F5F3EE;
  --superficie-alt: #ECE9DE;
  --texto: #3A3F42;
  --texto-suave: #5B6167;
  --linha: #DAD4C6;
  --linha-clara: rgba(245,243,238,0.25);
  --salvia: #ABB39A;
  --rosa: #C99A97;
  --branco: #FFFFFF;
  --radius: 28px;
  --radius-sm: 14px;
  --shadow: 0 24px 50px -24px rgba(20,63,70,0.32);
  --shadow-sm: 0 10px 24px -14px rgba(20,63,70,0.28);
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Montserrat', -apple-system, sans-serif;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-sans);
  color: var(--texto);
  background: var(--superficie);
  line-height: 1.65;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{
  font-family: var(--font-serif);
  color: var(--primaria-escura);
  font-weight: 600;
  line-height: 1.18;
  margin: 0 0 .6em;
}
p{ margin: 0 0 1em; color: var(--texto-suave); }
.wrap{ max-width: 1180px; margin-inline:auto; padding-inline: 1.5rem; }
section{ padding-block: clamp(3.5rem, 6vw, 5.5rem); position:relative; overflow:hidden; }

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--primaria); color:var(--branco); padding:.8rem 1.2rem;
  border-radius: var(--radius-sm); z-index:2000;
}
.skip-link:focus{ left: 1rem; top: 1rem; }

/* ---------- Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding: .95rem 1.9rem; border-radius: 999px; font-weight:600; font-size:.95rem;
  border: 1.5px solid transparent; cursor:pointer; min-height:44px;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space: nowrap;
}
.btn-primary{ background: var(--primaria); color: var(--branco); box-shadow: var(--shadow-sm); }
.btn-primary:hover{ background: var(--primaria-escura); transform: translateY(-2px); box-shadow: var(--shadow); }
.btn-ghost{ background: transparent; color: var(--primaria-escura); border-color: var(--linha); }
.btn-ghost:hover{ border-color: var(--primaria); color: var(--primaria); transform: translateY(-2px); }
.btn-outline{ background: transparent; color: var(--primaria-escura); border-color: var(--primaria); }
.btn-outline:hover{ background: var(--primaria); color: var(--branco); transform: translateY(-2px); }
.btn-outline-light{ background: transparent; color: var(--superficie); border-color: rgba(245,243,238,.4); }
.btn-outline-light:hover{ background: var(--superficie); color: var(--primaria-escura); transform: translateY(-2px); }
.btn-light{ background: var(--superficie); color: var(--primaria-escura); }
.btn-light:hover{ background: var(--branco); transform: translateY(-2px); box-shadow: var(--shadow); }

/* ---------- Eyebrow ---------- */
.eyebrow{
  display:inline-flex; flex-direction:column; align-items:flex-start; gap:.55rem;
  font-size:.78rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color: var(--acento); margin-bottom: 1rem;
}
.eyebrow::after{ content:''; width:30px; height:3px; border-radius:2px; background: var(--acento); }
.eyebrow--claro{ color: var(--acento-suave); }
.eyebrow--claro::after{ background: var(--acento-suave); }
.cabecalho-secao.centro .eyebrow,
.hero__text .eyebrow,
.instagram__card .eyebrow,
.diferenciais .cabecalho-secao .eyebrow{ align-items:flex-start; }
.cabecalho-secao.centro{ text-align:center; }
.cabecalho-secao.centro .eyebrow{ align-items:center; }

.section-title{ font-size: clamp(1.9rem, 3.2vw, 2.7rem); max-width: 34ch; }
.cabecalho-secao.centro .section-title,
.cabecalho-secao.centro .intro-secao{ margin-inline:auto; }
.intro-secao{ max-width: 52ch; font-size:1.05rem; }
.cabecalho-secao{ margin-bottom: 3rem; }

/* ---------- Divisores ---------- */
.divider{ position:relative; width:100%; height:26px; line-height:0; }
.divider svg{ width:100%; height:100%; display:block; }
.divider__node{
  position:absolute; left:50%; top:50%; width:9px; height:9px; border-radius:50%;
  background: var(--acento); transform: translate(-50%,-50%) rotate(45deg);
  box-shadow: 0 0 0 5px var(--superficie);
}
.divider__node--claro{ background: var(--acento-suave); box-shadow: 0 0 0 5px var(--secundaria); }

/* ---------- Header ---------- */
.navbar{
  position: fixed; top:0; left:0; right:0; z-index:1000;
  padding-block: 1.2rem; transition: background .3s ease, box-shadow .3s ease, padding .3s ease;
}
.navbar__inner{
  max-width:1180px; margin-inline:auto; padding-inline:1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1.2rem;
}
.navbar__brand{ display:inline-flex; align-items:center; }
.navbar__logo-full{ height:78px; width:auto; object-fit:contain; flex-shrink:0; transition: height .3s ease; }
.navbar.scrolled .navbar__logo-full{ height:62px; }
.navbar__nav{ display:flex; align-items:center; gap:1.9rem; }
.navbar__link{ font-size:.92rem; font-weight:600; color: var(--primaria-escura); position:relative; padding-block:.3rem; }
.navbar__link::after{ content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--acento); transition:width .25s ease; }
.navbar__link:hover::after{ width:100%; }
.navbar.scrolled{ background: rgba(245,243,238,.94); backdrop-filter: blur(10px); box-shadow: 0 8px 30px -18px rgba(20,63,70,.35); padding-block:.75rem; }

.nav-toggle{ display:none; background:none; border:none; cursor:pointer; color: var(--primaria-escura); padding:.4rem; margin:-.4rem; }
@media (max-width:860px){
  .navbar__inner{ justify-content:space-between; gap:1rem; }
  .navbar__nav, .navbar__cta{ display:none; }
  .navbar__brand{ margin-right:auto; }
  .nav-toggle{ display:flex; margin-left:auto; }
}
/* Menu mobile: drawer (fora de @media para nunca ficar transparente) */
.mobile-menu{
  position:fixed; top:0; right:0; bottom:0; z-index:1200; width:min(86vw,360px);
  display:flex; flex-direction:column; padding:1.3rem 1.6rem 2rem;
  background: var(--superficie);
  box-shadow: -18px 0 50px -22px rgba(20,63,70,.4);
  transform: translateX(100%); visibility:hidden;
  transition: transform .34s cubic-bezier(.4,0,.2,1), visibility .34s;
  overscroll-behavior: contain;
}
.mobile-menu.open{ transform:none; visibility:visible; }
.mobile-menu__head{
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:1.1rem; margin-bottom:.5rem; border-bottom:1px solid var(--linha);
}
.mobile-menu__brand{ display:inline-flex; align-items:center; }
.mobile-menu__logo-full{ height:56px; width:auto; object-fit:contain; flex-shrink:0; }
.mobile-menu__links{ display:flex; flex-direction:column; margin:0; padding:0; list-style:none; overflow-y:auto; }
.mobile-menu__links li{ border-bottom:1px solid var(--linha); }
.mobile-menu__links a{ display:flex; align-items:center; min-height:54px; font-size:1.05rem; font-weight:500; color: var(--texto); transition: color .2s; }
.mobile-menu__links a:hover{ color: var(--primaria); }
.mobile-menu__cta{ margin-top:auto; width:100%; justify-content:center; }
.mobile-close{ background:none; border:none; color: var(--primaria); cursor:pointer; padding:.3rem; margin:-.3rem; line-height:0; }
.menu-backdrop{
  position:fixed; inset:0; z-index:1100; background: rgba(20,40,45,.5);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity:0; visibility:hidden; transition: opacity .3s ease, visibility .3s;
}
.menu-backdrop.open{ opacity:1; visibility:visible; }

/* ---------- Reveal / animação ---------- */
.animate-on-scroll{
  opacity:0; transform: translateY(24px);
  transition: opacity .6s ease-out, transform .6s ease-out;
  transition-delay: calc(var(--i,0) * 90ms);
}
.animate-on-scroll.visible{ opacity:1; transform:none; }

@keyframes drift{
  0%{ transform: translate3d(0,0,0) rotate(0); }
  50%{ transform: translate3d(0,-16px,0) rotate(1.5deg); }
  100%{ transform: translate3d(0,0,0) rotate(0); }
}
.decor-drift{ animation: drift 19s ease-in-out infinite; will-change: transform; }

@media (prefers-reduced-motion: reduce){
  .animate-on-scroll{ opacity:1!important; transform:none!important; transition:none!important; }
  .decor-drift{ animation:none!important; }
  [data-parallax]{ transform:none!important; }
  html{ scroll-behavior:auto; }
}

/* ---------- Hero ---------- */
.hero{ padding-top: clamp(8.5rem, 14vw, 11rem); padding-bottom: clamp(4rem, 8vw, 6rem); }
.hero__decor{ position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.hero__decor .blob{ position:absolute; opacity:.5; }
.hero__decor .blob--1{ top:-140px; left:-160px; opacity:.28; }
.hero__decor .blob--1 path{ fill: var(--salvia) !important; }
.hero__decor .blob--2{ bottom:-120px; right:-100px; opacity:.18; }
.hero__inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2.5rem, 5vw, 4rem); align-items:center;
}
.hero__headline{ font-size: clamp(2.3rem, 4.4vw, 3.6rem); line-height:1.24; max-width:16ch; }
.hero__sub{ font-size:1.08rem; max-width:46ch; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.8rem; }

.hero__photo-wrap{ position:relative; max-width:420px; margin-inline:auto; }
.hero__photo-blob{ position:absolute; inset:-6% -10% -10% -10%; z-index:0; filter: drop-shadow(0 26px 40px rgba(20,63,70,.28)); }
.hero__photo-img{
  position:relative; z-index:1; margin-inline:auto; max-height:520px; width:auto;
  filter: drop-shadow(0 18px 30px rgba(20,63,70,.22));
  -webkit-mask-image: linear-gradient(to bottom, #000 88%, transparent 99%);
  mask-image: linear-gradient(to bottom, #000 88%, transparent 99%);
}
.hero__badge{
  position:absolute; z-index:2; right:-6px; bottom:6%;
  background: var(--branco); border-radius: 999px; box-shadow: var(--shadow);
  padding: .9rem 1.3rem; display:flex; align-items:center; gap:.7rem; text-align:left;
  min-width:150px;
}
.hero__badge-number{ font-family: var(--font-serif); font-size:2rem; font-weight:700; color: var(--acento); line-height:1; }
.hero__badge-label{ font-size:.72rem; line-height:1.3; color: var(--texto-suave); font-weight:600; text-transform:uppercase; letter-spacing:.03em; }

@media (max-width: 900px){
  .hero__inner{ grid-template-columns:1fr; }
  .hero__photo{ order:-1; }
  .hero__text{ text-align:left; }
}

/* ---------- Sobre ---------- */
.sobre{ background: var(--superficie-alt); }
.sobre__decor{ position:absolute; top:-80px; right:-100px; z-index:0; pointer-events:none; }
.sobre__inner{ position:relative; z-index:1; display:grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2.5rem,5vw,4.5rem); align-items:start; }
.sobre__text{ position:relative; }
.sobre__text p{ color: var(--texto); }
.sobre__primeiro::first-letter{
  float:left; font-family: var(--font-serif); font-size:4.4rem; line-height:.82; font-weight:600;
  color: var(--acento); padding-right:.12em; padding-top:.05em;
}
.link-arrow{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; color: var(--primaria); margin-top:.5rem; }
.link-arrow svg{ transition: transform .2s ease; }
.link-arrow:hover svg{ transform: translateX(4px); }

@media (max-width:800px){
  .sobre__inner{ grid-template-columns:1fr; }
}

/* ---------- Serviços ---------- */
.servicos__grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1.8rem; margin-bottom: 3.5rem; }
.servico-card{
  position:relative; background: var(--branco); border-radius: var(--radius);
  padding: 2.2rem 1.8rem; box-shadow: var(--shadow-sm); overflow:hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.servico-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow); }
.servico-card{ padding: 0 0 2.2rem; }
.servico-card__media{ position:relative; width:100%; height:180px; margin-bottom:1.4rem; overflow:hidden; }
.servico-card__media img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .4s ease; }
.servico-card:hover .servico-card__media img{ transform: scale(1.05); }
.servico-card__icon-badge{
  position:absolute; left:14px; bottom:14px; z-index:1; width:42px; height:42px; border-radius:50%;
  background: var(--branco); display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-sm);
}
.servico-card h3{ font-size:1.35rem; margin-bottom:.6rem; padding-inline: 1.8rem; }
.servico-card p{ font-size:.94rem; padding-inline: 1.8rem; }
.servico-card > .link-arrow{ margin-inline: 1.8rem; }

.servicos__mais{ background: var(--branco); border-radius: var(--radius); padding: 2.2rem clamp(1.4rem,4vw,2.6rem); box-shadow: var(--shadow-sm); }
.servicos__mais-title{ font-size:1.3rem; margin-bottom:1.2rem; color: var(--primaria-escura); }

.accordion__item{ border-bottom:1px solid var(--linha); }
.accordion__item:first-child{ border-top:1px solid var(--linha); }
.accordion__trigger{
  width:100%; display:flex; align-items:center; justify-content:flex-start; gap:1rem;
  background:none; border:none; text-align:left; cursor:pointer; padding: .85rem .2rem;
  font-family: var(--font-sans); font-weight:600; font-size:1rem; color: var(--primaria-escura); min-height:52px;
}
.accordion__trigger span{ flex:1; }
.accordion__trigger svg{ flex-shrink:0; margin-left:.5rem; transition: transform .25s ease; color: var(--acento); }
.accordion__trigger[aria-expanded="true"] svg{ transform: rotate(180deg); }
.accordion__thumb{
  flex-shrink:0; width:52px; height:52px; border-radius: 46% 54% 60% 40% / 50% 44% 56% 50%;
  object-fit:cover;
}
.accordion__panel{ max-height:0; overflow:hidden; transition: max-height .3s ease; }
.accordion__panel p{ padding: 0 .2rem 1.15rem; font-size:.95rem; }

/* ---------- Como funciona ---------- */
.passos{ display:grid; grid-template-columns: repeat(4,1fr); gap: 1.6rem; position:relative; }
.passos::before{
  content:''; position:absolute; top:26px; left:12%; right:12%; height:1px;
  background: repeating-linear-gradient(to right, var(--linha) 0 8px, transparent 8px 16px);
}
.passo{ position:relative; text-align:center; padding-top: .5rem; }
.passo__numero{
  display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:50%; background: var(--primaria); color: var(--branco); font-family: var(--font-serif);
  font-size:1.25rem; font-weight:700; margin-bottom:1.1rem; position:relative; z-index:1;
  box-shadow: 0 0 0 6px var(--superficie);
}
.passo h3{ font-size:1.18rem; margin-bottom:.5rem; }
.passo p{ font-size:.92rem; }

@media (max-width: 860px){
  .passos{ grid-template-columns:1fr 1fr; }
  .passos::before{ display:none; }
}
@media (max-width: 540px){
  .passos{ grid-template-columns:1fr; }
}

/* ---------- Diferenciais (tema escuro) ---------- */
.diferenciais.tema-escuro{ background: var(--secundaria); color: var(--superficie); }
.diferenciais.tema-escuro h1,
.diferenciais.tema-escuro h2,
.diferenciais.tema-escuro h3,
.diferenciais.tema-escuro h4{ color: var(--superficie); }
.diferenciais.tema-escuro p{ color: rgba(245,243,238,.78); }
.diferenciais__decor{ position:absolute; top:-120px; right:-120px; z-index:0; pointer-events:none; }
.diferenciais .cabecalho-secao{ position:relative; z-index:1; max-width:60ch; }
.diferenciais__lista{ position:relative; z-index:1; display:flex; flex-direction:column; }
.diferencial{
  display:grid; grid-template-columns: 90px 1fr; gap:1.5rem; align-items:start;
  padding-block: 1.8rem; border-top: 1px solid rgba(245,243,238,.16);
}
.diferencial:last-child{ border-bottom: 1px solid rgba(245,243,238,.16); }
.diferencial__numero{ font-family: var(--font-serif); font-size:3.4rem; font-weight:700; color: var(--acento-suave); opacity:.7; line-height:1; }
.diferencial h3{ font-size:1.3rem; margin-bottom:.4rem; }
.diferencial p{ font-size:.98rem; max-width:60ch; }

@media (max-width:600px){
  .diferencial{ grid-template-columns: 60px 1fr; gap:1rem; }
  .diferencial__numero{ font-size:2.3rem; }
}

/* ---------- CTA banner ---------- */
.cta-banner{ background: var(--primaria); padding-block: clamp(3rem,6vw,4.5rem); }
.cta-banner__inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem; }
.cta-banner h2{ color: var(--superficie); font-size: clamp(1.5rem,2.6vw,2.1rem); max-width:34ch; margin:0; }

/* ---------- Instagram ---------- */
.instagram__card{
  position:relative; background: var(--branco); border-radius: var(--radius);
  padding: clamp(2.4rem,5vw,3.6rem); text-align:center; box-shadow: var(--shadow-sm); overflow:hidden;
}
.instagram__decor{ position:absolute; top:-60px; left:-60px; z-index:0; pointer-events:none; }
.instagram__card > *:not(.instagram__decor){ position:relative; z-index:1; }
.instagram__card .eyebrow{ align-items:center; }
.instagram__card h2{ margin-inline:auto; }
.instagram__card p{ max-width:48ch; margin-inline:auto; }
.instagram__card .btn{ margin-top:.5rem; }

/* ---------- FAQ ---------- */
.faq{ background: var(--superficie-alt); }
.accordion--faq .accordion__trigger span{ max-width: 90%; }

/* ---------- Contato / Formulário ---------- */
.contato__inner{ display:grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2.5rem,5vw,4rem); align-items:start; }
.contatos{ display:flex; flex-direction:column; gap:1rem; margin-top:1.8rem; }
.contatos a, .contatos__local{ display:inline-flex; align-items:center; gap:.7rem; min-height:44px; color: var(--texto); }
.contatos svg{ flex-shrink:0; color: var(--primaria); }
.contatos a:hover{ color: var(--primaria); }

.form{ background: var(--branco); border-radius: var(--radius); padding: clamp(1.8rem,4vw,2.6rem); box-shadow: var(--shadow-sm); }
.form__row{ margin-bottom: 1.3rem; display:flex; flex-direction:column; gap:.45rem; position:relative; }
.form__row label{ font-size:.85rem; font-weight:600; color: var(--primaria-escura); }
.form__row input, .form__row textarea{
  font-family: var(--font-sans); font-size:1rem; padding: .85rem 1rem; border-radius: var(--radius-sm);
  border: 1.5px solid var(--linha); background: var(--superficie); color: var(--texto); min-height:48px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.form__row textarea{ min-height:110px; resize:vertical; }
.form__row input:focus, .form__row textarea:focus{
  outline:none; border-color: var(--primaria); box-shadow: 0 0 0 3px rgba(30,90,99,.15);
}
a:focus-visible, button:focus-visible{
  outline: 2px solid var(--primaria); outline-offset: 3px; border-radius: 4px;
}
.form__erro{ display:none; font-size:.8rem; color:#B4443A; }
.form__row.erro input, .form__row.erro textarea{ border-color:#B4443A; }
.form__row.erro .form__erro{ display:block; }
.form__submit{ width:100%; margin-top:.5rem; }
.form__lgpd{ font-size:.78rem; margin-top:1rem; margin-bottom:0; }
.form__lgpd a{ color: var(--primaria); font-weight:600; text-decoration:underline; }

@media (max-width:800px){
  .contato__inner{ grid-template-columns:1fr; }
}

/* ---------- Footer ---------- */
.footer{ background: var(--primaria-escura); color: var(--superficie); padding-top: clamp(3rem,6vw,4.5rem); }
.footer h1, .footer h2, .footer h3, .footer h4{ color: var(--superficie); }
.footer__inner{ display:grid; grid-template-columns: 1.3fr .9fr .8fr; gap: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(245,243,238,.15); }
.footer__logo{ display:inline-flex; align-items:center; margin-bottom:1.1rem; }
.footer__logo-full{ height:72px; width:auto; object-fit:contain; flex-shrink:0; filter: brightness(0) invert(1); opacity:.92; }
.footer__brand p{ color: rgba(245,243,238,.7); max-width:38ch; }
.footer .contatos a{ color: rgba(245,243,238,.85); }
.footer .contatos svg{ color: var(--acento-suave); }
.footer__nav{ display:flex; flex-direction:column; gap:.8rem; }
.footer__nav a{ color: rgba(245,243,238,.78); font-size:.95rem; }
.footer__nav a:hover{ color: var(--superficie); }
.footer__cta{ display:flex; align-items:flex-start; }
.footer__bottom{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem;
  padding-block: 1.6rem; font-size:.82rem; color: rgba(245,243,238,.6);
}
.footer__bottom a{ color: rgba(245,243,238,.75); }
.footer__bottom a:hover{ color: var(--superficie); }
.footer__top{
  display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px;
  border-radius:50%; border:1px solid rgba(245,243,238,.25); transition: background .2s ease, transform .2s ease;
}
.footer__top:hover{ background: rgba(245,243,238,.1); transform: translateY(-3px); }

@media (max-width:800px){
  .footer__inner{ grid-template-columns:1fr; }
}

/* ---------- WhatsApp flutuante ---------- */
.whatsapp-float{
  position:fixed; bottom:2rem; right:2rem; z-index:900;
  width:60px; height:60px; border-radius:50%; background:#25d366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 10px 26px -8px rgba(0,0,0,.4);
  animation: wa-float 3.2s ease-in-out infinite;
  will-change: transform, box-shadow;
}
.whatsapp-float::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  box-shadow: 0 0 0 0 rgba(37,211,102,.55);
  animation: wa-pulse 2.8s ease-out infinite; animation-delay: 1.2s;
}
.whatsapp-float:hover{ animation-play-state: paused; transform: scale(1.13); }
.whatsapp-float:hover::after{ animation-play-state: paused; }

@keyframes wa-float{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-9px);} }
@keyframes wa-pulse{ 0%{ box-shadow: 0 0 0 0 rgba(37,211,102,.55);} 100%{ box-shadow: 0 0 0 20px rgba(37,211,102,0);} }

@media (prefers-reduced-motion: reduce){
  .whatsapp-float, .whatsapp-float::after{ animation:none!important; }
}

@media (max-width:600px){
  .whatsapp-float{ width:54px; height:54px; bottom:1.3rem; right:1.3rem; }
}

/* ---------- Responsivo geral ---------- */
@media (max-width: 900px){
  .servicos__grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px){
  section{ padding-block: clamp(2.6rem,10vw,3.6rem); }
  .servicos__grid{ grid-template-columns: 1fr; }
  .cta-banner__inner{ flex-direction:column; align-items:flex-start; }
  html{ font-size:15.5px; }
}
