/* ============================================================
   Do Luto à Dança — shared stylesheet
   Design tokens preserved from the original single-page build.
   ============================================================ */

:root{
  --cream:#FAF1EE;
  --paper:#FFFDFB;
  --sand:#EFE3DA;
  --rose:#D8BCAF;
  --rose-pale:#EFDDD4;
  --mocha:#B2886E;
  --brown:#613B1A;
  --ink:#4A3629;
  --muted:#8C7461;

  --display:"Cormorant Garamond",Georgia,serif;
  --script:"Parisienne",cursive;
  --body:"Poppins",-apple-system,BlinkMacSystemFont,sans-serif;

  --gutter:clamp(1.4rem,5vw,5.5rem);
  --stack:clamp(4.5rem,10vw,8.5rem);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{
  font-family:var(--body);
  font-weight:300;
  font-size:clamp(0.95rem,0.9rem+0.2vw,1.0625rem);
  line-height:1.85;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}

.band{padding:var(--stack) var(--gutter)}
.inner{max-width:66rem;margin:0 auto}
.narrow{max-width:44rem;margin:0 auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.eyebrow{
  font-family:var(--body);
  font-size:0.8125rem;
  font-weight:500;
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:var(--mocha);
}
h1,h2,h3{font-family:var(--display);font-weight:300;line-height:1.12;color:var(--brown)}
h1{font-size:clamp(2.4rem,6vw,4rem);letter-spacing:-0.01em}
h2{font-size:clamp(2rem,4.8vw,3.25rem);letter-spacing:-0.005em}
h3{font-size:clamp(1.2rem,2.2vw,1.5rem)}
.script{font-family:var(--script);color:var(--mocha)}

.lede{
  font-family:var(--display);
  font-size:clamp(1.2rem,2.4vw,1.55rem);
  line-height:1.6;
  color:var(--ink);
}
p+p{margin-top:1.3rem}
.assinatura{font-family:var(--script);font-size:2.5rem;color:var(--mocha);margin-top:2rem;line-height:1}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  font-family:var(--body);
  font-size:0.6875rem;
  font-weight:500;
  letter-spacing:0.2em;
  text-transform:uppercase;
  padding:1.1rem 2.4rem;
  text-decoration:none;
  border:1px solid var(--brown);
  background:var(--brown);
  color:var(--cream);
  transition:background .3s,color .3s;
}
.btn:hover{background:transparent;color:var(--brown)}
.btn-ghost{background:transparent;color:var(--brown)}
.btn-ghost:hover{background:var(--brown);color:var(--cream)}
.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--mocha);outline-offset:4px}
.textlink{
  display:inline-block;margin-top:1.75rem;
  font-size:.8rem;letter-spacing:.08em;color:var(--mocha);
  text-decoration:none;border-bottom:1px solid var(--rose);padding-bottom:.15rem;
  transition:color .3s,border-color .3s;
}
.textlink:hover{color:var(--brown);border-color:var(--brown)}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(250,241,238,.94);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--rose-pale);
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;
  padding:.35rem var(--gutter);
}
.nav a.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none}
.nav a.brand img{width:44px}
.nav a.brand span{
  font-family:var(--display);font-size:1.05rem;color:var(--brown);
  letter-spacing:.02em;line-height:1.1;
}
.nav ul{list-style:none;display:flex;align-items:center;gap:1.6rem}
.nav ul a{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);text-decoration:none;transition:color .3s;
}
.nav ul a:hover{color:var(--brown)}
.nav .btn{padding:.75rem 1.9rem;font-size:.72rem}
@media (max-width:820px){
  .nav ul{display:none}
  .nav a.brand img{width:42px}
  .nav a.brand span{display:none}
}

/* ---------- masthead + hero ---------- */
.masthead{background:var(--cream);padding:clamp(1.1rem,2.6vw,1.9rem) var(--gutter) 0;text-align:center}
.masthead img{width:min(190px,40vw);margin:0 auto}

