/* ===================================================================
   Workshop Castelo Cenográfico — Landing B
   "Vitrine encantada, mas vendável" — narrativa de capítulos
   =================================================================== */

:root {
  /* paleta oficial */
  --rose: #B44A78;
  --rose-deep: #7d2e4f;
  --rose-soft: #F7C7D8;
  --lilac: #D3B6E6;
  --lilac-deep: #A37FB8;
  --gold: #C89A3E;
  --gold-soft: #E7C772;
  --cream: #FFF2E7;
  --cream-warm: #FBE5D2;

  /* neutros matizados (sem branco/preto puros) */
  --ink: #2a1620;
  --ink-2: #4a2a3a;
  --paper: #FFF7EF;
  --paper-tint: #FCEDDD;

  /* tipografia */
  --font-display: "Cinzel", "Trajan Pro", serif;
  --font-serif: "Cormorant Garamond", "Times New Roman", serif;
  --font-script: "Great Vibes", "Brush Script MT", cursive;
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius: 18px;
  --radius-lg: 28px;
  --shadow-soft: 0 24px 60px -28px rgba(180, 74, 120, 0.35), 0 8px 18px -10px rgba(125, 46, 79, 0.18);
  --shadow-card: 0 18px 40px -22px rgba(125, 46, 79, 0.25);
  --gold-line: linear-gradient(90deg, transparent, var(--gold), transparent);
  --cont: min(1180px, 92vw);
}

/* ---------- reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--paper);
  background-image:
    radial-gradient(1100px 600px at 80% -10%, rgba(211, 182, 230, 0.30), transparent 60%),
    radial-gradient(900px 500px at -10% 20%, rgba(247, 199, 216, 0.40), transparent 65%),
    radial-gradient(1200px 700px at 50% 110%, rgba(200, 154, 62, 0.10), transparent 60%);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
button { font: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-radius: 6px;
}

.skip-link {
  position: absolute; top: -100px; left: 0;
  background: var(--rose); color: var(--cream);
  padding: 12px 18px; z-index: 1000;
  transition: top 0.2s;
}
.skip-link:focus { top: 0; }

/* ---------- tipografia ---------- */
.display {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.005em;
  line-height: 1.05;
  color: var(--rose-deep);
  margin: 0;
}
.display.lg { font-size: clamp(2rem, 5.6vw, 3.6rem); line-height: 1.1; }
h1.display { font-size: clamp(2.1rem, 6.2vw, 4.4rem); }
.display em, h2 em, h3 em { font-style: normal; color: var(--rose); }
.display .script,
.script {
  font-family: var(--font-script);
  font-weight: 400;
  color: var(--rose);
  letter-spacing: 0;
  font-size: 1.25em;
  line-height: 0.9;
  display: inline-block;
}
.chapter-mark {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0.72rem;
  color: var(--gold);
  margin: 0 0 0.75rem;
}
.chapter-mark.center { text-align: center; }
.kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-sans);
  font-size: 0.78rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.18em;
  color: var(--rose);
  padding: 8px 14px;
  background: rgba(247, 199, 216, 0.4);
  border: 1px solid rgba(180, 74, 120, 0.2);
  border-radius: 999px;
  margin: 0 0 1.4rem;
}
.kicker .dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--rose);
  box-shadow: 0 0 0 4px rgba(180, 74, 120, 0.18);
  animation: pulse 2.2s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { box-shadow: 0 0 0 4px rgba(180, 74, 120, 0.18); }
  50% { box-shadow: 0 0 0 8px rgba(180, 74, 120, 0.05); }
}

p { margin: 0 0 1em; color: var(--ink-2); }
.lead { font-family: var(--font-serif); font-size: 1.18rem; color: var(--ink-2); line-height: 1.55; }

/* ---------- marquee ---------- */
.marquee {
  background: var(--rose-deep);
  color: var(--cream);
  font-family: var(--font-sans);
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 8px 0;
  overflow: hidden;
  position: relative;
}
.marquee-track {
  display: flex; gap: 2.5rem; white-space: nowrap; width: max-content;
  animation: marquee 40s linear infinite;
}
.marquee-track span { padding: 0 1.5rem; }
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-33.33%); }
}

/* ---------- topbar ---------- */
.topbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem clamp(1rem, 3vw, 2rem);
  background: rgba(255, 247, 239, 0.85);
  backdrop-filter: saturate(1.2) blur(8px);
  -webkit-backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid rgba(200, 154, 62, 0.22);
}
.brand {
  display: inline-flex; align-items: center; gap: 0.6rem;
  font-family: var(--font-display); font-weight: 700;
  color: var(--rose-deep); font-size: 0.95rem; letter-spacing: 0.06em;
}
.brand img { width: 38px; height: 38px; object-fit: contain; }
.brand em { font-style: normal; color: var(--gold); }
.topnav {
  display: none;
  gap: 1.6rem;
  font-family: var(--font-sans); font-size: 0.84rem; font-weight: 500;
  letter-spacing: 0.06em;
}
.topnav a { position: relative; padding: 4px 0; color: var(--ink-2); }
.topnav a::after {
  content: ""; position: absolute; left: 0; bottom: -2px;
  height: 1px; width: 0; background: var(--gold);
  transition: width 0.3s ease;
}
.topnav a:hover { color: var(--rose); }
.topnav a:hover::after { width: 100%; }
@media (min-width: 820px) { .topnav { display: flex; } }

/* ---------- chapter rail (desktop) ---------- */
.chapter-rail {
  display: none;
  position: fixed;
  left: 14px; top: 50%;
  transform: translateY(-50%);
  z-index: 40;
}
.chapter-rail ol {
  display: flex; flex-direction: column; gap: 14px;
  padding: 18px 12px;
  background: rgba(255, 247, 239, 0.7);
  border: 1px solid rgba(200, 154, 62, 0.22);
  border-radius: 999px;
  backdrop-filter: blur(8px);
}
.chapter-rail li {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-display); font-size: 0.66rem;
  color: rgba(74, 42, 58, 0.55);
  letter-spacing: 0.16em;
  cursor: pointer;
  position: relative;
  transition: color 0.3s ease;
}
.chapter-rail li span {
  width: 18px; height: 18px; border-radius: 50%;
  background: rgba(200, 154, 62, 0.25);
  display: grid; place-items: center;
  font-size: 0.55rem; color: var(--ink); font-weight: 700;
  transition: all 0.3s ease;
}
.chapter-rail li em {
  font-style: normal;
  opacity: 0;
  transform: translateX(-6px);
  transition: all 0.3s ease;
  white-space: nowrap;
  font-size: 0.7rem;
}
.chapter-rail li:hover em,
.chapter-rail li.is-active em {
  opacity: 1; transform: translateX(0);
}
.chapter-rail li.is-active {
  color: var(--rose-deep);
}
.chapter-rail li.is-active span {
  background: var(--rose);
  color: var(--cream);
  box-shadow: 0 0 0 4px rgba(180, 74, 120, 0.18);
}
@media (min-width: 1280px) { .chapter-rail { display: none; } }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--font-sans);
  font-weight: 600; letter-spacing: 0.02em;
  padding: 14px 24px;
  border-radius: 999px;
  border: none;
  text-align: center;
  transition: transform 0.25s ease, box-shadow 0.3s ease, background 0.3s ease;
  position: relative;
  isolation: isolate;
}
.btn svg { width: 18px; height: 18px; transition: transform 0.3s ease; }
.btn:hover svg { transform: translateX(3px); }
.btn-primary {
  background: linear-gradient(180deg, #C9588D, var(--rose) 60%, var(--rose-deep));
  color: var(--cream);
  box-shadow:
    0 12px 28px -14px rgba(180, 74, 120, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    inset 0 -2px 0 rgba(91, 31, 58, 0.4);
  font-size: 0.96rem;
}
.btn-primary::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), transparent 40%);
  pointer-events: none; z-index: -1;
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -14px rgba(180, 74, 120, 0.7);
}
.btn-primary.big { padding: 18px 32px; font-size: 1.05rem; }
.btn-ghost {
  background: transparent;
  color: var(--rose-deep);
  border: 1.5px solid var(--rose);
  padding: 12px 22px;
}
.btn-ghost:hover { background: var(--rose); color: var(--cream); }
.btn-small { padding: 9px 16px; font-size: 0.82rem; }
.btn-ribbon {
  background: var(--rose);
  color: var(--cream);
  box-shadow: 0 6px 16px -8px rgba(180, 74, 120, 0.6);
}
.btn-ribbon:hover { background: var(--rose-deep); }

/* ---------- HERO (Capítulo I) ---------- */
.hero {
  position: relative;
  min-height: auto;
  padding: 1.5rem 0 2.5rem;
  overflow: hidden;
  isolation: isolate;
}
/* Cortinas: estritamente decoração de fundo, vivendo na margem lateral.
   Escondidas até que a viewport tenha margem suficiente fora do container. */
.curtain {
  display: none;
  position: absolute; top: 0; bottom: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.92;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 55%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 0%, #000 55%, transparent 100%);
}
.curtain img { width: 100%; height: 100%; object-fit: cover; display: block; }
.curtain-l { left: 0; animation: curtain-fade 1.2s 0.2s ease-out both; }
.curtain-r { right: 0; animation: curtain-fade 1.2s 0.2s ease-out both; }
.curtain-r img { transform: scaleX(-1); }
@keyframes curtain-fade {
  from { opacity: 0; }
  to   { opacity: 0.92; }
}
@media (min-width: 1180px) {
  .curtain {
    display: block;
    /* largura sempre menor que a margem disponível ao redor do container */
    width: clamp(56px, calc((100vw - 1180px) / 2 - 12px), 160px);
  }
}

