/* ============================================================
   CURADORES DE ALMA — site institucional multi-página
   Five.ads · register: brand
   Universo: mata, névoa, noite · verde profundo + papel quente
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  /* verde da mata (superfícies escuras dominantes) */
  --forest-900: oklch(0.205 0.038 154);
  --forest-850: oklch(0.255 0.045 152);
  --forest-800: oklch(0.31 0.052 151);
  --forest-700: oklch(0.40 0.055 150);
  --green:      oklch(0.58 0.085 151);
  --green-soft: oklch(0.74 0.058 150);

  /* marinho (marca / logo / âncoras profundas) */
  --navy-900: oklch(0.195 0.04 256);
  --navy-850: oklch(0.245 0.05 257);
  --navy-800: oklch(0.285 0.055 258);

  /* papel quente (superfícies claras) */
  --paper:    oklch(0.963 0.008 78);
  --paper-2:  oklch(0.928 0.012 76);
  --paper-3:  oklch(0.878 0.016 74);

  /* acentos */
  --wine:     oklch(0.45 0.115 18);
  --wine-deep:oklch(0.37 0.10 18);
  --gold:     oklch(0.82 0.085 78);
  --gold-ink: oklch(0.585 0.10 66);

  /* tinta */
  --ink:      oklch(0.255 0.022 200);
  --ink-soft: oklch(0.42 0.022 190);
  --cream:    oklch(0.94 0.012 90);
  --cream-soft: oklch(0.81 0.02 110);

  /* tipografia */
  --display: "Fraunces", Georgia, serif;
  --body: "Poppins", system-ui, sans-serif;
  --label: "Darker Grotesque", var(--body);

  /* medidas */
  --maxw: 1200px;
  --gutter: clamp(1.25rem, 5vw, 5.5rem);
  --section-y: clamp(4.5rem, 10vw, 10rem);
  --radius: 3px;
  --header-h: 76px;

  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.33, 1, 0.68, 1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  font-family:var(--body); font-weight:300;
  color:var(--ink); background:var(--paper);
  line-height:1.65; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; overflow-x:clip;
}
img{ display:block; max-width:100%; height:auto; image-orientation:from-image; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--green); color:var(--cream); }

/* page transition */
body{ opacity:0; transition:opacity .6s var(--ease); }
body.ready{ opacity:1; }
@media (prefers-reduced-motion: reduce){ body{ opacity:1; } }

/* ---------- Tipografia ---------- */
h1,h2,h3,h4{ font-family:var(--display); font-weight:330; line-height:1.05; letter-spacing:-0.015em; font-optical-sizing:auto; }
h1{ font-size:clamp(2.6rem, 6.2vw, 5.6rem); }
h2{ font-size:clamp(2rem, 4.4vw, 3.7rem); }
h3{ font-size:clamp(1.35rem, 2.3vw, 1.95rem); }
.serif-i{ font-style:italic; font-weight:300; }
p{ max-width:66ch; }
strong{ font-weight:500; }

/* arquitetura de texto: títulos equilibrados (linhas parelhas, nunca 1 palavra solta) */
h1,h2,h3,h4{ text-wrap:balance; }
p,li,summary,figcaption,blockquote,.phero__sub{ text-wrap:pretty; }
br.brw{ display:none; }               /* quebra controlada só no desktop (sub do hero) */
@media (min-width:860px){ br.brw{ display:inline; } }

.eyebrow{
  font-family:var(--label); font-weight:700;
  font-size:clamp(1rem, 1.4vw, 1.2rem); letter-spacing:0.28em;
  text-transform:uppercase; display:inline-flex; align-items:center; gap:0.85rem;
  color:var(--gold-ink);
}
.eyebrow::before{ content:""; width:2.2rem; height:1px; background:currentColor; opacity:0.55; }
.eyebrow.on-dark{ color:var(--green-soft); }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::before{ width:1.6rem; }

/* ---------- Layout ---------- */
.shell{ width:min(100% - var(--gutter)*2, var(--maxw)); margin-inline:auto; }
.shell--wide{ width:min(100% - var(--gutter)*2, 1340px); margin-inline:auto; }
.shell--narrow{ width:min(100% - var(--gutter)*2, 820px); margin-inline:auto; }
section{ position:relative; }
.pad{ padding-block:var(--section-y); }
.center{ text-align:center; }
.center .eyebrow{ justify-content:center; }
.center p{ margin-inline:auto; }
.section-head{ max-width:64ch; margin-inline:auto; margin-bottom:clamp(2.2rem,5vw,4rem); text-align:center; }
.section-head .eyebrow{ justify-content:center; }
.section-head h2{ margin-top:1.1rem; }
.section-head p{ margin-top:1.3rem; margin-inline:auto; color:inherit; opacity:0.85; }

