/* =========================================================
   Valéria Carneiro | Psicóloga Clínica
   Versão otimizada: layout fiel aos modelos desktop
   (01 Hero V3, 02 Quem sou V1, 03 Temas V2, 04 Psicoterapia V1,
   05 Serviços V1, 06 Singularidade V5, 07 Convite V2, 08 FAQ V1).

   Mobile-first: a base é coluna única; 768px e 1025px adicionam
   as colunas dos modelos.
   ========================================================= */

:root{
  /* Paleta da marca, calibrada pelas cores dos modelos */
  --creme:        #F9F0E9;
  --creme-2:      #F7EDE5;
  --creme-card:   #FAF3EC;
  --oliva:        #828767;   /* fundo Serviços */
  --oliva-faq:    #7C8066;   /* itens do FAQ */
  --oliva-btn:    #666B4A;   /* botões */
  --oliva-btn-h:  #575C3D;
  --oliva-txt:    #59582E;   /* destaque escuro */
  --oliva-titulo: #6E7352;
  --sage-band:    #E4E6D6;   /* faixa do hero */
  --sage-box:     #E3DDCB;   /* caixa da singularidade */
  --rosa:         #C98F8B;   /* fundo Temas */
  --terracota:    #B86F6E;
  --terracota-h:  #A85F5E;
  --rosa-claro:   #F5E8E3;
  --texto:        #4A4440;
  --texto-suave:  #6B635C;

  --serif:   'Gilda Display', 'Cormorant Garamond', Georgia, serif;
  --italic:  'Cormorant Garamond', Georgia, serif;
  --display: 'Marcellus', 'Gilda Display', Georgia, serif;
  --sans:    'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --container: 1200px;
  --header-h:60px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 7px);
  overflow-x:hidden;
}
body{
  margin:0;
  font-family:var(--sans);
  font-size:15px;
  line-height:1.7;
  color:var(--texto);
  background:var(--creme);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
ul{ list-style:none; margin:0; padding:0; }
p{ margin:0 0 1.1em; }
strong{ font-weight:600; }

h1,h2,h3{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:-.005em;
}

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:17px;
}
.container.narrow{ max-width:860px; }
.center{ text-align:center; }
.section{ position:relative; padding-block:55px; overflow:hidden; }

.rule{
  display:block;
  width:56px;
  height:1.5px;
  background:currentColor;
  opacity:.7;
}

/* ---------------- Botões ---------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-family:var(--sans);
  font-size:0.82rem;
  font-weight:600;
  color:#fff;
  background:var(--oliva-btn);
  padding:13px 29px;
  border-radius:8px;
  text-decoration:none;
  transition:transform .3s ease, background-color .3s ease, box-shadow .3s ease;
}
.btn:hover{ background:var(--oliva-btn-h); transform:translateY(-2px); box-shadow:0 10px 24px rgba(60,60,30,.18); }
.btn:focus-visible{ outline:2px solid var(--terracota); outline-offset:3px; }
.btn-arrow{ width:22px; height:22px; flex:0 0 22px; transition:transform .3s ease; }
.btn:hover .btn-arrow{ transform:translateX(4px); }

.btn-pill{ border-radius:999px; padding:15px 33px; }
.btn-rose{ background:var(--terracota); box-shadow:0 10px 24px rgba(80,40,30,.18); font-weight:500; }
.btn-rose:hover{ background:var(--terracota-h); }
.btn-lg{ font-size:0.99rem; padding:17px 40px; gap:34px; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{ display:none; }
.site-header,
.site-header-mobile{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(249,240,233,.96);
  backdrop-filter:blur(6px);
  padding-top:env(safe-area-inset-top, 0px);
  box-shadow:0 1px 0 rgba(0,0,0,.05), 0 4px 14px rgba(0,0,0,.03);
}
.header-inner{
  max-width:var(--container);
  margin-inline:auto;
  padding:9px 17px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:var(--header-h);
}
.logo{ display:block; flex:0 0 auto; }
.logo img{ height:48px; width:auto; }

.menu-toggle{ background:none; border:0; padding:7px; cursor:pointer; color:var(--texto); line-height:0; }
.menu-toggle svg{ width:26px; height:26px; fill:currentColor; }
.menu-toggle .icon-close{ display:none; }
.menu-toggle[aria-expanded="true"] .icon-open{ display:none; }
.menu-toggle[aria-expanded="true"] .icon-close{ display:block; }

.nav-mobile{ display:none; background:var(--creme-2); border-top:1px solid rgba(0,0,0,.06); }
.nav-mobile.is-open{ display:block; }
.nav-mobile ul{ padding:5px 17px 14px; }
.nav-mobile li + li{ border-top:1px solid rgba(0,0,0,.05); }
.nav-mobile a{ display:block; padding:11px 0; font-size:0.79rem; text-decoration:none; }

.nav-desktop ul{ display:flex; gap:clamp(15px, 2.06vw, 31px); }
.nav-desktop a{
  position:relative;
  font-size:0.82rem;
  font-weight:400;
  color:var(--texto);
  text-decoration:none;
  transition:color .25s ease;
}
.nav-desktop a::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:1.5px;
  background:var(--terracota); transform:scaleX(0); transition:transform .3s ease;
}
.nav-desktop a:hover{ color:var(--terracota); }
.nav-desktop a:hover::after{ transform:scaleX(1); }

/* =========================================================
   01 HERO
   ========================================================= */