.stage {
  position: relative;
  z-index: 2;
  width: var(--cont); margin: 0 auto;
  display: grid; gap: 1.2rem;
  padding-top: 1rem;
}
.stage-backdrop {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  z-index: 0; opacity: 0.55;
  pointer-events: none;
}
.stage-backdrop img {
  width: min(820px, 92%);
  max-height: 720px;
  filter: drop-shadow(0 30px 50px rgba(180, 74, 120, 0.25));
  animation: floaty 9s ease-in-out infinite;
  will-change: transform;
}
@keyframes floaty {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
.stage-foreground {
  position: relative; z-index: 1;
  max-width: 720px;
  padding: 4.5rem 0 2rem;
  text-align: left;
}
.stage-foreground h1 .line {
  display: block;
  overflow: hidden;
}
.stage-foreground .lead {
  background: rgba(255, 247, 239, 0.78);
  padding: 1rem 1.2rem;
  border-radius: var(--radius);
  border-left: 3px solid var(--gold);
  max-width: 560px;
}
.hero-actions {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem;
  margin: 1.8rem 0;
}
.price-tag {
  display: inline-flex; flex-direction: column; align-items: flex-start;
  background: var(--cream);
  border: 1px dashed var(--rose);
  padding: 8px 16px;
  border-radius: 8px;
  position: relative;
  line-height: 1.1;
}
.price-tag::before, .price-tag::after {
  content: ""; position: absolute; top: 50%; width: 6px; height: 6px;
  border-radius: 50%; background: var(--rose); transform: translateY(-50%);
}
.price-tag::before { left: -3px; }
.price-tag::after { right: -3px; }
.price-tag small { font-size: 0.7rem; color: var(--ink-2); letter-spacing: 0.05em; }
.price-tag strong { font-family: var(--font-display); font-size: 1.4rem; color: var(--rose-deep); }
.price-tag em { font-style: normal; font-size: 0.66rem; color: var(--gold); letter-spacing: 0.16em; text-transform: uppercase; }

.info-strip {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem;
  margin: 1.6rem 0 0;
  max-width: 520px;
}
.info-strip > div {
  background: rgba(255, 247, 239, 0.85);
  border: 1px solid rgba(200, 154, 62, 0.3);
  border-radius: 12px;
  padding: 10px 14px;
}
.info-strip dt {
  font-family: var(--font-display);
  font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 2px;
}
.info-strip dd {
  margin: 0; font-family: var(--font-serif); font-weight: 600;
  font-size: 1.05rem; color: var(--rose-deep);
}

.hero-scroll-hint {
  position: absolute; left: 50%; bottom: 14px;
  transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  font-size: 0.7rem; color: var(--rose); letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.7;
  animation: nudge 2.4s ease-in-out infinite;
  z-index: 3;
}
.hero-scroll-hint svg { width: 18px; height: 18px; color: var(--gold); }
@keyframes nudge {
  0%, 100% { transform: translate(-50%, 0); }
  50% { transform: translate(-50%, 6px); }
}

@media (min-width: 900px) {
  .stage { padding-top: 2rem; }
  .stage-foreground { padding: 6rem 0 2rem; }
  .info-strip { grid-template-columns: repeat(4, 1fr); max-width: none; }
  .stage-backdrop { inset: -30px -2vw -30px 30vw; place-items: end; }
  .stage-backdrop img { width: 100%; max-width: 720px; max-height: 90vh; }
}

/* ---------- divider ornaments ---------- */
.divider {
  display: block;
  width: min(560px, 80vw);
  margin: 1.5rem auto;
  opacity: 0.9;
}

/* ---------- ENCANTAMENTO (Capítulo II) ---------- */
.enchant {
  width: var(--cont); margin: 4rem auto;
  text-align: center;
}
.enchant-lead {
  font-family: var(--font-serif);
  font-size: 1.2rem;
  max-width: 640px;
  margin: 1.2rem auto 2.4rem;
  color: var(--ink-2);
}
.enchant-lead em { font-style: italic; color: var(--rose-deep); }
.effects {
  display: grid; gap: 1.2rem;
  grid-template-columns: 1fr;
  margin-top: 1rem;
}
@media (min-width: 700px) { .effects { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .effects { grid-template-columns: repeat(4, 1fr); } }
.effects li {
  background: var(--cream);
  border: 1px solid rgba(200, 154, 62, 0.18);
  border-radius: var(--radius);
  padding: 1.6rem 1.2rem;
  position: relative;
  text-align: left;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.effects li::before {
  content: ""; position: absolute; top: -1px; left: 16px; right: 16px; height: 2px;
  background: var(--gold-line);
}
.effects li:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }
.effects .ico {
  width: 40px; height: 40px; color: var(--gold);
  margin-bottom: 0.8rem;
}
.effects h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--rose-deep);
  margin: 0 0 0.4rem;
  letter-spacing: 0.04em;
}
.effects p { font-family: var(--font-serif); font-size: 1.02rem; color: var(--ink-2); margin: 0; }

/* ---------- STATEMENT card ---------- */
.statement {
  width: var(--cont); margin: 5rem auto;
  display: flex; justify-content: center;
}
.statement-card {
  max-width: 760px;
  padding: clamp(2rem, 4vw, 3.2rem);
  background: linear-gradient(155deg, var(--cream) 0%, var(--cream-warm) 100%);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  position: relative;
  text-align: center;
  border: 1px solid rgba(200, 154, 62, 0.25);
}
.statement-card::before,
.statement-card::after {
  content: ""; position: absolute;
  width: 60px; height: 60px;
  border: 1.5px solid var(--gold);
  opacity: 0.45;
}
.statement-card::before { top: 12px; left: 12px; border-right: none; border-bottom: none; border-radius: 8px 0 0 0; }
.statement-card::after  { bottom: 12px; right: 12px; border-left: none; border-top: none; border-radius: 0 0 8px 0; }
.statement-card h2 {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 3.2vw, 2.1rem);
  color: var(--rose-deep);
  line-height: 1.18;
  margin: 0 0 1rem;
}
.statement-card h2 em { font-style: italic; color: var(--rose); }
.statement-card p { font-family: var(--font-serif); font-size: 1.1rem; }
.big-crown {
  width: 56px; height: 56px;
  color: var(--gold);
  margin: 0 auto 0.6rem;
  display: block;
  filter: drop-shadow(0 6px 12px rgba(200, 154, 62, 0.35));
}

/* ---------- GRIMÓRIO (Capítulo III) ---------- */
.grimoire {
  width: var(--cont); margin: 5rem auto;
}
.grimoire-head {
  max-width: 720px;
  margin: 0 0 2.4rem;
}
.grimoire-head p {
  font-family: var(--font-serif); font-size: 1.1rem; color: var(--ink-2);
}
.chapters {
  display: grid; gap: 1rem;
  grid-template-columns: 1fr;
  counter-reset: chap;
}
@media (min-width: 720px) { .chapters { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .chapters { grid-template-columns: repeat(2, 1fr); gap: 1.1rem 2rem; } }

.chapters li {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: start;
  gap: 1rem 1.2rem;
  padding: 1.2rem 1.2rem 1.4rem;
  background: linear-gradient(180deg, rgba(255, 247, 239, 0.6), rgba(252, 237, 221, 0.5));
  border-radius: var(--radius);
  border: 1px solid rgba(180, 74, 120, 0.12);
  position: relative;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.chapters li:hover {
  transform: translateY(-3px);
  border-color: rgba(180, 74, 120, 0.4);
  box-shadow: var(--shadow-card);
}
.chapters .num {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--rose);
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid var(--gold);
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 50%;
  letter-spacing: 0;
}
.chapters .ico { width: 36px; height: 36px; color: var(--gold); margin-top: 4px; }
.chapters h3 {
  margin: 0 0 0.25rem;
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--rose-deep);
  letter-spacing: 0.04em;
  grid-column: 3 / -1;
}
.chapters p {
  grid-column: 3 / -1;
  margin: 0;
  font-family: var(--font-serif);
  font-size: 1rem;
  color: var(--ink-2);
}

/* ---------- VITRINE (Capítulo IV) ---------- */
.vitrine { width: var(--cont); margin: 5rem auto; }
.vitrine-head { max-width: 720px; margin: 0 0 2rem; }
.vitrine-head p { font-family: var(--font-serif); font-size: 1.1rem; color: var(--ink-2); }

.gallery {
  position: relative;
  margin: 0 calc((100vw - var(--cont)) / -2);
  padding: 0 calc((100vw - var(--cont)) / 2);
}
.gallery-track {
  display: flex; gap: 1.2rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 1rem 0 2rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.gallery-track::-webkit-scrollbar { height: 6px; }
.gallery-track::-webkit-scrollbar-thumb { background: var(--rose-soft); border-radius: 99px; }
.gallery-card {
  flex: 0 0 min(320px, 80%);
  scroll-snap-align: start;
  display: flex; flex-direction: column;
  transition: transform 0.4s ease;
}
.gallery-card .frame {
  aspect-ratio: 3/4;
  background: linear-gradient(160deg, var(--cream-warm), var(--rose-soft) 130%);
  border-radius: var(--radius);
  overflow: hidden;
  display: grid; place-items: center;
  border: 1px solid rgba(200, 154, 62, 0.3);
  box-shadow: var(--shadow-card);
  position: relative;
}
.gallery-card .frame img { width: 100%; height: 100%; object-fit: contain; padding: 1rem; }
.gallery-card .frame::after {
  content: ""; position: absolute; inset: 6px;
  border: 1px solid rgba(200, 154, 62, 0.5);
  border-radius: calc(var(--radius) - 6px);
  pointer-events: none;
}
.gallery-card .placeholder {
  background:
    repeating-linear-gradient(45deg, rgba(180, 74, 120, 0.06) 0 8px, transparent 8px 16px),
    linear-gradient(160deg, var(--cream-warm), var(--rose-soft));
  padding: 1.5rem;
  text-align: center;
}
.gallery-card .placeholder p {
  font-family: var(--font-serif); font-style: italic; color: var(--ink-2);
  margin: auto 0; max-width: 220px;
}
.gallery-card .placeholder small {
  font-family: var(--font-display);
  font-size: 0.62rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold);
}
.gallery-card figcaption {
  padding: 0.8rem 0.3rem 0;
  display: flex; flex-direction: column; gap: 2px;
}
.gallery-card figcaption strong { font-family: var(--font-display); color: var(--rose-deep); font-size: 0.95rem; letter-spacing: 0.04em; }
.gallery-card figcaption span { font-family: var(--font-serif); font-size: 0.9rem; color: var(--ink-2); font-style: italic; }
.gallery-card.pose-1 { transform: rotate(-1deg); }
.gallery-card.pose-2 { transform: rotate(0.5deg); margin-top: 1.4rem; }
.gallery-card.pose-3 { transform: rotate(-0.5deg); margin-top: 0.7rem; }

.gallery-nav {
  position: absolute; top: 40%;
  transform: translateY(-50%);
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--cream);
  border: 1px solid var(--gold);
  color: var(--rose);
  font-size: 1.6rem;
  display: grid; place-items: center;
  box-shadow: var(--shadow-card);
  z-index: 5;
  transition: background 0.2s ease, transform 0.2s ease;
}
.gallery-nav:hover { background: var(--rose); color: var(--cream); transform: translateY(-50%) scale(1.05); }
.gallery-nav.prev { left: 4px; }
.gallery-nav.next { right: 4px; }
@media (min-width: 760px) {
  .gallery-card { flex: 0 0 320px; }
  .gallery-nav.prev { left: 12px; }
  .gallery-nav.next { right: 12px; }
}

/* ---------- ESPELHO (Capítulo V) ---------- */
.mirror { width: var(--cont); margin: 5rem auto; }
.mirror-grid {
  display: grid; gap: 1.4rem;
  grid-template-columns: 1fr;
  margin-top: 2rem;
}
@media (min-width: 900px) { .mirror-grid { grid-template-columns: 1fr 1fr; } }
.mirror-card {
  background: var(--cream);
  border: 1px solid rgba(200, 154, 62, 0.22);
  border-radius: var(--radius);
  padding: 1.8rem 1.6rem;
}
.mirror-card h3 {
  font-family: var(--font-display); font-size: 1.1rem;
  color: var(--rose-deep); margin: 0 0 1rem; letter-spacing: 0.06em;
}
.check-list, .dot-list { display: flex; flex-direction: column; gap: 0.7rem; }
.check-list li, .dot-list li {
  font-family: var(--font-serif); font-size: 1.05rem;
  color: var(--ink-2); line-height: 1.4;
  padding-left: 1.8rem; position: relative;
}
.check-list li::before {
  content: ""; position: absolute; left: 0; top: 0.3em;
  width: 18px; height: 18px;
  background:
    radial-gradient(circle, var(--gold-soft) 0%, var(--gold) 100%);
  clip-path: polygon(20% 50%, 0 70%, 40% 100%, 100% 30%, 80% 10%, 40% 60%);
}
.dot-list li::before {
  content: "✕";
  position: absolute; left: 0; top: 0;
  color: var(--rose);
  font-weight: 700;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  width: 18px; height: 18px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: rgba(247, 199, 216, 0.6);
}
.if-cta {
  margin-top: 1.2rem;
  padding: 1rem 1.2rem;
  background: rgba(247, 199, 216, 0.35);
  border-left: 3px solid var(--rose);
  border-radius: 0 12px 12px 0;
  font-family: var(--font-display);
  color: var(--rose-deep);
  letter-spacing: 0.04em;
}

