/* =============================================
   JES PSIQUE — style.css
   Paleta: #636B2F (verde oliva) + #F5F5DC (bege)
   Fontes: Cormorant Garamond + Manrope
   ============================================= */

/* ── RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --verde:        #636B2F;
  --verde-escuro: #4a5023;
  --verde-light:  #7a8438;
  --bege-claro:   #F5F5DC;
  --bege-medio:   #ede9d0;
  --bege-escuro:  #d8d3b5;
  --branco:       #ffffff;
  --cinza-100:    #f8f7f4;
  --cinza-200:    #eeece6;
  --cinza-400:    #b0a98e;
  --cinza-600:    #6e6a5b;
  --cinza-800:    #2e2c25;
  --texto:        #2e2c25;
  --texto-suave:  #5c5847;

  --fonte-serif:  'Cormorant Garamond', Georgia, serif;
  --fonte-sans:   'Manrope', system-ui, sans-serif;

  --raio:    8px;
  --raio-lg: 16px;
  --sombra:  0 4px 24px rgba(46,44,37,.08);
  --sombra-md: 0 8px 40px rgba(46,44,37,.12);

  --trans: 0.28s ease;
  --container: 1160px;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
  overflow-x: clip;
}

body {
  font-family: var(--fonte-sans);
  color: var(--texto);
  background: var(--branco);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  width: 100%;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }

/* ── CONTAINER ── */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 48px);
}

/* ── SEÇÃO ── */
.section     { padding-block: clamp(72px, 10vw, 120px); }
.section--sm { padding-block: clamp(48px, 6vw, 72px); }

.section-eyebrow {
  font-family: var(--fonte-sans);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--verde);
  margin-bottom: .75rem;
}

.section-header {
  max-width: 700px;
  margin-bottom: clamp(40px, 6vw, 64px);
}

.section-title {
  font-family: var(--fonte-serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--cinza-800);
}

.section-desc {
  margin-top: 1rem;
  font-size: 1.05rem;
  color: var(--texto-suave);
  max-width: 560px;
}

/* ── BOTÕES ── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .85rem 2rem;
  border-radius: 100px;
  font-family: var(--fonte-sans);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .03em;
  transition: background var(--trans), color var(--trans), transform var(--trans), box-shadow var(--trans);
  white-space: nowrap;
}

.btn--primary {
  background: var(--verde);
  color: var(--branco);
}
.btn--primary:hover {
  background: var(--verde-escuro);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(99,107,47,.28);
}

.btn--outline {
  background: transparent;
  color: var(--verde);
  border: 1.5px solid var(--verde);
}
.btn--outline:hover {
  background: var(--verde);
  color: var(--branco);
  transform: translateY(-2px);
}

.btn--light {
  background: var(--branco);
  color: var(--verde);
}
.btn--light:hover {
  background: var(--bege-claro);
  transform: translateY(-2px);
}

.btn--ghost {
  background: transparent;
  color: var(--branco);
  border: 1.5px solid rgba(255,255,255,.45);
}
.btn--ghost:hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.8);
  transform: translateY(-2px);
}

.btn--sm  { padding: .65rem 1.5rem; font-size: .82rem; }
.btn--lg  { padding: 1.05rem 2.5rem; font-size: 1rem; }
.btn--full { width: 100%; justify-content: center; }

/* ── HEADER ── */
.header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding-block: 1.1rem;
  transition: background var(--trans), box-shadow var(--trans), padding var(--trans);
}
.header.scrolled {
  background: rgba(255,255,255,.97);
  box-shadow: 0 2px 20px rgba(46,44,37,.08);
  backdrop-filter: blur(12px);
  padding-block: .75rem;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.header__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.header__logo-img {
  height: 56px;
  width: auto;
  display: block;
  transition: height var(--trans), opacity var(--trans);
}
.header.scrolled .header__logo-img { height: 40px; }

.header__logo-light { display: block; }
.header__logo-dark  { display: none; }
.header.scrolled .header__logo-light { display: none; }
.header.scrolled .header__logo-dark  { display: block; }

.header__nav {
  display: flex;
  align-items: center;
  gap: 2rem;
}

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

.nav__link {
  font-size: .82rem;
  font-weight: 500;
  color: var(--cinza-600);
  letter-spacing: .04em;
  transition: color var(--trans);
  position: relative;
}
.nav__link::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 1.5px;
  background: var(--verde);
  transition: width var(--trans);
}
.nav__link:hover,
.nav__link.ativo { color: var(--verde); }
.nav__link:hover::after,
.nav__link.ativo::after { width: 100%; }