/* ---------- Botões ---------- */
.btn{
  --bg:var(--ink); --fg:var(--paper);
  font-family:var(--body); font-weight:400; font-size:0.8rem;
  letter-spacing:0.14em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:0.7em;
  padding:1.05em 1.9em; background:var(--bg); color:var(--fg);
  border:1px solid var(--bg); border-radius:100px; cursor:pointer;
  transition:transform .5s var(--ease), background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.btn:hover{ transform:translateY(-3px); }
.btn .arrow{ transition:transform .5s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }
.btn--gold{ --bg:var(--gold); --fg:oklch(0.28 0.05 70); border-color:var(--gold); }
.btn--gold:hover{ background:oklch(0.86 0.09 80); border-color:oklch(0.86 0.09 80); }
.btn--green{ --bg:var(--green); --fg:oklch(0.99 0 0); border-color:var(--green); }
.btn--green:hover{ background:oklch(0.64 0.09 151); border-color:oklch(0.64 0.09 151); }
.btn--ghost{ --bg:transparent; --fg:var(--cream); border-color:color-mix(in oklab,var(--cream) 38%,transparent); }
.btn--ghost:hover{ background:var(--cream); --fg:var(--ink); border-color:var(--cream); }
.btn--wine{ --bg:var(--wine); --fg:var(--cream); border-color:var(--wine); }
.btn--wine:hover{ background:var(--wine-deep); border-color:var(--wine-deep); }
/* Instagram na identidade da marca (sem gradiente do IG) */
.btn--ig{ --bg:transparent; --fg:var(--cream); border:1px solid color-mix(in oklab,var(--gold) 62%, transparent); }
.btn--ig .ig-glyph{ width:1.05em; height:1.05em; }
.btn--ig:hover{ background:var(--gold); --fg:oklch(0.28 0.05 70); border-color:var(--gold); }

.textlink{ position:relative; display:inline-block; padding-bottom:2px; font-weight:400; }
.textlink::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .5s var(--ease); }
.textlink:hover::after{ transform:scaleX(1); transform-origin:left; }

/* ============================================================
   HEADER (injetado em todas as páginas)
   ============================================================ */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem var(--gutter);
  transition:padding .5s var(--ease), background .5s var(--ease), box-shadow .5s var(--ease);
}
.site-header.scrolled{
  padding:0.55rem var(--gutter);
  background:color-mix(in oklab, var(--forest-900) 90%, transparent);
  backdrop-filter:blur(14px) saturate(1.1);
  box-shadow:0 1px 0 color-mix(in oklab, var(--cream) 12%, transparent);
}
.brand{ display:flex; align-items:center; gap:0.8rem; z-index:2; }
.brand img{ width:40px; height:40px; border-radius:50%; box-shadow:0 0 0 1px color-mix(in oklab,var(--cream) 22%,transparent); }
.brand .wordmark{ font-family:var(--display); color:var(--cream); font-size:1.08rem; line-height:1; }
.brand .wordmark small{ display:block; font-family:var(--label); font-weight:700; font-size:0.6rem; letter-spacing:0.32em; text-transform:uppercase; color:var(--green-soft); margin-top:3px; }

.nav{ display:flex; align-items:center; gap:0.15rem; }
.nav a.navlink{ position:relative; color:var(--cream-soft); font-size:0.82rem; letter-spacing:0.03em; padding:0.55rem 0.85rem; border-radius:100px; transition:color .4s var(--ease); white-space:nowrap; }
.nav a.navlink::after{ content:""; position:absolute; left:50%; bottom:0.3rem; width:4px; height:4px; border-radius:50%; background:var(--green); opacity:0; transform:translate(-50%,6px) scale(.4); transition:opacity .4s var(--ease), transform .4s var(--ease); }
.nav a.navlink:hover{ color:var(--cream); }
.nav a.navlink.active{ color:var(--cream); }
.nav a.navlink.active::after{ opacity:1; transform:translate(-50%,0) scale(1); }
.nav .btn{ margin-left:0.7rem; }
.nav-toggle{ display:none; }

/* ============================================================
   PAGE HERO (banner curto no topo de cada página)
   ============================================================ */
.phero{ position:relative; min-height:62vh; display:flex; align-items:flex-end; color:var(--cream); background:var(--forest-900); overflow:hidden; }
.phero--tall{ min-height:100svh; }
.phero__media{ position:absolute; inset:0; z-index:0; }
.phero__media img, .phero__media video{ width:100%; height:100%; object-fit:cover; object-position:center 32%; transform:scale(1.06); }
.phero__media::after{ content:""; position:absolute; inset:0; background:
  linear-gradient(180deg, color-mix(in oklab,var(--forest-900) 60%,transparent), transparent 30%),
  linear-gradient(0deg, var(--forest-900) 3%, color-mix(in oklab,var(--forest-900) 28%,transparent) 50%, transparent 80%); }
.phero__inner{ position:relative; z-index:1; padding-block:clamp(3rem,7vh,6rem) clamp(3rem,7vh,5.5rem); }
.phero h1{ margin-top:1.1rem; }
.phero h1 em{ color:var(--gold); }
.phero__sub{ margin-top:1.4rem; max-width:62ch; font-size:clamp(1.02rem,1.45vw,1.28rem); color:var(--cream-soft); }
.phero__actions{ display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:2.1rem; }
.scrollcue{ position:absolute; right:var(--gutter); bottom:clamp(3rem,7vh,5.5rem); z-index:1; writing-mode:vertical-rl; font-family:var(--label); font-weight:700; letter-spacing:0.3em; text-transform:uppercase; font-size:0.74rem; color:var(--cream-soft); display:flex; align-items:center; gap:1rem; }
.scrollcue::after{ content:""; width:1px; height:54px; background:linear-gradient(var(--green),transparent); animation:drop 2.4s var(--ease) infinite; }
@keyframes drop{ 0%{transform:scaleY(0);transform-origin:top;} 45%{transform:scaleY(1);transform-origin:top;} 55%{transform:scaleY(1);transform-origin:bottom;} 100%{transform:scaleY(0);transform-origin:bottom;} }
@media (max-width:720px){ .scrollcue{ display:none; } }

/* ============================================================
   Surfaces utilitárias
   ============================================================ */
.s-paper{ background:var(--paper); color:var(--ink); }
.s-paper2{ background:var(--paper-2); color:var(--ink); }
.s-forest{ background:var(--forest-900); color:var(--cream); }
.s-forest2{ background:var(--forest-850); color:var(--cream); }
.s-navy{ background:var(--navy-900); color:var(--cream); }
.s-wine{ background:var(--wine-deep); color:var(--cream); }
.on-dark .eyebrow{ color:var(--green-soft); }
.on-dark h2 em, .on-dark h3 em{ color:var(--gold); }