.hero{
  background:var(--cream);
  display:grid;
  grid-template-columns:1.02fr 0.98fr;
  align-items:center;
  gap:clamp(2rem,5vw,4rem);
  padding:clamp(1.5rem,3vw,2.5rem) var(--gutter) clamp(3rem,6vw,4.5rem);
}
.hero .sub{
  margin-top:1rem;
  font-family:var(--display);
  font-style:italic;
  font-size:clamp(1.3rem,2.7vw,1.85rem);
  color:var(--muted);
  line-height:1.45;
  max-width:24ch;
}
.hero .intro{margin-top:1.75rem;max-width:32rem;color:var(--ink)}
.hero .actions{margin-top:2.25rem;display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
.hero-photo img{
  width:100%;
  max-height:min(70vh,660px);
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:center 15%;
  border-radius:220px 220px 4px 4px;
}
.hero{position:relative}
.hero-mark{
  position:absolute;
  left:50%;top:50%;transform:translate(-54%,-50%);
  width:min(300px,22vw);
  opacity:.10;
  pointer-events:none;
  display:none;
}
@media (min-width:1100px){ .hero-mark{display:block} }

/* psalm */
.psalm{border-left:1px solid var(--rose);padding-left:1.4rem;margin-top:2.25rem;max-width:30rem}
.psalm p{
  font-family:var(--display);font-style:italic;
  font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.6;color:var(--ink);
}
.psalm cite{
  display:block;margin-top:.75rem;
  font-family:var(--body);font-style:normal;
  font-size:.625rem;letter-spacing:.25em;text-transform:uppercase;color:var(--mocha);
}
.psalm-center{margin:0 auto 3.5rem;text-align:center;border-left:0;border-top:1px solid var(--rose);padding:2.5rem 0 0;max-width:34rem}

/* ---------- brand strip ---------- */
.strip{
  background:var(--brown);color:var(--cream);
  padding:clamp(2.5rem,5vw,3.5rem) var(--gutter);text-align:center;
}
.strip .triad{
  font-family:var(--display);
  font-size:clamp(1.35rem,3.4vw,2.1rem);
  letter-spacing:.06em;color:var(--cream);line-height:1.4;
}
.strip .triad span{color:var(--rose);padding:0 .5rem}
.strip .sub{
  margin-top:.9rem;font-size:.78rem;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(250,241,238,.72);
}

/* ---------- generic sections ---------- */
.paper{background:var(--paper)}
.sand{background:var(--sand)}
.band h2{margin:1rem 0 1.75rem}

.split{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(2.25rem,5vw,4.5rem);align-items:center}
.split-top{align-items:start}
.split img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}

.cols2{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.cols2 img{aspect-ratio:2/3;object-fit:cover;border-radius:4px}

/* ---------- pillars ---------- */
.pillars{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  gap:2.75rem;
  margin-top:clamp(3rem,6vw,4.5rem);
  padding-top:3rem;
  border-top:1px solid var(--rose-pale);
}
.pillars h3{margin-bottom:.75rem}
.pillars p{font-size:.9rem;color:var(--muted);line-height:1.8}
.pillars-note{
  margin-top:3rem;padding-top:2.25rem;border-top:1px solid var(--rose-pale);
}
.pillars-note p{
  font-family:var(--display);font-style:italic;
  font-size:clamp(1.1rem,2.1vw,1.35rem);color:var(--muted);
  max-width:44rem;margin:0 auto;text-align:center;
}

/* ---------- facts ---------- */
.facts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));
  gap:1.75rem 2.25rem;
  margin:clamp(3rem,6vw,4.5rem) 0 0;
  padding:2.5rem 0 0;
  border-top:1px solid var(--rose);
}
.facts dt{
  font-size:.625rem;font-weight:500;letter-spacing:.22em;
  text-transform:uppercase;color:var(--mocha);margin-bottom:.4rem;
}
.facts dd{font-family:var(--display);font-size:1.35rem;line-height:1.25;color:var(--brown)}
.facts dd.free{color:var(--mocha);font-weight:500}

/* ---------- kit ---------- */
.kit{margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--rose)}
.kit ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.9rem 2rem;margin-top:1.5rem}
.kit li{font-size:.9rem;color:var(--ink);padding-left:1.35rem;position:relative}
.kit li::before{content:"";position:absolute;left:0;top:.8em;width:5px;height:5px;border-radius:50%;background:var(--mocha)}