/* header no topo: links brancos */
.header:not(.scrolled) .nav__link { color: rgba(255,255,255,.8); }
.header:not(.scrolled) .nav__link::after { background: var(--branco); }
.header:not(.scrolled) .nav__link:hover,
.header:not(.scrolled) .nav__link.ativo { color: var(--branco); }
.header:not(.scrolled) .header__toggle span { background: var(--branco); }

.header__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 28px;
  padding: 4px 0;
}
.header__toggle span {
  display: block;
  height: 2px;
  background: var(--cinza-800);
  border-radius: 2px;
  transition: transform var(--trans), opacity var(--trans);
}
.header__toggle.ativo span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.header__toggle.ativo span:nth-child(2) { opacity: 0; }
.header__toggle.ativo span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── HERO DESKTOP ── */
.hero--desktop {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.hero--mobile { display: none; }

.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
  background: #2e2c25;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(to bottom, rgba(20,19,15,.55) 0%, transparent 18%),
    linear-gradient(to right,  rgba(20,19,15,.88) 0%, rgba(20,19,15,.55) 45%, rgba(20,19,15,.1) 100%);
}

.hero__stage {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100svh;
}

.hero__inner {
  flex: 1;
  display: flex;
  align-items: center;
  padding-top: clamp(110px, 14vw, 160px);
  padding-bottom: 2rem;
}

.hero__content { max-width: 640px; }

.hero__eyebrow {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(245,245,220,.65);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: .75rem;
}
.hero__eyebrow::before {
  content: '';
  display: inline-block;
  width: 28px; height: 1.5px;
  background: var(--verde-light);
  flex-shrink: 0;
}

.hero__headline {
  font-family: var(--fonte-serif);
  font-size: clamp(3rem, 7vw, 5.5rem);
  font-weight: 300;
  line-height: 1.05;
  color: var(--branco);
  margin-bottom: 1.75rem;
  letter-spacing: -.01em;
}
.hero__headline em {
  font-style: italic;
  color: var(--bege-claro);
}

.hero__sub {
  font-size: clamp(.95rem, 1.4vw, 1.05rem);
  color: rgba(245,245,220,.75);
  max-width: 460px;
  margin-bottom: 2.5rem;
  line-height: 1.75;
}

.hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: .875rem;
}