/* ---------- manifesto ---------- */
.manifesto{ text-align:center; }
.manifesto .word{ font-family:var(--display); font-style:italic; font-weight:300; font-size:clamp(2.8rem,8vw,6.5rem); line-height:1; color:var(--wine); margin-bottom:1.3rem; }
.s-forest .manifesto .word, .s-forest2 .manifesto .word{ color:var(--gold); }
.manifesto p{ margin-inline:auto; font-size:clamp(1.1rem,1.8vw,1.45rem); }
.manifesto .sign{ margin-top:2rem; font-family:var(--label); font-weight:700; letter-spacing:0.26em; text-transform:uppercase; font-size:0.88rem; color:var(--gold-ink); }
.s-forest .manifesto .sign{ color:var(--green-soft); }

/* ---------- stats (count-up) ---------- */
.stats{ display:flex; flex-wrap:wrap; gap:clamp(1.6rem,5vw,4rem); justify-content:center; }
.stat{ text-align:center; }
.stat b{ display:block; font-family:var(--display); font-weight:330; font-size:clamp(2.6rem,5vw,4rem); line-height:1; color:var(--gold); }
.stat small{ display:block; margin-top:0.6rem; font-family:var(--label); font-weight:700; letter-spacing:0.16em; text-transform:uppercase; font-size:0.82rem; color:var(--cream-soft); }

/* ============================================================
   PESSOAS (Quem Somos)
   ============================================================ */
.people{ display:grid; gap:clamp(2.5rem,5vw,4.5rem); }
.person{ display:grid; grid-template-columns:minmax(0,0.82fr) minmax(0,1.18fr); gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.person:nth-child(even){ grid-template-columns:minmax(0,1.18fr) minmax(0,0.82fr); }
.person:nth-child(even) .person__img{ order:2; }
.person__img{ position:relative; aspect-ratio:4/5; overflow:hidden; border-radius:var(--radius); }
.person__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.person:hover .person__img img{ transform:scale(1.05); }
.person__name{ display:flex; align-items:baseline; gap:1rem; flex-wrap:wrap; }
.person__role{ font-family:var(--label); font-weight:700; letter-spacing:0.18em; text-transform:uppercase; font-size:0.8rem; color:var(--green); }
.person p{ margin-top:1.1rem; opacity:0.9; }
.person .meta{ margin-top:1.5rem; display:flex; gap:1.6rem; flex-wrap:wrap; }
.person .meta span{ display:flex; flex-direction:column; font-size:0.84rem; opacity:0.85; }
.person .meta b{ font-family:var(--display); font-size:1.5rem; font-weight:330; opacity:1; }
.s-forest .person .meta b{ color:var(--cream); }

/* ============================================================
   PILARES / MÉTODO
   ============================================================ */
.split{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.split--rev .split__media{ order:2; }
.split__media{ position:relative; aspect-ratio:3/4; border-radius:var(--radius); overflow:hidden; }
.split__media img, .split__media video{ width:100%; height:100%; object-fit:cover; }
.split__media .tag{ position:absolute; left:1.3rem; bottom:1.3rem; font-family:var(--display); font-style:italic; color:var(--cream); font-size:1.15rem; text-shadow:0 2px 18px rgba(0,0,0,.55); }
.pillars{ margin-top:2.2rem; }
.pillar{ padding:1.5rem 0; border-top:1px solid color-mix(in oklab,currentColor 16%,transparent); display:grid; grid-template-columns:auto 1fr; gap:1.3rem; align-items:start; }
.pillar:last-child{ border-bottom:1px solid color-mix(in oklab,currentColor 16%,transparent); }
.pillar .num{ font-family:var(--display); font-style:italic; font-size:1.5rem; color:var(--green); line-height:1; }
.s-paper .pillar .num, .s-paper2 .pillar .num{ color:var(--wine); }
.pillar h3{ font-size:1.25rem; margin-bottom:0.25rem; }
.pillar p{ opacity:0.82; font-size:0.95rem; }

.triptych{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:color-mix(in oklab,currentColor 16%,transparent); border:1px solid color-mix(in oklab,currentColor 16%,transparent); border-radius:var(--radius); overflow:hidden; }
.triptych > div{ padding:1.8rem; background:var(--paper-2); }
.s-forest .triptych > div, .s-forest2 .triptych > div{ background:var(--forest-850); }
.triptych .x{ font-family:var(--display); font-style:italic; color:var(--wine); font-size:1.1rem; }
.s-forest .triptych .x{ color:var(--gold); }
.triptych p{ font-size:0.9rem; opacity:0.82; margin-top:0.5rem; }

/* ============================================================
   QUOTE (parallax escuro)
   ============================================================ */
.quote{ min-height:74vh; display:flex; align-items:center; color:var(--cream); background:var(--forest-900); overflow:hidden; }
.quote__media{ position:absolute; inset:0; z-index:0; }
.quote__media img{ width:100%; height:100%; object-fit:cover; opacity:0.45; }
.quote__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--forest-900) 6%, color-mix(in oklab,var(--forest-900) 30%,transparent) 72%); }
.quote .shell{ position:relative; z-index:1; }
.quote blockquote{ font-family:var(--display); font-weight:300; font-size:clamp(1.7rem,3.8vw,3.2rem); line-height:1.18; max-width:22ch; }
.quote cite{ display:block; margin-top:1.8rem; font-style:normal; font-family:var(--label); font-weight:700; letter-spacing:0.22em; text-transform:uppercase; font-size:0.82rem; color:var(--green-soft); }

/* ============================================================
   JORNADAS (bento variado)
   ============================================================ */
