/* ==========================================================================
   LustDuo — seções  (GERADO por src/build.py — edite src/sections/*.css)
   Convertido do arquivo Paper "LustDuo — Landing Page", artboards 1440 e 390.
   Desktop é o padrão; o layout mobile vive em @media (max-width: 899px).
   ========================================================================== */


/* ----- header ----------------------------------------------------------- */
.ld-header {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding-block: 34px;
  border-bottom: 1px solid var(--color-line);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ld-header__brand {
  box-sizing: border-box;
  display: flex;
  align-items: baseline;
  margin: 0;
}

.ld-header__brand-lust {
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--text-h3);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-none);
}

.ld-header__brand-duo {
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-size: var(--text-h3);
  font-style: italic;
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-none);
}

.ld-header__tagline {
  box-sizing: border-box;
  margin: 0;
  color: #F0E7DD8F;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--tracking-eyebrow);
  line-height: 19.5px;
  text-align: right;
  text-transform: uppercase;
}

.ld-header a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

@media (max-width: 899px) {
  .ld-header {
    gap: 12px;
    padding-block: 22px;
  }

  .ld-header__brand-lust,
  .ld-header__brand-duo {
    font-size: var(--text-md);
  }

  .ld-header__tagline {
    display: none;
  }
}


/* ----- hero ----------------------------------------------------------- */
.ld-hero {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 80px;
  padding-top: 92px;
  padding-bottom: 40px;
  overflow-wrap: anywhere;
}

.ld-hero :focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

.ld-hero__copy {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 30px;
  flex: 1 1 543px;
  min-width: 0;
}

.ld-hero__eyebrow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: 0.22em;
  line-height: var(--leading-relaxed);
  text-transform: uppercase;
}

.ld-hero__headline {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.ld-hero__title {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--text-h1);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tighter);
  line-height: var(--leading-display);
}

.ld-hero__lede {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-size: var(--text-serif-lg);
  font-style: italic;
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-quote);
}

.ld-hero__meta {
  margin: 0;
  color: var(--color-ink-50);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.02em;
  line-height: 22px;
}

.ld-hero__venn {
  margin: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  flex: 0 0 377px;
}

.ld-hero__venn-svg {
  display: block;
  width: 290px;
  height: 198px;
  flex-shrink: 0;
}

.ld-hero__venn-label {
  color: #F0E7DD8F;
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--tracking-eyebrow);
  line-height: 1.5;
  text-align: center;
  text-transform: uppercase;
}

@media (max-width: 899px) {
  .ld-hero {
    flex-direction: column;
    align-items: stretch;
    gap: 40px;
    padding-top: 48px;
    padding-bottom: 28px;
  }

  .ld-hero__copy {
    flex: 0 0 auto;
    gap: 22px;
  }

  .ld-hero__headline {
    gap: 16px;
  }

  .ld-hero__title {
    font-size: 33px;
  }

  .ld-hero__lede {
    font-size: 24px;
  }

  .ld-hero__venn {
    flex: 0 0 auto;
    width: 100%;
  }

  .ld-hero__venn-svg {
    width: 190px;
    height: 130px;
  }
}


/* ----- trava ----------------------------------------------------------- */
/* Os line-heights são os do Paper arredondados para cima ao pixel inteiro
   (52,8 → 53; 34,6 → 35; 42,2 → 43; 32,7 → 33; 31,2 → 32; idem no mobile).
   O Paper mede cada linha em pixel inteiro: com os valores fracionários a
   seção fica 8px mais baixa que o design (696 em vez de 704). */

.ld-trava {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  gap: 80px;
  padding-block: 82px;
  border-top: 1px solid var(--color-line);
  font-family: var(--font-sans);
  font-weight: var(--font-weight-normal);
  overflow-wrap: anywhere;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ld-trava__scene,
.ld-trava__reveal {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  /* Paper: duas colunas de 460px num container de 1000px com gap de 80px.
     flex-basis em calc() (e não 1 1 0) porque o padding de 56px da coluna
     direita desequilibraria a distribuição do espaço livre. */
  flex: 0 0 calc(50% - 40px);
  min-width: 0;
  gap: 24px;
}

.ld-trava__reveal {
  justify-content: center;
  padding-left: 56px;
  border-left: 1px solid var(--color-line-2);
}

.ld-trava__eyebrow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: var(--font-weight-normal);
  line-height: 22px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.ld-trava__title {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: 48px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: 53px;
}

.ld-trava__lead {
  margin: 0;
  color: var(--color-ink-78);
  font-size: 21px;
  font-weight: var(--font-weight-normal);
  line-height: 35px;
}

.ld-trava__swallow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-size: 40px;
  font-style: italic;
  font-weight: var(--font-weight-normal);
  line-height: 48px;
}

.ld-trava__list {
  margin: 0;
  color: var(--color-ink-2);
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: var(--font-weight-normal);
  line-height: 43px;
}

.ld-trava__lock {
  box-sizing: border-box;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding-left: 22px;
  border-left: 2px solid var(--color-wine-deep);
}

.ld-trava__lock-lead {
  margin: 0;
  color: var(--color-ink);
  font-size: 23px;
  font-weight: var(--font-weight-normal);
  line-height: 33px;
}

.ld-trava__lock-sub {
  margin: 0;
  color: var(--color-ink-72);
  font-size: 19.5px;
  font-weight: var(--font-weight-normal);
  line-height: 32px;
}

/* Instrument Sans é ~3,5% mais larga que a SF Pro com que o arquivo do Paper foi
   desenhado: na largura nominal da coluna (403px de conteúdo) este parágrafo
   ganha uma quarta linha, com "lados." órfã. 15px a mais devolvem as 3 linhas
   do design — janela medida: 408px a 429px de conteúdo, 418px é o meio dela.
   O avanço é só para a direita, sobre a margem branca do container: não encosta
   no filete divisor (que fica à esquerda) nem na coluna vizinha.

   O clamp gasta apenas a margem que de fato existe. Acima de 1070px o .ld-wrap
   está travado em 1000px e sobra margem de sobra, então o avanço é os 15px
   cheios; de 1070px para baixo ele encolhe junto com a margem e zera em 1040px,
   antes de comer a goteira de 20px. Abaixo disso o clamp já devolve 0 sozinho —
   por isso o mobile não precisa de reset. */