.hero__bar {
  background: rgba(14,13,10,.75);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255,255,255,.08);
}
.hero__bar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: 1.1rem;
  flex-wrap: wrap;
}
.hero__bar-selos {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.hero__selo {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .75rem;
  color: rgba(245,245,220,.6);
  letter-spacing: .04em;
}
.hero__selo svg { color: var(--verde-light); flex-shrink: 0; }
.hero__divider {
  width: 1px; height: 18px;
  background: rgba(255,255,255,.12);
  flex-shrink: 0;
}

.hero__scroll-hint {
  position: absolute;
  bottom: 88px; right: 2.5rem;
  z-index: 3;
}
.hero__scroll-hint span {
  display: block;
  width: 1.5px; height: 48px;
  background: linear-gradient(to bottom, rgba(245,245,220,.5), transparent);
  margin: 0 auto;
  animation: scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine {
  0%   { opacity: 0; transform: scaleY(0); transform-origin: top; }
  50%  { opacity: 1; transform: scaleY(1); }
  100% { opacity: 0; transform: scaleY(1); transform-origin: bottom; }
}

/* ── HERO MOBILE ── */
.hero-mob__img {
  width: 100%;
  aspect-ratio: 3/4;
  overflow: hidden;
}
.hero-mob__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.hero-mob__content {
  background: var(--branco);
  padding: 2rem 1.5rem 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.hero-mob__eyebrow {
  font-size: .68rem;
  color: var(--verde);
  margin-bottom: 0;
}
.hero-mob__eyebrow::before { display: none; }

.hero-mob__headline {
  font-size: clamp(2.4rem, 10vw, 3.2rem);
  color: var(--cinza-800);
  margin-bottom: 0;
}
.hero-mob__headline em { color: var(--verde); }

.hero-mob__sub {
  font-size: .92rem;
  color: var(--texto-suave);
  line-height: 1.7;
}

.hero-mob__ctas {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  margin-top: .5rem;
}

/* ── SOBRE ── */
.sobre { background: var(--branco); }

.sobre__inner {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: clamp(48px, 6vw, 80px);
  align-items: center;
}

.sobre__img-wrap {
  border-radius: var(--raio-lg);
  overflow: hidden;
  position: relative;
}
.sobre__img-wrap img {
  width: 100%;
  height: 560px;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.sobre__image { position: relative; }

.sobre__card-flutuante {
  position: absolute;
  bottom: -1.5rem; right: -1.5rem;
  background: var(--branco);
  border-radius: var(--raio);
  padding: 1rem 1.4rem;
  box-shadow: var(--sombra-md);
}
.sobre__card-titulo {
  font-family: var(--fonte-serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--cinza-800);
}
.sobre__card-crp {
  font-size: .75rem;
  color: var(--verde);
  margin-top: .1rem;
}

.sobre__texto {
  color: var(--texto-suave);
  margin-bottom: 1rem;
  font-size: .97rem;
}

.sobre__especialidades {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1.5rem;
}
.especialidade {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .05em;
  background: rgba(99,107,47,.1);
  color: var(--verde-escuro);
  padding: .35rem .9rem;
  border-radius: 100px;
  border: 1px solid rgba(99,107,47,.18);
}

/* ── CTA INTERMEDIÁRIA ── */
.cta-mid { background: var(--verde); }
.cta-mid__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.cta-mid__titulo {
  font-family: var(--fonte-serif);
  font-size: clamp(1.2rem, 2.5vw, 1.65rem);
  font-weight: 400;
  color: var(--branco);
  max-width: 640px;
  line-height: 1.35;
}

/* ── CONSULTAS ── */
.consultas { background: var(--cinza-100); }

.consultas__inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(48px, 6vw, 80px);
  align-items: center;
}

.consultas__texto {
  color: var(--texto-suave);
  margin-bottom: 1rem;
  font-size: .97rem;
}

.consultas__lista {
  margin: 1.75rem 0;
  display: flex;
  flex-direction: column;
  gap: .7rem;
}
.consultas__lista li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .9rem;
  color: var(--texto-suave);
}
.consultas__lista li svg {
  color: var(--verde);
  flex-shrink: 0;
  margin-top: 3px;
}

.consultas__visual { position: relative; }

.consultas__img-wrap {
  border-radius: var(--raio-lg);
  overflow: hidden;
  position: relative;
}
.consultas__img-wrap img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.consultas__destaque {
  background: var(--verde);
  color: var(--branco);
  padding: 1.1rem 1.4rem;
  border-radius: var(--raio);
  font-size: .85rem;
  line-height: 1.5;
  box-shadow: var(--sombra-md);
}
.consultas__destaque strong { display: block; }

/* ── MÉTODO M.V. ── */
.metodo {
  background: linear-gradient(160deg, var(--bege-claro) 0%, var(--bege-medio) 100%);
}

.metodo__header {
  max-width: 700px;
  margin-bottom: clamp(40px, 6vw, 64px);
}
.metodo__header .section-title {
  font-size: clamp(2.2rem, 4.5vw, 3.2rem);
}
.metodo__header .section-title em { color: var(--verde); font-style: italic; }

.metodo__cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}

.mv-card {
  background: var(--branco);
  border-radius: var(--raio-lg);
  padding: 1.75rem 1.5rem;
  box-shadow: var(--sombra);
  border-top: 3px solid var(--verde);
  transition: transform var(--trans), box-shadow var(--trans);
}
.mv-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sombra-md);
}

