/* ============================================================
   NiceHair — Pesquisa de Mercado — "Experiência"
   Sistema de cenário por etapa: cada pergunta ganha uma cena de
   marca própria (banda de cor da linha + swoosh em blend + vitrine
   de embalagens reais), construída em cima dos tokens já definidos
   em style.css. Só usado em index.html.
   ============================================================ */

@font-face {
  font-family: "Gontserrat";
  src: url("../fonts/Gontserrat-Italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Gontserrat";
  src: url("../fonts/Gontserrat-MediumItalic.ttf") format("truetype");
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

:root {
  --deep-fundo: #0e0c0b; /* preto-suave aprofundado, base das cenas escuras */
}

body.survey-body {
  background: var(--branco);
}

body.survey-body .page {
  padding: 0;
  align-items: stretch;
  display: block;
}

/* marca discreta no topo de cada cena — sem barra, sem progresso, só a
   assinatura da marca presente o tempo todo. Usa a variante branca (logo-white)
   ou preta (logo-black) conforme o fundo da cena. */
.scene-logo {
  display: block;
  height: 16px;
  width: auto;
  margin: 0 0 22px;
  opacity: 0.92;
}

.hero-band .scene-logo,
.founder-scene .scene-logo {
  margin-bottom: 18px;
}

/* ---------------- scene shell ---------------- */

.step.scene {
  padding: 0;
}

.scene-body {
  max-width: 640px;
  margin: 0 auto;
  padding: 40px 22px 56px;
}

.scene-body .question,
.scene-body .lead {
  text-align: left;
}

/* ---------------- hero band (por linha ou institucional) ---------------- */

.hero-band {
  position: relative;
  overflow: hidden;
  padding: 56px 22px 40px;
  background: radial-gradient(120% 140% at 85% -10%, var(--scene-main, #2a2622) 0%, var(--scene-deep, var(--deep-fundo)) 55%);
  color: var(--branco);
  isolation: isolate;
}

.hero-band .swoosh {
  position: absolute;
  top: 50%;
  right: -8%;
  transform: translateY(-50%);
  width: 62%;
  max-width: 420px;
  mix-blend-mode: screen;
  opacity: 0.85;
  pointer-events: none;
}

.hero-band-inner {
  position: relative;
  max-width: 640px;
  margin: 0 auto;
}

.hero-badge {
  height: 74px;
  width: auto;
  margin-bottom: 18px;
  filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.35));
}

.hero-kicker {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--scene-light, var(--gold));
  margin-bottom: 8px;
}

.hero-title {
  font-size: clamp(30px, 7vw, 44px);
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -0.01em;
  margin: 0 0 6px;
  color: var(--branco);
}

.hero-sub {
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.72);
  max-width: 30ch;
}

/* ---------------- vitrine de embalagens ---------------- */
/* carrossel com scroll-snap: um produto grande e legível por vez,
   com uma espiada do próximo pra indicar que dá pra arrastar */