/* before / after slider */
.before-after { margin-top: 2.4rem; }
.ba-stage {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: 280px;
  background: var(--cream);
  border: 1px solid rgba(200, 154, 62, 0.3);
  box-shadow: var(--shadow-card);
  user-select: none;
  --pos: 50%;
}
.ba {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: center;
  padding: 1.4rem 1.6rem;
}
.ba-before {
  background:
    repeating-linear-gradient(135deg, rgba(74, 42, 58, 0.04) 0 12px, transparent 12px 24px),
    linear-gradient(120deg, #e7d2cf, #f0dad6);
  color: var(--ink-2);
  clip-path: polygon(0 0, var(--pos) 0, var(--pos) 100%, 0 100%);
}
.ba-after {
  background: linear-gradient(120deg, var(--rose-soft) 0%, var(--lilac) 100%);
  color: var(--rose-deep);
}
.ba ul {
  display: flex; flex-wrap: wrap; gap: 6px 10px;
  font-family: var(--font-serif); font-size: 1.05rem;
}
.ba ul li::before { content: "·"; margin-right: 4px; color: var(--gold); }
.ba-after ul li { color: var(--rose-deep); font-weight: 500; }
.ba-handle {
  position: absolute; top: 0; bottom: 0;
  left: var(--pos);
  transform: translateX(-50%);
  width: 44px;
  background: transparent; border: none;
  cursor: ew-resize;
  z-index: 4;
}
.ba-handle::before {
  content: ""; position: absolute;
  left: 50%; top: 0; bottom: 0;
  width: 3px; background: var(--gold);
  transform: translateX(-50%);
  box-shadow: 0 0 12px rgba(200, 154, 62, 0.6);
}
.ba-handle span {
  position: absolute; top: 50%; left: 50%;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--cream);
  border: 2px solid var(--gold);
  transform: translate(-50%, -50%);
  box-shadow: var(--shadow-card);
}
.ba-handle span::before, .ba-handle span::after {
  content: ""; position: absolute; top: 50%; transform: translateY(-50%);
  width: 0; height: 0;
  border-top: 5px solid transparent; border-bottom: 5px solid transparent;
}
.ba-handle span::before { left: 6px; border-right: 6px solid var(--rose); }
.ba-handle span::after  { right: 6px; border-left: 6px solid var(--rose); }
.ba-hint {
  text-align: center; font-size: 0.78rem;
  color: var(--ink-2);
  letter-spacing: 0.1em; text-transform: uppercase;
  margin-top: 0.6rem;
}

/* ---------- ABOUT TÁBITA (Capítulo VI) ---------- */
.about {
  width: var(--cont); margin: 5rem auto;
  display: grid; gap: 2rem;
  grid-template-columns: 1fr;
  align-items: center;
}
@media (min-width: 900px) { .about { grid-template-columns: 0.85fr 1fr; gap: 3rem; } }
.about-portrait {
  position: relative;
  display: flex; flex-direction: column; align-items: center;
}
.portrait-frame {
  width: 100%;
  max-width: 380px;
  aspect-ratio: 4/5;
  background: linear-gradient(160deg, var(--cream-warm), var(--lilac));
  border: 1px solid var(--gold);
  border-radius: 220px 220px 24px 24px;
  display: grid; place-items: center;
  position: relative;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.portrait-frame::before {
  content: ""; position: absolute; inset: 8px;
  border: 1px solid rgba(200, 154, 62, 0.6);
  border-radius: 210px 210px 18px 18px;
  pointer-events: none;
}
.portrait-frame img { width: 60%; opacity: 0.78; }
.portrait-hint {
  position: absolute; bottom: 16px; left: 16px; right: 16px;
  font-family: var(--font-serif); font-style: italic;
  font-size: 0.85rem; color: var(--rose-deep);
  text-align: center; margin: 0;
}
.about-portrait .signature {
  font-family: var(--font-script);
  font-size: 2.6rem;
  color: var(--rose);
  margin-top: -0.4rem;
  transform: rotate(-3deg);
}
.about-copy p {
  font-family: var(--font-serif); font-size: 1.1rem;
  color: var(--ink-2);
}
.about-copy em { font-style: italic; color: var(--rose); }

/* ---------- VALUE BAND ---------- */
.value-band {
  background:
    radial-gradient(900px 400px at 80% 30%, rgba(247, 199, 216, 0.6), transparent),
    linear-gradient(135deg, var(--rose) 0%, var(--rose-deep) 100%);
  color: var(--cream);
  text-align: center;
  padding: clamp(3rem, 7vw, 5rem) 1rem;
  position: relative;
  overflow: hidden;
  margin: 4rem 0;
}
.value-band::before,
.value-band::after {
  content: ""; position: absolute;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(200, 154, 62, 0.35), transparent 60%);
  border-radius: 50%;
}
.value-band::before { top: -60px; left: -40px; }
.value-band::after { bottom: -80px; right: -60px; width: 280px; height: 280px; }
.value-band .big-crown { color: var(--gold-soft); }
.value-band h2 {
  color: var(--cream);
  max-width: 880px; margin: 0 auto 1rem;
}
.value-band h2 .script { color: var(--gold-soft); }
.value-band p {
  color: rgba(255, 247, 239, 0.85);
  max-width: 560px; margin: 0 auto;
  font-family: var(--font-serif); font-size: 1.15rem;
}

/* ---------- OFERTA (Capítulo VII) ---------- */
.offer {
  width: var(--cont); margin: 5rem auto;
}
.offer .center { text-align: center; }
.offer h2.display.lg { max-width: 820px; margin: 0 auto 2.4rem; }
.offer-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  background: linear-gradient(155deg, var(--cream), var(--cream-warm));
  border-radius: var(--radius-lg);
  padding: clamp(1.6rem, 3.5vw, 2.6rem);
  border: 1px solid rgba(200, 154, 62, 0.3);
  box-shadow: var(--shadow-soft);
  position: relative;
}
@media (min-width: 860px) {
  .offer-card { grid-template-columns: 1.4fr 1fr; gap: 2.4rem; }
}
.offer-card::before {
  content: "🏰"; position: absolute; top: -28px; left: 50%;
  transform: translateX(-50%);
  width: 56px; height: 56px;
  background: var(--rose);
  color: var(--gold-soft);
  font-size: 1.6rem;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 3px solid var(--cream);
  box-shadow: var(--shadow-card);
}
.event-name {
  font-family: var(--font-display);
  font-size: 1.3rem; color: var(--rose-deep);
  margin: 0 0 0.3rem;
}
.event-when {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--ink-2);
  margin: 0 0 1.2rem;
}
.check-list.rich li { font-size: 1rem; }
.footnote {
  margin-top: 1rem;
  font-family: var(--font-sans); font-size: 0.78rem;
  color: var(--ink-2); opacity: 0.75; font-style: italic;
}
.offer-price {
  background: var(--paper);
  border: 1px dashed var(--rose);
  border-radius: var(--radius);
  padding: 1.6rem;
  display: flex; flex-direction: column; align-items: stretch; gap: 0.6rem;
  text-align: center;
  position: relative;
}
.offer-price .from { font-size: 0.86rem; color: var(--ink-2); }
.offer-price .from s { color: rgba(74, 42, 58, 0.55); }
.offer-price .price {
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 7vw, 3.4rem);
  color: var(--rose-deep);
  line-height: 1;
  letter-spacing: 0;
}
.offer-price .lot {
  font-family: var(--font-display);
  font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold);
}
.offer-price .btn { margin-top: 0.4rem; }
.offer-price .urgency {
  font-family: var(--font-serif); font-style: italic;
  font-size: 0.92rem; color: var(--ink-2);
  margin: 0.6rem 0 0;
}
.offer-price .link-hint {
  font-size: 0.72rem; color: var(--rose);
  margin: 0;
}

/* timeline / cronograma */
.schedule { margin-top: 3rem; }
.timeline {
  display: grid;
  gap: 0.6rem;
  max-width: 720px;
  margin: 1.4rem auto 0;
  position: relative;
}
.timeline::before {
  content: ""; position: absolute;
  left: 80px; top: 6px; bottom: 6px;
  width: 1px;
  background: var(--gold);
  opacity: 0.5;
}
.timeline li {
  display: grid; grid-template-columns: 80px 1fr; align-items: baseline;
  gap: 1rem;
  padding: 0.6rem 0;
  position: relative;
}
.timeline .time {
  font-family: var(--font-display);
  font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--rose); text-align: right;
}
.timeline li::before {
  content: ""; position: absolute; left: 76px; top: 0.85rem;
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--gold); border: 2px solid var(--cream);
}
.timeline p { margin: 0; font-family: var(--font-serif); font-size: 1.05rem; color: var(--ink-2); }
.schedule-foot { text-align: center; font-size: 0.78rem; color: var(--ink-2); opacity: 0.7; margin-top: 1rem; }

/* ---------- FAQ (Capítulo VIII) ---------- */
.faq { width: var(--cont); margin: 5rem auto; }
.faq h2 { max-width: 760px; }
.faq-list { display: flex; flex-direction: column; gap: 0.6rem; margin-top: 2rem; }
.faq-list details {
  background: var(--cream);
  border: 1px solid rgba(200, 154, 62, 0.22);
  border-radius: var(--radius);
  padding: 0;
  overflow: hidden;
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
.faq-list details[open] {
  border-color: var(--rose);
  box-shadow: var(--shadow-card);
}
.faq-list summary {
  list-style: none;
  cursor: pointer;
  padding: 1.1rem 1.4rem;
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--rose-deep);
  letter-spacing: 0.03em;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary i {
  font-style: normal;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: 1.2rem; line-height: 1;
  transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.faq-list details[open] summary i {
  transform: rotate(45deg);
  background: var(--rose);
  border-color: var(--rose);
  color: var(--cream);
}
.faq-list p {
  margin: 0;
  padding: 0 1.4rem 1.2rem;
  font-family: var(--font-serif);
  color: var(--ink-2);
  font-size: 1.05rem;
  animation: fade-in 0.4s ease;
}
@keyframes fade-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ---------- FINAL CTA ---------- */
.final-cta {
  width: var(--cont); margin: 5rem auto;
  text-align: center;
  padding: 3rem 1.4rem;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(500px 220px at 50% 0%, rgba(211, 182, 230, 0.45), transparent),
    linear-gradient(180deg, var(--paper), var(--cream-warm));
  border: 1px solid rgba(200, 154, 62, 0.3);
  position: relative;
}
.final-cta h2 { max-width: 760px; margin: 0.4rem auto 1rem; }
.final-cta p { font-family: var(--font-serif); font-size: 1.12rem; max-width: 560px; margin: 0 auto 1.4rem; }
.final-cta .micro {
  margin-top: 1rem;
  font-family: var(--font-display);
  font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--rose);
}

/* ---------- footer ---------- */
.footer {
  text-align: center;
  padding: 3rem 1rem 7rem;
  background: var(--rose-deep);
  color: var(--cream);
}
.footer img {
  width: 80px; margin: 0 auto 1rem; opacity: 0.95;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.2));
}
.footer .signature {
  font-family: var(--font-script);
  font-size: 1.6rem;
  color: var(--gold-soft);
  margin: 0 0 1rem;
  line-height: 1.2;
}
.footer .meta {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  color: rgba(255, 247, 239, 0.7);
  letter-spacing: 0.1em;
  margin: 0;
}

