/* ==========================================================================
   Método Sensorial Infantil — folha de estilo
   1. Tokens  2. Base  3. Layout  4. Componentes  5. Seções  6. Responsivo
   ========================================================================== */

/* 1. Tokens ------------------------------------------------------------- */
:root {
  --cream: oklch(0.965 0.022 82);
  --background: oklch(0.985 0.012 85);
  --card: oklch(0.995 0.006 85);
  --ink: oklch(0.27 0.035 45);
  --muted: oklch(0.52 0.03 55);
  --border: oklch(0.9 0.022 80);
  --secondary: oklch(0.94 0.03 80);
  --terracotta: oklch(0.62 0.16 42);
  --sage: oklch(0.68 0.07 150);
  --sky: oklch(0.7 0.09 235);
  --sun: oklch(0.82 0.13 85);
  --on-dark: oklch(0.99 0.01 85);

  --gradient-warm: linear-gradient(160deg, oklch(0.975 0.02 85) 0%, oklch(0.945 0.035 70) 55%, oklch(0.93 0.05 45) 100%);
  --gradient-cta: linear-gradient(100deg, oklch(0.66 0.15 48), oklch(0.58 0.17 32));
  --shadow-soft: 0 12px 40px -18px oklch(0.45 0.09 45 / 0.4);
  --shadow-lift: 0 24px 60px -24px oklch(0.42 0.1 45 / 0.45);

  --font-display: "Fraunces", Georgia, serif;
  --font-sans: "Nunito Sans", system-ui, sans-serif;
  --radius: 1rem;
}

/* 2. Base --------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background-color: var(--background);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.6;
}

img { display: block; max-width: 100%; height: auto; }

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0;
}

h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.4rem); }
h3 { font-size: clamp(1.4rem, 3vw, 1.85rem); }

p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

/* 3. Layout ------------------------------------------------------------- */
.container { width: 100%; max-width: 1120px; margin-inline: auto; padding-inline: 20px; }
.container--narrow { max-width: 900px; }
.container--tight { max-width: 760px; }

.section { padding-block: 64px; }
.section--warm { background-image: var(--gradient-warm); }
.section--soft { background-color: oklch(0.94 0.03 80 / 0.6); }

.stack > * + * { margin-top: 16px; }
.grid { display: grid; gap: 16px; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* 4. Componentes -------------------------------------------------------- */
.eyebrow {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--terracotta);
}

.lead { font-size: 1.125rem; color: var(--muted); }
.text-muted { color: var(--muted); }
.text-strike { text-decoration: line-through; color: var(--muted); }
.price { font-family: var(--font-display); font-weight: 900; color: var(--terracotta); }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 36px;
  border-radius: 999px;
  background-image: var(--gradient-cta);
  color: var(--on-dark);
  font-weight: 800;
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-decoration: none;
  box-shadow: var(--shadow-lift);
  transition: transform 0.2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn--light { background-image: none; background-color: var(--background); color: var(--ink); }

.card {
  background-color: var(--card);
  border: 1px solid var(--border);
  border-radius: 1.25rem;
  padding: 20px;
  box-shadow: var(--shadow-soft);
}

.chip {
  display: inline-block;
  border: 1px solid var(--border);
  background-color: var(--card);
  border-radius: 999px;
  padding: 8px 20px;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.check { display: flex; gap: 12px; align-items: flex-start; }
.check::before { content: "✓"; color: var(--terracotta); font-weight: 900; }

.step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background-color: var(--secondary);
  font-weight: 900;
}

/* 5. Seções ------------------------------------------------------------- */
/* Hero */
.hero__inner { display: grid; gap: 40px; align-items: center; padding-block: 64px; }
.hero__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-top: 28px; }
.hero__price .price { font-size: clamp(2.2rem, 5vw, 3rem); }
.hero__image { border-radius: 2rem; box-shadow: var(--shadow-lift); object-fit: cover; width: 100%; }

/* Experiências */
.experience { overflow: hidden; padding: 0; }
.experience img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.experience__body { padding: 24px; }
.experience__tag {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}
.dot { width: 12px; height: 12px; border-radius: 999px; display: inline-block; }
.dot--terracotta { background-color: var(--terracotta); }
.dot--sky { background-color: var(--sky); }
.dot--sage { background-color: var(--sage); }
.dot--sun { background-color: var(--sun); }
.experience__verbs { font-size: 1.2rem; font-weight: 700; margin-top: 16px; }

/* Oferta */
.offer {
  background-image: var(--gradient-warm);
  border-radius: 2rem;
  padding: 40px 24px;
  text-align: center;
  box-shadow: var(--shadow-lift);
}
.offer .price { font-size: clamp(2.6rem, 7vw, 3.6rem); }

/* Rodapé */
.footer {
  background-image: var(--gradient-cta);
  color: var(--on-dark);
  text-align: center;
  padding-block: 64px;
}
.footer h2 { color: var(--on-dark); }

/* 6. Responsivo --------------------------------------------------------- */
@media (max-width: 720px) {
  .grid--2,
  .grid--3 { grid-template-columns: 1fr; }
}

@media (min-width: 768px) {
  .section { padding-block: 88px; }
  .hero__inner { grid-template-columns: 1fr 1fr; padding-block: 88px; }
  .offer { padding: 56px 40px; }
}

/* ---------- Provas sociais ---------- */
.proof img {
  width: 100%;
  height: auto;
  border-radius: 20px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}
