/* =========================================================
   Bruna Mariana — Psicóloga
   Paleta: madeira / terracota / areia — sóbria e moderna
   ========================================================= */

:root{
  /* Marrons */
  --ink:        #241B15;
  --ink-2:      #5B4A3E;
  --ink-3:      #857263;
  --brown-900:  #261D17;
  --brown-800:  #35281F;
  --brown-700:  #4A382C;
  --brown-600:  #6A5142;
  --caramel:    #A97449;
  --caramel-dk: #8A5C36;
  --caramel-lt: #C89B74;

  /* Areias */
  --sand-50:  #FCF9F5;
  --sand-100: #F6F0E8;
  --sand-200: #EDE3D7;
  --sand-300: #E0D1C0;
  --line:     #E3D7C9;

  --white: #fff;
  --wa: #25D366;

  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 34px;

  --shadow-s: 0 2px 8px rgba(38,29,23,.06);
  --shadow-m: 0 14px 40px -18px rgba(38,29,23,.30);
  --shadow-l: 0 40px 80px -40px rgba(38,29,23,.45);

  --pad: clamp(64px, 9vw, 128px);
  --ease: cubic-bezier(.22,.61,.36,1);
}

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

html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(16px,1.02vw,17.5px);
  line-height:1.7;
  color:var(--ink-2);
  background:var(--sand-50);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }

h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--ink);
  font-weight:500;
  line-height:1.14;
  letter-spacing:-.015em;
  margin:0 0 .5em;
  text-wrap:balance;
}
h1{ font-size:clamp(2.35rem,5.1vw,4.1rem); }
h2{ font-size:clamp(1.95rem,3.5vw,2.95rem); }
h3{ font-size:clamp(1.15rem,1.5vw,1.35rem); line-height:1.3; }
h4{ font-size:.95rem; letter-spacing:.02em; }
p{ margin:0 0 1.1em; text-wrap:pretty; }
a{ color:inherit; }
em{ font-style:italic; color:var(--caramel-dk); }
strong{ color:var(--ink); font-weight:600; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--brown-900); color:#fff; padding:12px 20px; border-radius:0 0 var(--r-sm) 0;
}
.skip:focus{ left:0; }

:focus-visible{ outline:2px solid var(--caramel); outline-offset:3px; border-radius:4px; }

/* ---------- layout ---------- */
.wrap{ width:min(1200px, calc(100% - 2 * clamp(20px,5vw,48px))); margin-inline:auto; }
.wrap--narrow{ width:min(820px, calc(100% - 2 * clamp(20px,5vw,48px))); }

.sec{ padding:var(--pad) 0; }
.sec--sand{ background:var(--sand-100); }
.sec--dark{ background:var(--brown-900); color:var(--sand-200); }
.sec--dark h2,.sec--dark h3{ color:var(--sand-50); }
.sec--dark strong{ color:#fff; }
.sec--dark .eyebrow{ color:var(--caramel-lt); }
.sec--dark .eyebrow::before{ background:var(--caramel-lt); }

.sec__head{ max-width:760px; margin:0 auto clamp(40px,5vw,68px); text-align:center; }
.sec__sub{ font-size:1.06rem; color:var(--ink-3); margin:0; }
.sec__sub--left{ text-align:left; margin-bottom:1.1em; }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-size:.76rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--caramel-dk); margin:0 0 1em;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--caramel); flex:none; }