.mv-card__num {
  font-family: var(--fonte-serif);
  font-size: 1.8rem;
  font-weight: 300;
  color: rgba(99,107,47,.35);
  line-height: 1;
  margin-bottom: .875rem;
}

.mv-card__titulo {
  font-family: var(--fonte-serif);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--cinza-800);
  margin-bottom: .6rem;
}

.mv-card__texto {
  font-size: .85rem;
  color: var(--texto-suave);
  line-height: 1.65;
}

.metodo__obs {
  max-width: 680px;
  margin: 0 auto 2.5rem;
  text-align: center;
  padding: 1.25rem 1.75rem;
  border: 1px solid var(--bege-escuro);
  border-radius: var(--raio);
  background: rgba(255,255,255,.6);
}
.metodo__obs p {
  font-size: .88rem;
  color: var(--texto-suave);
  font-style: italic;
}

.metodo__cta { text-align: center; }

/* ── VALORES / PREÇOS ── */
.precos { background: var(--branco); }

.precos__header { margin-inline: auto; text-align: center; }
.precos__header .section-desc { margin-inline: auto; }

.precos__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  align-items: stretch;
}

.preco-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--cinza-100);
  border: 1px solid var(--cinza-200);
  border-radius: var(--raio-lg);
  padding: 2.25rem 1.75rem;
  transition: transform var(--trans), box-shadow var(--trans), border-color var(--trans);
}
.preco-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sombra-md);
  border-color: rgba(99,107,47,.3);
}

.preco-card--destaque {
  background: linear-gradient(160deg, var(--bege-claro) 0%, var(--bege-medio) 100%);
  border-color: var(--verde);
  box-shadow: var(--sombra);
}

.preco-card__selo {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--verde);
  color: var(--branco);
  font-family: var(--fonte-sans);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .35rem 1rem;
  border-radius: 100px;
  white-space: nowrap;
}

.preco-card__nome {
  font-family: var(--fonte-serif);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--cinza-800);
  margin-bottom: .5rem;
}

.preco-card__desc {
  font-size: .88rem;
  color: var(--texto-suave);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.preco-card__valor {
  font-family: var(--fonte-serif);
  font-size: 3rem;
  font-weight: 400;
  line-height: 1;
  color: var(--verde);
  display: flex;
  align-items: flex-start;
  gap: .15rem;
}
.preco-card__moeda {
  font-size: 1.25rem;
  font-weight: 500;
  margin-top: .55rem;
}

.preco-card__unidade {
  font-size: .82rem;
  color: var(--texto-suave);
  margin-top: .4rem;
  margin-bottom: 1.75rem;
}

.preco-card .btn { margin-top: auto; }

.precos__obs {
  max-width: 620px;
  margin: 2.5rem auto 0;
  text-align: center;
  font-size: .85rem;
  font-style: italic;
  color: var(--texto-suave);
}

/* ── TRANSFORMAÇÃO ── */
.transformacao { background: var(--branco); }

.transf-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.transf-item {
  padding: 1.75rem 1.5rem;
  border: 1px solid var(--cinza-200);
  border-radius: var(--raio);
  transition: border-color var(--trans), box-shadow var(--trans), transform var(--trans);
}
.transf-item:hover {
  border-color: rgba(99,107,47,.3);
  box-shadow: var(--sombra);
  transform: translateY(-4px);
}

.transf-item__icon {
  width: 44px; height: 44px;
  background: rgba(99,107,47,.08);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--verde);
  margin-bottom: 1rem;
}
.transf-item h3 {
  font-family: var(--fonte-serif);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--cinza-800);
  margin-bottom: .5rem;
}
.transf-item p {
  font-size: .84rem;
  color: var(--texto-suave);
  line-height: 1.6;
}

/* ── INSTAGRAM ── */
.instagram { background: var(--cinza-100); }