.journey{ display:grid; gap:clamp(0.6rem,1vw,0.85rem); grid-template-columns:repeat(12,1fr); }
.jcard{ position:relative; overflow:hidden; border-radius:var(--radius); display:flex; flex-direction:column; justify-content:flex-end; min-height:330px; padding:1.7rem; color:var(--cream); background:var(--forest-800); isolation:isolate; }
.jcard img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1.2s var(--ease); }
.jcard::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, color-mix(in oklab,var(--forest-900) 92%,transparent), color-mix(in oklab,var(--forest-900) 28%,transparent) 60%, transparent); }
.jcard:hover img{ transform:scale(1.06); }
.jcard .kicker{ font-family:var(--label); font-weight:700; letter-spacing:0.2em; text-transform:uppercase; font-size:0.74rem; color:var(--gold); }
.jcard h3{ margin:0.5rem 0 0.45rem; }
.jcard p{ font-size:0.92rem; color:var(--cream-soft); }
.jcard .go{ margin-top:1.2rem; font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; display:inline-flex; gap:0.5em; align-items:center; }
.jcard .go .arrow{ transition:transform .5s var(--ease); }
.jcard:hover .go .arrow{ transform:translateX(5px); }
.jcard--xl{ grid-column:span 7; min-height:430px; }
.jcard--lg{ grid-column:span 5; min-height:430px; }
.jcard--md{ grid-column:span 5; }
.jcard--sm{ grid-column:span 4; background:var(--wine-deep); }
.jcard--xs{ grid-column:span 3; background:var(--navy-850); }
.jcard--sm::after,.jcard--xs::after{ display:none; }
.jcard--sm .price,.jcard--xs .price{ font-family:var(--display); font-style:italic; color:var(--gold); margin-top:0.3rem; }

/* ============================================================
   GALERIA (mosaico foto + vídeo)
   ============================================================ */
.gallery{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(0.7rem,1.4vw,1.1rem); grid-auto-flow:dense; }
.gtile{ position:relative; overflow:hidden; border-radius:var(--radius); background:var(--forest-850); }
.gtile img, .gtile video{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.1s var(--ease); }
.gtile:hover img, .gtile:hover video{ transform:scale(1.05); }
.gtile .cap{ position:absolute; left:1rem; bottom:0.9rem; z-index:2; color:var(--cream); font-family:var(--label); font-weight:700; letter-spacing:0.14em; text-transform:uppercase; font-size:0.72rem; text-shadow:0 2px 14px rgba(0,0,0,.6); }
.gtile::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,20,14,.55), transparent 45%); opacity:0; transition:opacity .5s var(--ease); }
.gtile:hover::after{ opacity:1; }
.gtile .play{ position:absolute; top:0.9rem; right:0.9rem; z-index:2; width:34px; height:34px; border-radius:50%; background:color-mix(in oklab,var(--forest-900) 55%,transparent); border:1px solid color-mix(in oklab,var(--cream) 40%,transparent); display:grid; place-items:center; color:var(--cream); }
.gtile .play svg{ width:13px; height:13px; }
.g-tall{ grid-column:span 4; grid-row:span 2; aspect-ratio:auto; }
.g-wide{ grid-column:span 8; }
.g-sq{ grid-column:span 4; }
.g-tall img, .g-tall video{ height:100%; }
.g-wide img, .g-wide video{ aspect-ratio:16/10; }
.g-sq img, .g-sq video{ aspect-ratio:1/1; }

/* masonry (página galeria): respeita o aspecto natural de cada mídia */
.masonry{ columns:3 300px; column-gap:clamp(0.7rem,1.4vw,1.1rem); }
.masonry .gtile{ break-inside:avoid; margin-bottom:clamp(0.7rem,1.4vw,1.1rem); display:block; }
.masonry .gtile img, .masonry .gtile video{ width:100%; height:auto; aspect-ratio:auto; }
@media (max-width:680px){ .masonry{ columns:2 160px; } }

/* ============================================================
   LIVRO
   ============================================================ */
.livro .split__media{ aspect-ratio:3/4; box-shadow:0 30px 70px -30px rgba(0,0,0,.6); }

/* ============================================================
   REVIEWS (Google)
   ============================================================ */
.reviews-head{ display:flex; flex-direction:column; align-items:center; gap:0.8rem; text-align:center; margin-bottom:clamp(2rem,4vw,3rem); }
.gscore{ display:inline-flex; align-items:center; gap:0.9rem; }
.gscore .num{ font-family:var(--display); font-size:2.6rem; line-height:1; }
.stars{ display:inline-flex; gap:2px; color:var(--gold); }
.stars svg{ width:18px; height:18px; }
.gsub{ font-size:0.86rem; opacity:0.8; display:inline-flex; align-items:center; gap:0.5rem; }
.glogo{ font-weight:500; }
.reviews{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(1rem,2vw,1.5rem); }
.review{ padding:1.8rem; border-radius:var(--radius); background:var(--paper); border:1px solid var(--paper-3); display:flex; flex-direction:column; gap:1rem; }
.s-forest .review, .s-forest2 .review{ background:var(--forest-850); border-color:color-mix(in oklab,var(--cream) 12%,transparent); }
.review .stars svg{ width:15px; height:15px; }
.review p{ font-size:0.98rem; line-height:1.6; }
.review .who{ display:flex; align-items:center; gap:0.8rem; margin-top:auto; }
.review .ava{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-family:var(--display); color:var(--cream); background:var(--green); }
.review .who b{ font-weight:500; font-size:0.92rem; }
.review .who small{ display:block; opacity:0.65; font-size:0.78rem; }

/* ============================================================
   CTA Instagram / faixa
   ============================================================ */