.hero{
  position:relative;
  background:#F9EFE7 url('../img/hero-bg.jpg') right top / cover no-repeat;
  padding-top:34px;
  padding-bottom:0;
  overflow:hidden;
  display:grid;
}
.hero-grid{ display:grid; gap:21px; position:relative; z-index:2; }
.hero-text,.hero-img{ min-width:0; }
.hero-text{ text-align:center; }
.hero h1{
  font-size:clamp(2.06rem, 3.7vw, 3.96rem);
  line-height:1.08;
  color:#3B3330;
  margin-bottom:.45em;
  max-width:12.6em;
}
.hero h1 em{
  font-family:var(--italic);
  font-style:italic;
  font-weight:500;
  color:var(--terracota);
  font-size:1.08em;
  letter-spacing:-.01em;
}
.hero-lead{
  font-size:clamp(0.86rem, 1.25vw, 1.22rem);
  line-height:1.55;
  color:var(--texto-suave);
  max-width:34em;
  margin-inline:auto;
}
.hero-img{ display:flex; justify-content:center; align-items:flex-end; }
.hero-img picture{ display:block; line-height:0; }
.hero-img img{ max-width:280px; width:100%; }

/* Faixa sage com as modalidades: sangra até a borda esquerda da tela */
.hero-band{
  position:relative;
  margin:22px -17px 22px;
  padding:15px 17px;
  background:rgba(222,226,206,.75);
}
.modalidades{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.modalidades li{
  display:flex;
  align-items:center;
  gap:17px;
  font-family:var(--serif);
  font-size:clamp(0.9rem, 1.25vw, 1.2rem);
  line-height:1.3;
  color:#3B3330;
  flex:0 1 auto;
  max-width:20em;
}
.mod-icon{
  flex:0 0 auto;
  width:clamp(56px, 3.96vw, 70px);
  height:clamp(56px, 3.96vw, 70px);
  border-radius:50%;
  background:#FBF6F0;
  display:grid;
  place-items:center;
  color:#4D4A44;
}
.mod-icon svg{ width:55%; height:55%; }
.hero-text .btn{ font-size:0.95rem; padding:16px 34px; margin-bottom:9px; }

/* =========================================================
   02 QUEM SOU
   ========================================================= */
.sobre{ background:var(--creme); padding-block:62px; }
.sobre-grid{ display:grid; gap:38px; position:relative; z-index:1; }
.sobre-img{ position:relative; margin:26px 0 0 26px; }
.sobre-shape{
  position:absolute;
  left:-34px; top:-6px;
  width:50%; height:62%;
  background:#C47D7A;
  border-radius:140px 0 0 160px / 180px 0 0 260px;
  z-index:0;
}
.sobre-arc{
  position:absolute;
  left:5%; top:-30px;
  width:46%; height:120px;
  border:2px solid #E2BCB6;
  border-bottom:0;
  border-radius:200px 200px 0 0;
  z-index:0;
}
.sobre-img img{
  position:relative;
  z-index:1;
  width:100%;
  border-radius:18px;
  box-shadow:0 18px 40px rgba(80,50,40,.10);
}
.sobre-text h2{
  font-size:clamp(1.98rem, 3.61vw, 3.53rem);
  color:var(--oliva-titulo);
  line-height:1.08;
}
.sobre-text .nome{ display:block; color:var(--terracota); }
.badges{ display:flex; flex-wrap:wrap; gap:19px; margin:5px 0 26px; }
.badges li{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:10px 21px;
  border-radius:999px;
  background:#ECE6DA;
  font-weight:500;
  font-size:0.99rem;
  color:#5C5A45;
  letter-spacing:.02em;
}
.badges svg{ width:28px; height:28px; color:#7D7D63; }
.sobre-text p{ font-size:clamp(0.82rem, 0.99vw, 0.97rem); line-height:1.7; color:var(--texto); }
.sobre-text .btn{ margin-top:10px; font-size:0.93rem; padding:15px 36px; gap:52px; }
.sobre-leaf{
  position:absolute;
  right:-50px; bottom:-60px;
  width:240px; height:240px;
  color:#E3C1BB;
  opacity:.8;
  z-index:0;
}
.sobre::after{
  content:"";
  position:absolute;
  right:-160px; bottom:-260px;
  width:520px; height:360px;
  border-radius:50%;
  background:#F3E3DA;
  z-index:0;
}

/* =========================================================
   03 TEMAS
   ========================================================= */
.temas{ background:var(--rosa); padding-block:69px 77px; }
.temas h2{
  font-family:var(--display);
  font-size:clamp(1.89rem, 3.78vw, 3.7rem);
  color:#FBF1E9;
  margin-bottom:.15em;
  letter-spacing:.01em;
}
.ornament{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:19px;
  margin-bottom:41px;
  color:#6E7350;
}
.ornament span{ display:block; width:90px; height:1.5px; background:rgba(250,240,232,.75); }
.ornament svg{ width:58px; height:44px; }

.temas-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px;
  max-width:1260px;
  margin-inline:auto;
}
.temas-grid li{
  background:#FAF1E8;
  border-radius:24px;
  min-height:146px;
  padding:22px 12px 19px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  font-weight:500;
  font-size:clamp(0.82rem, 1.07vw, 1.07rem);
  line-height:1.3;
  color:#4B4440;
  text-align:center;
  transition:transform .3s ease, box-shadow .3s ease;
}
.temas-grid li:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(100,50,45,.18); }
.temas-grid svg{
  width:62px; height:62px;
  color:#6B6E4E;
  fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.temas-grid svg g{ fill:none; stroke:currentColor; }

/* Folhas em traço nos cantos (Temas, Serviços) */
.deco-leaf{ position:absolute; width:260px; height:260px; pointer-events:none; }
.temas .deco-leaf{ color:rgba(250,236,228,.55); }
.deco-tl{ left:-30px; top:60px; transform:rotate(-8deg); }
.deco-br{ right:-30px; bottom:-20px; transform:rotate(180deg); }

/* =========================================================
   04 PSICOTERAPIA
   ========================================================= */
.psicoterapia{ background:var(--creme); padding-block:77px 95px; }
.psico-grid{ display:grid; gap:31px; position:relative; z-index:1; }
.psicoterapia h2{
  font-family:var(--display);
  font-size:clamp(2.58rem, 4.82vw, 4.99rem);
  color:var(--terracota);
  letter-spacing:.02em;
  margin-bottom:.25em;
  line-height:1;
}
.psico-left .rule{ color:var(--oliva-titulo); width:100px; margin-bottom:31px; }
.psico-lead{
  font-size:clamp(1.29rem, 2.24vw, 2.24rem);
  font-weight:300;
  line-height:1.25;
  color:#57524B;
  margin-bottom:.6em;
}
.psico-strong{
  font-size:clamp(1.07rem, 1.72vw, 1.68rem);
  font-weight:600;
  line-height:1.35;
  color:#4E4D3E;
}
.psico-right p{
  font-size:clamp(0.86rem, 1.12vw, 1.14rem);
  font-weight:400;
  line-height:1.9;
  color:#4D4743;
  margin-bottom:1.6em;
}
.psico-blob{
  position:absolute;
  left:-160px; bottom:-140px;
  width:620px; height:300px;
  border-radius:50%;
  background:#F2DFD8;
  opacity:.8;
}
.psico-leaf{
  position:absolute;
  left:0; bottom:0;
  width:min(560px, 50vw); height:auto;
  color:#8E8F78;
  opacity:.75;
  transform:translateY(40%);
}

/* =========================================================
   05 SERVIÇOS
   ========================================================= */
.atuacao{ background:var(--oliva); color:#fff; padding-block:52px 129px; }
.atuacao .deco-leaf{ color:rgba(220,222,200,.45); }
.atuacao .deco-tl{ top:40px; }
.atuacao .deco-br{ bottom:130px; }
.rule-top{ margin:0 auto 29px; width:80px; color:#EDE6D8; }
.atuacao h2{ font-family:var(--display); font-size:clamp(2.24rem, 4.3vw, 4.47rem); color:#FAF1E8; margin-bottom:.15em; }
.atuacao-sub{ font-size:clamp(0.86rem, 1.2vw, 1.2rem); color:#FAF1E8; letter-spacing:.02em; margin-bottom:48px; }

.servicos{
  display:grid;
  gap:19px;
  margin:0 auto 46px;
  max-width:1200px;
  text-align:left;
}
.flip-card{ perspective:1400px; min-height:361px; cursor:pointer; outline:none; }
.flip-inner{
  position:relative;
  width:100%; height:100%;
  min-height:inherit;
  transition:transform .7s cubic-bezier(.4,0,.2,1);
  transform-style:preserve-3d;
}
.flip-card:focus-visible .flip-inner,
.flip-card.is-flipped .flip-inner{ transform:rotateY(180deg); }
@media (hover:hover){
  .flip-card:hover .flip-inner{ transform:rotateY(180deg); }
}
.flip-front,.flip-back{
  position:absolute;
  inset:0;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  border-radius:16px;
  background:var(--creme-card);
  box-shadow:0 14px 34px rgba(40,45,20,.22);
  overflow:hidden;
}
.flip-front{ padding:24px 24px 29px; display:flex; flex-direction:column; }
.flip-img img{ width:100%; aspect-ratio:768/473; object-fit:cover; border-radius:10px; }
.flip-front h3{
  font-family:var(--sans);
  font-weight:400;
  font-size:clamp(0.99rem, 1.42vw, 1.38rem);
  line-height:1.3;
  letter-spacing:.02em;
  color:#3D3734;
  margin:22px 0 19px;
  max-width:19ch;
}
.saiba{
  margin-top:auto; align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-size:clamp(0.9rem, 1.2vw, 1.16rem);
  color:var(--terracota);
}
.saiba{ text-decoration:underline; text-underline-offset:9px; text-decoration-thickness:1.5px; }
.saiba-circle{
  width:38px; height:38px;
  border:1.5px solid var(--terracota);
  border-radius:50%;
  display:grid; place-items:center;
  transition:background-color .3s ease, color .3s ease;
}
.saiba-circle svg{ width:20px; height:20px; }
.flip-card:hover .saiba-circle{ background:var(--terracota); color:#fff; }
.flip-back{
  transform:rotateY(180deg);
  background:var(--rosa-claro);
  display:flex; align-items:center; justify-content:center;
  padding:34px 31px;
  text-align:center;
}
.flip-back p{ margin:0; font-size:clamp(0.86rem, 1.12vw, 1.03rem); line-height:1.75; color:var(--texto); }

.wave{ position:absolute; left:0; bottom:-1px; width:100%; height:90px; fill:var(--creme-2); }

/* =========================================================
   06 SINGULARIDADE
   ========================================================= */
.escuta{ background:var(--creme-2); padding-block:60px 77px; }
.escuta-deco{
  position:absolute;
  pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse 100% 100% at var(--at), #000 55%, transparent 98%);
          mask-image:radial-gradient(ellipse 100% 100% at var(--at), #000 55%, transparent 98%);
}
.escuta-vaso{ left:0; bottom:0; width:min(30vw, 440px); --at:0% 100%; }
.escuta-livro{ right:0; bottom:0; width:min(30vw, 490px); --at:100% 100%; }
.escuta-deco{ display:none; }

.escuta-text{ position:relative; z-index:1; }
.ornament-ramo{ margin-bottom:22px; }
.ornament-ramo span{ background:#D9AFA8; width:70px; }
.ornament-ramo img{ width:90px; height:auto; mix-blend-mode:multiply; -webkit-mask-image:radial-gradient(closest-side, #000 60%, transparent 100%); mask-image:radial-gradient(closest-side, #000 60%, transparent 100%); }
.escuta h2{
  font-size:clamp(1.89rem, 3.61vw, 3.53rem);
  color:var(--terracota);
  line-height:1.13;
  margin-bottom:.7em;
}
.escuta h2 i{ font-family:var(--italic); font-weight:500; font-size:1.06em; }
.escuta-text p{ font-size:clamp(0.84rem, 1.03vw, 1.01rem); line-height:1.65; color:var(--texto); max-width:42em; margin-inline:auto; }
.escuta-box{
  background:var(--sage-box);
  border-radius:12px;
  padding:17px 26px;
  max-width:44em !important;
  margin:26px auto 34px !important;
  color:#4E4D3E !important;
}
.escuta-box strong{ display:block; color:var(--oliva-txt); font-weight:700; }
.escuta-text .btn{ background:#7E8262; font-size:0.99rem; padding:16px 46px; }
.escuta-text .btn:hover{ background:var(--oliva-btn); }

/* =========================================================
   07 CONVITE
   ========================================================= */
.cta{
  background:#BB6F6F url('../img/cta-bg.jpg') center / cover no-repeat;
  padding-block:52px;
}
.cta .container{ max-width:1280px; }
.cta-card{
  position:relative;
  display:grid;
  gap:31px;
  background:#F8EDE5;
  border-radius:20px;
  padding:clamp(21px, 2.58vw, 40px);
  box-shadow:0 20px 50px rgba(80,30,30,.18);
  overflow:hidden;
}
.cta-card::before{ /* folhagem rosada sutil */
  content:"";
  position:absolute;
  left:44%; top:6%;
  width:260px; height:420px;
  background:radial-gradient(ellipse at center, rgba(222,170,165,.28), transparent 70%);
  pointer-events:none;
}
.cta-text{ position:relative; z-index:1; align-self:center; padding-inline:clamp(0px, 3.44vw, 60px) 0; }
.cta h2{
  font-size:clamp(1.89rem, 3.7vw, 3.78rem);
  color:#3F4430;
  line-height:1.05;
  margin-bottom:.55em;
}
.cta h2 span{ display:block; color:var(--terracota); }
.cta-text > p{ font-size:clamp(0.86rem, 1.16vw, 1.14rem); line-height:1.65; color:#5A524C; max-width:30em; }
.modalidades-sm{ flex-direction:column; margin:24px 0 40px; }
.modalidades-sm li{ flex:1 1 0; max-width:none; padding-inline:19px; font-family:var(--sans); font-size:clamp(0.82rem, 0.95vw, 0.95rem); color:#4E4844; gap:14px; }
.modalidades-sm strong{ color:#3F3A36; }
.modalidades-sm .mod-icon{ background:#E5DFD2; width:56px; height:56px; color:#5E5B4E; }
.cta-img img{ width:100%; height:100%; object-fit:cover; border-radius:16px; max-height:671px; }

/* =========================================================
   08 FAQ
   ========================================================= */
.faq{ background:var(--creme); padding-block:77px; }
.faq-grid{ display:grid; gap:34px; max-width:var(--container); }
.faq-side{ display:flex; gap:24px; align-items:flex-start; }
.faq-ramo{ flex:0 0 auto; width:110px; height:auto; display:none; }
.faq-side h2{ font-size:clamp(2.06rem, 3.01vw, 3.1rem); color:var(--terracota); line-height:1.05; margin-bottom:.45em; }
.faq-eyebrow{
  display:block;
  font-family:var(--sans);
  font-size:0.71rem;
  font-weight:600;
  letter-spacing:.32em;
  color:var(--oliva-titulo);
  margin-bottom:12px;
}
.faq-side .rule{ color:var(--terracota); width:46px; margin-bottom:29px; }
.faq-side p{ font-size:clamp(0.86rem, 1.03vw, 0.99rem); line-height:1.65; color:#4E4844; max-width:19em; margin-bottom:3em; }
.faq-side .faq-tag{
  font-size:0.77rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#8E8A83;
  line-height:1.75;
  max-width:22em;
}

.accordion{ display:flex; flex-direction:column; gap:7px; }
.acc-item{
  border-radius:5px;
  overflow:hidden;
  background:var(--oliva-faq);
  box-shadow:0 2px 6px rgba(0,0,0,.06);
  transition:background-color .3s ease;
}
.acc-item.is-open{ background:#F5E8E3; box-shadow:0 0 0 1px #EAD3CC; }
.acc-head{
  width:100%;
  display:flex;
  align-items:center;
  gap:19px;
  padding:15px 19px;
  background:none;
  border:0;
  cursor:pointer;
  text-align:left;
  font-family:var(--sans);
  font-size:clamp(0.82rem, 0.99vw, 0.97rem);
  font-weight:500;
  color:#fff;
  line-height:1.4;
  transition:background-color .3s ease;
}
.acc-head:hover{ background:rgba(0,0,0,.05); }
.acc-item.is-open .acc-head{ background:#B56B6B; }
.acc-icon{ position:relative; flex:0 0 18px; width:18px; height:18px; }
.acc-icon::before,.acc-icon::after{
  content:""; position:absolute; background:#fff; border-radius:2px;
  transition:transform .3s ease, opacity .3s ease;
}
.acc-icon::before{ top:8px; left:0; width:18px; height:2px; }
.acc-icon::after{ top:0; left:8px; width:2px; height:18px; }
.acc-item.is-open .acc-icon::after{ transform:scaleY(0); opacity:0; }
.acc-panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s cubic-bezier(.4,0,.2,1); }
.acc-item.is-open .acc-panel{ grid-template-rows:1fr; }
.acc-body{ overflow:hidden; }
.acc-body p{ margin:0; padding:17px 21px 21px; font-size:clamp(0.82rem, 0.95vw, 0.92rem); line-height:1.65; color:#4A4440; }

/* =========================================================
   CONTATO (modelo Opção 03) + FOOTER
   ========================================================= */
.contato{ background:#FAF1EB; padding-block:42px 54px; }
.contato-blob{ position:absolute; border-radius:50%; background:#F6E4DE; pointer-events:none; }
.contato-blob-tr{ right:-140px; top:-200px; width:520px; height:520px; }
.contato-blob-bl{ left:-200px; bottom:-120px; width:560px; height:440px; border-radius:46% 54% 40% 60% / 52% 48% 52% 48%; }
.contato-leaves{ position:absolute; pointer-events:none; width:clamp(150px, 14.45vw, 260px); height:auto; }
.contato-leaves-tr{ right:-6px; top:20px; }
.contato-leaves-bl{ left:-10px; bottom:0; }
.contato-inner{ position:relative; z-index:1; }

.contato .ornament-ramo{ margin-bottom:12px; }
.contato .ornament-ramo span{ width:clamp(60px, 7.65vw, 119px); background:#D9AFA8; }
.contato .ornament-ramo img{ width:60px; -webkit-mask-image:radial-gradient(closest-side, #000 60%, transparent 100%); mask-image:radial-gradient(closest-side, #000 60%, transparent 100%); }
.contato h2{
  font-size:clamp(1.95rem, 3.57vw, 3.31rem);
  color:var(--terracota);
  margin-bottom:.8em;
}

.contato-cards{
  display:grid;
  gap:14px;
  max-width:960px;
  margin:0 auto 22px;
}
.contato-card{
  display:flex;
  align-items:center;
  gap:19px;
  padding:17px 22px;
  background:#F6E3DD;
  border-radius:12px;
  text-decoration:none;
  color:#4A4440;
  text-align:left;
  transition:transform .3s ease, box-shadow .3s ease;
}
.contato-card:hover{ transform:translateY(-3px); box-shadow:0 10px 22px rgba(120,60,50,.12); }
.cc-icon{
  flex:0 0 auto;
  width:49px; height:49px;
  border-radius:50%;
  background:#F0D3CC;
  display:grid; place-items:center;
  position:relative;
  margin-right:20px;
}
.cc-icon::after{ /* divisória vertical */
  content:""; position:absolute; right:-24px; top:2px; bottom:2px; width:1px; background:#E3C3BB;
}
.cc-icon svg{ width:24px; height:24px; fill:var(--terracota); }
.cc-text{ font-size:clamp(0.85rem, 1.15vw, 1.1rem); line-height:1.3; overflow-wrap:anywhere; }

.contato-info{
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:flex-start;
  max-width:850px;
  margin:0 auto 22px;
  width:fit-content;
}
.contato-info li{
  display:flex;
  align-items:center;
  gap:17px;
  font-size:clamp(0.81rem, 0.98vw, 0.92rem);
  line-height:1.3;
  color:#4A4440;
  text-align:left;
}
.ci-icon{
  flex:0 0 auto;
  width:48px; height:48px;
  border-radius:50%;
  background:#EEE9DC;
  display:grid; place-items:center;
  color:#6B6E4E;
}
.ci-icon svg{ width:24px; height:24px; }

.ornament-lotus{ margin-bottom:10px; color:#7F8466; }
.ornament-lotus span{ width:clamp(51px, 6.8vw, 94px); background:#DCD6C6; height:1px; }
.ornament-lotus svg{ width:29px; height:22px; }
.contato-crp{ font-size:clamp(0.81rem, 1.02vw, 0.95rem); color:#4A4440; margin-bottom:24px; }
.contato .btn{ background:var(--oliva-btn); font-size:0.89rem; padding:14px 37px; gap:24px; }

.site-footer{
  background:#7A7F5E;
  padding:17px 17px 22px;
  padding-bottom:calc(26px + env(safe-area-inset-bottom, 0px));
  text-align:center;
}
.footer-rule{ display:block; width:68px; height:1.5px; background:#EDE7DA; margin:0 auto 18px; opacity:.85; }
.site-footer p{ margin:0; font-size:clamp(0.68rem, 0.85vw, 0.81rem); color:#F3EEE3; }

@media (min-width:653px){
  .contato-cards{ grid-template-columns:1fr 1fr; gap:20px; }
  .contato-info{ flex-direction:row; align-items:center; gap:0; width:auto; justify-content:center; }
  .contato-info li{ padding-inline:clamp(17px, 2.72vw, 39px); }
  .contato-info li + li{ border-left:1px solid #E3D9CB; }
  .contato-info li:nth-child(2) span:last-child{ max-width:13em; }
  .contato-info li:nth-child(1) span:last-child,
  .contato-info li:nth-child(3) span:last-child{ white-space:nowrap; }
}

/* =========================================================
   ANIMAÇÕES
   ========================================================= */
.reveal{ opacity:0; }
.reveal.is-visible{ animation:.9s cubic-bezier(.2,.7,.2,1) both; }
.reveal.is-visible[data-anim="fadeInDown"]  { animation-name:fadeInDown; }
.reveal.is-visible[data-anim="fadeInUp"]    { animation-name:fadeInUp; }
.reveal.is-visible[data-anim="fadeInLeft"]  { animation-name:fadeInLeft; }
.reveal.is-visible[data-anim="fadeInRight"] { animation-name:fadeInRight; }
@keyframes fadeInDown { from{ opacity:0; transform:translate3d(0,-30px,0); } to{ opacity:1; transform:none; } }
@keyframes fadeInUp   { from{ opacity:0; transform:translate3d(0,30px,0); }  to{ opacity:1; transform:none; } }
@keyframes fadeInLeft { from{ opacity:0; transform:translate3d(-36px,0,0); } to{ opacity:1; transform:none; } }
@keyframes fadeInRight{ from{ opacity:0; transform:translate3d(36px,0,0); }  to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; }
  .reveal.is-visible{ animation:none; }
  .flip-inner{ transition:none; }
  .btn:hover,.temas-grid li:hover{ transform:none; }
}

/* =========================================================
   ≥ 640px
   ========================================================= */
@media (min-width:640px){
  .temas-grid{ grid-template-columns:repeat(3, 1fr); gap:15px; }
  .servicos{ grid-template-columns:repeat(2, 1fr); }
  .modalidades{ flex-direction:row; justify-content:center; gap:0; }
  .modalidades li{ padding-inline:24px; }
  .modalidades li + li{ border-left:2px solid #4E4A44; }
  .modalidades-sm li + li{ border-left:1.5px solid #CFC6B8; }
  .modalidades-sm{ flex-direction:row; }
  .modalidades-sm li:first-child{ padding-left:0; }
  .sobre-img img{ max-width:560px; }
  .cta-img img{ max-height:533px; }
}

/* =========================================================
   ≥ 1025px: desktop, composição dos modelos
   ========================================================= */
@media (min-width:1025px){
  :root{ --header-h:83px; }
  body{ font-size:16px; }
  .container{ padding-inline:34px; }
  .site-header{ display:block; }
  .site-header-mobile{ display:none; }
  .logo img{ height:68px; }

  /* HERO: texto à esquerda, foto à direita, faixa e botão por baixo do texto */
  .hero{ padding-top:0; }
  .hero-grid{ grid-template-columns:60% 40%; align-items:end; gap:0; }
  .hero-text{ text-align:left; padding-block:clamp(52px, 9vh, 95px) 31px; }
  .hero-lead{ margin-inline:0; max-width:29em; }
  .hero-band{
    margin:29px 0 22px;
    padding:17px 0;
    background:none;
    isolation:isolate;
  }
  /* o fundo da faixa vai da borda esquerda da tela até um pouco além do texto */
  .hero-band::before{
    content:"";
    position:absolute;
    inset:0 -40px 0 -100vw;
    background:rgba(222,226,206,.75);
    z-index:-1;
  }
  .modalidades{ justify-content:flex-start; }
  .modalidades li:first-child{ padding-left:0; }
  .hero-img{ justify-content:flex-start; align-self:end; }
  .hero-img img{ max-width:none; width:auto; height:min(calc(100vh - var(--header-h) - 10px), 740px); min-height:480px; }

  /* QUEM SOU */
  .sobre{ padding-block:86px 95px; }
  .sobre-grid{ grid-template-columns:48% 52%; gap:clamp(34px, 5.16vw, 77px); align-items:center; }
  .sobre-img img{ max-width:100%; }

  /* TEMAS: 5 por linha */
  .temas-grid{ grid-template-columns:repeat(5, 1fr); gap:17px; }
  .temas-grid li{ min-height:194px; border-radius:28px; }
  .temas-grid svg{ width:66px; height:66px; }

  /* PSICOTERAPIA */
  .psico-grid{ grid-template-columns:46% 54%; gap:0; align-items:start; }
  .psico-right{ padding-left:34px; }
  .psico-left{ padding-right:34px; }
  .psico-right{ padding-top:31px; }

  /* SERVIÇOS */
  .servicos{ grid-template-columns:repeat(3, 1fr); gap:19px; }
  .flip-card{ min-height:378px; }

  /* SINGULARIDADE */
  .escuta-deco{ display:block; }
  .escuta{ padding-block:69px 86px; min-height:740px; }

  /* CONVITE */
  .cta-card{ grid-template-columns:57% 43%; gap:0; padding:40px 40px 40px 0; }
  .cta-img img{ max-height:none; aspect-ratio:4/5; object-position:center 30%; }

  /* FAQ */
  .faq-grid{ grid-template-columns:35% 65%; gap:34px; }
  .faq-ramo{ display:block; margin-top:17px; }
  .faq-side{ padding-top:17px; }
}