.ld-trava__resolve {
  margin: 0;
  margin-right: clamp(-15px, (1040px - 100vw) / 2, 0px);
  color: var(--color-ink-2);
  font-size: 19.5px;
  font-weight: var(--font-weight-normal);
  line-height: 32px;
}

.ld-trava a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
  border-radius: var(--radius-xs);
}

@media (max-width: 899px) {
  .ld-trava {
    flex-direction: column;
    gap: 40px;
    padding-block: 46px;
  }

  .ld-trava__scene,
  .ld-trava__reveal {
    flex: 0 0 auto;
    width: 100%;
    gap: 18px;
  }

  .ld-trava__reveal {
    justify-content: flex-start;
    padding-left: 0;
    padding-top: 28px;
    border-left: 0;
    border-top: 1px solid var(--color-line-2);
  }

  .ld-trava__eyebrow {
    font-size: 12.58px;
    line-height: 22px;
  }

  .ld-trava__title {
    font-size: 27px;
    line-height: 30px;
  }

  .ld-trava__lead {
    font-size: 16.74px;
    line-height: 28px;
  }

  .ld-trava__swallow {
    font-size: 28px;
    line-height: 34px;
  }

  .ld-trava__list {
    font-size: 23.27px;
    line-height: 31px;
  }

  .ld-trava__lock {
    padding-left: 18px;
  }

  .ld-trava__lock-lead {
    font-size: 19.12px;
    line-height: 28px;
  }

  .ld-trava__lock-sub,
  .ld-trava__resolve {
    font-size: 16.5px;
    line-height: 27px;
  }
}


/* ----- autores ----------------------------------------------------------- */
.ld-autores {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  gap: 80px;
  padding-block: 82px;
  border-top: 1px solid var(--color-line);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ld-autores__col {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-width: 0;
}

.ld-autores__col--story { gap: 22px; }

/* Instrument Sans é ~3,5% mais larga que a fonte do arquivo do Paper: nos 460px
   nominais da coluna o título quebra em 3 linhas ("cama." órfã). O bloco de texto
   avança 18px sobre o vão de 80px — a caixa da coluna continua em 460px, a coluna
   da direita não sai do lugar e sobram 62px de respiro até o filete dela. */
.ld-autores__col--story > * {
  width: 478px;
  max-width: calc(100% + 18px);
}

.ld-autores__col--aside {
  gap: 18px;
  justify-content: center;
}

.ld-autores__eyebrow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--tracking-label);
  line-height: 22px;
  text-transform: uppercase;
}

.ld-autores__title {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-sans), system-ui, sans-serif;
  font-size: var(--text-h2-b);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-heading);
}

.ld-autores__body {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ld-autores__para {
  margin: 0;
  color: var(--color-ink-78);
  font-family: var(--font-sans), system-ui, sans-serif;
  font-size: var(--text-base);
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-body);
}

.ld-autores__sig {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-sans), system-ui, sans-serif;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-semibold);
  line-height: var(--leading-relaxed);
}

.ld-autores__statement {
  margin: 0;
  color: var(--color-ink-2);
  font-family: var(--font-serif);
  font-size: var(--text-quote);
  font-weight: var(--font-weight-normal);
  line-height: 42.2px;
}

.ld-autores__note {
  margin: 0;
  box-sizing: border-box;
  padding-left: 22px;
  border-left: 2px solid var(--color-wine-deep);
  color: var(--color-ink-2);
  font-family: var(--font-sans), system-ui, sans-serif;
  font-size: var(--text-sm);
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-relaxed);
}

.ld-autores a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
  border-radius: var(--radius-xs);
}

@media (max-width: 899px) {
  .ld-autores {
    flex-direction: column;
    gap: 40px;
    padding-block: 46px;
  }

  .ld-autores__col {
    flex: 0 0 auto;
    width: 100%;
  }

  .ld-autores__col--story { gap: 18px; }

  /* no mobile a coluna já ocupa a largura toda: sem avanço sobre vão nenhum */
  .ld-autores__col--story > * {
    width: auto;
    max-width: none;
  }

  .ld-autores__col--aside { justify-content: flex-start; }

  .ld-autores__eyebrow {
    font-size: 12.58px;
    line-height: 21.4px;
  }

  .ld-autores__title { font-size: 25px; }

  .ld-autores__para { font-size: 16.74px; }

  .ld-autores__sig { font-size: 16.5px; }

  .ld-autores__statement {
    font-size: 23.27px;
    line-height: 30.7px;
  }

  .ld-autores__note {
    padding-left: 18px;
    font-size: 16.5px;
  }
}