.igband{ position:relative; overflow:hidden; text-align:center; }
.igband::before{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 120%, color-mix(in oklab,var(--green) 24%,transparent), transparent 60%); }
.igband .shell{ position:relative; z-index:1; }
.igband h2{ margin:1rem auto 1.1rem; max-width:20ch; }
.igband h2 em{ color:var(--gold); }
.igband p{ margin-inline:auto; opacity:0.85; }
.igband .actions{ display:flex; gap:0.8rem; justify-content:center; flex-wrap:wrap; margin-top:2.2rem; }
.ighandle{ margin-top:1.2rem; font-family:var(--label); font-weight:700; letter-spacing:0.16em; text-transform:uppercase; font-size:0.9rem; }

/* form */
.form{ display:flex; gap:0.6rem; max-width:520px; margin:0 auto; flex-wrap:wrap; }
.form input{ flex:1 1 240px; padding:1.05em 1.4em; border-radius:100px; border:1px solid color-mix(in oklab,currentColor 25%,transparent); background:color-mix(in oklab,var(--cream) 7%,transparent); color:inherit; font-family:var(--body); font-size:0.95rem; }
.s-paper .form input, .s-paper2 .form input{ background:var(--paper); }
.form input:focus{ outline:none; border-color:var(--green); }

/* ============================================================
   CONTATO grid
   ============================================================ */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); }
.contact-list{ display:grid; gap:1.4rem; }
.contact-item{ display:grid; grid-template-columns:auto 1fr; gap:1.1rem; align-items:start; padding-bottom:1.4rem; border-bottom:1px solid color-mix(in oklab,currentColor 14%,transparent); }
.contact-item .ic{ width:42px; height:42px; border-radius:50%; display:grid; place-items:center; border:1px solid color-mix(in oklab,currentColor 22%,transparent); color:var(--green); }
.contact-item .ic svg{ width:18px; height:18px; }
.contact-item h4{ font-family:var(--label); font-weight:700; letter-spacing:0.14em; text-transform:uppercase; font-size:0.78rem; opacity:0.7; }
.contact-item a, .contact-item p{ font-size:1.05rem; margin-top:2px; }

/* ============================================================
   RODAPÉ
   ============================================================ */
.site-footer{ background:var(--forest-900); color:var(--cream-soft); border-top:1px solid color-mix(in oklab,var(--cream) 10%,transparent); }
.site-footer .shell{ padding-block:clamp(3rem,6vw,5rem); }
.site-footer .top{ display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:2.5rem; }
.site-footer .brand{ flex-direction:row; }
.site-footer .brand .wordmark{ font-size:1.25rem; }
.site-footer .blurb{ margin-top:1.3rem; max-width:34ch; font-size:0.92rem; }
.site-footer h4{ font-family:var(--label); font-weight:700; letter-spacing:0.2em; text-transform:uppercase; font-size:0.8rem; color:var(--green-soft); margin-bottom:1rem; }
.site-footer ul{ list-style:none; display:grid; gap:0.55rem; font-size:0.92rem; }
.site-footer ul a:hover{ color:var(--cream); }
.site-footer .bottom{ margin-top:clamp(2.5rem,5vw,4rem); padding-top:1.5rem; border-top:1px solid color-mix(in oklab,var(--cream) 10%,transparent); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:0.78rem; color:color-mix(in oklab,var(--cream) 55%,transparent); }
.socials{ display:flex; gap:0.8rem; margin-top:1.3rem; }
.socials a{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; border:1px solid color-mix(in oklab,var(--cream) 22%,transparent); transition:background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease); }
.socials a:hover{ background:var(--green); color:var(--forest-900); transform:translateY(-3px); border-color:var(--green); }
.socials svg{ width:17px; height:17px; }

/* ============================================================
   LINK NA BIO (estilo Linktree)
   ============================================================ */
