/* Fontes self-hosted (sem Google Fonts: o IP do visitante não vai para terceiros) */
@font-face{font-family:'Inter';font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'Inter';font-weight:700;font-display:swap;src:url(../fonts/inter-latin-700-normal.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-weight:500;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-weight:500;font-style:italic;font-display:swap;src:url(../fonts/poppins-latin-500-italic.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-weight:600;font-display:swap;src:url(../fonts/poppins-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-weight:700;font-display:swap;src:url(../fonts/poppins-latin-700-normal.woff2) format('woff2');}

/* ====================================================================
   DESIGN SYSTEM — Serenità
   Paleta roxa premium, fundo claro e arejado, tipografia generosa.
   ==================================================================== */
:root{
  --purple:#5F2BBC;
  --purple-2:#6f42c1;
  --purple-3:#6610f2;
  --purple-700:#4a1f96;
  --purple-50:#f3eefc;
  --purple-100:#e9e0fa;
  --bg:#ffffff;
  --bg-alt:#f8f9fa;
  --text:#343a40;
  --text-soft:#5b6470;
  --text-mute:#8a929c;
  --border:#eceaf3;
  --white:#ffffff;
  --star:#f5b50a;
  --wa:#1B7F5B;
  --wa-hover:#176E4F;

  --grad: linear-gradient(135deg,#6610f2 0%, #5F2BBC 55%, #4a1f96 100%);
  --grad-soft: linear-gradient(135deg,#7a4fd6 0%, #5F2BBC 100%);

  --shadow-sm: 0 2px 8px rgba(48,20,110,.06);
  --shadow: 0 10px 30px rgba(48,20,110,.10);
  --shadow-lg: 0 24px 60px rgba(48,20,110,.18);

  --r-sm:12px; --r:18px; --r-lg:26px; --r-pill:999px;
  --maxw:1180px;
  --header-h:76px;
}

*{box-sizing:border-box;}
html{scroll-behavior:auto;} /* Lenis gerencia o scroll suave */
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--text);
  background:var(--bg);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:'Poppins',sans-serif;line-height:1.18;color:#241246;margin:0;font-weight:600;text-wrap:balance;}
p{margin:0;text-wrap:pretty;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
:focus-visible{outline:3px solid var(--purple-3);outline-offset:3px;border-radius:6px;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.section{padding:96px 0;}
.section--alt{background:var(--bg-alt);}
.eyebrow{font-family:'Inter';font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--purple-2);margin-bottom:14px;}
.section-head{max-width:720px;margin:0 auto 56px;text-align:center;}
.section-head h2{font-size:clamp(2rem,4vw,2.85rem);}
.section-head p{margin-top:16px;color:var(--text-soft);font-size:1.12rem;}

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:'Inter';font-weight:600;font-size:1.02rem;border:none;cursor:pointer;
  padding:16px 28px;border-radius:var(--r-pill);transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  text-align:center;line-height:1.1;min-height:54px;}
.btn:hover{transform:translateY(-2px);}
.btn--purple{background:var(--grad);color:#fff;box-shadow:0 8px 22px rgba(95,43,188,.35);}
.btn--purple:hover{box-shadow:0 12px 30px rgba(95,43,188,.45);}
.btn--ghost{background:#fff;color:var(--purple);border:2px solid var(--purple-100);}
.btn--ghost:hover{border-color:var(--purple-2);background:var(--purple-50);}
.btn--wa{background:var(--wa);color:#fff;}
.btn--wa:hover{background:var(--wa-hover);box-shadow:0 12px 30px rgba(27,127,91,.35);}
.btn--block{width:100%;}
.btn svg{flex:0 0 auto;}

/* ---------- Header ---------- */
header.site{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border);}
.nav{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;align-items:center;gap:12px;font-family:'Poppins';font-weight:600;font-size:1.18rem;color:#241246;white-space:nowrap;}
.brand .mark{width:42px;height:42px;border-radius:13px;background:var(--grad);display:grid;place-items:center;flex:0 0 auto;box-shadow:var(--shadow-sm);}
.brand small{display:block;font-family:'Inter';font-weight:500;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-mute);}
.nav-links{display:flex;align-items:center;gap:24px;font-weight:500;font-size:.92rem;color:var(--text-soft);}
.nav-links a{white-space:nowrap;}
.nav-links a:hover{color:var(--purple);}
.nav-actions{display:flex;align-items:center;gap:14px;}
.nav .btn{padding:13px 22px;min-height:48px;font-size:.96rem;white-space:nowrap;}
@media(max-width:1180px){.nav-links{display:none;}}
@media(min-width:1181px){.nav-actions .btn--ghost{display:none;}}
@media(max-width:560px){.nav-actions .btn--ghost{display:none;}.brand small{display:none;}}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;color:#fff;}
.hero-media{position:absolute;inset:0;z-index:0;background:#3a1f7a;}
.hero-poster{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  background:
    radial-gradient(900px 500px at 75% 20%, rgba(118,69,214,.55), transparent 60%),
    repeating-linear-gradient(135deg,#4a2596 0 22px,#46228e 22px 44px),
    var(--grad);
}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(115deg, rgba(74,31,150,.92) 0%, rgba(95,43,188,.78) 42%, rgba(102,16,242,.45) 100%);}

/* Hero: listras diagonais animadas */
.hero-stripes{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 30px,
    rgba(255,255,255,.016) 30px,
    rgba(255,255,255,.016) 31px
  );
  animation:stripeDrift 14s linear infinite;
}
@keyframes stripeDrift{
  from{background-position:0 0;}
  to{background-position:60px 60px;}
}

/* Hero: glow blobs */
.hero-blob{
  position:absolute;border-radius:50%;
  filter:blur(80px);pointer-events:none;z-index:2;
}
.hero-blob--gold{
  width:480px;height:480px;top:-120px;right:-80px;
  background:radial-gradient(circle,rgba(245,181,10,.22) 0%,transparent 70%);
}
.hero-blob--purple{
  width:380px;height:380px;bottom:-100px;left:-60px;
  background:radial-gradient(circle,rgba(48,12,120,.55) 0%,transparent 70%);
}

.hero-inner{position:relative;z-index:3;padding:84px 0 96px;
  display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.hero-copy .pill{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.25);padding:8px 16px;border-radius:var(--r-pill);
  font-size:.86rem;font-weight:600;margin-bottom:24px;backdrop-filter:blur(4px);}
.hero h1{color:#fff;font-size:clamp(2.4rem,5vw,3.7rem);font-weight:700;letter-spacing:-.01em;}
.hero-copy .sub{margin-top:22px;font-size:1.22rem;color:rgba(255,255,255,.92);max-width:540px;line-height:1.6;}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;}
.hero-tags span{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;font-weight:500;
  background:rgba(255,255,255,.12);padding:9px 16px;border-radius:var(--r-pill);}

/* Card formulário flutuante */
.lead-card{background:#fff;color:var(--text);border-radius:var(--r-lg);padding:34px 32px;
  box-shadow:var(--shadow-lg);max-width:430px;width:100%;justify-self:end;}
.lead-card h3{font-size:1.5rem;color:#241246;}
.lead-card .lc-sub{color:var(--text-soft);font-size:.98rem;margin-top:8px;margin-bottom:22px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:.9rem;font-weight:600;color:#241246;margin-bottom:7px;}
.field input,.field select{width:100%;font-family:'Inter';font-size:1.04rem;color:var(--text);
  padding:15px 16px;border:1.5px solid #e2dff0;border-radius:var(--r-sm);background:#fcfbff;transition:border-color .15s, box-shadow .15s;}
.field input:focus,.field select:focus{outline:none;border-color:var(--purple-2);box-shadow:0 0 0 4px rgba(111,66,193,.14);}
.field input.invalid,.field select.invalid{border-color:#e23b5a;background:#fff5f6;}
.field .err{display:none;color:#d12f4d;font-size:.82rem;margin-top:6px;font-weight:500;}
.field.show-err .err{display:block;}
.lead-micro{display:flex;align-items:center;gap:8px;justify-content:center;
  margin-top:14px;font-size:.86rem;color:var(--text-mute);}
.form-status{display:none;align-items:flex-start;gap:12px;margin-top:16px;padding:14px 16px;
  border-radius:var(--r-sm);font-size:.95rem;font-weight:500;line-height:1.45;}
.form-status.ok{display:flex;background:#e9f9ef;color:#1c7a45;border:1px solid #bfe9cf;}
.form-status.err{display:flex;background:#fdeef0;color:#bb2942;border:1px solid #f4ccd4;}

/* ---------- Trust band ---------- */
.trust{background:#fff;color:var(--purple);border-bottom:1px solid var(--border);}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:54px;padding-bottom:54px;}
.trust .stat{text-align:center;}
.trust .num{font-family:'Poppins';font-weight:700;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1;color:var(--purple);}
.trust .lbl{margin-top:10px;font-size:1rem;color:var(--text-soft);font-weight:500;}
.trust .stat + .stat{border-left:1px solid var(--border);}
@media(max-width:760px){.trust .wrap{grid-template-columns:repeat(2,1fr);gap:36px 12px;}
  .trust .stat + .stat{border-left:none;}}

/* ---------- Pilares ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.pillar{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:38px 32px;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;}
.pillar:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.ic{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;margin-bottom:22px;
  background:var(--purple-50);color:var(--purple);}
.ic svg{width:30px;height:30px;}
.pillar h3{font-size:1.4rem;margin-bottom:12px;}
.pillar p{color:var(--text-soft);font-size:1.04rem;}

/* ---------- Serviços ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.svc{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:28px 26px;
  display:flex;gap:18px;align-items:flex-start;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s;}
.svc:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--purple-100);}
.svc .ic{width:52px;height:52px;border-radius:14px;margin:0;flex:0 0 auto;}
.svc .ic svg{width:26px;height:26px;}
.svc h3{font-size:1.16rem;margin-bottom:5px;}
.svc p{font-size:.96rem;color:var(--text-soft);}
@media(max-width:920px){.pillars,.svc-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.pillars,.svc-grid{grid-template-columns:1fr;}}

/* ---------- Terapias ---------- */
.ther-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.ther{border-radius:var(--r-lg);overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;}
.ther:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.ther .ph{aspect-ratio:4/3;}
.ther-body{padding:26px 26px 30px;}
.ther-body .poem{font-family:'Poppins';font-weight:500;font-style:italic;color:var(--purple-2);font-size:1.08rem;margin-bottom:10px;}
.ther-body h3{font-size:1.3rem;margin-bottom:8px;}
.ther-body p{color:var(--text-soft);font-size:.98rem;}
@media(max-width:820px){.ther-grid{grid-template-columns:1fr;}}

/* ---------- Placeholders de imagem ---------- */
.ph{position:relative;width:100%;background:
    repeating-linear-gradient(45deg,#efe9fb 0 14px,#e7dffa 14px 28px);
  display:grid;place-items:center;color:var(--purple-2);overflow:hidden;}
.ph::after{content:attr(data-label);font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.74rem;letter-spacing:.02em;color:var(--purple-2);opacity:.78;
  background:rgba(255,255,255,.72);padding:6px 12px;border-radius:8px;text-align:center;max-width:80%;}

/* (placeholders ativos — imagens reais: substituir .ph por <img> quando disponíveis) */

/* ---------- Quem somos ---------- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.about .ph{aspect-ratio:4/5;border-radius:var(--r-lg);}
.about h2{font-size:clamp(1.9rem,3.6vw,2.6rem);margin-bottom:20px;}
.about p{color:var(--text-soft);font-size:1.08rem;margin-bottom:16px;}
.team-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.team-tags span{font-size:.9rem;font-weight:500;background:var(--purple-50);color:var(--purple);
  padding:9px 15px;border-radius:var(--r-pill);border:1px solid var(--purple-100);}
.mvv{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:64px;}
.mvv .card{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:30px 28px;box-shadow:var(--shadow-sm);}
.mvv h3{font-size:1.25rem;margin-bottom:10px;display:flex;align-items:center;gap:12px;}
.mvv p{font-size:1rem;color:var(--text-soft);margin:0;}
@media(max-width:860px){.about{grid-template-columns:1fr;gap:36px;}.mvv{grid-template-columns:1fr;}}

/* ---------- Galeria Bento (CSS Grid — bento estilo Be Plus, sem espaço residual) ---------- */
/*
  "a a b c"  ← grande (2×2) | pequeno | alto (1×2)
  "a a d c"  ← grande cont. | pequeno | alto cont.
  "e e f f"  ← wide         | wide
  "g g g h"  ← very wide    | pequeno
*/
.gallery-bento{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:260px 260px 220px 220px;
  gap:8px;
  padding:0 10px;
  width:100%;
  margin-top:48px;
  grid-template-areas:
    "a a b c"
    "a a d c"
    "e e f f"
    "g g g h";
}
.gallery-bento .ph{
  width:100%;
  height:100%;
  border-radius:16px;
  cursor:pointer;
  transition:transform .24s ease, box-shadow .24s ease;
  display:grid;
  align-items:end;
  padding:14px;
}
.gallery-bento .ph::after{
  font-size:.75rem;
  letter-spacing:.03em;
  background:rgba(0,0,0,.32);
  color:#fff;
  border-radius:6px;
  padding:5px 10px;
  backdrop-filter:blur(4px);
}
.gallery-bento .ph:hover{transform:scale(1.015);box-shadow:var(--shadow-lg);}

.gallery-bento .ph:nth-child(1){grid-area:a;}
.gallery-bento .ph:nth-child(2){grid-area:b;}
.gallery-bento .ph:nth-child(3){grid-area:c;}
.gallery-bento .ph:nth-child(4){grid-area:d;}
.gallery-bento .ph:nth-child(5){grid-area:e;}
.gallery-bento .ph:nth-child(6){grid-area:f;}
.gallery-bento .ph:nth-child(7){grid-area:g;}
.gallery-bento .ph:nth-child(8){grid-area:h;}

@media(max-width:900px){
  .gallery-bento{
    grid-template-columns:repeat(2,1fr);
    grid-template-rows:unset;
    grid-auto-rows:220px;
    padding:0 8px;
    grid-template-areas:
      "a a"
      "b c"
      "d e"
      "f f"
      "g h";
  }
}
@media(max-width:480px){
  .gallery-bento{
    grid-template-columns:1fr;
    grid-auto-rows:200px;
    grid-template-areas:"a""b""c""d""e""f""g""h";
    gap:6px;padding:0 6px;
  }
}

/* ---------- Depoimentos ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.testi{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:32px 30px;box-shadow:var(--shadow-sm);}
.stars{display:flex;gap:3px;margin-bottom:16px;color:var(--star);}
.testi .quote{font-size:1.06rem;color:#3a3550;line-height:1.6;}
.testi .who{display:flex;align-items:center;gap:14px;margin-top:22px;}
.testi .av{width:48px;height:48px;border-radius:50%;background:var(--grad-soft);color:#fff;
  display:grid;place-items:center;font-family:'Poppins';font-weight:600;font-size:1.05rem;flex:0 0 auto;}
.testi .who b{display:block;font-size:1rem;color:#241246;}
.testi .who small{color:var(--text-mute);font-size:.86rem;}
@media(max-width:860px){.testi-grid{grid-template-columns:1fr;}}

/* ---------- CTA final ---------- */
.cta-final{background:var(--grad);color:#fff;position:relative;overflow:hidden;}
.cta-final::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);top:-180px;right:-120px;}
.cta-final .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}

/* Sakura / pétalas de cerejeira no CTA */
.sakura-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;}
.sakura-petal{
  position:absolute;
  border-radius:150% 0 150% 0;
  pointer-events:none;
}
.cta-final h2{color:#fff;font-size:clamp(2rem,4vw,2.9rem);}
.cta-final p{color:rgba(255,255,255,.9);font-size:1.16rem;margin-top:18px;max-width:520px;}
.cta-final .lead-card{justify-self:end;}
@media(max-width:860px){.cta-final .wrap{grid-template-columns:1fr;gap:36px;}}

/* ---------- Hero / CTA responsivo ---------- */
@media(max-width:920px){
  .hero-inner,.cta-final .wrap{grid-template-columns:1fr;}
  .hero-inner{gap:34px;padding:56px 0 72px;}
  .lead-card{justify-self:stretch;max-width:none;}
  .hero-copy .sub{max-width:none;}
}

/* ---------- Rodapé ---------- */
footer{background:#241246;color:#cfc6e6;padding:72px 0 32px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1.3fr;gap:48px;}
footer h4{color:#fff;font-size:1.12rem;margin-bottom:18px;}
footer a:not(.btn):hover{color:#fff;}
.foot-contact li{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;list-style:none;font-size:1rem;}
.foot-contact{padding:0;margin:0;}
.foot-contact svg{flex:0 0 auto;margin-top:3px;color:#a78be0;}
.socials{display:flex;gap:12px;margin-top:8px;}
.socials a{width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:background .2s;}
.socials a:hover{background:rgba(255,255,255,.18);}
.map-embed{border:0;width:100%;height:230px;border-radius:var(--r);background:#3a2b66;}
.foot-bottom{margin-top:52px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.88rem;color:#a99cc9;}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr;gap:40px;}}

/* ---------- WhatsApp flutuante ---------- */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:80;width:62px;height:62px;border-radius:50%;
  background:var(--wa);display:grid;place-items:center;box-shadow:0 10px 30px rgba(27,127,91,.5);
  transition:transform .2s;animation:waPulse 2.6s infinite;}
.wa-float:hover{transform:scale(1.08);}
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(27,127,91,.45);}70%{box-shadow:0 0 0 16px rgba(27,127,91,0);}100%{box-shadow:0 0 0 0 rgba(27,127,91,0);}}

/* ---------- Scroll reveal (fallback sem GSAP) ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}

/* ====== Seção Serviços — fundo roxo escuro com padrão de pontos ====== */
.section--svc{
  background:#4d22a8;
  position:relative;
}
.section--svc::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:32px 32px;
}
.section--svc .wrap{position:relative;z-index:1;}
.section--svc .eyebrow{color:#c4a8f0;}
.section--svc .section-head h2{color:#fff;}
.section--svc .section-head p{color:rgba(255,255,255,.75);}
.section--svc .svc{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.12);
  box-shadow:0 4px 20px rgba(0,0,0,.25);
}
.section--svc .svc:hover{
  background:rgba(255,255,255,.11);
  border-color:rgba(255,255,255,.22);
  box-shadow:0 10px 36px rgba(0,0,0,.35);
  transform:translateY(-4px);
}
.section--svc .svc h3{color:#fff;}
.section--svc .svc p{color:rgba(255,255,255,.7);}
.section--svc .svc .ic{background:rgba(255,255,255,.12);color:#d4b8ff;}

/* ====== Texturas sutis em outras seções ====== */
#porque{position:relative;}
#porque::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(95,43,188,.03) 1px, transparent 1px);
  background-size:24px 24px;
}
#terapias{position:relative;}
#terapias::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(-45deg,transparent,transparent 38px,rgba(95,43,188,.022) 38px,rgba(95,43,188,.022) 39px);
}
#galeria{position:relative;}
#galeria::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(95,43,188,.03) 1px, transparent 1px);
  background-size:28px 28px;
}
.section--alt{position:relative;}
.section--alt::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent,transparent 22px,rgba(95,43,188,.015) 22px,rgba(95,43,188,.015) 23px);
}
#porque .wrap,#terapias .wrap,#galeria .wrap,#quem-somos .wrap,#depoimentos .wrap{
  position:relative;z-index:1;
}

/* ====== Responsividade extra-tight (375px) ====== */
@media(max-width:400px){
  .hero h1{font-size:2rem;}
  .hero-inner{padding:44px 0 56px;}
  .lead-card{padding:22px 16px;}
  .hero-tags span{font-size:.8rem;padding:6px 11px;}
  .section{padding:64px 0;}
  .wrap{padding:0 16px;}
}

/* ====== prefers-reduced-motion ====== */
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
  .wa-float{animation:none;}
  .hero-stripes{animation:none;}
  .sakura-petal{display:none;}
}

/* ====== Ajustes pós-protótipo: imagens reais, LGPD, página legal ====== */
html{scroll-padding-top:var(--header-h);}
.ph:not([data-label])::after{content:none;}
.ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.lead-legal{margin-top:12px;font-size:.78rem;line-height:1.5;color:var(--text-mute);text-align:center;}
.lead-legal a{color:var(--purple);text-decoration:underline;}

.legal{padding:72px 0 96px;}
.legal .wrap{max-width:860px;}
.legal h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:10px;}
.legal h2{font-size:1.45rem;margin:44px 0 14px;}
.legal p,.legal li{color:var(--text-soft);margin-bottom:12px;}
.legal a:not(.btn){color:var(--purple);text-decoration:underline;}
.legal .meta{color:var(--text-mute);font-size:.95rem;margin-bottom:28px;}
.legal table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.95rem;}
.legal th,.legal td{border:1px solid var(--border);padding:12px 14px;text-align:left;vertical-align:top;}
.legal th{background:var(--purple-50);color:#241246;}
@media(max-width:760px){.legal table{display:block;overflow-x:auto;}.legal th,.legal td{min-width:160px;}}

/* ====== Mobile: header e hero cabendo em 375px ====== */
.hero-inner > *,.cta-final .wrap > *{min-width:0;}
@media(max-width:560px){
  .brand{white-space:normal;font-size:1rem;line-height:1.15;}
  .brand .mark{width:36px;height:36px;border-radius:11px;}
  .nav{gap:12px;}
  .nav-actions .btn--purple{padding:10px 14px;min-height:44px;font-size:.85rem;}
}
.legal p,.legal li{overflow-wrap:anywhere;}

/* ====== Página de galeria ====== */
.gallery-title{font-size:clamp(2rem,4vw,2.85rem);}
.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;grid-auto-flow:dense;gap:10px;}
.photo-grid button{padding:0;border:0;border-radius:16px;overflow:hidden;cursor:zoom-in;background:var(--purple-50);transition:transform .24s ease, box-shadow .24s ease;}
.photo-grid button:hover{transform:scale(1.015);box-shadow:var(--shadow-lg);}
.photo-grid .wide{grid-column:span 2;}
.photo-grid .tall{grid-row:span 2;}
.photo-grid img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;}
@media(max-width:900px){.photo-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px;}}
@media(max-width:480px){.photo-grid{gap:6px;grid-auto-rows:150px;}}
.gallery-cta{grid-template-columns:1fr !important;text-align:center;justify-items:center;}
.gallery-cta p{margin-left:auto;margin-right:auto;}
.gallery-cta-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:30px;}

.lightbox{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh;overflow:visible;}
.lightbox::backdrop{background:rgba(20,8,40,.88);}
.lightbox img{max-width:100%;max-height:82vh;border-radius:14px;margin:0 auto;}
.lightbox-cap{color:#e9e0fa;text-align:center;margin-top:12px;font-size:.95rem;}
.lightbox button{position:absolute;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#241246;font-size:1.8rem;line-height:1;cursor:pointer;display:grid;place-items:center;}
.lb-close{top:-14px;right:-14px;}
.lb-prev{left:-24px;top:42%;}
.lb-next{right:-24px;top:42%;}
@media(max-width:600px){.lb-prev{left:6px;}.lb-next{right:6px;}.lb-close{top:6px;right:6px;}}

/* ====== Ilustrações SVG animadas (terapias + mandala do hero) ====== */
.ph > .illo{position:absolute;inset:0;width:100%;height:100%;display:block;}
.illo :is(.pop,.brush,.sway-slow,.beat,.wave,.rise,.ear-l,.ear-r,.blink,.tongue,.paw){transform-box:fill-box;transform-origin:center;}
.illo .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:illoDraw 7s ease-in-out infinite;}
@keyframes illoDraw{0%{stroke-dashoffset:1}35%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:-1}}
.illo .pop{animation:illoPop 3.2s ease-in-out infinite;}
@keyframes illoPop{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.illo .brush{transform-origin:100% 0%;animation:illoBrush 3.5s ease-in-out infinite;}
@keyframes illoBrush{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(6deg)}}
.illo .sway-slow{transform-origin:50% 0%;animation:illoSway 6s ease-in-out infinite;}
@keyframes illoSway{0%,100%{transform:rotate(-.6deg)}50%{transform:rotate(.6deg)}}
.illo .beat{animation:illoBeat 1.6s ease-in-out infinite;}
@keyframes illoBeat{0%,100%{transform:scale(1)}15%{transform:scale(1.09)}30%{transform:scale(.98)}45%{transform:scale(1.05)}}
.illo .wave{opacity:0;animation:illoWave 2.4s ease-out infinite;}
@keyframes illoWave{0%{opacity:0;transform:scale(.9)}30%{opacity:1}100%{opacity:0;transform:scale(1.08)}}
.illo .rise{opacity:0;animation:illoRise 5.5s ease-in-out infinite;}
@keyframes illoRise{0%{opacity:0;transform:translate(0,30px) rotate(-8deg)}20%{opacity:1}50%{transform:translate(10px,-50px) rotate(6deg)}80%{opacity:1}100%{opacity:0;transform:translate(-6px,-120px) rotate(-4deg)}}
.illo .ear-l{transform-origin:70% 10%;animation:illoEarL 2.2s ease-in-out infinite;}
.illo .ear-r{transform-origin:30% 10%;animation:illoEarR 2.2s ease-in-out infinite;}
@keyframes illoEarL{0%,100%{transform:rotate(0)}50%{transform:rotate(9deg)}}
@keyframes illoEarR{0%,100%{transform:rotate(0)}50%{transform:rotate(-9deg)}}
.illo .blink{animation:illoBlink 4.5s infinite;}
@keyframes illoBlink{0%,94%,100%{transform:scaleY(1)}97%{transform:scaleY(.1)}}
.illo .tongue{transform-origin:50% 0%;animation:illoTongue 1.1s ease-in-out infinite;}
@keyframes illoTongue{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.25)}}
.illo .paw{opacity:0;animation:illoPaw 4s ease-in-out infinite;}
@keyframes illoPaw{0%,10%{opacity:0;transform:scale(.6)}25%,70%{opacity:1;transform:scale(1)}90%,100%{opacity:0}}
.illo .d2{animation-delay:.8s}.illo .d3{animation-delay:1.6s}.illo .d4{animation-delay:2.2s}.illo .d5{animation-delay:2.8s}
.illo .r2{animation-delay:1.4s}.illo .r3{animation-delay:2.7s}.illo .r4{animation-delay:4s}
.illo .p2{animation-delay:.5s}.illo .p3{animation-delay:1s}.illo .p4{animation-delay:1.5s}

.hero-mandala{position:absolute;z-index:2;pointer-events:none;width:760px;height:760px;left:-240px;bottom:-300px;opacity:.22;}
.hero-mandala .m-draw{stroke-dasharray:1;stroke-dashoffset:1;stroke-width:1.4;animation:mandalaDraw 3.2s cubic-bezier(.4,0,.2,1) .3s forwards;}
.hero-mandala .m2{animation-delay:.9s}.hero-mandala .m3{animation-delay:1.5s}.hero-mandala .m4{animation-delay:2.1s}
.hero-mandala circle.m3{stroke-dasharray:2 10;stroke-dashoffset:0;opacity:0;animation:mandalaFade 2s ease 1.8s forwards;}
@keyframes mandalaDraw{to{stroke-dashoffset:0}}
@keyframes mandalaFade{to{opacity:1}}
.mandala-spin{transform-origin:0 0;animation:mandalaSpin 140s linear infinite;}
@keyframes mandalaSpin{to{transform:rotate(360deg)}}
@media(max-width:920px){.hero-mandala{width:520px;height:520px;left:auto;right:-220px;bottom:auto;top:-160px;opacity:.16;}}

@media(prefers-reduced-motion:reduce){
  .illo *,.hero-mandala *{animation:none!important;}
  .illo .draw,.hero-mandala .m-draw{stroke-dashoffset:0;}
  .illo .rise,.illo .paw,.illo .wave,.hero-mandala circle.m3{opacity:1;}
}

/* ====== H1 com selo de palavra-chave (visual igual ao selo + título de antes) ====== */
.hero h1 .pill{font-family:'Inter',system-ui,sans-serif;letter-spacing:0;line-height:1.3;}
.hero h1 .h1-main{display:block;}

/* ====== Perguntas frequentes ====== */
.faq{max-width:820px;margin:0 auto;display:grid;gap:14px;}
.faq details{background:#fff;border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:0 26px;transition:box-shadow .2s,border-color .2s;}
.faq details[open]{border-color:var(--purple-100);box-shadow:var(--shadow);}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font-family:'Poppins',sans-serif;font-weight:600;font-size:1.1rem;color:#241246;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--purple-50);color:var(--purple);display:grid;place-items:center;font-size:1.4rem;line-height:1;transition:transform .2s;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details p{color:var(--text-soft);padding-bottom:22px;margin:0;}
@media(max-width:400px){.faq details{padding:0 18px;}.faq summary{font-size:1rem;}}

/* ====== Logo da marca no cabeçalho e rodapé ====== */
.brand .brand-logo{width:42px;height:42px;flex:0 0 auto;object-fit:contain;}
@media(max-width:560px){.brand .brand-logo{width:36px;height:36px;}}