.instagram__inner {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: clamp(48px, 6vw, 80px);
  align-items: center;
}

.instagram__icon-card {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: var(--branco);
  border: 1px solid var(--cinza-200);
  border-radius: var(--raio);
  padding: .5rem 1rem;
  font-size: .78rem;
  font-weight: 600;
  color: var(--cinza-600);
  margin-bottom: 1.5rem;
  box-shadow: var(--sombra);
}
.instagram__icon-card svg { color: var(--verde); }

.instagram__titulo {
  font-family: var(--fonte-serif);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--cinza-800);
  margin-bottom: 1rem;
}
.instagram__titulo em { font-style: italic; color: var(--verde); }

.instagram__sub {
  font-size: .93rem;
  color: var(--texto-suave);
  line-height: 1.7;
  margin-bottom: 1.75rem;
  max-width: 380px;
}

.instagram__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: .625rem;
}

.insta-post {
  aspect-ratio: 1 / 1;
  border-radius: var(--raio);
  background: var(--bege-medio);
  display: block;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
.insta-post img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.insta-post:hover img { transform: scale(1.05); }

.insta-post__hover {
  position: absolute;
  inset: 0;
  background: rgba(20,19,15,.6);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity var(--trans);
}
.insta-post:hover .insta-post__hover { opacity: 1; }

/* ── FAQ ── */
.faq { background: var(--branco); }

.faq .section-header {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}

.faq__list {
  max-width: 760px;
  margin-inline: auto;
  border: 1px solid var(--cinza-200);
  border-radius: var(--raio-lg);
  overflow: hidden;
}
.faq__item { border-bottom: 1px solid var(--cinza-200); }
.faq__item:last-child { border-bottom: none; }

.faq__pergunta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  padding: 1.25rem 1.5rem;
  text-align: left;
  font-size: .93rem;
  font-weight: 600;
  color: var(--cinza-800);
  transition: color var(--trans), background var(--trans);
}
.faq__pergunta:hover { background: var(--cinza-100); color: var(--verde); }
.faq__pergunta[aria-expanded="true"] { color: var(--verde); }

.faq__icone {
  flex-shrink: 0;
  transition: transform var(--trans);
  color: var(--cinza-400);
}
.faq__pergunta[aria-expanded="true"] .faq__icone { transform: rotate(180deg); }

.faq__resposta { display: none; padding: 0 1.5rem 1.5rem; }
.faq__resposta.aberta { display: block; }
.faq__resposta p { font-size: .9rem; color: var(--texto-suave); line-height: 1.7; }

/* ── CTA FINAL ── */
.cta-final {
  background: linear-gradient(145deg, var(--verde-escuro) 0%, var(--verde) 100%);
  text-align: center;
}
.cta-final__inner { max-width: 680px; margin-inline: auto; }
.cta-final__titulo {
  font-family: var(--fonte-serif);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 400;
  color: var(--branco);
  margin-bottom: 1rem;
  line-height: 1.25;
}
.cta-final__sub {
  font-size: 1rem;
  color: rgba(255,255,255,.8);
  margin-bottom: 2rem;
}

/* ── FORMULÁRIO ── */
.contato { background: var(--cinza-100); }
.contato__inner {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: clamp(48px, 6vw, 80px);
  align-items: start;
}
.contato__texto { font-size: .97rem; color: var(--texto-suave); margin-bottom: 2rem; }
.contato__links { display: flex; flex-direction: column; gap: .875rem; }
.contato__link {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-size: .875rem;
  color: var(--verde);
  transition: color var(--trans);
}
.contato__link svg { flex-shrink: 0; }
.contato__link:hover { color: var(--verde-escuro); }