.linkbio{ min-height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:clamp(2.5rem,8vw,4.5rem) var(--gutter); text-align:center; position:relative; overflow:hidden; background:var(--forest-900); color:var(--cream); }
.linkbio__bg{ position:absolute; inset:0; z-index:0; }
.linkbio__bg img{ width:100%; height:100%; object-fit:cover; opacity:0.20; }
.linkbio__bg::after{ content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 50% -10%, transparent, var(--forest-900) 72%); }
.linkbio__inner{ position:relative; z-index:1; width:min(100%, 460px); }
.linkbio__logo{ width:92px; height:92px; border-radius:50%; margin:0 auto 1.2rem; box-shadow:0 0 0 1px color-mix(in oklab,var(--cream) 22%,transparent), 0 22px 50px -22px rgba(0,0,0,.6); }
.linkbio h1{ font-size:clamp(1.7rem,5vw,2.3rem); }
.linkbio .handle{ margin-top:0.5rem; font-family:var(--label); font-weight:700; letter-spacing:0.2em; text-transform:uppercase; font-size:0.82rem; color:var(--green-soft); }
.linkbio .tag{ margin:0.9rem auto 0; max-width:34ch; color:var(--cream-soft); font-size:0.96rem; }
.linklist{ margin-top:2.1rem; display:flex; flex-direction:column; gap:0.65rem; }
.linkbtn{ position:relative; display:flex; align-items:center; gap:0.95rem; width:100%; padding:1rem 1.3rem; border-radius:100px; background:color-mix(in oklab,var(--cream) 7%,transparent); border:1px solid color-mix(in oklab,var(--cream) 18%,transparent); color:var(--cream); text-align:left; transition:transform .5s var(--ease), background .4s var(--ease), border-color .4s var(--ease), color .4s var(--ease); }
.linkbtn:hover{ transform:translateY(-2px); background:var(--cream); color:var(--forest-900); border-color:var(--cream); }
.linkbtn .ic{ width:32px; height:32px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; background:color-mix(in oklab,var(--gold) 16%,transparent); color:var(--gold); transition:background .4s var(--ease); }
.linkbtn:hover .ic{ background:color-mix(in oklab,var(--forest-900) 12%,transparent); }
.linkbtn .ic svg{ width:16px; height:16px; }
.linkbtn .tt{ flex:1; min-width:0; }
.linkbtn .tt b{ display:block; font-family:var(--display); font-weight:400; font-size:1.06rem; line-height:1.12; }
.linkbtn .tt small{ display:block; font-size:0.76rem; opacity:0.7; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.linkbtn .chev{ flex:0 0 auto; opacity:0.5; transition:transform .5s var(--ease); }
.linkbtn:hover .chev{ transform:translateX(4px); opacity:1; }
.linkbtn--site{ background:var(--gold); color:oklch(0.27 0.05 70); border-color:var(--gold); }
.linkbtn--site .ic{ background:color-mix(in oklab,var(--forest-900) 12%,transparent); color:oklch(0.27 0.05 70); }
.linkbtn--site:hover{ background:oklch(0.87 0.09 80); color:oklch(0.25 0.05 70); border-color:oklch(0.87 0.09 80); }
.linkbtn--wa{ background:var(--green); color:oklch(0.99 0 0); border-color:var(--green); }
.linkbtn--wa .ic{ background:color-mix(in oklab,#000 14%,transparent); color:#fff; }
.linkbtn--wa:hover{ background:oklch(0.64 0.09 151); color:#fff; border-color:oklch(0.64 0.09 151); }
.linkbio__foot{ margin-top:2rem; display:flex; flex-direction:column; align-items:center; gap:0.9rem; }
.linkbio__foot .ig{ display:inline-flex; align-items:center; gap:0.55rem; color:var(--green-soft); font-family:var(--label); font-weight:700; letter-spacing:0.16em; text-transform:uppercase; font-size:0.8rem; }
.linkbio__foot .ig svg{ width:18px; height:18px; }
.linkbio__foot small{ color:color-mix(in oklab,var(--cream) 45%,transparent); font-size:0.74rem; }

/* faixa "voltar" no topo das LPs de produto */
.lp-back{ position:fixed; top:1rem; left:var(--gutter); z-index:101; }
.lp-back a{ display:inline-flex; align-items:center; gap:0.5rem; padding:0.6rem 1.1rem; border-radius:100px; background:color-mix(in oklab,var(--forest-900) 70%,transparent); backdrop-filter:blur(10px); border:1px solid color-mix(in oklab,var(--cream) 22%,transparent); color:var(--cream); font-size:0.78rem; letter-spacing:0.06em; transition:background .4s var(--ease); }
.lp-back a:hover{ background:var(--forest-900); }

/* ============================================================
   LP de conversão — componentes
   ============================================================ */
/* micro-prova no hero */
.trustrow{ display:flex; gap:1.4rem; flex-wrap:wrap; margin-top:1.8rem; }
.trustrow span{ font-size:0.82rem; color:var(--cream-soft); display:inline-flex; align-items:center; gap:0.5rem; }
.trustrow b{ color:var(--gold); font-family:var(--display); font-weight:400; font-size:1.05rem; }

/* para quem é / não é */
.forwho{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1rem,2.5vw,1.8rem); }
.fitcol{ padding:clamp(1.6rem,3vw,2.2rem); border-radius:var(--radius); border:1px solid color-mix(in oklab,currentColor 16%,transparent); }
.fitcol--yes{ background:color-mix(in oklab,var(--green) 9%, transparent); }
.fitcol h3{ display:flex; align-items:center; gap:0.6rem; margin-bottom:1.1rem; font-size:1.25rem; }
.fitcol h3 .badge{ width:30px; height:30px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; }
.fitcol--yes .badge{ background:color-mix(in oklab,var(--green) 28%,transparent); color:var(--green-soft); }
.fitcol--no .badge{ background:color-mix(in oklab,var(--wine) 26%,transparent); color:oklch(0.74 0.1 18); }
.fitcol .badge svg{ width:16px; height:16px; }
.fitlist{ list-style:none; display:grid; gap:0.8rem; }
.fitlist li{ display:grid; grid-template-columns:auto 1fr; gap:0.7rem; align-items:start; font-size:0.96rem; opacity:0.92; }
.fitlist .mk{ width:20px; height:20px; flex:0 0 auto; margin-top:2px; color:var(--green); }
.fitcol--no .fitlist .mk{ color:oklch(0.7 0.1 18); }
.fitlist .mk svg{ width:20px; height:20px; }

/* como funciona — passos */
.steps{ display:grid; gap:0; }
.stepi{ padding:1.5rem 0; border-top:1px solid color-mix(in oklab,currentColor 15%,transparent); display:grid; grid-template-columns:auto 1fr; gap:1.4rem; align-items:start; }
.stepi:last-child{ border-bottom:1px solid color-mix(in oklab,currentColor 15%,transparent); }
.stepi .n{ font-family:var(--display); font-style:italic; font-size:1.6rem; line-height:1; color:var(--gold); }
.s-paper .stepi .n, .s-paper2 .stepi .n{ color:var(--wine); }
.stepi h3{ font-size:1.2rem; margin-bottom:0.25rem; }
.stepi p{ opacity:0.82; font-size:0.96rem; }

/* oferta / campo de compra */
.offer{ width:min(100%,660px); margin-inline:auto; background:var(--paper); border:1px solid var(--paper-3); border-radius:calc(var(--radius)*4); padding:clamp(1.8rem,4vw,3rem); text-align:center; box-shadow:0 40px 90px -50px rgba(0,0,0,.4); }
.s-forest .offer, .s-forest2 .offer, .s-navy .offer{ background:var(--forest-850); border-color:color-mix(in oklab,var(--cream) 14%,transparent); }
.offer .tagline{ font-family:var(--label); font-weight:700; letter-spacing:0.2em; text-transform:uppercase; font-size:0.8rem; color:var(--gold-ink); }
.s-forest .offer .tagline, .s-forest2 .offer .tagline{ color:var(--green-soft); }
.offer h3{ font-size:clamp(1.5rem,3vw,2rem); margin:0.5rem 0 0.3rem; }
.offer__price{ font-family:var(--display); font-weight:330; font-size:clamp(2.4rem,6vw,3.4rem); line-height:1; margin:1rem 0 0.2rem; }
.offer__price small{ font-size:1rem; opacity:0.65; font-family:var(--body); }
.offer__from{ font-size:0.82rem; opacity:0.65; }
.offer__list{ list-style:none; display:grid; gap:0.75rem; text-align:left; max-width:400px; margin:1.7rem auto; }
.offer__list li{ display:grid; grid-template-columns:auto 1fr; gap:0.7rem; align-items:start; font-size:0.96rem; }
.offer__list .mk{ width:20px; height:20px; color:var(--green); flex:0 0 auto; margin-top:1px; }
.offer__list .mk svg{ width:20px; height:20px; }
.offer .btn{ width:100%; justify-content:center; margin-top:0.6rem; }
.guarantee{ display:inline-flex; align-items:center; gap:0.7rem; margin-top:1.4rem; font-size:0.86rem; opacity:0.85; }
.guarantee svg{ width:22px; height:22px; color:var(--green); flex:0 0 auto; }

/* FAQ (accordion nativo) */
.faq{ max-width:780px; margin-inline:auto; display:grid; gap:0.6rem; }
.faq details{ border:1px solid color-mix(in oklab,currentColor 16%,transparent); border-radius:var(--radius); padding:1.1rem 1.4rem; transition:background .3s var(--ease); }
.faq details[open]{ background:color-mix(in oklab,currentColor 4%,transparent); }
.faq summary{ cursor:pointer; font-family:var(--display); font-size:1.12rem; list-style:none; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.4rem; line-height:1; opacity:0.6; transition:transform .3s var(--ease); }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ margin-top:0.9rem; opacity:0.82; font-size:0.96rem; max-width:none; }

@media (max-width:760px){
  .forwho{ grid-template-columns:1fr; }
  .trustrow{ gap:1rem 1.4rem; }
}

/* ============================================================
   CONVITE DE EVENTO (inauguração)
   ============================================================ */
.invite{ min-height:100svh; display:flex; align-items:center; justify-content:center; text-align:center; position:relative; overflow:hidden; color:var(--cream); background:var(--forest-900); padding:clamp(2.5rem,7vw,5rem) var(--gutter); }
.invite__bg{ position:absolute; inset:0; z-index:0; }
.invite__bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.05); }
.invite__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, color-mix(in oklab,var(--forest-900) 76%,transparent), color-mix(in oklab,var(--forest-900) 93%,transparent)); }
.invite__inner{ position:relative; z-index:1; width:min(100%, 760px); }
.invite__logo{ width:72px; height:72px; border-radius:50%; margin:0 auto 1.6rem; box-shadow:0 0 0 1px color-mix(in oklab,var(--cream) 24%,transparent), 0 18px 46px -22px rgba(0,0,0,.6); }
.invite .kicker{ font-family:var(--label); font-weight:700; letter-spacing:0.3em; text-indent:0.3em; text-transform:uppercase; font-size:0.84rem; color:var(--gold); }
.invite h1{ margin:1rem 0 1.2rem; font-size:clamp(2.3rem,6vw,4.2rem); }
.invite h1 em{ color:var(--gold); }
.invite__lead{ max-width:48ch; margin:0 auto; color:var(--cream-soft); font-size:clamp(1.05rem,1.6vw,1.28rem); text-wrap:balance; }
.invite .kicker{ text-wrap:balance; }
.invite-details .it small{ text-wrap:balance; }
.invite__rule{ width:56px; height:1px; background:color-mix(in oklab,var(--gold) 70%,transparent); margin:clamp(1.8rem,4vw,2.6rem) auto; }
.invite-details{ display:flex; justify-content:center; gap:clamp(1.4rem,5vw,3.6rem); flex-wrap:wrap; margin-bottom:clamp(2rem,4vw,2.6rem); }
.invite-details .it{ display:flex; flex-direction:column; gap:0.45rem; align-items:center; }
.invite-details .it .ic{ color:var(--gold); }
.invite-details .it .ic svg{ width:24px; height:24px; }
.invite-details .it b{ font-family:var(--display); font-weight:330; font-size:1.22rem; }
.invite-details .it small{ font-family:var(--label); font-weight:700; letter-spacing:0.18em; text-indent:0.18em; text-transform:uppercase; font-size:0.72rem; color:var(--cream-soft); }
.invite__actions{ display:flex; gap:0.8rem; justify-content:center; flex-wrap:wrap; }
.invite__foot{ margin-top:clamp(2rem,4vw,2.6rem); font-family:var(--label); font-weight:700; letter-spacing:0.24em; text-indent:0.24em; text-transform:uppercase; font-size:0.78rem; color:var(--green-soft); }
/* Centralização absoluta do convite — reforço à prova de cache/override */
.invite{ text-align:center !important; }
.invite__inner{ text-align:center !important; margin-left:auto !important; margin-right:auto !important; }
.invite__inner > *{ text-align:center !important; }
.invite .kicker, .invite h1, .invite__lead, .invite__foot{ text-align:center !important; margin-left:auto !important; margin-right:auto !important; }
.invite-details{ justify-content:center !important; }
.invite-details .it{ align-items:center !important; text-align:center !important; }
.invite__actions{ justify-content:center !important; }