/* ----- demo ----------------------------------------------------------- */
/* ---------- Seção: Como funciona (demo) ---------- */
.ld-demo {
  display: flex;
  flex-direction: column;
  gap: 44px;
  padding-block: 90px;
  font-family: var(--font-sans);
  color: var(--color-ink);
  overflow-wrap: anywhere;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---------- Cabeçalho ---------- */
.ld-demo__head {
  display: grid;
  grid-template-columns: 585fr 351fr;
  align-items: end;
  gap: 64px;
}
.ld-demo__head-main {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
}
.ld-demo__head-aside {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.ld-demo__eyebrow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 22px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.ld-demo__title {
  margin: 0;
  color: var(--color-ink);
  font-size: 48px;
  font-weight: 600;
  line-height: 52.8px;
  letter-spacing: -0.03em;
}
.ld-demo__lede {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 32px;
  line-height: 38.4px;
}
.ld-demo__intro {
  margin: 0;
  color: var(--color-ink-72);
  font-size: 19.5px;
  line-height: 31.2px;
}

/* ---------- Trilha dos 3 passos ---------- */
.ld-demo__track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ld-demo__step {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-width: 0;
}

/* ---------- Mockup de celular ---------- */
.ld-demo__phone {
  box-sizing: border-box;
  padding: 9px;
  border: 1px solid #F0E7DD3D;
  border-radius: 34px;
  background-color: #080406;
  box-shadow: 0 26px 70px #0000006B;
}
.ld-demo__screen {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  /* mockup gráfico: no Paper a tela tem altura fixa e corta o excedente */
  height: 550px;
  padding: 10px 18px 18px;
  border-radius: 26px;
  overflow: clip;
  background-color: #1A060C;
  background-image:
    radial-gradient(circle farthest-corner at 50% 50% in oklab, oklab(47.3% 0.144 0.041 / 28%) 0%, oklab(47.3% 0.144 0.041 / 0%) 42%),
    linear-gradient(in oklab 180deg, oklab(20.7% 0.037 -0.007) 0%, oklab(16.5% 0.023 -0.005) 54%, oklab(14.4% 0.018 -0.001) 100%);
}
/* nada encolhe: o excedente transborda e é cortado embaixo, como no Paper */
.ld-demo__screen > * {
  flex-shrink: 0;
}
.ld-demo__notch {
  display: flex;
  justify-content: center;
  padding-bottom: 18px;
}
.ld-demo__notch-bar {
  flex-shrink: 0;
  width: 72px;
  height: 4px;
  border-radius: 999px;
  background-color: #F0E7DD2E;
}

.ld-demo__appbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.ld-demo__logo {
  display: flex;
  align-items: baseline;
}
.ld-demo__logo-a {
  color: var(--color-ink);
  font-size: 17px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: -0.02em;
}
.ld-demo__logo-b {
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  line-height: 20px;
  letter-spacing: -0.02em;
}
.ld-demo__appbar-tag {
  color: #F0E7DDAD;
  font-size: 10px;
  line-height: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ld-demo__progress {
  height: 2px;
  margin-top: 14px;
  margin-bottom: 28px;
  overflow: hidden;
  background-color: #F0E7DD21;
}
.ld-demo__progress--match {
  margin-bottom: 24px;
}
.ld-demo__progress-fill {
  display: block;
  width: 100%;
  height: 2px;
  background-image: linear-gradient(in oklab 90deg, oklab(66.4% 0.018 0.081) 0%, oklab(66.4% 0.018 0.081 / 34%) 42%, oklab(66.4% 0.018 0.081 / 0%) 78%);
}
.ld-demo__progress-fill--solid {
  background-color: var(--color-gold);
  background-image: none;
}

.ld-demo__pill-row {
  display: flex;
  margin-bottom: 12px;
}
.ld-demo__pill {
  box-sizing: border-box;
  padding: 5px 8px;
  border: 1px solid #B08D5757;
  border-radius: 999px;
  background-color: var(--color-gold-wash);
  color: var(--color-ink-2);
  font-family: var(--font-mono);
  font-size: 9.5px;
  line-height: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ld-demo__kicker {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 15px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.ld-demo__kicker--center {
  text-align: center;
}
.ld-demo__fantasy {
  margin: 12px 0 0;
  color: var(--color-ink);
  font-family: var(--font-serif);
  font-size: 34px;
  line-height: 34.7px;
}
.ld-demo__fantasy-desc {
  margin: 12px 0 0;
  color: #F0E7DDAD;
  font-size: 13px;
  line-height: 19.2px;
}

.ld-demo__spacer {
  flex: 1 0 0;
  min-height: 22px;
}
.ld-demo__spacer--sm {
  min-height: 12px;
}

.ld-demo__answer {
  display: flex;
  gap: 9px;
  margin-top: 18px;
}
.ld-demo__answer-btn {
  box-sizing: border-box;
  display: flex;
  flex: 1 1 0;
  min-width: 0;
  min-height: 45px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid #F0E7DD2E;
  border-radius: 14px;
  background-color: #FFFFFF05;
  color: #F0E7DDB8;
  font-size: 13px;
  font-weight: 600;
  line-height: 17px;
}
.ld-demo__answer-btn--on {
  border-color: #B08D57B3;
  background-color: var(--color-gold);
  color: #160A10;
}
.ld-demo__check {
  font-weight: 700;
}

.ld-demo__chips {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 10px;
}
.ld-demo__chip-row {
  display: flex;
  gap: 5px;
}
.ld-demo__chip {
  box-sizing: border-box;
  display: flex;
  flex: 1 1 0;
  min-width: 0;
  align-items: center;
  justify-content: center;
  padding: 5px 3px;
  border: 1px solid #F0E7DD24;
  border-radius: 8px;
  color: #F0E7DDB8;
  font-size: 10px;
  line-height: 12.5px;
  text-align: center;
}
.ld-demo__chip--on {
  border-color: #B08D5799;
  background-color: #B08D5729;
  color: var(--color-ink-2);
  font-weight: 600;
}

.ld-demo__saved {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 11px;
  padding: 10px 12px;
  border: 1px solid #B08D5757;
  border-radius: 12px;
  background-color: var(--color-gold-wash);
}
.ld-demo__saved-title {
  color: var(--color-gold);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
}
.ld-demo__saved-value {
  color: var(--color-ink-2);
  font-size: 11px;
  line-height: 16px;
}

.ld-demo__private {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin: 14px 0 0;
  color: #F0E7DD8A;
  font-size: 10.5px;
  line-height: 14.9px;
}
.ld-demo__lock {
  flex-shrink: 0;
  width: 12px;
  height: 15px;
}

/* ---------- Tela 3: match ---------- */
.ld-demo__venn {
  display: flex;
  justify-content: center;
  padding-top: 2px;
  padding-bottom: 13px;
}
.ld-demo__match-title {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-serif);
  font-size: 32px;
  line-height: 32px;
  text-align: center;
}
.ld-demo__match-sub {
  margin: 10px 0 0;
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 22px;
  line-height: 25px;
  text-align: center;
}
.ld-demo__pairs {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 15px;
}
.ld-demo__pair {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid #F0E7DD1F;
  border-radius: 11px;
}
.ld-demo__pair-k {
  color: #F0E7DDA3;
  font-size: 10.5px;
  line-height: 13.7px;
}
.ld-demo__pair-v {
  color: var(--color-ink-2);
  font-size: 10.5px;
  font-weight: 600;
  line-height: 13.7px;
  text-align: right;
}
.ld-demo__first {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 9px;
  padding: 9px 10px;
  border-radius: 11px;
  background-color: #B08D5717;
}
.ld-demo__first-title {
  color: var(--color-gold);
  font-size: 10.5px;
  font-weight: 600;
  line-height: 14.5px;
}
.ld-demo__first-text {
  color: var(--color-ink-2);
  font-size: 10.5px;
  line-height: 14.5px;
}
.ld-demo__mockcta {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border-radius: 13px;
  background-color: var(--color-wine);
  color: var(--color-ink);
  font-size: 11.5px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.04em;
  text-align: center;
}
.ld-demo__mockfoot {
  margin: 9px 0 0;
  color: var(--color-ink-60);
  font-size: 10.5px;
  line-height: 14.5px;
  text-align: center;
}

/* ---------- Legenda de cada passo ---------- */
.ld-demo__caption {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.ld-demo__num {
  box-sizing: border-box;
  flex: 0 0 22px;
  width: 22px;
  padding-top: 2px;
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 16.5px;
  letter-spacing: 0.12em;
}
.ld-demo__caption-body {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.ld-demo__step-title {
  margin: 0;
  color: var(--color-ink-2);
  font-size: 15px;
  font-weight: 600;
  line-height: 22.5px;
}
.ld-demo__step-text {
  margin: 0;
  color: var(--color-ink-72);
  font-size: 14px;
  line-height: 21px;
}

/* ---------- Nota de confiança ---------- */
.ld-demo__note {
  box-sizing: border-box;
  padding-top: 22px;
  border-top: 1px solid var(--color-line);
}
.ld-demo__note-text {
  margin: 0;
  max-width: 720px;
  color: var(--color-ink-72);
  font-size: 19.5px;
  line-height: 31.2px;
}

/* ---------- Mobile ---------- */
@media (max-width: 899px) {
  .ld-demo {
    gap: 28px;
    padding-block: 52px;
  }
  .ld-demo__head {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .ld-demo__eyebrow {
    font-size: 12.58px;
    line-height: 21.4px;
  }
  .ld-demo__title {
    font-size: 27px;
    line-height: 29.7px;
  }
  .ld-demo__lede {
    font-size: 23.27px;
    line-height: 27.9px;
  }
  .ld-demo__intro {
    font-size: 16.5px;
    line-height: 26.4px;
  }
  .ld-demo__track {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 34px;
  }
  .ld-demo__step {
    width: 100%;
    max-width: 320px;
  }
  .ld-demo__screen {
    height: 565px;
    padding-inline: 16px;
  }
  .ld-demo__screen--match {
    height: 528px;
  }
  /* no Paper o filete da nota sangra até as bordas da banda (390px) */
  .ld-demo__note {
    margin-inline: -20px;
    padding-inline: 20px;
  }
  .ld-demo__note-text {
    max-width: none;
    font-size: 16.5px;
    line-height: 26.4px;
  }
}


/* ----- entregaveis ----------------------------------------------------------- */
.ld-entregaveis {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-block: 82px;
  border-top: 1px solid var(--color-line);
  font-family: var(--font-sans);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---------- Cabeçalho ---------- */

.ld-entregaveis__head {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  max-width: 760px;
}

.ld-entregaveis__eyebrow {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-normal);
  line-height: 22px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--color-gold);
}

.ld-entregaveis__title {
  margin: 0;
  font-family: inherit;
  font-size: var(--text-h2-b);
  font-weight: var(--font-weight-semibold);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-tight);
  color: var(--color-ink);
}

/* ---------- Lista de entregáveis ---------- */

.ld-entregaveis__list {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 760px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ld-entregaveis__item {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  padding-block: 14px;
  border-top: 1px solid var(--color-line);
}

.ld-entregaveis__item:last-child {
  border-bottom: 1px solid var(--color-line);
}

.ld-entregaveis__dash {
  flex-shrink: 0;
  width: 14px;
  font-size: 15px;
  line-height: 27.8px;
  color: var(--color-gold);
}

.ld-entregaveis__text {
  margin: 0;
  flex: 1 1 0;
  min-width: 0;
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-ink-82);
}

/* ---------- Nota com filete vinho ---------- */

.ld-entregaveis__note {
  box-sizing: border-box;
  margin: 0;
  max-width: 760px;
  padding-left: 22px;
  border-left: 2px solid var(--color-wine-deep);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--color-ink-2);
}

/* ---------- Mobile (artboard 390px) ---------- */

@media (max-width: 899px) {
  .ld-entregaveis {
    gap: 20px;
    padding-block: 46px;
  }

  .ld-entregaveis__head {
    max-width: none;
  }

  .ld-entregaveis__eyebrow {
    font-size: 12.58px;
    line-height: 21.4px;
  }

  .ld-entregaveis__title {
    font-size: 25px;
  }

  .ld-entregaveis__list {
    max-width: none;
  }

  .ld-entregaveis__item {
    gap: 12px;
  }

  .ld-entregaveis__dash {
    width: 13px;
  }

  .ld-entregaveis__text {
    font-size: 16.5px;
  }

  .ld-entregaveis__note {
    max-width: none;
    padding-left: 18px;
    font-size: 16.5px;
  }
}


/* ----- jogos ----------------------------------------------------------- */
/* === Os quatro jogos =================================================== */
.ld-jogos {
  box-sizing: border-box;
  display: flex;
  gap: 80px;
  width: 100%;
  padding-block: 82px;
  border-top: 1px solid var(--color-line);
  font-synthesis: none;
  overflow-wrap: anywhere;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ld-jogos h2,
.ld-jogos p {
  margin: 0;
}

/* --- coluna esquerda --------------------------------------------------- */
/* Paper: duas colunas de 460px com gap de 80 dentro do container de 1000.
   flex-basis: calc(50% - 40px) reproduz isso e continua elástico se o
   container encolher — `flex: 1 1 0` daria colunas desiguais, porque o
   padding+borda da coluna direita entra na base border-box. */
.ld-jogos__intro {
  box-sizing: border-box;
  flex: 0 0 calc(50% - 40px);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.ld-jogos__eyebrow {
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 22px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.ld-jogos__title {
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--text-h2-b);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-heading);
}

.ld-jogos__lead {
  color: var(--color-ink-78);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-body);
}

.ld-jogos__note {
  color: var(--color-ink-2);
  font-family: var(--font-serif);
  font-size: var(--text-quote);
  font-weight: var(--font-weight-normal);
  line-height: 42.2px;
}

/* --- coluna direita: os quatro jogos ----------------------------------- */
.ld-jogos__list {
  box-sizing: border-box;
  flex: 0 0 calc(50% - 40px);
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  margin: 0;
  padding: 0 0 0 56px;
  list-style: none;
  border-left: 1px solid var(--color-line-2);
}

.ld-jogos__item {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  padding-block: 13px;
  border-top: 1px solid var(--color-line);
}

.ld-jogos__item:last-child {
  border-bottom: 1px solid var(--color-line);
}

.ld-jogos__dash {
  flex-shrink: 0;
  width: 14px;
  color: var(--color-gold);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 27.8px;
}

.ld-jogos__item-text {
  flex: 1 1 0;
  min-width: 0;
  color: var(--color-ink-82);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-relaxed);
}

.ld-jogos a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

/* --- mobile ------------------------------------------------------------ */
@media (max-width: 899px) {
  .ld-jogos {
    flex-direction: column;
    gap: 40px;
    padding-block: 46px;
  }

  /* empilhado: a coluna volta a ocupar a largura toda (Paper: width 100%)
     e a base de flex deixa de valer, senão viraria altura. */
  .ld-jogos__intro,
  .ld-jogos__list {
    flex: 0 0 auto;
    width: 100%;
  }

  .ld-jogos__intro {
    gap: 18px;
  }

  .ld-jogos__eyebrow {
    font-size: 12.58px;
    line-height: 21.4px;
  }

  /* 25 x 110% = 27.5 e 16.74 x 165% = 27.6: os tokens de leading
     reproduzem exatamente os valores do Paper, sem override. */
  .ld-jogos__title {
    font-size: 25px;
  }

  .ld-jogos__lead {
    font-size: 16.74px;
  }

  .ld-jogos__note {
    font-size: 23.27px;
    line-height: 30.7px;
  }

  .ld-jogos__list {
    justify-content: flex-start;
    padding: 28px 0 0;
    border-left: 0;
    border-top: 1px solid var(--color-line-2);
  }

  .ld-jogos__item {
    gap: 12px;
  }

  .ld-jogos__dash {
    width: 13px;
  }

  /* 16.5 x 160% = 26.4, igual ao Paper. */
  .ld-jogos__item-text {
    font-size: 16.5px;
  }
}


/* ----- prova ----------------------------------------------------------- */
.ld-prova {
  box-sizing: border-box;
  display: flex;
  gap: 80px;
  width: 100%;
  padding-block: 82px;
  border-top: 1px solid var(--color-line);
  font-family: var(--font-sans), system-ui, sans-serif;
  font-synthesis: none;
  overflow-wrap: anywhere;
}

.ld-prova__col {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  flex: 1 1 460px;
  min-width: 0;
}

.ld-prova__col--proof {
  gap: 18px;
  justify-content: center;
}

.ld-prova__col--faq {
  gap: 22px;
}

/* --- coluna de prova --- */
.ld-prova__stat-row {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 32px;
  width: 100%;
  padding-top: 32px;
  border-top: 1px solid #F0E7DD2E;
}

.ld-prova__stat {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  margin: 0;
}

.ld-prova__stat-num {
  color: var(--color-gold);
  font-size: 64px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tightest);
  line-height: 57.6px;
}

.ld-prova__stat-label {
  display: block;
  padding-top: 10px;
  color: var(--color-ink-50);
  font-family: var(--font-mono), ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: 0.16em;
  line-height: 18px;
  text-transform: uppercase;
}

.ld-prova__stat-note {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  color: #F0E7DDB3;
  font-size: 19.5px;
  line-height: 31.2px;
}

.ld-prova__quote {
  box-sizing: border-box;
  margin: 0;
  padding-left: 22px;
  border-left: 2px solid var(--color-wine-deep);
}

.ld-prova__quote-text {
  margin: 0;
  color: var(--color-ink-2);
  font-size: 19.5px;
  line-height: 31.2px;
}

/* --- coluna da objeção --- */
.ld-prova__eyebrow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-mono), ui-monospace, monospace;
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-label);
  line-height: 22px;
  text-transform: uppercase;
}