.form {
  background: var(--branco);
  border-radius: var(--raio-lg);
  padding: 2.25rem 2rem;
  box-shadow: var(--sombra);
}
.form__group { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1.25rem; }
.form__label { font-size: .8rem; font-weight: 600; color: var(--cinza-800); letter-spacing: .03em; }
.form__label span { color: var(--verde); }
.form__input {
  padding: .78rem 1rem;
  border: 1.5px solid var(--cinza-200);
  border-radius: var(--raio);
  font-family: var(--fonte-sans);
  font-size: .9rem;
  color: var(--texto);
  background: var(--cinza-100);
  transition: border-color var(--trans), box-shadow var(--trans);
  outline: none;
  width: 100%;
}
.form__input::placeholder { color: var(--cinza-400); }
.form__input:focus {
  border-color: var(--verde);
  background: var(--branco);
  box-shadow: 0 0 0 3px rgba(99,107,47,.1);
}
.form__input.erro { border-color: #c0392b; }
.form__textarea { resize: vertical; min-height: 110px; }
.form__erro { font-size: .75rem; color: #c0392b; display: none; }
.form__erro.visivel { display: block; }
#btnEnviar svg { flex-shrink: 0; }

/* ── FOOTER ── */
.footer { background: var(--cinza-800); padding-top: clamp(56px, 7vw, 80px); }
.footer__inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.footer__desc { font-size: .83rem; color: rgba(245,245,220,.5); line-height: 1.7; margin-top: .875rem; max-width: 280px; }
.footer__socials { display: flex; gap: .75rem; margin-top: 1.25rem; }
.footer__socials a {
  width: 36px; height: 36px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: rgba(245,245,220,.6);
  transition: border-color var(--trans), color var(--trans), background var(--trans);
}
.footer__socials a:hover { border-color: var(--verde-light); color: var(--branco); background: rgba(99,107,47,.25); }
.footer__nav-titulo { font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(245,245,220,.4); margin-bottom: 1.1rem; }
.footer__nav-list { display: flex; flex-direction: column; gap: .6rem; }
.footer__nav-list a { font-size: .83rem; color: rgba(245,245,220,.6); transition: color var(--trans); }
.footer__nav-list a:hover { color: var(--bege-claro); }
.footer__contato-list { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1.5rem; }
.footer__contato-list a { font-size: .83rem; color: rgba(245,245,220,.6); transition: color var(--trans); }
.footer__contato-list a:hover { color: var(--bege-claro); }
.footer__bottom { padding-block: 1.25rem; }
.footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.footer__bottom p { font-size: .77rem; color: rgba(245,245,220,.3); }
.footer__bottom a { color: rgba(245,245,220,.55); transition: color var(--trans); }
.footer__bottom a:hover { color: var(--bege-claro); }

/* ── WHATSAPP FLUTUANTE ── */
.wpp-float {
  position: fixed;
  bottom: 1.75rem; right: 1.75rem;
  z-index: 90;
  width: 56px; height: 56px;
  background: #25D366;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--branco);
  box-shadow: 0 6px 20px rgba(37,211,102,.4);
  transition: transform var(--trans), box-shadow var(--trans);
}
.wpp-float:hover { transform: scale(1.1); box-shadow: 0 10px 28px rgba(37,211,102,.5); }

/* ── ANIMAÇÕES SCROLL ── */
[data-aos] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .6s ease, transform .6s ease;
}
[data-aos].visible { opacity: 1; transform: translateY(0); }
[data-aos][data-aos-delay="100"].visible { transition-delay: .1s; }
[data-aos][data-aos-delay="150"].visible { transition-delay: .15s; }
[data-aos][data-aos-delay="200"].visible { transition-delay: .2s; }

/* ══════════════════════════════════
   RESPONSIVIDADE
══════════════════════════════════ */

/* Tablet grande */
@media (max-width: 1024px) {
  .transf-grid   { grid-template-columns: repeat(2, 1fr); }
  .metodo__cards { grid-template-columns: repeat(2, 1fr); }
}

/* Tablet */
@media (max-width: 860px) {
  .precos__grid       { grid-template-columns: 1fr; max-width: 440px; margin-inline: auto; }

  .sobre__inner       { grid-template-columns: 1fr; }
  .sobre__img-wrap img { height: 380px; }
  .sobre__card-flutuante { right: 0; }

  .consultas__inner   { grid-template-columns: 1fr; }
  .consultas__visual  { order: -1; }

  .instagram__inner   { grid-template-columns: 1fr; }
  .instagram__sub     { max-width: 100%; }

  .contato__inner     { grid-template-columns: 1fr; }

  .footer__inner      { grid-template-columns: 1fr 1fr; }
  .footer__brand      { grid-column: 1 / -1; }

  .cta-mid__inner     { flex-direction: column; text-align: center; }

  /* nav mobile */
  .header__nav {
    position: fixed;
    top: 0; right: -100%;
    width: min(320px, 100vw);
    height: 100vh;
    background: var(--branco);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 3rem 2rem;
    box-shadow: -8px 0 32px rgba(0,0,0,.12);
    transition: right var(--trans);
    z-index: 99;
    gap: 2rem;
  }
  .header__nav.aberto { right: 0; }
  .nav__list { flex-direction: column; align-items: flex-start; gap: 1.25rem; }
  .nav__link { font-size: .95rem; color: var(--cinza-600) !important; }
  .header__toggle { display: flex; z-index: 100; }

  .header__nav::before {
    content: '';
    position: fixed; inset: 0;
    background: rgba(0,0,0,.3);
    z-index: -1; opacity: 0;
    transition: opacity var(--trans);
    pointer-events: none;
  }
  .header__nav.aberto::before { opacity: 1; pointer-events: auto; }
}

/* Mobile — hero troca para versão branca */
@media (max-width: 700px) {
  .hero--desktop { display: none; }
  .hero--mobile  { display: block; }

  /* header no topo do hero mobile: links escuros */
  .header:not(.scrolled) .nav__link { color: var(--cinza-600); }
  .header:not(.scrolled) .header__toggle span { background: var(--cinza-800); }
  .header:not(.scrolled) .header__logo-light { display: none; }
  .header:not(.scrolled) .header__logo-dark  { display: block; }
  .header:not(.scrolled) .header__logo-img   { height: 44px; }

  .transf-grid   { grid-template-columns: 1fr; }
  .metodo__cards { grid-template-columns: 1fr; }
  .instagram__grid { grid-template-columns: repeat(3, 1fr); }

  .footer__inner          { grid-template-columns: 1fr; }
  .footer__bottom-inner   { flex-direction: column; text-align: center; }

  .form { padding: 1.5rem 1.25rem; }

  .hero__bar-inner { flex-direction: column; align-items: flex-start; gap: .875rem; }
  .hero__bar-selos { flex-direction: column; align-items: flex-start; gap: .6rem; }
  .hero__divider   { display: none; }
}


/* =============================================================
   TRAJETORIA E CREDIBILIDADE
   Entram no lugar dos depoimentos de paciente, que o Codigo de Etica do
   CFP nao permite em divulgacao de servico psicologico. O conteudo vem da
   observacao clinica, em terceira pessoa, sem caso identificavel.
   ============================================================= */

.trajetoria{background:var(--cinza-100)}
.trajeto{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(14px,1.8vw,22px)}
.trajeto__par{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;
  gap:clamp(10px,1.4vw,16px);background:var(--branco);border:1px solid var(--cinza-200);
  border-radius:var(--raio-lg);padding:clamp(16px,2vw,22px);
  transition:box-shadow var(--trans),transform var(--trans)}
.trajeto__par:hover{box-shadow:var(--sombra);transform:translateY(-2px)}
.trajeto__antes,.trajeto__depois{display:flex;flex-direction:column;gap:6px;justify-content:center}
.trajeto__rot{font-family:var(--fonte-sans);font-size:.68rem;font-weight:700;letter-spacing:.14em;
  /* --cinza-400 deixa este rotulo em 2,36 sobre o branco do card, abaixo do
     minimo. --cinza-600 sobe para 5,42 e mantem o tom discreto. */
  text-transform:uppercase;color:var(--cinza-600)}
.trajeto__depois .trajeto__rot{color:var(--verde)}
.trajeto__antes p{font-size:.95rem;line-height:1.5;color:var(--texto-suave)}
.trajeto__depois p{font-size:.95rem;line-height:1.5;color:var(--texto);font-weight:600}
.trajeto__seta{display:flex;align-items:center;color:var(--verde);opacity:.75}
/* a nota nao e enfeite: o CFP proibe prometer resultado, entao ela precisa
   aparecer junto com a lista, nao escondida no rodape */
.trajeto__nota{max-width:78ch;margin:clamp(24px,3vw,34px) auto 0;padding-left:16px;
  border-left:3px solid var(--bege-escuro);font-size:.9rem;line-height:1.65;color:var(--texto-suave)}

.credibilidade{background:var(--verde);color:var(--branco)}
.credibilidade__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.4vw,28px);
  text-align:center}