/* ============================================================
   INSCRIÇÃO (inauguração) + obrigado
   ============================================================ */
.insc{ min-height:100svh; position:relative; overflow:hidden; color:var(--cream); background:var(--forest-900); padding:clamp(3rem,8vw,5rem) var(--gutter); display:flex; align-items:center; justify-content:center; }
.insc__bg{ position:absolute; inset:0; z-index:0; }
.insc__bg img{ width:100%; height:100%; object-fit:cover; }
.insc__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, color-mix(in oklab,var(--forest-900) 82%,transparent), color-mix(in oklab,var(--forest-900) 95%,transparent)); }
.insc__inner{ position:relative; z-index:1; width:min(100%, 600px); text-align:center; }
.insc__logo{ width:64px; height:64px; border-radius:50%; margin:0 auto 1.3rem; box-shadow:0 0 0 1px color-mix(in oklab,var(--cream) 24%,transparent); }
.insc .kicker{ font-family:var(--label); font-weight:700; letter-spacing:0.3em; text-indent:0.3em; text-transform:uppercase; font-size:0.82rem; color:var(--gold); }
.insc h1{ margin:0.9rem 0 1rem; font-size:clamp(2rem,5vw,3.2rem); text-wrap:balance; }
.insc h1 em{ color:var(--gold); }
.insc__lead{ max-width:50ch; margin:0 auto clamp(1.8rem,4vw,2.4rem); color:var(--cream-soft); font-size:1rem; text-wrap:balance; }