.ld-prova__title {
  margin: 0;
  color: var(--color-ink);
  font-size: var(--text-h2-b);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-heading);
}

.ld-prova__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ld-prova__p {
  margin: 0;
  color: var(--color-ink-78);
  font-size: var(--text-base);
  line-height: 34.6px;
}

.ld-prova a:focus-visible,
.ld-prova .ld-cta:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

@media (max-width: 899px) {
  .ld-prova {
    flex-direction: column;
    gap: 40px;
    padding-block: 46px;
  }

  .ld-prova__col {
    flex: 0 0 auto;
    width: 100%;
  }

  .ld-prova__col--proof {
    justify-content: flex-start;
  }

  .ld-prova__col--faq {
    gap: 18px;
  }

  .ld-prova__stat-row {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
  }

  .ld-prova__stat-num {
    font-size: 44.26px;
    line-height: 39.8px;
  }

  .ld-prova__stat-note {
    flex: 0 0 auto;
    font-size: 16.5px;
    line-height: 26.4px;
  }

  .ld-prova__quote {
    padding-left: 18px;
  }

  .ld-prova__quote-text {
    font-size: 16.5px;
    line-height: 26.4px;
  }

  .ld-prova__eyebrow {
    font-size: 12.58px;
    line-height: 21.4px;
  }

  .ld-prova__title {
    font-size: 25px;
    line-height: 27.5px;
  }

  .ld-prova__p {
    font-size: 16.74px;
    line-height: 27.6px;
  }
}


