/* === BLOCO: COMUM === */
@font-face {
  font-family: 'Grandis';
  src: url('fonts/Grandis-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Grandis';
  src: url('fonts/Grandis-bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Grandis';
  src: url('fonts/Grandis-black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

*, *::before, *::after {
  box-sizing: border-box;
}

:root {
  /* Cores — marca */
  --color-primary: #FF9B40;
  --color-primary-soft: #FFC979;
  --color-accent: #FFC876;

  /* Cores — CTA (verde original da página) */
  --color-cta: #1DBE71;
  --color-cta-hover: #18A862;
  --color-cta-border: #73FFBC;
  --color-cta-glow: rgba(29, 190, 113, 0.32);
  --color-on-cta: #FFFFFF;

  /* Cores — texto */
  --color-text: #FFFFFF;
  --color-text-soft: rgba(255, 255, 255, 0.8);
  --color-text-subtle: #D3D3D3;
  --color-text-muted: #B3B3B3;
  --color-text-faint: #BDBDBD;

  /* Gradiente de destaque (textos em laranja) */
  --gradient-text: linear-gradient(90deg, #CF653E, #FFAD32);

  /* Cores — superfícies */
  --color-bg: #000000;
  --color-surface: #0B0B0B;
  --color-surface-alt: #141414;
  --color-card: #070707;
  --color-card-border: #575757;
  --color-footer: #1D1D1D;
  --color-divider: #474747;
  --color-border: rgba(255, 201, 121, 0.24);
  --color-focus: #FFC979;

  /* Cores — formulário */
  --color-input: #333333;
  --color-input-text: #D3D3D3;
  --color-placeholder: #989898;

  /* Cores — destaque de cada capa */
  --accent-bonus-3: #F0FF24;
  --accent-bonus-2: #899AFF;
  --accent-bonus-1: #FF3D70;
  --accent-apps: #5B9CFF;
  --accent-lapidacao: #FFD47C;
  --accent-imagem: #B62328;
  --accent-visagismo-optico: #C8E83B;
  --accent-armario: #D078F3;
  --accent-desondulacao: #C4E83C;
  --accent-metodo: #FF8E38;

  /* Tipografia */
  --font-body: 'Grandis', Arial, sans-serif;
  --font-heading: 'Grandis', Arial, sans-serif;

  /* Espaçamento */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 48px;
  --space-2xl: 96px;

  /* Border radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  /* Sombras */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.32);
  --shadow-card: 0 24px 56px rgba(0, 0, 0, 0.58);

  /* Transições */
  --transition-fast: 0.15s ease;
  --transition-base: 0.25s ease;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
}

html, body {
  min-width: 320px;
  overflow-x: hidden;
}

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  hyphens: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, picture, svg, video {
  display: block;
  max-width: 100%;
  height: auto;
}

button, input, textarea, select {
  font: inherit;
  color: inherit;
}

button {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 var(--space-md);
  font-family: var(--font-heading);
  color: var(--color-text);
  line-height: 1.2em;
  text-wrap: balance;
}

p {
  margin: 0 0 var(--space-md);
  line-height: 1.4em;
}

p, h1, h2, h3, h4, li {
  overflow-wrap: break-word;
}

/* Acessibilidade */
:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 4px;
  border-radius: var(--radius-sm);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: -100px;
  left: var(--space-sm);
  z-index: 100;
  padding: 12px 20px;
  color: var(--color-bg);
  background: var(--color-primary-soft);
  border-radius: var(--radius-md);
  font-size: 14px;
  font-weight: 700;
  transition: top var(--transition-fast);
}

.skip-link:focus {
  top: var(--space-sm);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Layout base */
.section {
  width: 100%;
}

.content-wrapper {
  box-sizing: border-box;
  margin: 0 auto;
}

@media (min-width: 1472px) {
  .section { padding: 96px 0; }
  .content-wrapper { width: 1280px; }
}

@media (min-width: 1025px) and (max-width: 1471px) {
  .section { padding: 96px 0; }
  .content-wrapper { width: 961px; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .section { padding: 72px 0; }
  .content-wrapper { width: 656px; }
}

@media (min-width: 320px) and (max-width: 767px) {
  .section { padding: 56px 0; }
  .content-wrapper {
    width: 100%;
    max-width: 359px;
    padding: 0 8px;
  }
}

/* Botões */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  padding: 20px 32px;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.2em;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  transition:
    transform var(--transition-fast),
    box-shadow var(--transition-fast),
    background var(--transition-fast),
    color var(--transition-fast);
}

.btn-primary {
  color: var(--color-on-cta);
  background: var(--color-cta);
  border-color: var(--color-cta-border);
  box-shadow: 0 0 0 0 var(--color-cta-glow), var(--shadow-sm);
}

.btn-primary:hover {
  background: var(--color-cta-hover);
  transform: translateY(-1px);
  box-shadow: 0 0 24px 2px var(--color-cta-glow), var(--shadow-md);
}

.btn-primary:active {
  transform: translateY(0);
  box-shadow: var(--shadow-sm);
}

/* Brilho que atravessa o botão (igual ao WordPress).
   isolation + z-index:-1 → o brilho passa por cima do fundo e por baixo do texto. */
.btn-primary {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.btn-primary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(
    110deg,
    transparent 38%,
    rgba(255, 255, 255, 0.24) 46%,
    rgba(255, 255, 255, 0.65) 49%,
    rgba(255, 255, 255, 0.65) 51%,
    rgba(255, 255, 255, 0.24) 54%,
    transparent 62%
  );
  transform: translateX(-120%);
  animation: btn-flash 2.8s linear infinite;
}

@keyframes btn-flash {
  0%, 8% {
    transform: translateX(-120%);
  }
  42%, 100% {
    transform: translateX(120%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .btn-primary::before {
    animation: none;
    opacity: 0;
  }
}

.btn--full {
  width: 100%;
}

.btn[disabled],
.btn.is-disabled {
  opacity: 0.5;
  pointer-events: none;
}

/* Texto em gradiente laranja (destaques de título) */
.text-gradient {
  background-image: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 700;
  padding: 10px 0; /* estende o fundo pra acentos (Í) não sumirem */
}

/* Divisor */
.block-divider {
  border: none;
  border-top: 1px solid var(--color-divider);
  margin: 0;
}

/* Mensagem de sucesso do formulário (handler data-form-handler="auto") */
.form-success {
  padding: 24px 28px;
  border: 1px solid var(--color-cta-border);
  border-radius: var(--radius-md);
  color: var(--color-on-cta);
  background: var(--color-cta);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4em;
  text-align: center;
  text-wrap: balance;
}

/* Animação de entrada */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}
[data-reveal="fade-left"]  { transform: translateX(-24px); }
[data-reveal="fade-right"] { transform: translateX(24px); }
[data-reveal="zoom-in"]    { transform: scale(0.94); }

[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

[data-reveal-delay="1"] { transition-delay: 0.08s; }
[data-reveal-delay="2"] { transition-delay: 0.16s; }
[data-reveal-delay="3"] { transition-delay: 0.24s; }
[data-reveal-delay="4"] { transition-delay: 0.32s; }
[data-reveal-delay="5"] { transition-delay: 0.40s; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* === FIM BLOCO === */

/* === BLOCO: SECTION id="hero" === */
.hero {
  position: relative;
  background-color: var(--color-bg);
  background-repeat: no-repeat;
  background-image: url("Imagens/bg-hero-desktop-v2.webp");
  background-size: 1920px auto;
  background-position: center top;
}

/* BG à direita → conteúdo na metade esquerda */
.hero__content {
  position: relative;
  z-index: 1;
  max-width: 517px;
  margin-right: auto;
  text-align: left;
}

.hero__logo {
  width: 304px;
  margin-bottom: 32px;
}

.hero__title {
  max-width: 476px;
  margin: 0;
  padding-bottom: 16px;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.3em;
}

.hero__title strong {
  font-weight: 700;
}

.hero__subtitle {
  max-width: 462px;
  margin: 0;
  padding-bottom: 40px;
  color: var(--color-text-subtle);
  font-size: 15px;
  line-height: 1.4em;
}

.hero__subtitle strong {
  font-weight: 700;
}

/* Formulário */
.hero-form {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  margin-bottom: 16px;
}

.hero-form__group {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.hero-form__input {
  width: 100%;
  min-height: 49px;
  padding: 14px 32px;
  border: 1px solid var(--color-input);
  border-radius: var(--radius-md);
  color: var(--color-text);
  background: var(--color-input);
  font-size: 16px;
  line-height: 1.2em;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.hero-form__input::placeholder {
  color: var(--color-placeholder);
  opacity: 1;
}

.hero-form__input:focus {
  outline: none;
  border-color: var(--color-primary-soft);
  box-shadow: 0 0 0 3px var(--color-border);
}

.hero-form__input:user-invalid {
  border-color: var(--accent-bonus-1);
}

.hero-form__phone-row {
  display: flex;
  gap: 8px;
}

/* DDI: mostra só o código (+55); o <select> nativo fica por cima, transparente,
   então o clique e o teclado continuam abrindo a lista completa de países. */
.hero-form__ddi {
  position: relative;
  display: flex;
  flex: 0 0 90px;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 49px;
  border: 1px solid var(--color-input);
  border-radius: var(--radius-md);
  color: var(--color-text);
  background: var(--color-input);
  font-size: 16px;
  line-height: 1.2em;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.hero-form__ddi:focus-within {
  border-color: var(--color-primary-soft);
  box-shadow: 0 0 0 3px var(--color-border);
}

.hero-form__ddi-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.hero-form__select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.hero-form__select option {
  color: var(--color-text);
  background: var(--color-surface-alt);
}

.hero-form__phone-row .hero-form__input {
  flex: 1 1 auto;
  min-width: 0;
}

.hero-form__submit {
  padding: 16px 32px;
}

/* Data e horário */
.hero__event {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 0;
  padding: 28px 0 34px;
  list-style: none;
}

.hero__event-item {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.2em;
}

.hero__event-icon {
  color: var(--color-accent);
}

.hero__event-icon svg {
  width: 16px;
  height: 16px;
  display: block;
  fill: currentColor;
  stroke: none;
  flex-shrink: 0;
}

@media (min-width: 1025px) and (max-width: 1471px) {
  .hero {
    padding: 56px 0 96px;
    background-size: 1471px auto;
  }

  .hero__content {
    max-width: 450px;
  }

  .hero__title {
    max-width: 450px;
    font-size: 28px;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .hero {
    padding: 56px 0 48px;
    background-size: 1000px auto;
    background-position: -80px top;
  }

  .hero__content {
    max-width: none;
  }

  .hero__title {
    max-width: 371px;
    font-size: 29px;
  }

  .hero__subtitle {
    max-width: 371px;
  }

  .hero-form__submit {
    width: 100%;
  }

  .hero__event {
    justify-content: center;
  }
}

@media (min-width: 320px) and (max-width: 767px) {
  .hero {
    padding: 20px 0 530px;
    background-image: url("Imagens/bg-hero-mobile-v2.webp");
    background-size: 600px auto;
    background-position: center bottom;
  }

  .hero__content {
    max-width: none;
    margin-right: 0;
    text-align: center;
  }

  .hero__logo {
    width: 179px;
    margin: 0 auto 30px;
  }

  .hero__title {
    max-width: none;
    font-size: 22px;
    line-height: 1.2em;
  }

  .hero__subtitle {
    max-width: 330px;
    margin: 0 auto;
    padding-bottom: 32px;
    text-wrap: balance;
  }

  .hero-form__input {
    min-height: 56px;
    padding: 14px 24px;
  }

  .hero-form__ddi {
    flex-basis: 107px;
    min-height: 56px;
  }

  .hero-form__submit {
    width: 100%;
    min-height: 56px;
  }

  .hero__event {
    justify-content: center;
    gap: 8px 12px;
    padding-top: 24px;
  }
}
/* === FIM BLOCO === */

/* === BLOCO: SECTION id="prepare-se" === */
.offer {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: center;
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 155, 64, 0.10), transparent 27%),
    radial-gradient(circle at 86% 80%, rgba(255, 201, 121, 0.05), transparent 24%),
    var(--color-bg);
}

/* Espaço extra embaixo: o card da seção "valor" sobe por cima desta seção */
.section.offer {
  min-height: auto;
  padding: 24px 0 180px;
}

.offer::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, transparent, black 24%, black 78%, transparent);
}

.offer__header {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.offer__title {
  max-width: 780px;
  margin: 0 auto var(--space-md);
  color: var(--color-text);
  font-size: 44px;
  font-weight: 900;
  letter-spacing: -0.03em;
}

.offer__title::first-letter {
  color: var(--color-primary);
}

.offer__subtitle {
  max-width: 620px;
  margin: 0 auto 16px;
  color: var(--color-text-muted);
  font-size: 16px;
  font-weight: 400;
  text-wrap: balance;
}

.offer__subtitle:last-of-type {
  margin-bottom: 0;
}

.offer__subtitle b {
  color: var(--color-text);
  font-weight: 700;
}

.offer__subtitle strong {
  color: var(--color-primary-soft);
  font-weight: 700;
}

.offer__rule {
  width: 56px;
  height: 2px;
  margin-top: var(--space-lg);
  background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
}

.offer__stage {
  position: relative;
  z-index: 1;
  width: 100vw;
  margin-top: 42px;
  margin-left: calc(50% - 50vw);
}

.offer-carousel__viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, black 7%, black 93%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, black 7%, black 93%, transparent 100%);
}

.offer-carousel__track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: offer-marquee 58s linear infinite;
}

.offer-carousel__group {
  --carousel-gap: 20px;
  display: flex;
  flex-shrink: 0;
  gap: var(--carousel-gap);
  padding-right: var(--carousel-gap);
}

.offer-card {
  --card-accent: var(--color-primary);
  position: relative;
  flex: 0 0 226px;
  width: 226px;
  margin: 0;
  border: 1px solid transparent;
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  transform: translateZ(0);
}

.offer-card::before {
  content: '';
  position: absolute;
  z-index: 2;
  inset: -2px;
  padding: 2px;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(
    45deg,
    var(--card-accent) 0%,
    color-mix(in srgb, var(--card-accent) 56%, transparent) 13%,
    transparent 31%,
    transparent 69%,
    color-mix(in srgb, var(--card-accent) 56%, transparent) 87%,
    var(--card-accent) 100%
  );
  filter:
    drop-shadow(-7px 9px 11px color-mix(in srgb, var(--card-accent) 28%, transparent))
    drop-shadow(7px -9px 11px color-mix(in srgb, var(--card-accent) 28%, transparent));
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.offer-card::after {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.035);
}

.offer-card img {
  width: 100%;
  height: auto;
  border-radius: inherit;
}

.offer-card__price {
  position: absolute;
  z-index: 3;
  top: 12px;
  left: 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 116px;
  padding: 8px 11px;
  border: 1px solid color-mix(in srgb, var(--card-accent) 62%, transparent);
  border-radius: var(--radius-md);
  color: var(--color-text);
  background: rgba(0, 0, 0, 0.78);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.offer-card__price span {
  color: var(--color-text-muted);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.15em;
}

.offer-card__price strong {
  color: var(--card-accent);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.15em;
  white-space: nowrap;
}

.offer-card--bonus-3 { --card-accent: var(--accent-bonus-3); }
.offer-card--bonus-2 { --card-accent: var(--accent-bonus-2); }
.offer-card--bonus-1 { --card-accent: var(--accent-bonus-1); }
.offer-card--apps { --card-accent: var(--accent-apps); }
.offer-card--lapidacao { --card-accent: var(--accent-lapidacao); }
.offer-card--imagem { --card-accent: var(--accent-imagem); }
.offer-card--visagismo-optico { --card-accent: var(--accent-visagismo-optico); }
.offer-card--armario { --card-accent: var(--accent-armario); }
.offer-card--desondulacao { --card-accent: var(--accent-desondulacao); }
.offer-card--metodo { --card-accent: var(--accent-metodo); }

.offer-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: max-content;
  margin: var(--space-lg) auto 0;
}

.offer-carousel__nav,
.offer-carousel__control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-sm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  color: var(--color-text-muted);
  background: rgba(11, 11, 11, 0.78);
  transition:
    color var(--transition-fast),
    border-color var(--transition-fast),
    background var(--transition-fast),
    transform var(--transition-fast);
}

.offer-carousel__nav {
  width: 40px;
  height: 40px;
}

.offer-carousel__nav svg {
  width: 18px;
  height: 18px;
}

.offer-carousel__control {
  min-width: 96px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2em;
}

.offer-carousel__nav:hover,
.offer-carousel__control:hover {
  color: var(--color-primary-soft);
  border-color: var(--color-primary);
  background: var(--color-surface);
}

.offer-carousel__nav:hover {
  transform: translateY(-1px);
}

.offer-carousel__nav:active {
  transform: translateY(0) scale(0.96);
}

.offer-carousel__icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.offer-carousel__icon--play {
  display: none;
}

.offer-carousel__control[aria-pressed="true"] .offer-carousel__icon--pause {
  display: none;
}

.offer-carousel__control[aria-pressed="true"] .offer-carousel__icon--play {
  display: block;
}

.offer__stage.is-paused .offer-carousel__track {
  animation-play-state: paused;
}

@keyframes offer-marquee {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

@media (min-width: 1472px) {
  .offer-card {
    flex-basis: 244px;
    width: 244px;
  }
}

@media (min-width: 1025px) and (max-width: 1471px) {
  .offer__title {
    font-size: 36px;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .section.offer {
    padding: 32px 0 200px;
  }

  .offer__title {
    font-size: 32px;
  }

  .offer-card {
    flex-basis: 204px;
    width: 204px;
  }
}

@media (min-width: 320px) and (max-width: 767px) {
  .section.offer {
    padding: 16px 0 96px;
  }

  .offer__title {
    max-width: 330px;
    margin-bottom: 12px;
    font-size: 24px;
  }

  .offer__subtitle {
    max-width: 325px;
    font-size: 16px;
  }

  .offer__rule {
    margin-top: 20px;
  }

  .offer__stage {
    margin-top: 32px;
  }

  .offer-carousel__group {
    --carousel-gap: 12px;
  }

  .offer-card {
    flex-basis: 164px;
    width: 164px;
    border-radius: 14px;
  }

  .offer-card__price {
    top: 8px;
    left: 8px;
    min-width: 104px;
    padding: 7px 9px;
  }

  .offer-card__price strong {
    font-size: 14px;
  }

  .offer-carousel__track {
    animation-duration: 44s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .offer-carousel__viewport {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary) var(--color-surface);
  }

  .offer-carousel__track {
    animation: none;
  }

  .offer-carousel__group[aria-hidden="true"],
  .offer-carousel__control {
    display: none;
  }
}
/* === FIM BLOCO === */

/* === BLOCO: SECTION id="valor" === */
.section.valor {
  position: relative;
  z-index: 2;
  display: flow-root; /* evita que a margem negativa do card "puxe" o fundo da seção pra cima */
  padding-top: 0;
  padding-bottom: 200px;
  background-color: var(--color-surface-alt);
}

.valor__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 600px;
  margin: -100px auto 0;
  padding: 48px;
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-xl);
  background-color: var(--color-card);
  text-align: center;
}

.valor__label {
  max-width: 239px;
  margin: 0 auto;
  padding-bottom: 8px;
  color: var(--color-text);
  font-size: 24px;
  line-height: 1.2em;
}

.valor__label--lg {
  max-width: 333px;
  padding-bottom: 0;
  font-size: 30px;
}

.valor__total {
  margin: 0;
  padding-bottom: 24px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2em;
}

.valor__mystery {
  margin: 0;
  padding-bottom: 32px;
  font-size: 80px;
  font-weight: 700;
  line-height: 1.2em;
}

.valor__cta-text {
  max-width: 100%;
  margin: 0;
  color: var(--color-text-faint);
  font-size: 16px;
  line-height: 1.2em;
}

.valor__cta-text strong {
  font-weight: 700;
}

.valor__cta {
  margin-top: 24px;
}

@media (min-width: 1025px) and (max-width: 1471px) {
  .valor__label {
    max-width: 274px;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .section.valor {
    padding-bottom: 160px;
  }
}

@media (min-width: 320px) and (max-width: 767px) {
  .section.valor {
    padding-bottom: 100px;
  }

  .valor__card {
    margin-top: -40px;
    padding: 32px 16px;
  }

  .valor__cta-text {
    max-width: 240px;
    text-wrap: balance;
  }

  .valor__cta {
    width: 100%;
    margin-top: 24px;
  }
}
/* === FIM BLOCO === */

/* === BLOCO: SECTION id="mentor" === */
.section.mentor {
  position: relative;
  z-index: 3; /* a foto sobe por cima da seção "valor" */
  padding: 96px 0 72px;
  background-color: var(--color-bg);
}

.mentor__wrapper {
  position: relative;
}

/* Foto recortada: alinhada à direita e à base, sobe por cima da seção anterior */
.mentor__photo {
  position: absolute;
  right: 0;
  bottom: -72px;
  width: 555px;
  pointer-events: none;
}

.mentor__photo img {
  width: 100%;
  height: auto;
}

.mentor__content {
  position: relative;
  z-index: 1;
  max-width: 640px;
  text-align: left;
}

.mentor__title {
  margin: 0;
  padding-bottom: 96px;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.2em;
}

.mentor__name {
  margin: 0;
  padding-bottom: 32px;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.2em;
}

.mentor__bio {
  padding-bottom: 24px;
}

.mentor__text {
  margin: 0;
  color: var(--color-text-soft);
  font-size: 16px;
  line-height: 1.2em;
  text-align: justify;
}

.mentor__social {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.2em;
  transition: color var(--transition-fast);
}

.mentor__social svg {
  width: 16px;
  height: 16px;
  color: var(--color-primary);
  fill: currentColor;
  stroke: none;
  flex-shrink: 0;
}

.mentor__social:hover {
  color: var(--color-primary);
}

@media (min-width: 1025px) and (max-width: 1471px) {
  .mentor__photo {
    width: 480px;
  }

  .mentor__content {
    max-width: 480px;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .section.mentor {
    padding: 72px 0 72px;
  }

  .mentor__photo {
    right: -295px;
    width: 543px;
  }

  .mentor__content {
    max-width: 394px;
  }

  .mentor__title {
    padding-bottom: 72px;
    font-size: 30px;
  }
}

@media (min-width: 320px) and (max-width: 767px) {
  .section.mentor {
    padding: 0 0 72px;
  }

  /* Celular: foto no topo, largura total; o texto entra por cima da parte escura da foto */
  .mentor__photo {
    position: relative;
    right: auto;
    bottom: auto;
    display: block;
    width: 100vw;
    max-width: none;
    margin: 0 0 -139vw calc(50% - 50vw);
  }

  .mentor__content {
    max-width: none;
    padding: 0 19px;
  }

  .mentor__title {
    padding-bottom: 40px;
    font-size: 36px;
    text-wrap: wrap;
  }

  .mentor__name {
    padding-bottom: 16px;
    font-size: 20px;
  }

  .mentor__text {
    font-size: 15px;
  }
}
/* === FIM BLOCO === */

/* === BLOCO: SECTION id="footer" === */
.footer {
  position: relative;
  z-index: 4; /* fica por cima da foto do mentor, que pode descer um pouco */
  width: 100%;
  padding: 0 0 80px;
  background-color: var(--color-footer);
}

.footer__wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.footer__divider {
  width: 100%;
  margin-bottom: 56px;
}

.footer__legal {
  max-width: 390px;
  margin: 0 auto 21px;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.4em;
  text-wrap: balance;
}

.footer__legal a {
  color: var(--color-primary);
}

.footer__legal a:hover {
  color: var(--color-primary);
}

.footer__credit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: var(--space-md);
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.2em;
  transition: opacity var(--transition-fast);
}

.footer__credit svg {
  width: 17px;
  height: 26px;
  fill: currentColor;
  stroke: none;
}

.footer__credit:hover {
  opacity: 0.75;
}

@media (min-width: 320px) and (max-width: 767px) {
  .footer {
    padding-bottom: 40px;
  }

  .footer__divider {
    margin-bottom: 40px;
  }

  .footer__legal {
    max-width: 330px;
  }
}
/* === FIM BLOCO === */