/* ---------- botões ---------- */
.btn{
  --bg:var(--brown-900); --fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:.94rem; font-weight:500; line-height:1;
  padding:17px 30px; border-radius:100px; border:1px solid var(--bg);
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-m); }
.btn:active{ transform:translateY(0); }
.btn--solid{ --bg:var(--caramel-dk); }
.btn--solid:hover{ background:var(--brown-800); border-color:var(--brown-800); }
.btn--ghost{ --bg:transparent; --fg:var(--ink); border-color:var(--brown-600); }
.btn--ghost:hover{ background:var(--brown-900); color:#fff; border-color:var(--brown-900); }
.btn--light{ --bg:var(--sand-50); --fg:var(--brown-900); }
.btn--sm{ padding:12px 22px; font-size:.87rem; }
.ico{ width:19px; height:19px; fill:currentColor; flex:none; }

/* ---------- header ---------- */
.hdr{
  position:fixed; inset:0 0 auto; z-index:100;
  background:rgba(252,249,245,0);
  transition:background .3s var(--ease), box-shadow .3s var(--ease), backdrop-filter .3s;
}
.hdr.is-stuck{
  background:rgba(252,249,245,.94);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 1px 0 var(--line), var(--shadow-s);
}
.hdr__in{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0; }
.hdr.is-stuck .hdr__in{ padding:12px 0; }

.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand__mark{
  width:44px; height:44px; flex:none; border-radius:50%;
  display:grid; place-items:center;
  background:var(--brown-900); color:var(--sand-100);
  font-family:var(--serif); font-size:.95rem; letter-spacing:.04em;
}
.brand__txt{ display:flex; flex-direction:column; line-height:1.25; }
.brand__txt strong{ font-family:var(--serif); font-weight:500; font-size:1.08rem; color:var(--ink); }
.brand__txt small{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); }

.nav{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); }
.nav a{ text-decoration:none; }
.nav a:not(.btn){ font-size:.92rem; color:var(--ink-2); position:relative; padding:4px 0; }
.nav a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--caramel); transition:width .3s var(--ease);
}
.nav a:not(.btn):hover{ color:var(--ink); }
.nav a:not(.btn):hover::after{ width:100%; }

.burger{ display:none; width:44px; height:44px; border:0; background:none; cursor:pointer; padding:10px; }
.burger span{ display:block; height:1.5px; background:var(--ink); margin:5px 0; border-radius:2px; transition:.3s var(--ease); }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* ---------- hero ---------- */
.hero{
  position:relative; padding:clamp(130px,15vw,180px) 0 clamp(70px,8vw,110px);
  background:
    radial-gradient(70% 90% at 92% 10%, var(--sand-200) 0%, transparent 60%),
    radial-gradient(60% 70% at 0% 100%, #EFE6DA 0%, transparent 65%),
    var(--sand-50);
  overflow:hidden;
}
.hero__in{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,5vw,80px); align-items:center; }
.hero h1{ margin-bottom:.45em; }
.lead{ font-size:clamp(1.05rem,1.35vw,1.19rem); color:var(--ink-2); max-width:54ch; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin:34px 0 20px; }
.hero__note{ font-size:.87rem; color:var(--ink-3); margin:0; max-width:44ch; }

.hero__img{ position:relative; }
/* ---------- fotos ---------- */
.ph{ margin:0; overflow:hidden; background:var(--sand-200); }
.ph img{ width:100%; height:100%; object-fit:cover; }
.ph--hero{ border-radius:280px 280px var(--r-xl) var(--r-xl); aspect-ratio:4/5; box-shadow:var(--shadow-l); }
.ph--tall{ border-radius:var(--r-xl); aspect-ratio:4/5; box-shadow:var(--shadow-m); }
.ph--wide{ border-radius:var(--r-lg) var(--r-lg) 0 0; width:100%; aspect-ratio:1/1; }
.ph--wide img{ object-position:50% 40%; }
.ph--up img{ object-position:50% 100%; }
.ph--cta{ border-radius:var(--r-xl); aspect-ratio:3/4; box-shadow:var(--shadow-l); }