/* ----- oferta ----------------------------------------------------------- */
.ld-oferta {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  padding-block: 82px;
  border-top: 1px solid var(--color-line);
  font-size: 12px;
  line-height: 16px;
  font-synthesis: none;
  overflow-wrap: anywhere;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ld-oferta__card {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 64px;
  width: 100%;
  padding-block: 64px;
  padding-inline: 60px;
  background-color: var(--color-surface);
  border: 1px solid var(--color-gold-line);
  border-radius: 2px;
}

.ld-oferta__col {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-width: 0;
}

.ld-oferta__col--pitch { gap: 18px; }
.ld-oferta__col--deal  { gap: 24px; }

/* ---------- coluna esquerda ---------- */

.ld-oferta__eyebrow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  line-height: 22px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.ld-oferta__title {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-serif);
  font-size: var(--text-h2-b);
  font-weight: var(--font-weight-normal);
  line-height: 48px;
}

.ld-oferta__price {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: var(--text-price);
  font-weight: var(--font-weight-semibold);
  line-height: 88px;
  letter-spacing: var(--tracking-tightest);
}

.ld-oferta__terms {
  margin: 0;
  color: var(--color-ink-2);
  font-family: var(--font-sans);
  font-size: 20px;
  line-height: 30px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.ld-oferta__lede {
  margin: 0;
  color: #F0E7DDD9;
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: 35px;
}

/* ---------- coluna direita ---------- */

.ld-oferta__list {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
}

.ld-oferta__item {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  padding-block: 12px;
  border-top: 1px solid var(--color-line);
}

.ld-oferta__item:last-child {
  border-bottom: 1px solid var(--color-line);
}

.ld-oferta__dash {
  flex-shrink: 0;
  width: 14px;
  color: var(--color-gold);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 28px;
}

.ld-oferta__itemtext {
  flex: 1 1 0;
  min-width: 0;
  color: var(--color-ink-82);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  line-height: 32px;
}

.ld-oferta__note {
  box-sizing: border-box;
  margin: 0;
  padding-left: 22px;
  border-left: 2px solid var(--color-gold);
}

.ld-oferta__note p {
  margin: 0;
  color: var(--color-ink-2);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  line-height: 32px;
}

/* ---------- CTA ---------- */

.ld-oferta .ld-cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 600px;
  padding-block: 24px;
  padding-inline: 44px;
  background-color: var(--color-wine);
  border-radius: 2px;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: 17px;
  font-weight: var(--font-weight-semibold);
  line-height: 23px;
  letter-spacing: var(--tracking-cta);
  text-align: center;
  text-transform: uppercase;
  text-wrap: balance;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 160ms ease;
}