.kit-shelf {
  background: linear-gradient(180deg, var(--scene-claro, #f4f1ee) 0%, #ffffff 70%);
  padding: 28px 0 14px;
  display: flex;
  align-items: flex-end;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: 12vw;
  -webkit-overflow-scrolling: touch;
}

.kit-shelf::before,
.kit-shelf::after {
  content: "";
  flex: 0 0 8vw;
}

.kit-shelf .kit-item {
  flex: 0 0 auto;
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.kit-shelf img {
  height: 320px;
  width: auto;
  max-width: 62vw;
  object-fit: contain;
  filter: drop-shadow(0 18px 20px rgba(20, 18, 16, 0.18));
}

.kit-shelf .kit-item-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--preto-suave);
  text-align: center;
  max-width: 40vw;
}

.kit-caption {
  text-align: center;
  font-size: 12px;
  color: var(--neutro-medio);
  padding: 8px 0 0;
  letter-spacing: 0.02em;
}

@media (min-width: 640px) {
  .kit-shelf img {
    height: 380px;
    max-width: 260px;
  }
  .kit-shelf .kit-item-name {
    max-width: 200px;
  }
}

/* ---------------- textos de cena ---------------- */

.scene-body .lead {
  color: #3a3532;
  font-size: 15.5px;
}

.scene-body .lead strong {
  color: var(--preto-suave);
}

/* nas cenas escuras (calm-scene/thanks-scene), negrito herda a cor clara
   do parágrafo em vez do preto-suave acima — senão fica preto-no-preto
   (especificidade igual/maior que ".scene-body .lead strong" de propósito) */
.calm-scene .scene-body .lead strong,
.thanks-scene .lead strong,
.hero-open .lead strong {
  color: var(--branco);
}

/* ================================================================
   Temas por linha — cada [data-theme] só define as 3 variáveis;
   o resto do sistema (hero-band, kit-shelf, options selecionadas)
   reage sozinho.
   ================================================================ */

[data-theme="antiqueda"] {
  --scene-deep: var(--antiqueda-escuro);
  --scene-main: var(--antiqueda);
  --scene-light: var(--antiqueda-claro);
  --scene-claro: #f7e9ea;
}
[data-theme="reconstrucao"] {
  --scene-deep: var(--reconstrucao-escuro);
  --scene-main: var(--reconstrucao);
  --scene-light: var(--reconstrucao-claro);
  --scene-claro: #faf1ee;
}
[data-theme="hidratacao"] {
  --scene-deep: var(--hidratacao-escuro);
  --scene-main: var(--hidratacao);
  --scene-light: var(--hidratacao-claro);
  --scene-claro: #eef4f9;
}
[data-theme="anticaspa"] {
  --scene-deep: var(--anticaspa-escuro);
  --scene-main: var(--anticaspa);
  --scene-light: var(--anticaspa-claro);
  --scene-claro: #eef7ed;
}

/* ---------------- opções: acompanham o tema da cena quando dentro dela ---------------- */

.scene .option input:checked + label {
  border-color: var(--scene-main, var(--accent));
  background: var(--scene-claro, var(--accent-soft));
}

.scene .btn-primary {
  background: var(--scene-deep, var(--preto-suave));
}

.scene .btn-ghost {
  border-color: var(--neutro-claro);
}

/* ================================================================
   Cenas institucionais (sem linha): Abertura, DualTech, Fundadora,
   Encerramento, Identificação, Obrigado
   ================================================================ */

/* ---- Abertura: hero fotográfico cinematográfico ---- */

.hero-open {
  position: relative;
  min-height: 88dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 24px;
  background: linear-gradient(180deg, rgba(14, 12, 11, 0.55), rgba(14, 12, 11, 0.88)), var(--deep-fundo) url("../assets/moodboard/hero-fio-dourado.webp") center 30%/cover no-repeat;
  color: var(--branco);
}

.hero-open .logo-hero {
  width: min(64vw, 300px);
  margin-bottom: 14px;
}

.hero-open .hero-tagline {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 30px;
}

.hero-open .lead {
  color: rgba(255, 255, 255, 0.82);
  max-width: 46ch;
  font-size: 15.5px;
}

.hero-open .hint {
  color: rgba(255, 255, 255, 0.55);
  margin-top: 4px;
}

.hero-open .btn-primary {
  background: var(--gold);
  color: var(--preto-suave);
  margin-top: 22px;
  padding: 15px 34px;
}

/* ---- DualTech: emblema + conceito ---- */

.dualtech-scene {
  background: radial-gradient(120% 100% at 50% 0%, #2a2622 0%, var(--deep-fundo) 60%);
  color: var(--branco);
  padding: 52px 22px 44px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.dualtech-emblem-wrap {
  position: relative;
  width: min(72vw, 300px);
  aspect-ratio: 1;
  margin: 0 auto 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dualtech-emblem-wrap .anel {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0.6;
  pointer-events: none;
}

.dualtech-emblem-wrap .dualtech-emblem {
  position: relative;
  width: 66%;
  filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.45));
}

.dualtech-scene .hero-kicker {
  position: relative;
  color: var(--gold);
}

.dualtech-scene h2 {
  position: relative;
  font-size: clamp(24px, 6vw, 32px);
  color: var(--branco);
}

.dualtech-pillars {
  position: relative;
  display: flex;
  gap: 12px;
  justify-content: center;
  margin: 22px 0 4px;
  flex-wrap: wrap;
}

.dualtech-pillars .pillar {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 100px;
  padding: 8px 16px;
  font-size: 12.5px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

/* ---- Fundadora: editorial, cream, pull-quote ---- */

.founder-scene {
  background: #faf7f3;
  padding: 52px 22px 44px;
}

.founder-scene .scene-body {
  padding: 0;
}

.founder-quote {
  position: relative;
  font-family: "Gontserrat";
  font-style: italic;
  font-weight: 500;
  font-size: clamp(19px, 4.4vw, 24px);
  line-height: 1.5;
  color: var(--preto-suave);
  padding-left: 22px;
  border-left: 3px solid var(--gold);
  margin: 18px 0 28px;
}

.founder-kicker-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
}

.founder-kicker-row img {
  height: 30px;
  width: auto;
}

/* ---- Encerramento / Identificação: calmo ---- */

.calm-scene {
  background: linear-gradient(180deg, #171412 0%, #0e0c0b 100%);
  color: var(--branco);
  padding: 52px 22px 12px;
}

.calm-scene .hero-kicker {
  color: var(--gold);
}

.calm-scene h2 {
  color: var(--branco);
}

.calm-scene .scene-body {
  padding-top: 28px;
}

.calm-scene .scene-body .lead {
  color: rgba(255, 255, 255, 0.75);
}

.calm-scene .q-label {
  color: var(--branco);
}

.calm-scene .option label {
  border-color: rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.92);
  background: rgba(255, 255, 255, 0.03);
}

.calm-scene .option input:checked + label {
  border-color: var(--gold);
  background: rgba(181, 147, 61, 0.16);
}

.calm-scene .text-input {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--branco);
}

.calm-scene .text-input::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

.calm-scene .hint {
  color: rgba(255, 255, 255, 0.5);
}

.calm-scene .btn-primary {
  background: var(--gold);
  color: var(--preto-suave);
}

.calm-scene .btn-ghost {
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--branco);
}

/* ---- Obrigado: celebração ---- */

.thanks-scene {
  position: relative;
  min-height: 92dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 24px;
  background: radial-gradient(90% 70% at 50% 30%, #2a2013 0%, var(--deep-fundo) 65%);
  color: var(--branco);
  overflow: hidden;
}

.thanks-scene .anel {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 640px;
  max-width: 150vw;
  transform: translate(-50%, -50%);
  opacity: 0.6;
  pointer-events: none;
}

.thanks-scene .logo-mini-thanks {
  position: relative;
  height: 22px;
  margin-bottom: 22px;
}

.thanks-scene h2 {
  position: relative;
  font-size: clamp(26px, 6vw, 34px);
  color: var(--branco);
}

.thanks-scene .lead {
  position: relative;
  color: rgba(255, 255, 255, 0.75);
  max-width: 40ch;
}

.thanks-scene .coupon-box {
  position: relative;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(181, 147, 61, 0.5);
}

@media (max-width: 560px) {
  .hero-band {
    padding: 40px 18px 30px;
  }
  .hero-band .swoosh {
    width: 78%;
    opacity: 0.6;
  }
}