/* ---------- sticky CTA (mobile) ---------- */
.sticky-cta {
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 80;
  background: var(--rose-deep);
  color: var(--cream);
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem;
  padding: 10px 14px;
  box-shadow: 0 -8px 24px -6px rgba(0, 0, 0, 0.18);
  transform: translateY(110%);
  transition: transform 0.4s ease;
}
.sticky-cta.is-visible { transform: translateY(0); }
.sticky-cta strong {
  font-family: var(--font-display);
  font-size: 0.92rem;
  letter-spacing: 0.04em;
  display: block;
}
.sticky-cta span {
  font-family: var(--font-serif);
  font-size: 0.76rem;
  font-style: italic;
  color: rgba(255, 247, 239, 0.78);
}
.sticky-cta .btn {
  background: var(--gold);
  color: var(--rose-deep);
  padding: 10px 18px;
  font-size: 0.86rem;
}
.sticky-cta .btn:hover { background: var(--gold-soft); }
@media (min-width: 900px) { .sticky-cta { display: none; } }

/* ---------- butterfly cursor (desktop) ---------- */
.butterfly {
  position: fixed; top: 0; left: 0;
  width: 34px; height: 34px;
  z-index: 90;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
  transition: opacity 0.3s ease;
  will-change: transform;
}
.butterfly svg { width: 100%; height: 100%; }
.butterfly.is-active { opacity: 0.78; }
.butterfly g { transform-origin: center; animation: flap 0.45s ease-in-out infinite alternate; }
@keyframes flap {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0.7); }
}
@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  .butterfly { display: none; }
}