.ld-oferta .ld-cta:hover {
  background-color: var(--color-wine-deep);
}

.ld-oferta .ld-cta:focus-visible,
.ld-oferta a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .ld-oferta .ld-cta { transition: none; }
}

/* ---------- mobile ---------- */

@media (max-width: 899px) {
  .ld-oferta {
    padding-block: 46px;
  }

  .ld-oferta__card {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    padding-block: 30px;
    padding-inline: 22px;
  }

  .ld-oferta__col--pitch { gap: 18px; }
  .ld-oferta__col--deal  { gap: 18px; }

  .ld-oferta__eyebrow {
    font-size: 12.58px;
    line-height: 22px;
  }

  .ld-oferta__title {
    font-size: 25px;
    line-height: 29px;
  }

  .ld-oferta__price {
    font-size: 50px;
    line-height: 50px;
  }

  .ld-oferta__terms {
    font-size: 16px;
    line-height: 24px;
  }

  .ld-oferta__lede {
    font-size: 17.54px;
    line-height: 28px;
  }

  .ld-oferta__item {
    gap: 12px;
  }

  .ld-oferta__dash {
    width: 13px;
  }

  .ld-oferta__itemtext,
  .ld-oferta__note p {
    font-size: 16.5px;
    line-height: 27px;
  }

  .ld-oferta__note {
    padding-left: 18px;
  }

  .ld-oferta .ld-cta {
    max-width: none;
    padding-block: 17px;
    padding-inline: 24px;
    font-size: 13.65px;
    line-height: 18px;
  }
}


/* ----- convite ----------------------------------------------------------- */
.ld-convite {
  box-sizing: border-box;
  display: flex;
  align-items: stretch;
  gap: var(--spacing-16);
  width: 100%;
  padding-block: var(--spacing-20);
  border-top: 1px solid var(--color-line);
}

.ld-convite__col {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-5);
  flex: 0 0 calc((100% - var(--spacing-16)) / 2);
  min-width: 0;
}

.ld-convite__col--rules {
  padding-left: var(--spacing-14);
  border-left: 1px solid var(--color-line-2);
}

.ld-convite__eyebrow {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--font-weight-normal);
  line-height: 22px;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.ld-convite__title {
  margin: 0;
  color: var(--color-ink);
  font-family: var(--font-serif);
  font-size: var(--text-h2-b);
  font-weight: var(--font-weight-normal);
  line-height: 47.9px;
}

.ld-convite__quote {
  box-sizing: border-box;
  margin: 0;
  padding-left: 22px;
  border-left: 2px solid var(--color-wine-deep);
  font-family: var(--font-serif);
}

.ld-convite__quote-text {
  margin: 0;
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-size: var(--text-quote);
  font-style: italic;
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-quote);
}

.ld-convite__body {
  margin: 0;
  color: var(--color-ink-2);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-relaxed);
  /* O arquivo Paper foi desenhado com a fonte do sistema; Instrument Sans é
     ~3,5% mais larga e jogava "fantasia." para uma 3ª linha no 1º parágrafo.
     +10px de medida devolvem a contagem de linhas do design. A coluna tem 64px
     de vão até o filete divisor, então o texto ainda para a ~54px dele. */
  width: calc(100% + 10px);
}