.cred-item{display:flex;flex-direction:column;gap:6px}
.cred-item__n{font-family:var(--fonte-serif);font-size:clamp(1.15rem,1.8vw,1.5rem);color:var(--branco)}
.cred-item__t{font-size:.86rem;line-height:1.5;color:rgba(255,255,255,.86)}

@media (max-width:900px){
  .trajeto{grid-template-columns:1fr}
  .credibilidade__inner{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  /* na tela estreita a seta gira: o par passa a ser lido de cima para baixo */
  .trajeto__par{grid-template-columns:1fr;gap:10px}
  .trajeto__seta{justify-content:center;transform:rotate(90deg)}
}

/* ---------- Opinioes da Doctoralia ---------- */
.opinioes{background:var(--bege-medio)}
.opinioes__inner{display:grid;grid-template-columns:1fr auto;gap:clamp(24px,4vw,56px);align-items:center}
.opinioes__texto .section-desc{margin-bottom:22px}
.opinioes__texto .section-eyebrow,.opinioes__texto .section-title,.opinioes__texto .section-desc{text-align:left;margin-inline:0}
/* o widget vem com largura propria de uns 380px; a coluna so nao pode encolher */
.opinioes__widget{flex:0 0 auto;min-width:min(400px,100%)}
.opinioes__widget iframe{max-width:100%!important}
@media (max-width:900px){
  .opinioes__inner{grid-template-columns:1fr}
  .opinioes__widget{min-width:0}
}

/* ---------- Depoimentos ---------- */
.dep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,24px);align-items:start}
.dep-card{margin:0;background:var(--branco);border:1px solid var(--cinza-200);border-radius:var(--raio-lg);
  padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column;gap:16px;
  transition:box-shadow var(--trans),transform var(--trans)}