/* ---------- motion entrance ---------- */
[data-words] {
  display: block;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
[data-words].is-visible {
  opacity: 1;
  transform: none;
}
[data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
[data-reveal].is-visible { opacity: 1; transform: none; }

/* stagger inside chapters / effects */
.chapters li, .effects li, .gallery-card, .mirror-card, .faq-list details, .timeline li {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.chapters li.is-visible, .effects li.is-visible, .gallery-card.is-visible,
.mirror-card.is-visible, .faq-list details.is-visible, .timeline li.is-visible {
  opacity: 1; transform: none;
}

/* ---------- accessibility / reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
  [data-words], [data-reveal], .chapters li, .effects li, .gallery-card,
  .mirror-card, .faq-list details, .timeline li {
    opacity: 1 !important; transform: none !important;
  }
}

/* ---------- print fallback ---------- */
@media print {
  .marquee, .topbar, .sticky-cta, .butterfly, .chapter-rail, .hero-scroll-hint,
  .curtain { display: none !important; }
  body { background: white; color: black; }
}


/* ===================================================================
   Ajustes Gallotti 2026-05-14 — versão B dentro do repo Netlify
   =================================================================== */
:root { --font-display: "Cinzel", "Trajan Pro", serif; }
.topbar, .curtain, .chapter-rail, .gallery-nav, .butterfly { display: none !important; }
.display { font-family: var(--font-display); }
.display .script, .script { display: inline; font-size: 1.05em; line-height: inherit; vertical-align: baseline; }
h1.display { font-size: clamp(1.95rem, 4.8vw, 3.85rem); max-width: 12.5ch; }
.display.lg { font-size: clamp(1.85rem, 4.8vw, 3.25rem); }
.hero { min-height: 92vh; display: grid; align-items: stretch; }
.stage { width: min(1280px, 94vw); margin: 0 auto; display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); align-items: center; min-height: 86vh; padding: clamp(2rem, 5vw, 5rem) 0; }
.stage-backdrop { position: relative; inset: auto; grid-column: 2; grid-row: 1; height: min(78vh, 820px); border-radius: 34px; overflow: hidden; box-shadow: var(--shadow-soft); opacity: 1; }
.stage-backdrop::after { content: ""; position:absolute; inset:0; background: linear-gradient(90deg, rgba(255,247,239,.10), transparent 35%); pointer-events:none; }
.stage-backdrop img { width:100%; height:100%; object-fit:cover; object-position:center; transform:none !important; }
.stage-foreground { grid-column: 1; grid-row: 1; max-width: 620px; padding: clamp(1rem, 3vw, 2rem) 0; z-index: 2; }
.info-strip { grid-template-columns: repeat(3, minmax(0,1fr)); }
.divider { width:min(760px, 86vw); margin: clamp(2.5rem, 5vw, 5rem) auto; display:flex; align-items:center; justify-content:center; gap:18px; color:var(--gold); }
.divider span { height:1px; flex:1; background: linear-gradient(90deg, transparent, rgba(200,154,62,.85), transparent); }
.divider i { font-style:normal; font-size:1.15rem; color:var(--gold); text-shadow:0 0 18px rgba(200,154,62,.38); }
.lot-progress { margin-top: 1.25rem; padding: 14px 16px; border: 1px solid rgba(200,154,62,.24); border-radius: 18px; background: rgba(255,242,231,.78); box-shadow: var(--shadow-card); }
.lot-progress-copy { display:flex; justify-content:space-between; gap:1rem; font-size:.82rem; color:var(--rose-deep); margin-bottom:.6rem; }
.lot-progress-copy span { color:var(--ink-2); }
.lot-progress-bar { height: 11px; border-radius: 999px; background: rgba(211,182,230,.42); overflow:hidden; border:1px solid rgba(180,74,120,.12); }
.lot-progress-bar span { display:block; height:100%; border-radius:999px; background: linear-gradient(90deg, var(--rose), var(--gold)); box-shadow:0 0 20px rgba(200,154,62,.34); }
.ico { display:none !important; }
.ico-img { width:64px; height:64px; object-fit:contain; margin: 0 auto 1rem; }
.big-crown-img { width: 104px; height: 104px; object-fit:contain; margin: 0 auto 1rem; }
.chapters .num { font-family: var(--font-display); font-size: 1.45rem; width:auto; background:none; color:var(--gold); }
.gallery { width:100vw; margin-left:calc(50% - 50vw); overflow:hidden; padding: 1rem 0 2rem; position:relative; }
.gallery::before, .gallery::after { content:""; position:absolute; top:0; bottom:0; width:min(16vw,180px); z-index:3; pointer-events:none; }
.gallery::before { left:0; background:linear-gradient(90deg, var(--paper), transparent); }
.gallery::after { right:0; background:linear-gradient(270deg, var(--paper), transparent); }
.gallery-track { width:max-content; display:flex; gap:1.2rem; overflow:visible; scrollbar-width:none; animation: gallery-marquee 34s linear infinite; padding: 0 1.2rem; }
.gallery-track::-webkit-scrollbar { display:none; }
.gallery-card { min-width: clamp(260px, 24vw, 370px); }
@keyframes gallery-marquee { from { transform: translateX(0); } to { transform: translateX(-42%); } }
.about-stats { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:12px; margin:1.4rem 0 1.2rem; }
.about-stats strong { display:block; padding:14px; border-radius:18px; background:rgba(255,242,231,.86); border:1px solid rgba(200,154,62,.24); color:var(--ink-2); font-size:.84rem; line-height:1.25; }
.about-stats span { display:block; color:var(--rose); font-family:var(--font-display); font-size:1.3rem; }
.section-summary-cta { margin-top: 1.25rem; }
.offer-progress { margin: 1rem 0; width:100%; }
.btn[data-modal-trigger] { cursor:pointer; }
.modal-overlay { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:22px; background:rgba(42,22,32,.58); backdrop-filter: blur(8px); }
.modal-overlay.active { display:flex; }
body.modal-open { overflow:hidden; }
.modal-card { width:min(560px, 96vw); max-height:92vh; overflow:auto; background:var(--paper); border:1px solid rgba(200,154,62,.35); border-radius:28px; padding:clamp(1.2rem, 4vw, 2rem); box-shadow:0 30px 90px rgba(42,22,32,.35); position:relative; }
.modal-close { position:absolute; right:16px; top:14px; width:38px; height:38px; border-radius:50%; border:1px solid rgba(180,74,120,.2); color:var(--rose-deep); background:rgba(255,242,231,.9); font-size:1.5rem; line-height:1; }
.modal-header { text-align:center; margin-bottom:1.2rem; }
.modal-header .display { font-size:clamp(1.65rem, 5vw, 2.4rem); }
.form-card-modal { display:grid; gap:1rem; }
.form-group { display:grid; gap:.35rem; }
.form-label { font-weight:700; color:var(--rose-deep); font-size:.9rem; }
.form-input { width:100%; border:1px solid rgba(180,74,120,.24); background:rgba(255,247,239,.96); color:var(--ink); border-radius:14px; min-height:48px; padding:0 14px; font:inherit; }
.form-input.error { border-color:#b3261e; box-shadow:0 0 0 3px rgba(179,38,30,.12); }
.iti { width:100%; }
.form-feedback { min-height:1.25rem; font-size:.9rem; }
.form-feedback.error { color:#9b1c18; }
.form-feedback.success { color:#276738; }
.form-submit-btn { width:100%; }
.modal-note { font-size:.82rem; text-align:center; color:var(--ink-2); margin:0; }
@media (max-width: 860px) {
  .stage { grid-template-columns: 1fr; min-height: auto; padding-top:2rem; }
  .stage-backdrop { grid-column:1; grid-row:1; height: 360px; opacity:.72; }
  .stage-foreground { grid-column:1; grid-row:1; padding:1.2rem; background:linear-gradient(90deg, rgba(255,247,239,.95), rgba(255,247,239,.72)); border-radius:24px; margin:1rem; }
  h1.display { max-width:none; }
  .info-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-stats { grid-template-columns:1fr; }
}


/* QA fix: conteúdo sempre visível em preview e sem vazios por reveal atrasado */
[data-words], [data-reveal], .chapters li, .effects li, .gallery-card, .mirror-card, .faq-list details, .timeline li { opacity: 1 !important; transform: none !important; filter: none !important; transition-delay: 0ms !important; }
.marquee { line-height: 1.45; padding: 10px 0; }
.effects p, .chapters p, .mirror-card li, .faq-list p, .timeline p, .footnote, .urgency, .link-hint { font-size: clamp(.98rem, 1.35vw, 1.06rem); }
.section-summary-cta { align-self: center; justify-self: center; margin-inline:auto; }
.enchant, .grimoire, .vitrine, .mirror, .faq { display:grid; }

/* Ajuste 2026-05-14: hero inteiro dentro da dobra */
.hero { min-height: calc(100vh - 38px); align-items: center; }
.stage { min-height: calc(100vh - 92px); padding: clamp(.6rem, 2vw, 1.6rem) 0; grid-template-columns: minmax(0, .82fr) minmax(340px, 1.18fr); }
h1.display { font-size: clamp(1.55rem, 3.25vw, 2.85rem); line-height: .98; max-width: 15.5ch; letter-spacing: .002em; }
.kicker { margin-bottom: .75rem; padding: 6px 12px; font-size: .68rem; }
.lead { font-size: clamp(.98rem, 1.25vw, 1.08rem); line-height: 1.42; margin-bottom: .75rem; max-width: 52ch; }
.hero-actions { margin: .85rem 0 .8rem; }
.hero .btn { padding: 12px 21px; }
.info-strip { gap: .55rem; margin-top: .5rem; }
.info-strip div { padding: .72rem .78rem; }
.info-strip dt { font-size: .62rem; }
.info-strip dd { font-size: .95rem; }
.lot-progress { margin-top: .75rem; padding: 10px 12px; }
.lot-progress-copy { font-size: .76rem; margin-bottom: .42rem; }
.lot-progress-bar { height: 9px; }
.stage-backdrop { height: min(70vh, 650px); }
.hero-scroll-hint { bottom: .55rem; font-size: .68rem; opacity: .72; }
@media (max-width: 860px) {
  .hero { min-height: calc(100svh - 34px); }
  .stage { min-height: calc(100svh - 58px); padding: .35rem 0 1.15rem; align-content: center; }
  .stage-backdrop { height: min(33svh, 255px); border-radius: 22px; }
  .stage-foreground { margin: .45rem; padding: .85rem; border-radius: 20px; }
  .kicker { font-size: .58rem; letter-spacing: .13em; margin-bottom: .55rem; padding: 5px 9px; }
  h1.display { font-size: clamp(1.45rem, 8.2vw, 2rem); line-height: .96; max-width: 13.5ch; }
  .lead { font-size: .92rem; line-height: 1.34; margin-bottom: .55rem; }
  .hero-actions { margin: .65rem 0 .55rem; }
  .hero .btn { width: 100%; padding: 11px 15px; font-size: .92rem; }
  .info-strip { grid-template-columns: repeat(4, minmax(0,1fr)); gap: .35rem; }
  .info-strip div { padding: .5rem .34rem; border-radius: 13px; }
  .info-strip dt { font-size: .52rem; letter-spacing: .12em; }
  .info-strip dd { font-size: .76rem; line-height: 1.12; }
  .lot-progress { padding: 8px 9px; margin-top: .5rem; border-radius: 14px; }
  .lot-progress-copy { display:block; font-size: .68rem; line-height: 1.2; margin-bottom:.32rem; }
  .lot-progress-copy span { display:block; margin-top:1px; }
  .lot-progress-bar { height: 7px; }
  .hero-scroll-hint { display: none; }
  .marquee { font-size: .62rem; padding: 7px 0; }
}
@media (max-width: 380px) {
  h1.display { font-size: clamp(1.32rem, 7.8vw, 1.76rem); }
  .lead { font-size: .86rem; }
  .stage-backdrop { height: 29svh; }
  .stage-foreground { padding: .72rem; }
}

/* Ajuste 2026-05-14 v2: mobile sem bloco de imagem empurrando a hero */
@media (max-width: 860px) {
  .stage { position: relative; display: block; min-height: auto; padding: .5rem .55rem .8rem; overflow: hidden; }
  .stage-backdrop { position: absolute; inset: .45rem; height: auto; opacity: .28; border-radius: 22px; z-index: 0; pointer-events: none; }
  .stage-backdrop::after { background: linear-gradient(90deg, rgba(255,247,239,.98) 0%, rgba(255,247,239,.90) 42%, rgba(255,247,239,.55) 100%); }
  .stage-foreground { position: relative; z-index: 1; margin: 0; padding: .72rem .72rem .78rem; background: rgba(255,247,239,.72); border-radius: 20px; }
  h1.display { font-size: clamp(1.34rem, 7.25vw, 1.76rem); line-height: .95; max-width: 16ch; }
  .lead { font-size: .84rem; line-height: 1.28; margin-bottom: .42rem; }
  .hero-actions { margin: .48rem 0 .42rem; }
  .hero .btn { padding: 10px 14px; font-size: .88rem; }
  .kicker { margin-bottom: .42rem; }
  .info-strip { margin-top: .38rem; }
  .lot-progress { margin-top: .38rem; }
}
/* Ajuste 2026-05-14: remover card Lote da hero */
.hero .info-strip { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 860px) { .hero .info-strip { grid-template-columns: repeat(3, minmax(0,1fr)); } }

/* Ajuste 2026-05-14 v3: revisão geral Gallotti */
:root {
  --font-script: var(--font-display);
  --body-weight: 500;
  --serif-weight: 600;
}
body { font-weight: var(--body-weight); }
p, li { font-weight: 500; }
.lead, .enchant-lead, .effects p, .grimoire-head p, .chapters p, .mirror-card li, .about-copy p, .timeline p, .faq-list p { font-weight: var(--serif-weight); }
.display .script, .script { font-family: var(--font-display); font-weight: 600; font-size: .92em; color: var(--rose); }
.kicker { display: none !important; }
.divider { width:min(760px, 86vw); margin: clamp(2rem, 4.5vw, 4.25rem) auto; display:flex !important; align-items:center; justify-content:center; gap:18px; color:var(--gold); }
.divider::before, .divider::after { content:""; height:1px; flex:1; background:linear-gradient(90deg, transparent, rgba(200,154,62,.9), transparent); }
.divider span { display:none; }
.divider i { flex:0 0 auto; font-style:normal; font-size:1.08rem; line-height:1; }
/* animações de entrada controladas por JS, sem esconder hero */
.js-reveal .reveal-item { opacity:0 !important; transform: translate3d(0, 22px, 0) !important; transition: opacity .72s cubic-bezier(.22,1,.36,1), transform .72s cubic-bezier(.22,1,.36,1); }
.js-reveal .reveal-item.is-visible { opacity:1 !important; transform: translate3d(0,0,0) !important; }
.js-reveal .reveal-item.reveal-left { transform: translate3d(-24px, 0, 0) !important; }
.js-reveal .reveal-item.reveal-left.is-visible { transform: translate3d(0,0,0) !important; }
/* seção 2 */
.effects { gap: 1rem; }
.effects li { text-align:left; padding: 1.25rem; display:grid; justify-items:start; align-content:start; }
.effects li::before { left: 1.25rem; right: 1.25rem; }
.effects .ico-img, .ico-img { width: 86px; height: 86px; margin: 0 0 .75rem 0; }
.effects h3 { font-size: 1.06rem; margin-bottom: .42rem; }
.effects p { font-size: 1.04rem !important; line-height:1.42; }
/* seção 3 */
.chapters li { grid-template-columns: auto 1fr; grid-template-areas: "num title" "num text"; column-gap: 1rem; align-items:start; padding: 1.12rem 1.18rem; }
.chapters .num { grid-area:num; width: 3.05rem !important; min-width: 3.05rem; height: 3.05rem; border-radius: 999px; display:grid; place-items:center; border:1px solid rgba(200,154,62,.38); background:rgba(255,242,231,.82) !important; color:var(--rose-deep) !important; font-size:1.08rem !important; line-height:1; letter-spacing:0; }
.chapters h3 { grid-area:title; margin-top:.1rem; }
.chapters p { grid-area:text; }
.chapters .ico-img { display:none !important; }
/* seção 4 */
.gallery { padding: 1rem 0 1.4rem; }
.gallery-track { gap: 1rem; animation: gallery-marquee-v3 26s linear infinite !important; will-change: transform; }
.gallery-card { min-width: clamp(260px, 24vw, 360px); }
.gallery-card figcaption { display:none !important; }
.gallery .frame { aspect-ratio: 4 / 5; }
.gallery .placeholder { background: radial-gradient(circle at 35% 25%, rgba(247,199,216,.65), transparent 38%), linear-gradient(145deg, rgba(211,182,230,.35), rgba(255,242,231,.95)); border:1px solid rgba(200,154,62,.24); }
.gallery .placeholder::before { content:""; width:42%; aspect-ratio:1; border-radius:50%; background:rgba(180,74,120,.10); box-shadow: 76px 48px 0 rgba(200,154,62,.10), 24px 118px 0 rgba(211,182,230,.16); }
@keyframes gallery-marquee-v3 { from { transform: translateX(0); } to { transform: translateX(calc(-50% - .5rem)); } }
/* seção 5 */
.before-after { display:none !important; }
/* seção 6 / oferta */
.offer .chapter-mark.center { display:none !important; }
#offer-title { max-width: 900px; margin-left:auto; margin-right:auto; }
.schedule-title { margin: 0 auto 1.2rem; font-size: clamp(2.15rem, 5.2vw, 4rem) !important; }
.schedule { padding: clamp(1.4rem, 3vw, 2.2rem); }
.timeline { max-width: 920px; margin:0 auto; gap: .95rem; }
.timeline li { grid-template-columns: 92px 1fr; gap: 1.35rem; align-items:center; }
.timeline .time { font-size: 1.02rem; padding-right:.35rem; }
.timeline p { font-size: clamp(1.08rem, 1.75vw, 1.32rem) !important; line-height:1.38; margin:0; }
.event-when { font-size: clamp(1.18rem, 2vw, 1.5rem) !important; font-weight:700; color:var(--rose-deep); }
.footnote { font-size: 1rem !important; }
.link-hint { display:none !important; }
@media (max-width: 860px) {
  .effects li { min-height:auto; }
  .effects .ico-img, .ico-img { width:72px; height:72px; }
  .chapters li { grid-template-columns:auto 1fr; padding: .95rem; column-gap:.75rem; }
  .chapters .num { width:2.55rem !important; min-width:2.55rem; height:2.55rem; font-size:.92rem !important; }
  .schedule-title { font-size: clamp(1.85rem, 9vw, 2.6rem) !important; }
  .timeline li { grid-template-columns: 70px 1fr; gap:.85rem; }
  .timeline p { font-size: 1.04rem !important; }
  .timeline .time { font-size:.88rem; }
}

/* Ajuste 2026-05-14 v4: mobile, logos e cronograma */
.event-logo {
  display: block;
  width: auto;
  object-fit: contain;
}
.hero-event-logo {
  max-width: clamp(132px, 18vw, 210px);
  max-height: 88px;
  margin: 0 0 clamp(.55rem, 1.4vw, .85rem);
  filter: drop-shadow(0 12px 24px rgba(74,42,58,.10));
}
.value-logo {
  width: clamp(126px, 18vw, 190px) !important;
  height: auto !important;
  max-height: 112px;
  margin-bottom: 1rem !important;
}

/* Aumenta piso tipográfico em mobile sem inflar demais desktop */
body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (max-width: 860px) {
  body { font-size: 16px; }
  p, li, .lead, .enchant-lead, .effects p, .chapters p, .about-copy p,
  .mirror-card li, .faq-list p, .timeline p, .footnote, .urgency,
  .lot-progress-copy, .modal-note {
    font-size: max(1rem, 16px) !important;
    line-height: 1.44;
  }
  .eyebrow, .chapter-mark, .info-strip dt, .timeline .time {
    font-size: max(.78rem, 12.5px) !important;
  }
  .btn, .sticky-cta, .info-strip dd, .form-label, .form-input {
    font-size: max(.95rem, 15px) !important;
  }

  /* Hero: sem obrigação de ocupar 100vh e com mínimo padding superior */
  .hero {
    min-height: auto !important;
    padding-top: 0 !important;
  }
  .stage {
    min-height: auto !important;
    padding: .12rem .55rem .85rem !important;
    align-content: start !important;
  }
  .stage-foreground {
    padding: .62rem .7rem .76rem !important;
  }
  .hero-event-logo {
    max-width: 142px;
    max-height: 62px;
    margin-bottom: .42rem;
  }
  h1.display {
    font-size: clamp(1.42rem, 7vw, 1.86rem) !important;
    line-height: 1.02 !important;
    max-width: 17ch !important;
  }
  .hero .lead {
    font-size: max(.96rem, 15.5px) !important;
    line-height: 1.34 !important;
    margin-bottom: .48rem !important;
  }
  .hero-actions { margin: .5rem 0 .45rem !important; }
  .hero .btn { padding: 11px 14px !important; }
  .hero .info-strip { margin-top: .4rem !important; gap: .4rem !important; }
  .hero .info-strip div { padding: .56rem .38rem !important; }
  .lot-progress { padding: 9px 10px !important; }
}

/* Cronograma inspirado na referência: eixo entre tempo e descrição, sem sobreposição */
.schedule {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}
.schedule-title {
  font-size: clamp(1.55rem, 3.5vw, 2.55rem) !important;
  line-height: 1.08 !important;
  margin-bottom: 1.25rem !important;
}
#offer-title {
  font-size: clamp(2.2rem, 5.2vw, 4.1rem) !important;
}
.timeline {
  --axis-left: 118px;
  --dot-size: 11px;
  position: relative;
  max-width: 860px !important;
  padding: .25rem 0 !important;
  margin-top: 1.1rem !important;
  gap: .72rem !important;
}
.timeline::before {
  left: var(--axis-left) !important;
  top: .55rem !important;
  bottom: .55rem !important;
  width: 1px !important;
  opacity: .72 !important;
}
.timeline li {
  display: grid !important;
  grid-template-columns: calc(var(--axis-left) - 22px) minmax(0,1fr) !important;
  column-gap: 44px !important;
  align-items: center !important;
  padding: .54rem 0 !important;
  min-height: 3.05rem;
}
.timeline li::before {
  left: calc(var(--axis-left) - (var(--dot-size) / 2)) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: var(--dot-size) !important;
  height: var(--dot-size) !important;
  border: 2px solid var(--paper) !important;
  z-index: 1;
}
.timeline .time {
  justify-self: end;
  padding-right: 0 !important;
  text-align: right !important;
  white-space: nowrap;
  color: var(--rose) !important;
  letter-spacing: .18em;
  font-size: clamp(.95rem, 1.25vw, 1.08rem) !important;
}
.timeline p {
  color: var(--ink) !important;
  font-size: clamp(1.18rem, 2.05vw, 1.45rem) !important;
  line-height: 1.34 !important;
  max-width: 620px;
}
.schedule-foot { display: none !important; }

@media (max-width: 860px) {
  .schedule { padding: 1.25rem .95rem !important; }
  #offer-title { font-size: clamp(2rem, 9vw, 2.8rem) !important; }
  .schedule-title {
    font-size: clamp(1.38rem, 6.4vw, 2.02rem) !important;
    margin-bottom: 1rem !important;
  }
  .timeline {
    --axis-left: 74px;
    --dot-size: 10px;
    max-width: 100% !important;
    gap: .62rem !important;
  }
  .timeline li {
    grid-template-columns: 58px minmax(0,1fr) !important;
    column-gap: 32px !important;
    min-height: 3.2rem;
    padding: .48rem 0 !important;
  }
  .timeline .time {
    font-size: max(.82rem, 13px) !important;
    letter-spacing: .13em !important;
  }
  .timeline p {
    font-size: max(1.06rem, 17px) !important;
    line-height: 1.34 !important;
  }
}
@media (max-width: 380px) {
  .hero-event-logo { max-width: 126px; max-height: 56px; }
  h1.display { font-size: clamp(1.34rem, 6.6vw, 1.68rem) !important; }
  .hero .lead { font-size: max(.93rem, 15px) !important; }
  .timeline { --axis-left: 68px; }
  .timeline li { grid-template-columns: 52px minmax(0,1fr) !important; column-gap: 30px !important; }
  .timeline .time { letter-spacing: .1em !important; }
}

/* Ajuste 2026-05-14 v4.1: ícone do resumo como logo do evento */
.offer-card::before {
  content: "" !important;
  width: 96px !important;
  height: 58px !important;
  top: -34px !important;
  background: url('assets/reference/logo-castelo-fundo-transparente.png') center / contain no-repeat !important;
  color: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 860px) {
  .offer-card::before {
    width: 78px !important;
    height: 48px !important;
    top: -28px !important;
  }
}

/* Ajuste 2026-05-14 v5: aumentar logo da hero */
.hero-event-logo {
  max-width: clamp(220px, 25vw, 320px) !important;
  max-height: 138px !important;
  margin-bottom: clamp(.7rem, 1.6vw, 1rem) !important;
}
@media (max-width: 860px) {
  .hero-event-logo {
    max-width: min(68vw, 245px) !important;
    max-height: 104px !important;
    margin-bottom: .52rem !important;
  }
}
@media (max-width: 380px) {
  .hero-event-logo {
    max-width: min(70vw, 224px) !important;
    max-height: 96px !important;
  }
}

/* Ajuste 2026-05-14 v6: fotos reais no carrossel */
.gallery-card .frame:has(.carousel-photo) {
  background: rgba(255, 242, 231, .78);
}
.gallery-card .frame .carousel-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  padding: 0 !important;
  display: block;
}
.gallery-card.photo-1 .carousel-photo,
.gallery-card.photo-2 .carousel-photo { object-position: center center !important; }
.gallery-card.photo-3 .carousel-photo,
.gallery-card.photo-4 .carousel-photo,
.gallery-card.photo-5 .carousel-photo { object-position: center top !important; }

/* Ajuste 2026-05-14 v7: copy final e leitura da hero */
@media (min-width: 861px) {
  .stage {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }
  .stage-foreground .lead,
  .hero .lead {
    font-size: clamp(1.08rem, 1.35vw, 1.22rem) !important;
    line-height: 1.48 !important;
  }
}

/* Ajuste 2026-05-14 v8: resumo, foto destaque, hero cards e assinatura */
.enchant-photo-card {
  width: min(980px, 92vw);
  margin: 0 auto clamp(1.4rem, 3vw, 2.2rem);
  border-radius: 32px;
  overflow: hidden;
  border: 1px solid rgba(200,154,62,.22);
  box-shadow: 0 24px 70px rgba(74,42,58,.13);
  background: rgba(255,242,231,.7);
}
.enchant-photo-card img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center center;
}

/* Logo do resumo como imagem limpa, sem ornamento na borda */
.offer-card {
  padding-top: clamp(1.8rem, 3vw, 2.8rem) !important;
}
.offer-card::before {
  display: none !important;
  content: none !important;
}
.summary-event-logo {
  grid-column: 1 / -1;
  display: block;
  width: clamp(230px, 28vw, 360px);
  max-width: 86%;
  height: auto;
  margin: 0 auto .95rem;
  object-fit: contain;
  filter: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* Nota da gravação quase mínima */
.footnote {
  font-size: clamp(.56rem, .72vw, .66rem) !important;
  line-height: 1.22 !important;
  opacity: .58 !important;
  margin-top: .55rem !important;
}

/* Cards de data/hora/onde mais legíveis */
.hero .info-strip dt {
  font-size: clamp(.76rem, .95vw, .88rem) !important;
  letter-spacing: .15em !important;
}
.hero .info-strip dd {
  font-size: clamp(1.12rem, 1.45vw, 1.32rem) !important;
  line-height: 1.15 !important;
  font-weight: 700 !important;
}

/* Assinatura real abaixo da foto/bio */
.about-portrait .signature {
  font-family: "Great Vibes", "Bickham Script Pro", "Snell Roundhand", "Brush Script MT", cursive !important;
  font-size: clamp(3.1rem, 7vw, 5rem) !important;
  line-height: .9 !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
  color: var(--rose-deep) !important;
  text-transform: none !important;
}

@media (max-width: 860px) {
  .enchant-photo-card {
    width: min(94vw, 520px);
    border-radius: 22px;
    margin-bottom: 1.2rem;
  }
  .enchant-photo-card img {
    aspect-ratio: 4 / 5;
    object-position: center center;
  }
  .summary-event-logo {
    width: min(76vw, 280px);
    margin-bottom: .7rem;
  }
  .hero .info-strip dt {
    font-size: max(.78rem, 12.5px) !important;
  }
  .hero .info-strip dd {
    font-size: max(1rem, 16px) !important;
  }
  .footnote {
    font-size: .58rem !important;
  }
  .about-portrait .signature {
    font-size: clamp(3rem, 15vw, 4.35rem) !important;
  }
}

/* Ajuste 2026-05-14 v9: aplicar hero C desktop + mobile abaixo do conteúdo */
.hero-mobile-visual {
  display: none;
  margin: 0;
}
.hero-mobile-visual img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 28px;
  box-shadow: 0 24px 70px rgba(74,42,58,.16);
}

@media (min-width: 861px) {
  .hero { min-height: auto !important; }
  .stage {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    min-height: min(84vh, 820px) !important;
    width: min(1320px, 94vw) !important;
    padding: clamp(2rem, 4vw, 4.5rem) 0 !important;
  }
  .stage-backdrop {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    position: relative !important;
    inset: auto !important;
    height: min(78vh, 760px) !important;
    width: 100% !important;
    border-radius: 36px !important;
    overflow: hidden !important;
    opacity: 1 !important;
    z-index: 0 !important;
    box-shadow: 0 30px 90px rgba(74,42,58,.17) !important;
  }
  .stage-backdrop img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }
  .stage-backdrop::after {
    background: linear-gradient(90deg, rgba(255,247,239,.24) 0%, rgba(255,247,239,.14) 38%, rgba(255,247,239,.02) 58%, transparent 100%) !important;
  }
  .stage-foreground {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center !important;
    max-width: 610px !important;
    margin-left: clamp(1rem, 3vw, 2.8rem) !important;
    padding: clamp(1rem, 2vw, 1.4rem) !important;
    background: rgba(255,247,239,.08) !important;
    border-radius: 28px !important;
    z-index: 2 !important;
  }
}

@media (max-width: 860px) {
  .hero { min-height: auto !important; padding-bottom: 0 !important; }
  .stage {
    display: flex !important;
    flex-direction: column !important;
    min-height: auto !important;
    width: min(100%, 560px) !important;
    padding: .5rem .75rem 1.1rem !important;
    overflow: visible !important;
  }
  .stage-backdrop {
    display: none !important;
  }
  .stage-foreground {
    order: 1 !important;
    position: relative !important;
    margin: 0 !important;
    padding: .72rem .72rem .9rem !important;
    background: rgba(255,247,239,.94) !important;
    border-radius: 22px !important;
    box-shadow: 0 16px 48px rgba(74,42,58,.08) !important;
  }
  .hero-mobile-visual {
    order: 2 !important;
    display: block !important;
    width: min(92vw, 430px) !important;
    margin: .85rem auto 0 !important;
  }
  .hero-mobile-visual img {
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 24px !important;
  }
  .hero-scroll-hint { display: none !important; }
}

/* Ajuste 2026-05-14 v10: hero com imagem como background integral da seção, sem card */
.hero {
  position: relative !important;
  min-height: clamp(680px, 92vh, 900px) !important;
  overflow: hidden !important;
  display: grid !important;
  align-items: stretch !important;
  background: #fff2e7 !important;
}
.stage {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  min-height: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  align-items: center !important;
}
.stage-backdrop {
  position: absolute !important;
  inset: 0 !important;
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  box-shadow: none !important;
  opacity: 1 !important;
  z-index: 0 !important;
  pointer-events: none !important;
}
.stage-backdrop picture,
.stage-backdrop img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
.stage-backdrop img {
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
}
.stage-backdrop::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(255,247,239,.86) 0%, rgba(255,247,239,.72) 34%, rgba(255,247,239,.26) 52%, rgba(255,247,239,.02) 78%),
    linear-gradient(180deg, rgba(255,242,231,.14), rgba(255,242,231,.2)) !important;
}
.stage-foreground {
  grid-column: 1 !important;
  grid-row: 1 !important;
  position: relative !important;
  z-index: 2 !important;
  max-width: 640px !important;
  margin-left: clamp(1rem, 6vw, 6.5rem) !important;
  padding: clamp(1rem, 2vw, 1.4rem) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
.hero-mobile-visual {
  display: none !important;
}
.hero .display,
.hero .lead,
.hero .hero-actions,
.hero .info-strip,
.hero .lot-progress,
.hero .hero-event-logo {
  position: relative !important;
  z-index: 2 !important;
}

@media (min-width: 861px) {
  .stage-foreground {
    background: transparent !important;
  }
}

@media (max-width: 860px) {
  .hero {
    min-height: auto !important;
    padding: 0 0 1rem !important;
  }
  .stage {
    min-height: auto !important;
    width: 100% !important;
    padding: clamp(.65rem, 2vw, 1rem) .75rem 1rem !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .stage-backdrop {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    border-radius: 0 !important;
    opacity: 1 !important;
  }
  .stage-backdrop img {
    object-position: center top !important;
  }
  .stage-backdrop::after {
    background:
      linear-gradient(180deg, rgba(255,247,239,.92) 0%, rgba(255,247,239,.86) 42%, rgba(255,247,239,.52) 72%, rgba(255,247,239,.20) 100%),
      linear-gradient(90deg, rgba(255,247,239,.80), rgba(255,247,239,.40)) !important;
  }
  .stage-foreground {
    grid-column: 1 !important;
    grid-row: 1 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: .7rem .68rem .78rem !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .hero-mobile-visual {
    display: none !important;
  }
}

/* Ajuste 2026-05-14 v10: hero editorial integrada no estilo da referência */
@media (min-width: 861px) {
  .hero {
    position: relative;
    background:
      radial-gradient(circle at 18% 12%, rgba(247,199,216,.30), transparent 28%),
      linear-gradient(135deg, #fff2e7 0%, #f7d9df 48%, #b44a78 100%) !important;
    padding: clamp(1.2rem, 2vw, 2rem) 0 clamp(1.4rem, 3vw, 2.6rem) !important;
  }
  .stage {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    width: min(1420px, 96vw) !important;
    min-height: min(86vh, 820px) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    align-items: center !important;
    padding: clamp(2.1rem, 4.2vw, 5.2rem) clamp(1.2rem, 4vw, 5.2rem) !important;
    border-radius: 44px !important;
    box-shadow: 0 34px 110px rgba(74,42,58,.22) !important;
    background: #fff2e7 !important;
  }
  .stage::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
      linear-gradient(90deg, rgba(255,242,231,.98) 0%, rgba(255,242,231,.90) 32%, rgba(255,242,231,.40) 49%, rgba(255,242,231,.02) 67%, transparent 100%),
      radial-gradient(circle at 20% 38%, rgba(200,154,62,.16), transparent 24%),
      radial-gradient(circle at 87% 18%, rgba(247,199,216,.08), transparent 30%);
  }
  .stage::after {
    content: "CASTELO\A CENOGRÁFICO";
    white-space: pre;
    position: absolute;
    right: clamp(1rem, 4vw, 4rem);
    top: 8%;
    z-index: 2;
    pointer-events: none;
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 6vw, 5.8rem);
    line-height: .86;
    letter-spacing: .05em;
    text-align: right;
    color: rgba(255,242,231,.18);
    text-shadow: 0 10px 40px rgba(74,42,58,.18);
  }
  .stage-backdrop {
    position: absolute !important;
    inset: 0 !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: inherit !important;
    box-shadow: none !important;
    z-index: 0 !important;
    opacity: 1 !important;
  }
  .stage-backdrop::after { display: none !important; }
  .stage-backdrop img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
  .stage-foreground {
    grid-column: 1 !important;
    position: relative !important;
    z-index: 3 !important;
    align-self: center !important;
    max-width: 645px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  .hero-event-logo {
    max-width: clamp(230px, 21vw, 340px) !important;
    max-height: 150px !important;
    margin-bottom: clamp(.75rem, 1.2vw, 1rem) !important;
    filter: drop-shadow(0 10px 22px rgba(74,42,58,.12));
  }
  .hero h1.display {
    max-width: 10.8ch !important;
    font-size: clamp(3.1rem, 5.75vw, 6.35rem) !important;
    line-height: .84 !important;
    letter-spacing: -.055em !important;
    color: #4a2a3a !important;
    text-shadow: 0 14px 40px rgba(255,242,231,.34) !important;
  }
  .hero h1.display .line { display: block !important; }
  .hero h1.display em {
    color: #b44a78 !important;
    font-style: italic !important;
  }
  .hero .lead {
    max-width: 48ch !important;
    margin-top: 1.1rem !important;
    font-size: clamp(1.02rem, 1.18vw, 1.18rem) !important;
    line-height: 1.55 !important;
    color: rgba(74,42,58,.88) !important;
  }
  .hero-actions { margin-top: 1.35rem !important; }
  .hero .btn-primary {
    box-shadow: 0 18px 44px rgba(180,74,120,.32) !important;
  }
  .hero .info-strip {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .7rem !important;
    max-width: 610px !important;
    margin-top: 1.25rem !important;
  }
  .hero .info-strip > div {
    background: rgba(255,242,231,.68) !important;
    border: 1px solid rgba(200,154,62,.32) !important;
    border-radius: 999px !important;
    padding: .68rem .85rem !important;
    backdrop-filter: none !important;
    box-shadow: 0 10px 28px rgba(74,42,58,.08) !important;
  }
  .hero .info-strip dt { color: #9b6c1f !important; }
  .hero .info-strip dd { color: #4a2a3a !important; }
  .hero .lot-progress {
    max-width: 600px !important;
    margin-top: 1rem !important;
    background: rgba(255,242,231,.62) !important;
    border: 1px solid rgba(180,74,120,.14) !important;
    border-radius: 999px !important;
    padding: .72rem .86rem !important;
    box-shadow: 0 10px 30px rgba(74,42,58,.07) !important;
  }
  .hero-scroll-hint { display: none !important; }
}

/* Ajuste 2026-05-14 v10.1: integrar hero sem aparência de card/recorte */
@media (min-width: 861px) {
  .stage {
    background: #fff2e7 !important;
  }
  .stage-backdrop {
    transform: none !important;
    overflow: hidden !important;
  }
  .stage-backdrop img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 62% center !important;
    transform: scale(1.075) translateX(1.5%) !important;
    transform-origin: center right !important;
  }
  .stage::before {
    background:
      linear-gradient(90deg, rgba(255,242,231,.99) 0%, rgba(255,242,231,.94) 29%, rgba(255,242,231,.62) 43%, rgba(255,242,231,.16) 56%, rgba(255,242,231,0) 72%),
      radial-gradient(circle at 18% 42%, rgba(200,154,62,.14), transparent 22%) !important;
  }
  .stage::after {
    right: clamp(.5rem, 2.2vw, 2rem) !important;
    top: 6% !important;
    color: rgba(255,242,231,.13) !important;
    mix-blend-mode: soft-light !important;
  }
  .stage-foreground {
    max-width: 595px !important;
  }
  .hero .lead,
  .hero .info-strip > div,
  .hero .lot-progress {
    background: transparent !important;
    border-color: rgba(200,154,62,.24) !important;
    box-shadow: none !important;
  }
  .hero .lead {
    font-size: clamp(1.08rem, 1.22vw, 1.22rem) !important;
  }
}

/* Ajuste 2026-05-14 v10.2: hero full-bleed, expert/castelo mais dominantes */
@media (min-width: 861px) {
  .hero {
    padding: 0 !important;
    background: #fff2e7 !important;
    overflow: hidden !important;
  }
  .stage {
    width: 100% !important;
    max-width: none !important;
    min-height: min(88vh, 860px) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: clamp(2.4rem, 5vw, 5.8rem) clamp(2rem, 6vw, 7rem) !important;
  }
  .stage-backdrop img {
    object-position: 78% center !important;
    transform: scale(1.24) translateX(4.2%) !important;
    transform-origin: center right !important;
  }
  .stage::before {
    background:
      linear-gradient(90deg, rgba(255,242,231,.99) 0%, rgba(255,242,231,.96) 27%, rgba(255,242,231,.62) 42%, rgba(255,242,231,.13) 55%, rgba(255,242,231,0) 68%),
      radial-gradient(circle at 18% 40%, rgba(200,154,62,.16), transparent 21%) !important;
  }
  .stage::after {
    right: clamp(.75rem, 3vw, 3rem) !important;
    top: 11% !important;
    font-size: clamp(2.8rem, 7vw, 7.4rem) !important;
    color: rgba(255,242,231,.18) !important;
  }
  .stage-foreground {
    max-width: 620px !important;
    margin-left: 0 !important;
  }
  .hero .lead {
    font-size: clamp(1.13rem, 1.3vw, 1.26rem) !important;
    max-width: 50ch !important;
  }
}

/* Ajuste 2026-05-14 v10.3: usar a arte D inteira como full-bleed sem deslocamento/crop */
@media (min-width: 861px) {
  .stage-backdrop img {
    object-position: center center !important;
    transform: none !important;
    transform-origin: center center !important;
  }
  .stage::before {
    background:
      linear-gradient(90deg, rgba(255,242,231,.98) 0%, rgba(255,242,231,.92) 28%, rgba(255,242,231,.52) 43%, rgba(255,242,231,.10) 58%, rgba(255,242,231,0) 72%) !important;
  }
}

/* Ajuste 2026-05-14 v10.4: remover limites legados da imagem da hero */
@media (min-width: 861px) {
  .stage-backdrop {
    display: block !important;
    place-items: initial !important;
  }
  .stage-backdrop img {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }
}

/* Ajuste 2026-05-14 v10.5: backdrop ocupa a largura total da hero */
@media (min-width: 861px) {
  .stage {
    padding: 0 !important;
  }
  .stage-backdrop {
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }
  .stage-foreground {
    align-self: center !important;
    margin-left: clamp(2rem, 6vw, 7rem) !important;
    padding: clamp(2.2rem, 4vw, 4.8rem) 0 !important;
  }
}


/* Ajuste 2026-05-14 v10.6: voltar H1 ao peso/tamanho anterior e mobile com foto abaixo da copy */
@media (min-width: 861px) {
  .hero h1.display {
    font-size: clamp(2.05rem, 3.6vw, 3.55rem) !important;
    line-height: .98 !important;
    letter-spacing: -.018em !important;
    max-width: 16.5ch !important;
  }
  .stage-foreground {
    max-width: 610px !important;
  }
}

@media (max-width: 860px) {
  .hero {
    min-height: auto !important;
    padding: 0 0 1rem !important;
    overflow: visible !important;
    background: #fff2e7 !important;
  }
  .stage {
    display: flex !important;
    flex-direction: column !important;
    width: min(100%, 560px) !important;
    margin: 0 auto !important;
    min-height: auto !important;
    padding: .52rem .72rem 1rem !important;
    overflow: visible !important;
    align-items: stretch !important;
  }
  .stage-backdrop {
    display: none !important;
  }
  .stage-foreground {
    order: 1 !important;
    position: relative !important;
    z-index: 2 !important;
    margin: 0 !important;
    padding: .7rem .68rem .78rem !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .hero h1.display,
  h1.display {
    font-size: clamp(1.42rem, 7vw, 1.86rem) !important;
    line-height: 1.02 !important;
    max-width: 17ch !important;
    letter-spacing: -.01em !important;
  }
  .hero .lead {
    font-size: max(.94rem, 15px) !important;
    line-height: 1.34 !important;
  }
  .hero-mobile-visual {
    order: 2 !important;
    display: block !important;
    position: relative !important;
    width: min(94vw, 440px) !important;
    margin: .25rem auto 0 !important;
    overflow: hidden !important;
    border-radius: 24px !important;
    box-shadow: 0 22px 64px rgba(74,42,58,.14) !important;
    background: #fff2e7 !important;
  }
  .hero-mobile-visual::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 0 auto 0 !important;
    height: 26% !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, #fff2e7 0%, rgba(255,242,231,.88) 18%, rgba(255,242,231,.34) 58%, rgba(255,242,231,0) 100%) !important;
  }
  .hero-mobile-visual img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .hero-scroll-hint { display: none !important; }
}


/* Ajuste 2026-05-14 v11: hero sem logo na imagem, mobile full-bleed e carrossel mobile contínuo */
@media (max-width: 860px) {
  .stage {
    width: 100% !important;
    max-width: none !important;
    padding: .52rem .72rem 0 !important;
  }
  .hero-mobile-visual {
    order: 2 !important;
    display: block !important;
    width: 100vw !important;
    max-width: none !important;
    margin: .25rem 0 0 calc(50% - 50vw) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    background: #fff2e7 !important;
  }
  .hero-mobile-visual::before {
    height: 30% !important;
    background: linear-gradient(180deg, #fff2e7 0%, rgba(255,242,231,.96) 12%, rgba(255,242,231,.62) 45%, rgba(255,242,231,0) 100%) !important;
  }
  .hero-mobile-visual img {
    width: 100vw !important;
    max-width: none !important;
    border-radius: 0 !important;
  }

  .gallery {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: 0 !important;
    padding: .9rem 0 1.5rem !important;
    overflow: hidden !important;
    transform: none !important;
    touch-action: pan-y !important;
  }
  .gallery::before,
  .gallery::after {
    width: 42px !important;
  }
  .gallery-track {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: max-content !important;
    min-width: max-content !important;
    gap: .82rem !important;
    padding: 0 .82rem !important;
    overflow: visible !important;
    scrollbar-width: none !important;
    scroll-snap-type: none !important;
    animation: gallery-mobile-loop 22s linear infinite !important;
    will-change: transform !important;
    transform: translate3d(0,0,0);
  }
  .gallery-track::-webkit-scrollbar { display: none !important; }
  .gallery-card {
    flex: 0 0 68vw !important;
    min-width: 68vw !important;
    max-width: 68vw !important;
    scroll-snap-align: none !important;
  }
  .gallery-card .frame {
    border-radius: 22px !important;
  }
}
@keyframes gallery-mobile-loop {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(calc(-50% - .41rem),0,0); }
}

@media (min-width: 861px) {
  .gallery-track {
    animation: gallery-desktop-loop 30s linear infinite !important;
  }
}
@keyframes gallery-desktop-loop {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(calc(-50% - .5rem),0,0); }
}


/* Ajuste 2026-05-14 v12: feedback Gallotti — hero D sem marca d'água, escala, lote, bio e seção rosa */
@media (min-width: 861px) {
  .stage::after {
    content: none !important;
    display: none !important;
  }
  .hero h1.display {
    font-size: clamp(1.9rem, 3.15vw, 3.18rem) !important;
    line-height: 1.01 !important;
    max-width: 17.5ch !important;
    letter-spacing: -.012em !important;
  }
  .hero-event-logo {
    max-width: clamp(265px, 24vw, 390px) !important;
    max-height: 172px !important;
    margin-bottom: clamp(.8rem, 1.4vw, 1.1rem) !important;
  }
}
@media (max-width: 860px) {
  .hero h1.display,
  h1.display {
    font-size: clamp(1.28rem, 6.35vw, 1.68rem) !important;
    line-height: 1.04 !important;
    max-width: 18ch !important;
  }
  .hero-event-logo {
    max-width: min(78vw, 286px) !important;
    max-height: 122px !important;
    margin-bottom: .58rem !important;
  }
}
@media (max-width: 380px) {
  .hero h1.display,
  h1.display {
    font-size: clamp(1.22rem, 6.15vw, 1.55rem) !important;
  }
  .hero-event-logo {
    max-width: min(80vw, 260px) !important;
  }
}

/* Progresso de lote como mensagem única */
.lot-progress-copy {
  justify-content: center !important;
  text-align: center !important;
}
.lot-progress-copy strong {
  width: 100% !important;
  font-size: clamp(.92rem, 1.05vw, 1.04rem) !important;
  letter-spacing: .02em !important;
}
.lot-progress-copy span { display: none !important; }

/* Foto real da Tábita na bio */
.portrait-frame:has(.bio-photo) {
  padding: 0 !important;
  background: #130f12 !important;
  border-color: rgba(200,154,62,.30) !important;
  min-height: clamp(440px, 55vw, 620px) !important;
  overflow: hidden !important;
}
.portrait-frame .bio-photo {
  width: 100% !important;
  height: 100% !important;
  min-height: inherit !important;
  display: block !important;
  object-fit: cover !important;
  object-position: 57% 50% !important;
  padding: 0 !important;
  filter: none !important;
}
@media (max-width: 860px) {
  .portrait-frame:has(.bio-photo) {
    min-height: min(118vw, 520px) !important;
  }
  .portrait-frame .bio-photo {
    object-position: 56% 50% !important;
  }
}

/* Value band rosa claro com contraste revisado */
.value-band {
  background:
    radial-gradient(780px 360px at 80% 18%, rgba(255,242,231,.86), transparent 62%),
    linear-gradient(135deg, #fff2e7 0%, #f7c7d8 48%, #d3b6e6 130%) !important;
  color: #4a2a3a !important;
  border-top: 1px solid rgba(200,154,62,.20) !important;
  border-bottom: 1px solid rgba(200,154,62,.18) !important;
}
.value-band h2 {
  color: #4a2a3a !important;
  text-shadow: none !important;
}
.value-band h2 .script,
.value-band .script {
  color: #9b365f !important;
}
.value-band p {
  color: rgba(74,42,58,.84) !important;
}
.value-band::before,
.value-band::after {
  background: radial-gradient(circle, rgba(200,154,62,.20), transparent 62%) !important;
}

/* Oferta: cronograma no início, centralizado, título de investimento na escala do FAQ */
.offer {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(1.4rem, 3vw, 2.2rem) !important;
}
.offer .schedule {
  order: 0 !important;
  width: min(760px, 100%) !important;
  margin: 0 auto clamp(.4rem, 1vw, .8rem) !important;
  text-align: center !important;
}
.offer .schedule-title {
  margin: 0 auto 1.15rem !important;
  text-align: center !important;
}
.offer .timeline {
  width: min(680px, 100%) !important;
  margin: 0 auto !important;
  text-align: left !important;
}
#offer-title {
  order: 1 !important;
  font-size: clamp(1.85rem, 4.6vw, 3.25rem) !important;
  line-height: 1.08 !important;
  max-width: 860px !important;
  margin: 0 auto .4rem !important;
}
.offer-card { order: 2 !important; }
@media (max-width: 860px) {
  #offer-title {
    font-size: clamp(1.7rem, 8.2vw, 2.42rem) !important;
  }
  .offer .schedule {
    width: 100% !important;
  }
}


/* Ajuste 2026-05-15 v13: H1 da hero sem max-width estreito */
.hero h1.display {
  max-width: 100% !important;
}
.hero h1.display .line {
  max-width: 100% !important;
}
@media (min-width: 861px) {
  .hero h1.display {
    max-width: min(100%, 680px) !important;
  }
}
@media (max-width: 860px) {
  .hero h1.display,
  h1.display {
    max-width: 100% !important;
  }
}

/* Ajuste 2026-05-15 v16: centralização da hero no mobile */
@media (max-width: 860px) {
  .hero .stage-foreground {
    text-align: center !important;
    align-items: center !important;
    justify-items: center !important;
  }

  .hero .hero-event-logo {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .hero h1.display,
  .hero .lead {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .hero .lead {
    max-width: min(100%, 36rem) !important;
  }

  .hero .hero-actions {
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
  }

  .hero .info-strip,
  .hero .info-strip *,
  .hero .lot-progress,
  .hero .lot-progress * {
    text-align: center !important;
  }
}

/* Ajuste 2026-05-15: resumo com destaque para parcela e lotes automáticos */
.offer-price .installment-label {
  font-family: var(--font-serif);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  color: var(--ink-2);
  line-height: 1;
  margin-top: .2rem;
}
.offer-price .cash-price {
  font-size: .92rem;
  color: var(--ink-2);
  margin-top: -.2rem;
}
.offer-price .price[data-lot-installment] {
  font-size: clamp(3.4rem, 8vw, 4.7rem);
  color: var(--rose-deep);
}

/* Ajuste 2026-05-15: assinatura da bio em linha reta abaixo da foto */
.about-portrait .signature {
  display: block !important;
  width: 100% !important;
  margin-top: 1rem !important;
  text-align: center !important;
  transform: none !important;
  rotate: 0deg !important;
  line-height: 1 !important;
  color: var(--gold) !important;
}