.ld-convite__rules-label {
  margin: 0;
  color: var(--color-ink-50);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: var(--font-weight-normal);
  line-height: 20.4px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.ld-convite__rules {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ld-convite__rule {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-4);
  width: 100%;
  padding-block: 13px;
  border-top: 1px solid var(--color-line);
}

.ld-convite__rule:last-child {
  border-bottom: 1px solid var(--color-line);
}

.ld-convite__dash {
  flex-shrink: 0;
  width: 14px;
  color: var(--color-gold);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 27.8px;
}

.ld-convite__rule-text {
  flex: 1 1 0;
  min-width: 0;
  color: var(--color-ink-82);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: var(--font-weight-normal);
  line-height: var(--leading-relaxed);
}

.ld-convite a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

@media (max-width: 899px) {
  .ld-convite {
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-9);
    padding-block: 46px;
  }

  .ld-convite__col {
    flex: 0 0 auto;
    width: 100%;
  }

  .ld-convite__col--rules {
    padding-left: 0;
    padding-top: 28px;
    border-left: 0;
    border-top: 1px solid var(--color-line-2);
  }

  .ld-convite__eyebrow {
    font-size: 12.58px;
    line-height: 21.4px;
  }

  .ld-convite__title {
    font-size: 25px;
    line-height: 28.5px;
  }

  .ld-convite__quote {
    padding-left: 18px;
  }

  .ld-convite__quote-text {
    font-size: 23.27px;
  }

  .ld-convite__body,
  .ld-convite__rule-text {
    font-size: 16.5px;
  }

  /* no mobile a coluna é a largura toda: sem sobra lateral para a folga acima */
  .ld-convite__body {
    width: 100%;
  }

  .ld-convite__rule {
    gap: var(--spacing-3);
  }

  .ld-convite__dash {
    width: 13px;
  }
}


/* ----- faq ----------------------------------------------------------- */
/* ── LustDuo · FAQ ───────────────────────────────────────────── */
.ld-faq{
  box-sizing:border-box;
  width:100%;
  display:flex;
  align-items:flex-start;
  gap:64px;
  padding-block:82px;
  border-top:1px solid var(--color-line);
  font-family:var(--font-sans),system-ui,sans-serif;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-wrap:anywhere;
}

.ld-faq__title{
  box-sizing:border-box;
  flex:1 1 0;
  min-width:0;
  margin:0;
  color:var(--color-ink);
  font-size:var(--text-h2-b);
  font-weight:var(--font-weight-semibold);
  letter-spacing:var(--tracking-tight);
  line-height:var(--leading-heading);
}

.ld-faq__list{
  box-sizing:border-box;
  flex:1 1 0;
  min-width:0;
  display:flex;
  flex-direction:column;
  margin:0;
  padding:0;
  list-style:none;
}

.ld-faq__item{
  box-sizing:border-box;
  width:100%;
  border-top:1px solid var(--color-line-2);
}
.ld-faq__item--last{ border-bottom:1px solid var(--color-line-2); }

.ld-faq__entry{ box-sizing:border-box; width:100%; }

.ld-faq__summary{
  box-sizing:border-box;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  width:100%;
  padding-block:24px;
  cursor:pointer;
  list-style:none;
}
.ld-faq__summary::-webkit-details-marker{ display:none; }
.ld-faq__summary::marker{ content:""; }
.ld-faq__summary:focus-visible{
  outline:2px solid var(--color-gold);
  outline-offset:4px;
}

.ld-faq__question{
  flex:1 1 0;
  min-width:0;
  color:var(--color-ink);
  font-size:var(--text-md);
  font-weight:var(--font-weight-normal);
  line-height:var(--leading-snug);
}

.ld-faq__sign{
  flex-shrink:0;
  color:var(--color-gold);
  font-size:var(--text-md);
  line-height:var(--leading-snug);
  transition:opacity .18s ease;
}
.ld-faq__sign::before{ content:"+"; }
.ld-faq__entry[open] .ld-faq__sign::before{ content:"−"; }
.ld-faq__summary:hover .ld-faq__sign{ opacity:.66; }

.ld-faq__answer{
  box-sizing:border-box;
  margin:0;
  max-width:600px;
  padding-bottom:26px;
  color:var(--color-ink-72);
  font-size:var(--text-sm);
  line-height:var(--leading-relaxed);
}

/* ── Mobile ──────────────────────────────────────────────────── */
@media (max-width:899px){
  .ld-faq{
    flex-direction:column;
    align-items:stretch;
    gap:36px;
    padding-block:46px;
  }
  .ld-faq__title{
    flex:0 0 auto;
    font-size:25px;
    line-height:var(--leading-heading);
  }
  .ld-faq__list{ flex:0 0 auto; }
  .ld-faq__summary{
    gap:16px;
    padding-block:18px;
  }
  .ld-faq__question,
  .ld-faq__sign{
    font-size:17.54px;
    line-height:var(--leading-snug);
  }
  .ld-faq__answer{
    max-width:none;
    font-size:16.5px;
  }
}

/* links dentro das respostas: mesmo tratamento das páginas de documento */
.ld-faq .ld-faq__answer a {
  color: var(--color-gold);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--color-gold-line);
  transition: text-decoration-color 160ms ease;
}
.ld-faq .ld-faq__answer a:hover { text-decoration-color: var(--color-gold); }


/* ----- fechamento ----------------------------------------------------------- */
.ld-fechamento {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  padding-block: 90px 110px;
  text-align: center;
  background-color: var(--color-bg-deep);
  /* A banda do Paper (1440px) sangra ate a borda do viewport sem alterar a
     largura de layout: a pintura vai por box-shadow e o clip-path corta
     qualquer vazamento vertical. Sem 100vw = sem overflow horizontal. */
  box-shadow: 0 0 0 100vmax var(--color-bg-deep);
  clip-path: inset(0 -100vmax);
}

.ld-fechamento__title {
  box-sizing: border-box;
  max-width: 960px;
  margin: 0;
  font-family: var(--font-serif);
  font-size: 58px;
  font-weight: 400;
  line-height: 65px;
  text-align: center;
  color: var(--color-ink);
}

.ld-fechamento__lead {
  box-sizing: border-box;
  /* No Paper a frase cabe em UMA linha (948px de largura medida) dentro do
     limite de 960px. Com a Instrument Sans do projeto o mesmo texto mede
     ~998px, entao 960 quebraria em duas linhas e destruiria o ritmo da
     secao. Solta-se ate a largura da coluna (1000px = --container-content),
     que e o mesmo bloco de conteudo do Paper (1120 - 60*2). */
  max-width: var(--container-content);
  margin: 0;
  font-family: var(--font-sans);
  font-size: 22px;
  font-weight: 400;
  line-height: 34.1px;
  text-align: center;
  color: #F0E7DDD9;
}