.dep-card:hover{box-shadow:var(--sombra);transform:translateY(-2px)}
/* a aspa tem 2,6rem de altura: sem esse respiro ela passa por cima da
   primeira linha do relato */
.dep-card blockquote{margin:0;position:relative;padding-top:34px}
/* aspas em marca dagua, sem virar enfeite pesado */
.dep-card blockquote::before{content:"C";position:absolute;top:-6px;left:-2px;
  font-family:var(--fonte-serif);font-size:2.6rem;line-height:1;color:var(--bege-escuro)}
.dep-card blockquote p{font-size:.95rem;line-height:1.65;color:var(--texto-suave)}
.dep-card blockquote p + p{margin-top:12px}
.dep-card figcaption{margin-top:auto;padding-top:14px;border-top:1px solid var(--cinza-200);
  font-family:var(--fonte-sans);font-size:.85rem;font-weight:700;color:var(--texto);
  display:flex;flex-direction:column;gap:2px}
.dep-card figcaption span{font-weight:500;font-size:.78rem;color:var(--verde);letter-spacing:.04em}
/* a ressalva de resultado acompanha os relatos: o CFP nao permite prometer */
.dep-nota{max-width:76ch;margin:clamp(22px,3vw,30px) auto 0;padding-left:16px;
  border-left:3px solid var(--bege-escuro);font-size:.88rem;line-height:1.6;color:var(--texto-suave)}
@media (max-width:1000px){ .dep-grid{grid-template-columns:1fr 1fr} }
@media (max-width:680px){ .dep-grid{grid-template-columns:1fr} }