/* ---------- pull quote ---------- */
.pullband{background:var(--paper);text-align:center;padding-top:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(2.5rem,5vw,4.5rem)}
.pull{
  max-width:40rem;margin:0 auto;
  font-family:var(--display);font-style:italic;
  font-size:clamp(1.4rem,3.2vw,2.15rem);line-height:1.45;color:var(--brown);
}
.pull em{
  display:block;margin-top:1.25rem;
  font-family:var(--body);font-style:normal;
  font-size:.625rem;letter-spacing:.25em;text-transform:uppercase;color:var(--mocha);
}

/* ---------- aliança ---------- */
.pacto{display:grid;gap:1.4rem;margin-top:clamp(2.5rem,5vw,3.5rem)}
.pacto li{
  list-style:none;background:var(--paper);
  border-left:2px solid var(--rose);
  padding:1.4rem 1.6rem;border-radius:0 4px 4px 0;
}
.pacto strong{
  display:block;font-weight:500;color:var(--brown);
  font-family:var(--display);font-size:1.2rem;margin-bottom:.35rem;
}
.pacto p{font-size:.92rem;color:var(--muted);line-height:1.75}
.pacto-close{
  margin-top:2.75rem;font-family:var(--display);font-style:italic;
  font-size:clamp(1.15rem,2.3vw,1.45rem);color:var(--brown);max-width:40rem;
}

/* ---------- depoimentos ---------- */
.feedback{background:var(--paper);position:relative;overflow:hidden}
.fb-word{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:var(--display);font-weight:500;
  font-size:clamp(5rem,19vw,15rem);letter-spacing:.02em;
  color:var(--rose-pale);white-space:nowrap;
  pointer-events:none;user-select:none;z-index:0;line-height:.85;
}
.fb-inner{position:relative;z-index:1}
.fb-head{text-align:center;margin-bottom:3.5rem}
.bubbles{display:grid;gap:1.1rem;max-width:38rem;margin:0 auto}
.quote{
  background:var(--mocha);color:#FFF8F4;
  padding:1.6rem 1.9rem;border-radius:20px 20px 20px 4px;
  box-shadow:0 2px 16px rgba(97,59,26,.07);
}
.quote p{font-size:.98rem;line-height:1.75}
.quote span{display:block;margin-top:1rem;font-size:.625rem;letter-spacing:.25em;text-transform:uppercase;opacity:.85}
.quote:nth-child(even){background:var(--rose-pale);color:var(--brown);border-radius:20px 20px 4px 20px}

/* ---------- FAQ ---------- */
.faq{max-width:46rem;margin:clamp(2.5rem,5vw,3.5rem) auto 0}
.faq details{border-bottom:1px solid var(--rose-pale)}
.faq summary{
  list-style:none;cursor:pointer;
  padding:1.35rem 2.5rem 1.35rem 0;position:relative;
  font-family:var(--display);font-size:clamp(1.1rem,2.1vw,1.3rem);color:var(--brown);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:.4rem;top:50%;transform:translateY(-50%);
  font-family:var(--body);font-weight:300;font-size:1.35rem;color:var(--mocha);
}
.faq details[open] summary::after{content:"–"}
.faq .answer{padding:0 2.5rem 1.6rem 0;font-size:.94rem;color:var(--muted);line-height:1.8}

/* ---------- cuidado ---------- */
.cuidado{background:var(--sand)}
.cuidado .box{
  max-width:44rem;margin:0 auto;background:var(--paper);
  border:1px solid var(--rose);border-radius:4px;
  padding:clamp(2rem,4vw,3rem);
}
.cuidado h3{margin-bottom:1.25rem}
.cuidado p{font-size:.94rem;color:var(--ink);line-height:1.8}
.cuidado .cvv{
  margin-top:1.6rem;padding:1.1rem 1.3rem;
  background:var(--rose-pale);border-radius:3px;
  font-size:.94rem;color:var(--brown);
}
.cuidado .cvv strong{font-weight:500}
.cuidado .last{margin-top:1.6rem;font-family:var(--display);font-style:italic;font-size:1.15rem;color:var(--brown)}