/* ---------- faixa ---------- */
.strip{ background:var(--brown-900); color:var(--sand-200); }
.strip__in{ display:grid; grid-template-columns:repeat(4,1fr); }
.strip__item{ padding:30px 26px; display:flex; flex-direction:column; gap:3px; border-left:1px solid rgba(255,255,255,.09); }
.strip__item:first-child{ border-left:0; padding-left:0; }
.strip__item strong{ font-family:var(--serif); font-size:1.12rem; color:var(--sand-50); font-weight:500; }
.strip__item span{ font-size:.83rem; color:#B6A18F; }

/* ---------- dores ---------- */
.dores{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.dores li{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-md);
  padding:28px 26px; font-family:var(--serif); font-style:italic;
  font-size:1.03rem; line-height:1.55; color:var(--brown-700);
  position:relative; transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.dores li:hover{ transform:translateY(-3px); box-shadow:var(--shadow-m); }
.dores li::before{
  content:""; position:absolute; left:0; top:26px; bottom:26px; width:2px;
  background:var(--caramel-lt); border-radius:2px;
}
.dores__foot{
  max-width:64ch; margin:44px auto 0; text-align:center;
  font-size:1.08rem; color:var(--ink-2);
}

/* ---------- cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:36px 30px 34px; position:relative; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
}
.card::after{
  content:""; position:absolute; inset:auto 0 0 0; height:3px;
  background:linear-gradient(90deg,var(--caramel),var(--caramel-lt));
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease);
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-m); border-color:var(--sand-300); }
.card:hover::after{ transform:scaleX(1); }
.card__num{
  font-family:var(--serif); font-size:2.5rem; color:var(--sand-300);
  line-height:1; display:block; margin-bottom:16px;
}
.card p{ margin:0; font-size:.95rem; }

/* ---------- split ---------- */
.split{ display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(38px,5vw,76px); align-items:center; }
.split--rev .ph{ order:2; }
.split__txt p{ font-size:1.03rem; }

.creds{ list-style:none; margin:30px 0; padding:26px 0 0; border-top:1px solid var(--line); display:grid; gap:11px; }
.creds li{ position:relative; padding-left:26px; font-size:.94rem; }
.creds li::before{
  content:""; position:absolute; left:0; top:.62em; width:11px; height:11px;
  border:1.5px solid var(--caramel); border-radius:50%;
}

.steps{ list-style:none; counter-reset:s; margin:34px 0 0; padding:0; display:grid; gap:20px; }
.steps li{ counter-increment:s; position:relative; padding-left:60px; }
.steps li::before{
  content:counter(s,decimal-leading-zero);
  position:absolute; left:0; top:0;
  font-family:var(--serif); font-size:1.05rem; color:var(--caramel-dk);
  width:40px; height:40px; border:1px solid var(--sand-300); border-radius:50%;
  display:grid; place-items:center; background:var(--white);
}
.steps strong{ display:block; font-family:var(--serif); font-size:1.16rem; font-weight:500; margin-bottom:3px; }
.steps span{ font-size:.95rem; color:var(--ink-2); }

/* ---------- modalidades ---------- */
.mods{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.mod{
  background:var(--brown-800); border-radius:var(--r-lg); overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  transition:transform .35s var(--ease);
}
.mod:hover{ transform:translateY(-4px); }
.mod .ph{ background:var(--brown-700); }
.mod__txt{ padding:32px 34px 36px; }
.mod__txt h3{ font-size:1.5rem; margin-bottom:.4em; }
.mod__txt p{ font-size:.96rem; color:#C9B6A5; }
.ticks{ list-style:none; margin:22px 0 0; padding:0; display:grid; gap:10px; }
.ticks li{ position:relative; padding-left:28px; font-size:.9rem; color:var(--sand-200); }
.ticks li::before{
  content:""; position:absolute; left:2px; top:.48em; width:11px; height:6px;
  border-left:1.6px solid var(--caramel-lt); border-bottom:1.6px solid var(--caramel-lt);
  transform:rotate(-45deg);
}

/* ---------- fluxo ---------- */
.flow{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,46px); position:relative; }
.flow__i{ position:relative; }
.flow__n{
  width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center; margin-bottom:20px;
  background:var(--brown-900); color:var(--sand-100);
  font-family:var(--serif); font-size:1.2rem;
}
.flow__i:not(:last-child)::after{
  content:""; position:absolute; left:64px; top:26px; right:-24px; height:1px;
  background:repeating-linear-gradient(90deg,var(--sand-300) 0 6px,transparent 6px 12px);
}
.flow__i p{ margin:0; font-size:.96rem; }

/* ---------- faq ---------- */
.faq{ display:grid; gap:12px; }
.faq details{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-md);
  overflow:hidden; transition:box-shadow .3s var(--ease), border-color .3s;
}
.faq details[open]{ box-shadow:var(--shadow-m); border-color:var(--sand-300); }
.faq summary{
  cursor:pointer; list-style:none; padding:24px 62px 24px 28px; position:relative;
  font-family:var(--serif); font-size:1.1rem; color:var(--ink); font-weight:500;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:""; position:absolute; right:28px; top:50%; width:11px; height:11px;
  border-right:1.6px solid var(--caramel); border-bottom:1.6px solid var(--caramel);
  transform:translateY(-70%) rotate(45deg); transition:transform .3s var(--ease);
}
.faq details[open] summary::after{ transform:translateY(-20%) rotate(-135deg); }
.faq p{ margin:0; padding:0 28px 26px; font-size:.97rem; color:var(--ink-2); }

/* ---------- cta final ---------- */
.cta{ background:var(--brown-900); color:var(--sand-200); padding:var(--pad) 0; }
.cta__in{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(38px,5vw,76px); align-items:center; }
.cta h2{ color:var(--sand-50); font-size:clamp(2rem,3.6vw,3.1rem); }
.cta p{ font-size:1.08rem; color:#C9B6A5; max-width:52ch; margin-bottom:34px; }

/* ---------- footer ---------- */
.ft{ background:#1D1611; color:#A2907F; padding:clamp(56px,6vw,84px) 0 0; font-size:.92rem; }
.ft__in{ display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:44px; padding-bottom:52px; }
.ft__col{ display:flex; flex-direction:column; gap:11px; align-items:flex-start; }
.ft__col h4{ color:var(--sand-100); margin:0 0 6px; font-family:var(--sans); font-weight:600; text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; }
.ft__col a{ text-decoration:none; color:#A2907F; transition:color .25s; }
.ft__col a:hover{ color:var(--caramel-lt); }
.brand--ft .brand__mark{ background:var(--brown-700); color:var(--sand-100); }
.brand--ft .brand__txt strong{ color:var(--sand-50); }
.brand--ft .brand__txt small{ color:#8A7869; }
.ft__bio{ margin:6px 0 0; max-width:38ch; font-size:.9rem; line-height:1.65; }
.ft__addr{ margin:4px 0 0; font-size:.88rem; }
.ft__bar{
  border-top:1px solid rgba(255,255,255,.08); padding:24px 0 30px;
  display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
  font-size:.8rem;
}
.ft__bar p{ margin:0; }
.ft__alert{ max-width:56ch; color:#8A7869; }
.ft__alert strong{ color:var(--caramel-lt); }

/* ---------- whatsapp flutuante ---------- */
.wafloat{
  position:fixed; right:22px; bottom:22px; z-index:90;
  display:inline-flex; align-items:center; gap:10px;
  background:var(--wa); color:#fff; text-decoration:none;
  padding:15px 22px; border-radius:100px; font-size:.92rem; font-weight:500;
  box-shadow:0 12px 32px -8px rgba(37,211,102,.55);
  opacity:0; transform:translateY(20px) scale(.94); pointer-events:none;
  transition:opacity .4s var(--ease), transform .4s var(--ease), box-shadow .3s;
}
.wafloat.is-on{ opacity:1; transform:none; pointer-events:auto; }
.wafloat:hover{ box-shadow:0 16px 40px -8px rgba(37,211,102,.7); }
.wafloat svg{ width:23px; height:23px; fill:currentColor; }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.dores li.reveal:nth-child(2),.cards .card.reveal:nth-child(2),.flow__i.reveal:nth-child(2),.faq details.reveal:nth-child(2){ transition-delay:.08s; }
.dores li.reveal:nth-child(3),.cards .card.reveal:nth-child(3),.flow__i.reveal:nth-child(3),.faq details.reveal:nth-child(3){ transition-delay:.16s; }
.dores li.reveal:nth-child(4),.cards .card.reveal:nth-child(4),.faq details.reveal:nth-child(4){ transition-delay:.24s; }
.dores li.reveal:nth-child(5),.faq details.reveal:nth-child(5){ transition-delay:.32s; }
.dores li.reveal:nth-child(6),.faq details.reveal:nth-child(6){ transition-delay:.4s; }
.mods .mod.reveal:nth-child(2){ transition-delay:.1s; }

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:1080px){
  .cards{ grid-template-columns:repeat(2,1fr); }
  .dores{ grid-template-columns:repeat(2,1fr); }
  .ft__in{ grid-template-columns:1fr 1fr; }
}

@media (max-width:920px){
  .nav{
    position:fixed; inset:0 0 0 auto; width:min(320px,84vw);
    flex-direction:column; align-items:flex-start; justify-content:center;
    gap:6px; padding:40px 34px;
    background:var(--sand-50); box-shadow:-20px 0 60px -20px rgba(38,29,23,.35);
    transform:translateX(100%); transition:transform .38s var(--ease);
  }
  .nav.is-open{ transform:none; }
  .nav a{ font-size:1.18rem; font-family:var(--serif); padding:12px 0; width:100%; }
  .nav .btn{ margin-top:20px; width:100%; font-family:var(--sans); font-size:.95rem; padding:16px 24px; }
  .burger{ display:block; z-index:110; }
  body.nav-open{ overflow:hidden; }

  .hero__in{ grid-template-columns:1fr; }
  .hero__txt{ order:1; }
  .hero__img{ order:2; max-width:460px; margin-inline:auto; width:100%; }
  .ph--hero{ border-radius:220px 220px var(--r-lg) var(--r-lg); }

  .split,.split--rev,.cta__in{ grid-template-columns:1fr; }
  .split--rev .ph{ order:0; }
  .split .ph,.cta .ph{ max-width:430px; }
  .sec--sand .split .ph{ margin-inline:auto; }
  .cta .ph{ margin-inline:auto; }

  .mods{ grid-template-columns:1fr; }
  .flow{ grid-template-columns:1fr; gap:30px; }
  .flow__i:not(:last-child)::after{ display:none; }
  .strip__in{ grid-template-columns:repeat(2,1fr); }
  .strip__item{ padding:22px 20px; border-left:0; border-top:1px solid rgba(255,255,255,.09); }
  .strip__item:nth-child(-n+2){ border-top:0; }
  .strip__item:nth-child(odd){ padding-left:0; }
}

@media (max-width:620px){
  :root{ --pad:clamp(52px,11vw,76px); }
  .cards,.dores{ grid-template-columns:1fr; }
  .ft__in{ grid-template-columns:1fr; gap:34px; }
  .ft__bar{ flex-direction:column; align-items:flex-start; }
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .hero__cta .btn{ width:100%; }
  .brand__txt small{ display:none; }
  .faq summary{ padding:20px 52px 20px 22px; font-size:1.02rem; }
  .faq p{ padding:0 22px 22px; }
  .mod__txt{ padding:26px 24px 30px; }
  .wafloat{ right:14px; bottom:14px; padding:14px 18px; }
  .wafloat span{ display:none; }
  .sec__head{ text-align:left; }
  .sec__head .eyebrow{ display:inline-flex; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
}

@media print{
  .hdr,.wafloat{ display:none; }
  body{ background:#fff; }
}