.ld-fechamento .ld-cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 600px;
  padding-block: 24px;
  padding-inline: 44px;
  border-radius: 2px;
  background-color: var(--color-wine);
  font-family: var(--font-sans);
  font-size: 17px;
  font-weight: 600;
  line-height: 22.4px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  color: var(--color-ink);
  cursor: pointer;
  transition: background-color 160ms ease;
}

.ld-fechamento .ld-cta:hover {
  background-color: var(--color-wine-deep);
}

.ld-fechamento .ld-cta:active {
  background-color: var(--color-wine-deep);
}

.ld-fechamento a:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

.ld-fechamento__legal {
  box-sizing: border-box;
  margin: 0;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 400;
  line-height: 22px;
  letter-spacing: 0.04em;
  text-align: center;
  color: var(--color-ink-60);
}

@media (max-width: 899px) {
  .ld-fechamento {
    gap: 24px;
    padding-block: 52px 64px;
  }

  .ld-fechamento__title {
    max-width: none;
    font-size: 29px;
    line-height: 32.5px;
  }

  .ld-fechamento__lead {
    max-width: none;
    font-size: 17.54px;
    line-height: 27.2px;
  }

  .ld-fechamento .ld-cta {
    width: 100%;
    max-width: none;
    padding-block: 17px;
    padding-inline: 24px;
    font-size: 13.65px;
    line-height: 18px;
  }

  .ld-fechamento__legal {
    font-size: 12.58px;
    line-height: 21.4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ld-fechamento .ld-cta {
    transition: none;
  }
}


/* ----- rodape ----------------------------------------------------------- */
.ld-rodape {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 22px;
  width: 100%;
  padding-block: 34px 48px;
  font-family: var(--font-sans);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-wrap: anywhere;
}

.ld-rodape__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  width: 100%;
}

.ld-rodape__brand {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ld-rodape__logo {
  display: flex;
  align-items: baseline;
  margin: 0;
}

.ld-rodape__logo-lust {
  color: #F0E7DDB3;
  font-size: 20px;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: 20px;
}

.ld-rodape__logo-duo {
  color: var(--color-gold);
  font-family: var(--font-serif);
  font-size: 20px;
  font-style: italic;
  line-height: 20px;
}

.ld-rodape__tagline {
  margin: 0;
  color: #F0E7DD85;
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-eyebrow);
  line-height: 19.5px;
  text-transform: uppercase;
}

.ld-rodape__links {
  display: flex;
  align-items: center;
  gap: 26px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ld-rodape__links-item {
  /* flex: a linha do <li> segue a altura da própria linha do link (22.5px),
     sem o espaço extra do strut que o inline-block introduziria */
  display: flex;
}

.ld-rodape__link {
  display: inline-block;
  color: #F0E7DDB3;
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 22.5px;
  text-decoration: none;
  border-radius: var(--radius-xs);
  transition: color 160ms ease;
}

.ld-rodape__link:hover {
  color: var(--color-ink);
}

.ld-rodape__link:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

.ld-rodape__legal {
  margin: 0;
  width: 100%;
  color: #F0E7DD99;
  font-size: 12px;
  line-height: 18.6px;
}

@media (max-width: 899px) {
  .ld-rodape {
    /* 36px do rodapé + 24px da banda (F1-0) que fecha a página no mobile */
    padding-block: 26px 60px;
  }

  .ld-rodape__top {
    flex-direction: column;
    align-items: stretch;
    gap: 22px;
  }

  .ld-rodape__tagline {
    font-size: 12.58px;
    line-height: 18.9px;
  }

  .ld-rodape__links {
    flex-wrap: wrap;
    column-gap: 26px;
    row-gap: 6px;
    width: 100%;
  }
}


/* ----- barra ----------------------------------------------------------- */
.ld-barra {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-color: var(--color-wine-deep);
  border-top: 1px solid #F0E7DD2E;
  font-family: var(--font-sans);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  padding-bottom: env(safe-area-inset-bottom, 0px);
  transform: translateY(0);
  opacity: 1;
  will-change: transform;
  transition: transform 320ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 220ms ease;
}

/* gancho opcional para a lógica de scroll injetada depois */
.ld-barra.is-hidden {
  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
}

.ld-barra__inner {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  width: 100%;
  max-width: 1120px;
  margin-inline: auto;
  /* Paper: conteúdo de 74px centrado numa barra de 78px (1px de filete + 77px
     de caixa) — 14px de padding + 1,5px de folga acima e abaixo = 15,5px */
  padding-block: 15.5px;
  padding-inline: 60px;
}

.ld-barra__offer {
  box-sizing: border-box;
  display: flex;
  align-items: baseline;
  gap: 16px;
  min-width: 0;
}

.ld-barra__price {
  margin: 0;
  color: var(--color-ink);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 30px;
}

.ld-barra__note {
  margin: 0;
  color: var(--color-ink-72);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0em;
  line-height: 22px;
}

.ld-barra .ld-cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background-color: var(--color-bg);
  border-radius: 2px;
  padding-block: 14px;
  padding-inline: 28px;
  color: var(--color-ink);
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 18px;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 160ms ease, box-shadow 160ms ease;
}

.ld-barra .ld-cta:hover {
  background-color: var(--color-surface);
  box-shadow: inset 0 0 0 1px var(--color-gold-line-2);
}

.ld-barra .ld-cta:active {
  background-color: var(--color-bg);
}

.ld-barra .ld-cta:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 3px;
}

@media (max-width: 899px) {
  .ld-barra__inner {
    justify-content: flex-start;
    gap: 10px;
    max-width: none;
    margin-inline: 0;
    padding-block: 8px;
    padding-inline: 12px;
  }

  .ld-barra__offer {
    flex-shrink: 0;
  }

  .ld-barra__price {
    font-size: 18px;
    line-height: 22px;
  }

  .ld-barra__note {
    display: none;
  }

  .ld-barra .ld-cta {
    flex: 1 1 0;
    min-width: 0;
    min-height: 44px;
    padding-block: 10px;
    padding-inline: 12px;
    font-size: 11.5px;
    line-height: 13.6px;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ld-barra,
  .ld-barra .ld-cta {
    transition: none;
  }
}