/* ---------- livro ---------- */
.livro{position:relative;overflow:hidden;text-align:center}
.livro .narrow{position:relative;z-index:1}
.livro .lede{margin-left:auto;margin-right:auto;color:var(--muted);max-width:34rem}
.livro-mark{
  position:absolute;right:-2%;top:50%;transform:translateY(-50%);
  width:min(340px,38vw);opacity:.13;pointer-events:none;z-index:0;
}
.livro strong{font-weight:500;color:var(--brown)}
.waitlist{max-width:26rem;margin:2.75rem auto 0}
.waitlist [data-element="fields"]{display:grid;gap:.9rem}
.waitlist .formkit-alert{
  list-style:none;margin:0 0 1rem;padding:.85rem 1rem;border-radius:2px;
  background:#F6E7E2;color:#8A4B34;font-size:.82rem;line-height:1.5;
}
.waitlist .formkit-alert:empty{display:none}
.waitlist input{
  width:100%;font-family:var(--body);font-size:.95rem;font-weight:300;color:var(--ink);
  background:var(--paper);border:1px solid var(--rose);border-radius:2px;
  padding:.95rem 1.1rem;text-align:center;transition:border-color .25s;
}
.waitlist input::placeholder{color:var(--muted);opacity:.75}
.waitlist input:focus{outline:none;border-color:var(--mocha)}
.waitlist button{
  font-family:var(--body);font-size:.6875rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cream);background:var(--brown);
  border:1px solid var(--brown);border-radius:2px;padding:1.05rem 1.5rem;cursor:pointer;
  transition:background .3s,color .3s;
}
.waitlist button:hover{background:transparent;color:var(--brown)}
.consent{font-size:.72rem;line-height:1.6;color:var(--muted);margin-top:.35rem}

/* ---------- convite / inscrição ---------- */
.convite{background:var(--brown);color:var(--cream)}
.convite h2,.convite h3{color:var(--cream)}
.convite .eyebrow{color:var(--rose)}
.convite p{color:rgba(250,241,238,.85);max-width:34rem}
.convite .btn{background:var(--cream);border-color:var(--cream);color:var(--brown)}
.convite .btn:hover{background:transparent;color:var(--cream)}
.convite .psalm{border-color:rgba(216,188,175,.5)}
.convite .psalm p{color:var(--cream)}
.convite .psalm cite{color:var(--rose)}
.actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.25rem;align-items:center}
.ig{
  display:inline-block;padding:1.1rem 2.4rem;
  border:1px solid rgba(250,241,238,.45);color:var(--cream);
  font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
  transition:border-color .3s;
}
.ig:hover{border-color:var(--cream)}
.convite-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.convite-grid img{aspect-ratio:4/5;object-fit:cover;border-radius:4px}

/* ---------- fechamento ---------- */
.fechamento{text-align:center;background:var(--paper)}
.fechamento p{
  font-family:var(--display);
  font-size:clamp(1.5rem,3.6vw,2.4rem);
  line-height:1.45;color:var(--brown);max-width:38rem;margin:0 auto;
}
.fechamento .btn{margin-top:2.75rem}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{display:none}
@media (max-width:820px){
  .sticky-cta{
    display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:rgba(250,241,238,.95);backdrop-filter:blur(8px);
    border-top:1px solid var(--rose-pale);
    padding:.75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom));
  }
  .sticky-cta .btn{display:block;text-align:center;padding:1rem}
  body.has-sticky{padding-bottom:5rem}
}

/* ---------- footer ---------- */
footer{padding:3.5rem var(--gutter);text-align:center}
footer img{width:110px;margin:0 auto 1.25rem;opacity:.85}
footer .name{font-family:var(--display);font-size:1.15rem;color:var(--brown)}
footer .tag{font-size:.7rem;letter-spacing:.15em;color:var(--muted);margin-top:.4rem;text-transform:uppercase}
footer .links{margin-top:1.25rem;font-size:.7rem;letter-spacing:.15em;color:var(--muted)}
footer a{color:var(--mocha);text-decoration:none}
footer a:hover{color:var(--brown)}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s ease}
.rv.on{opacity:1;transform:none}

@media (max-width:820px){
  .hero{grid-template-columns:1fr;gap:2.5rem}
  .hero-photo img{aspect-ratio:4/5;border-radius:160px 160px 4px 4px}
  .cols2,.convite-grid,.split{grid-template-columns:1fr}
  .split img{aspect-ratio:4/3}
  .cols2 img{max-width:22rem}
  .livro-mark{width:56vw;opacity:.09}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
}