.insc-form{ width:min(100%,520px); margin:0 auto; text-align:left; display:grid; gap:1rem; }
.field{ display:grid; gap:0.4rem; }
.field > span{ font-family:var(--label); font-weight:700; letter-spacing:0.12em; text-transform:uppercase; font-size:0.74rem; color:var(--cream-soft); padding-left:0.4rem; }
.insc-form input[type=text],.insc-form input[type=email],.insc-form input[type=tel]{ padding:0.95em 1.3em; border-radius:100px; border:1px solid color-mix(in oklab,var(--cream) 24%,transparent); background:color-mix(in oklab,var(--cream) 7%,transparent); color:var(--cream); font-family:var(--body); font-size:0.98rem; width:100%; }
.insc-form input:focus{ outline:none; border-color:var(--gold); }
.insc-form input::placeholder{ color:color-mix(in oklab,var(--cream) 45%,transparent); }
.svc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; }
.svc{ position:relative; }
.svc input{ position:absolute; opacity:0; inset:0; width:100%; height:100%; cursor:pointer; margin:0; }
.svc span{ display:block; padding:0.9rem 1rem; border-radius:var(--radius); border:1px solid color-mix(in oklab,var(--cream) 18%,transparent); text-align:center; font-size:0.92rem; transition:border-color .3s var(--ease), background .3s var(--ease), color .3s var(--ease); }
.svc input:checked + span{ border-color:var(--gold); background:color-mix(in oklab,var(--gold) 16%,transparent); color:var(--gold); }
.insc-form .btn{ width:100%; justify-content:center; margin-top:0.5rem; }
.insc__note{ margin-top:1.2rem; font-size:0.82rem; color:color-mix(in oklab,var(--cream) 55%,transparent); }
@media (max-width:480px){ .svc-grid{ grid-template-columns:1fr; } }

/* ============================================================
   Reveal
   ============================================================ */
[data-reveal]{ opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal][data-delay="1"]{ transition-delay:.1s; }
[data-reveal][data-delay="2"]{ transition-delay:.2s; }
[data-reveal][data-delay="3"]{ transition-delay:.3s; }
@media (prefers-reduced-motion: reduce){ [data-reveal]{ opacity:1; transform:none; } }

/* ============================================================
   Responsivo
   ============================================================ */
@media (max-width:980px){
  .person, .person:nth-child(even){ grid-template-columns:1fr; }
  .person:nth-child(even) .person__img{ order:0; }
  .person__img{ aspect-ratio:16/11; }
  .split, .split--rev{ grid-template-columns:1fr; }
  .split--rev .split__media{ order:0; }
  .split__media{ aspect-ratio:16/11; }
  .contact-grid{ grid-template-columns:1fr; }
  .site-footer .top{ grid-template-columns:1fr 1fr; }
  .jcard--xl,.jcard--lg,.jcard--md,.jcard--sm,.jcard--xs{ grid-column:span 6; min-height:300px; }
  .g-tall,.g-wide,.g-sq{ grid-column:span 6; grid-row:auto; }
  .g-tall img,.g-tall video{ aspect-ratio:3/4; height:auto; }
}
@media (max-width:860px){
  .nav{ position:fixed; inset:0 0 0 auto; width:min(86vw,360px); flex-direction:column; align-items:flex-start; justify-content:center; gap:0.3rem; background:var(--forest-850); padding:2rem var(--gutter); transform:translateX(100%); transition:transform .6s var(--ease); box-shadow:-30px 0 80px rgba(0,0,0,.5); }
  .nav.open{ transform:none; }
  .nav a.navlink{ font-size:1.12rem; padding:0.65rem 0; }
  .nav .btn{ margin:1rem 0 0; }
  .nav-toggle{ display:flex; flex-direction:column; gap:5px; z-index:120; background:none; border:0; cursor:pointer; padding:8px; }
  .nav-toggle span{ width:26px; height:2px; background:var(--cream); transition:transform .5s var(--ease), opacity .3s; }
  .nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .triptych{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .jcard--xl,.jcard--lg,.jcard--md,.jcard--sm,.jcard--xs{ grid-column:span 12; }
  .g-tall,.g-wide,.g-sq{ grid-column:span 12; }
  .site-footer .top{ grid-template-columns:1fr; }
  .stats{ gap:1.6rem; }
}
