@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@1,500;1,600;1,700&family=Geist:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* Filmou Ganhou — sistema editorial inspirado na referência, sem alterar o conteúdo. */
:root {
  --paper: #efeadd;
  --paper-deep: #eae4d5;
  --ink: #141414;
  --acid: #0fd96b;
  --orange: #0fd96b;
  --blue: #dce8dd;
  --white: #f7f3e8;
  --line: #d8d2c2;
  --display: 'Geist', system-ui, sans-serif;
  --body: 'Geist', system-ui, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --page: min(1280px, calc(100vw - 80px));
}

body {
  font-family: var(--body);
  color: var(--ink);
  background-color: var(--paper);
  background-image: linear-gradient(rgba(89, 105, 85, .075) 1px, transparent 1px), linear-gradient(90deg, rgba(89, 105, 85, .075) 1px, transparent 1px);
  background-size: 20px 20px;
  line-height: 1.5;
}
.noise { opacity: .025; }
.site-header, .instructions-header, .check-header {
  height: 64px;
  border-bottom: 1px solid var(--line);
  background: rgba(239, 234, 221, .82);
  backdrop-filter: blur(10px);
}
.brand { gap: 9px; }.brand-mark { width: 28px; height: 28px; border: 1px solid var(--ink); border-radius: 50%; background: var(--green, var(--acid)); font: 600 12px/28px var(--mono); text-align: center; transform: none; }.brand-name { font: 700 9px/1 var(--body); text-transform: uppercase; letter-spacing: -.02em; }
.main-nav, .instructions-back, .check-back, .share-button { font-size: 11px; font-weight: 500; letter-spacing: 0; }.main-nav { gap: 22px; }.main-nav > a::after { display: none; }.nav-cta { padding: 9px 12px; border: 1px solid var(--green, var(--acid)); background: var(--acid); color: var(--ink); }.nav-cta:hover { box-shadow: none; transform: translateY(-2px); background: #00ff7a; }
.share-button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ink); background: transparent; text-transform: none; }.share-button:hover { box-shadow: none; transform: translateY(-2px); background: var(--paper-deep); }

/* Assinatura da marca: olho-lente e moldura de gravação. O nome continua em
   texto para ser perfeitamente nítido, inclusive no cabeçalho do celular. */
.brand { gap: 12px; }
img.brand-mark {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: var(--ink);
  object-fit: cover;
}
.brand-name {
  font: 800 16px/.88 var(--body);
  letter-spacing: -.05em;
  text-transform: none;
}
.footer-brand img.brand-mark { width: 52px; height: 52px; flex-basis: 52px; }
.footer-brand .brand-name { font-size: 19px; }

.hero { min-height: 650px; padding-top: 74px; padding-bottom: 70px; grid-template-columns: 1.05fr .95fr; gap: 7vw; }.eyebrow { gap: 7px; margin-bottom: 17px; color: #08753c; font: 500 10px var(--mono); letter-spacing: .05em; text-transform: uppercase; }.eyebrow::before { width: 16px; height: 1px; }.eyebrow span { padding: 0; border: 0; background: transparent; letter-spacing: .05em; }
.hero h1, h2 { font-family: var(--display); font-weight: 500; letter-spacing: -.075em; line-height: .93; text-transform: none; }.hero h1 { font-size: clamp(55px, 5.5vw, 78px); }.hero h1 em { color: #0a9e52; font-family: var(--serif); font-size: 1.12em; font-style: italic; font-weight: 600; }.hero h1 em::after { display: none; }.hero-lead { max-width: 500px; margin: 25px 0; font-size: 17px; font-weight: 400; line-height: 1.5; }.button { min-height: 42px; padding: 0 14px; border: 1px solid var(--ink); font: 500 11px var(--mono); letter-spacing: 0; text-transform: none; }.button:hover { box-shadow: none; transform: translateY(-2px); }.text-link { font-size: 12px; font-weight: 500; }.hero-pix { padding: 5px 10px 5px 5px; border: 1px solid var(--line); box-shadow: none; background: rgba(247, 243, 232, .72); font: 500 10px var(--mono); letter-spacing: 0; }.hero-pix b { border: 0; background: var(--acid); font: 600 11px var(--mono); }.hero-gratis { box-shadow: none; }.microcopy { font: 600 13px/1.2 var(--serif); font-style: italic; color: #7c7567; }
.hero-visual { min-height: 540px; }.hero-visual::before { width: 78%; border: 1px solid rgba(15, 217, 107, .55); border-radius: 0; background: linear-gradient(90deg, transparent 49.9%, rgba(15,217,107,.25) 50%, transparent 50.1%), linear-gradient(transparent 49.9%, rgba(15,217,107,.25) 50%, transparent 50.1%); box-shadow: none; }.hero-video { width: min(350px, 72vw); border: 1px solid var(--ink); border-radius: 0; box-shadow: 9px 9px 0 var(--acid); }.visual-sticker { border: 1px solid rgba(15,217,107,.65); background: rgba(239,234,221,.9); color: #08753c; box-shadow: none; font: 9px var(--mono); transform: none; }.visual-note { font: 10px var(--mono); color: #6a6557; }

.clips { padding: 24px 0 22px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(234,228,213,.48); }.clips-titulo, .clips-fonte { font: 10px var(--mono); letter-spacing: .04em; }.clips-titulo::before { width: 15px; height: 1px; background: var(--acid); }.clip { border: 1px solid var(--line); background: var(--paper); }.clip figcaption { font-size: 9px; }

.why, .task-section, .device-section, .safety, .faq { padding-top: 88px; padding-bottom: 88px; }.why { grid-template-columns: .6fr 1.5fr 1.2fr; gap: 5vw; }.section-number { padding-top: 5px; color: #08753c; font: 500 9px var(--mono); letter-spacing: .07em; }.why h2, .task-heading h2, .faq h2, .safety h2 { font-size: clamp(45px, 4.8vw, 70px); }.why-body { max-width: 460px; font-size: 16px; }.why-body > p:first-child { font-size: 18px; font-weight: 500; }.truth-card { border-color: var(--green, var(--acid)); background: rgba(15,217,107,.08); }
.steps, .good-fit, .final-cta { color: var(--ink); background: transparent; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.steps { padding-top: 88px; padding-bottom: 88px; grid-template-columns: .6fr 1fr 1.55fr; }.section-number.light, .eyebrow.light, .steps-intro > p:last-child, .step-list p, .steps-cta p { color: #655f52; }.eyebrow.light span { color: inherit; }.steps-intro h2, .final-cta h2 { color: var(--ink); font-size: clamp(55px, 5vw, 76px); }.step-list { border-color: var(--line); }.step-list li { border-color: var(--line); }.step-index, .step-icon { color: #08753c; }.steps-cta p a { color: #08753c; }.button-acid { background: var(--acid); }
.task-heading { margin: 26px 0 48px; }.task-grid { gap: 16px; }.task-card { padding: 10px 10px 18px; border: 1px solid var(--ink); background: rgba(247,243,232,.77); box-shadow: none; }.task-card:hover, .task-card:nth-child(2):hover { transform: translateY(-5px); }.task-art { height: 270px; margin-bottom: 16px; border: 0; }.task-video .task-art { background: #d7e7d9; }.task-audio .task-art { background: #eae4d5; }.task-image .task-art { background: #dce8dd; }.task-tag { padding: 4px 6px; background: var(--acid); color: var(--ink); font: 500 9px var(--mono); }.task-card h3 { font-size: 21px; font-weight: 500; }.task-card p { font-size: 13px; }.task-disclaimer { margin-top: 34px; padding-left: 18px; border-color: var(--acid); }
.good-fit { padding-top: 88px; padding-bottom: 88px; grid-template-columns: 1fr 1.1fr; }.fit-list { border-color: var(--line); }.fit-list li { border-color: var(--line); }.fit-list b { color: #08753c; }.device-panel { border: 1px solid var(--ink); box-shadow: 8px 8px 0 var(--acid); transform: none; }.device-panel.is-visible { transform: none; }.device-panel-head i { background: var(--acid); }.device-official { background: var(--acid); }.device-caveat { border-color: var(--acid); }
.safety { grid-template-columns: .5fr 1.2fr 1.2fr; border-color: var(--line); }.safety-seal { width: 106px; background: var(--acid); border: 1px solid var(--ink); box-shadow: none; transform: none; }.safety-seal b { font-family: var(--display); }.safety-copy > p { font-size: 16px; font-weight: 500; }.faq { grid-template-columns: 1fr 1.25fr; }.accordion { border-color: var(--line); }.accordion details { border-color: var(--line); }.accordion summary { font-weight: 600; }
.final-cta { min-height: 490px; margin-top: 0; padding-top: 88px; padding-bottom: 88px; }.final-cta > p:not(.eyebrow) { color: #655f52; }.orbit { border-color: rgba(15,217,107,.35); }.footer { padding-top: 42px; background: var(--paper-deep); }.footer-bottom { border-color: var(--line); }

/* Instruções e verificador compartilham os mesmos componentes, agora no mesmo sistema. */
.instructions-page, .check-page { background-color: var(--paper); background-image: linear-gradient(rgba(89,105,85,.075) 1px, transparent 1px), linear-gradient(90deg,rgba(89,105,85,.075) 1px,transparent 1px); background-size: 20px 20px; }.wizard { width: min(720px, calc(100vw - 44px)); }.wizard-progress { background: rgba(239,234,221,.9); }.wizard-progress-meta, .wizard-count b { font-family: var(--mono); }.wizard-bar, .wizard-step, .check-card { border-color: var(--line); box-shadow: none; }.wizard-bar i { background: var(--acid); border: 0; }.wizard-step h2 { font-family: var(--display); font-weight: 500; letter-spacing: -.05em; text-transform: none; }.check-main { min-height: calc(100vh - 64px); padding-top: 76px; }.check-intro h1 { font-family: var(--display); font-size: clamp(60px, 7vw, 100px); letter-spacing: -.075em; text-transform: none; }.check-intro h1 em { color: #0a9e52; font-family: var(--serif); font-style: italic; }.check-card { background: var(--ink); box-shadow: 8px 8px 0 var(--acid); transform: none; }.check-sticker { background: var(--acid); color: var(--ink); box-shadow: none; transform: none; }

/* O cartão de resultado precisa de fundo claro: o tema editorial usava tinta
   preta no cartão, mas os textos do verificador também herdam essa tinta. */
.check-page .check-card { background: var(--white); color: var(--ink); }

/* Camada de legibilidade: no papel claro, cinzas suaves perdem definição em
   telas pequenas. Estes textos são auxiliares, mas continuam essenciais para
   entender a oferta e o resultado da verificação. */
:root { --muted-readable: #4c4b44; }
.microcopy,
.visual-note,
.clip-texto i,
.clips-fonte,
.section-number.light,
.eyebrow.light,
.steps-intro > p:last-child,
.step-list p,
.steps-cta p,
.task-card p,
.task-disclaimer,
.device-copy > p:not(.eyebrow, .device-lead, .device-caveat),
.device-caveat,
.device-result small,
.device-data dt,
.device-privacy,
.accordion details p,
.final-cta > p:not(.eyebrow),
.footer-top > p,
.modelos-grupo-topo p,
.modelo-fora .modelo-nome,
.modelo-nome em,
.modelo-nome small,
.modelos-mais,
.modelos-status[data-tipo="nada"],
.store-link span,
.check-message p,
.check-desktop p,
.check-success p,
.check-detected dt,
#check-again,
.check-note { color: var(--muted-readable); }

/* Verde de destaque em texto sobre o papel: esta versão mantém a identidade,
   mas passa no contraste também quando o título reduz no celular. */
.hero h1 em,
.check-intro h1 em { color: #08753c; }

/* Composição para celular: o conteúdo usa a largura útil da tela, com respiro
   lateral consistente. Reduzimos a cadência vertical de desktop e aumentamos a
   leitura de textos corridos, sem transformar cada seção em uma tela inteira. */
@media (max-width: 760px) {
  html:root { --page: calc(100% - 40px); }

  body .hero { padding: 34px 0 38px; gap: 26px; }
  body .hero h1 { font-size: clamp(40px, 12vw, 54px); line-height: .96; }
  body .hero-lead { margin: 18px 0; font-size: 17px; line-height: 1.48; }
  body .hero-actions { width: 100%; gap: 12px; }
  body .hero-actions .button { width: 100%; min-height: 48px; }
  body .hero-visual { min-height: 0; margin-top: 0; padding: 28px 0 34px; }
  body .hero-video { width: min(100%, 310px); }
  body .visual-note { max-width: 310px; margin: 14px auto 0; font-size: 12px; line-height: 1.45; text-align: center; }

  body .why,
  body .steps,
  body .task-section,
  body .good-fit,
  body .device-section,
  body .safety,
  body .faq { padding-top: 46px; padding-bottom: 48px; gap: 22px; }

  body .why,
  body .steps,
  body .good-fit,
  body .device-section,
  body .safety,
  body .faq { grid-template-columns: 1fr; }

  body .why-heading,
  body .steps-intro,
  body .task-heading,
  body .fit-copy,
  body .device-copy,
  body .faq-title { text-align: center; }
  body .section-number,
  body .eyebrow { justify-content: center; text-align: center; font-size: 11px; }

  body .why h2,
  body .task-heading h2,
  body .faq h2,
  body .safety h2,
  body .steps-intro h2,
  body .fit-copy h2,
  body .device-copy h2,
  body .final-cta h2 { font-size: clamp(38px, 11vw, 48px); line-height: .98; }

  body .why-body,
  body .steps-cta,
  body .safety-copy,
  body .accordion,
  body .device-panel { text-align: left; }
  body .why-body,
  body .safety-copy,
  body .device-copy > p { font-size: 16px; line-height: 1.58; }
  body .why-body > p:first-child { font-size: 18px; line-height: 1.48; }
  body .step-list p,
  body .steps-cta p,
  body .task-card p,
  body .fit-list p,
  body .accordion details p,
  body .task-disclaimer { font-size: 15px; line-height: 1.58; }

  body .task-heading { margin: 18px 0 28px; }
  body .task-grid { gap: 14px; }
  body .task-art { height: 220px; }
  body .steps-cta { margin-top: 10px; }
  body .final-cta { min-height: 0; padding: 52px 20px; }

  body .wizard { width: min(100% - 32px, 720px); }
  body .check-main { padding: 38px 0; gap: 32px; }
  body .check-intro { text-align: center; }
  body .check-intro h1 { font-size: clamp(42px, 13vw, 58px); }
  body .step-list li,
  body .fit-list li { padding-top: 16px; padding-bottom: 16px; }
  body .accordion summary { padding-top: 18px; padding-bottom: 18px; font-size: 16px; }
  body .phone-needs { gap: 10px; }
  body .site-header .brand-name { font-size: 14px; }
  body .site-header img.brand-mark { width: 38px; height: 38px; flex-basis: 38px; border-radius: 7px; }
  body .site-header .nav-cta { font-size: 12px; }
}

/* Navegação institucional compacta nas páginas de instruções e verificação. */
.compact-legal-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  font-size: var(--text-small, 14px);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}
.compact-legal-links a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border-bottom: 1px solid transparent;
}
.compact-legal-links a:hover { border-color: currentColor; }

@media (max-width: 760px) {
  .instructions-footer,
  .check-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .compact-legal-links { justify-content: flex-start; }
}

@media (max-width: 760px) {
  :root { --page: min(100% - 34px, 1280px); }.site-header, .instructions-header, .check-header { height: 58px; }.main-nav { background: var(--paper); border-color: var(--line); }.hero { min-height: auto; padding: 53px 0 56px; grid-template-columns: 1fr; gap: 35px; }.hero h1 { font-size: clamp(48px, 14vw, 66px); }.hero-lead { font-size: 16px; }.hero-visual { min-height: 470px; }.hero-video { width: min(316px, 74vw); }.why, .steps, .task-section, .good-fit, .device-section, .safety, .faq { padding-top: 58px; padding-bottom: 58px; }.why, .steps, .good-fit, .safety, .faq { gap: 28px; }.why h2, .task-heading h2, .faq h2, .safety h2 { font-size: 48px; }.task-heading { margin-bottom: 32px; }.task-art { height: 245px; }.final-cta { min-height: 410px; padding: 60px 24px; }.check-main { grid-template-columns: 1fr; padding: 55px 0; gap: 54px; }
}

/* O backdrop-filter cria um bloco de contenção para elementos `fixed`. Sem esta
   exceção o menu, no celular, fica limitado à altura do cabeçalho e esconde os
   primeiros links. */
@media (max-width: 980px) {
  .site-header { backdrop-filter: none; }
  .main-nav {
    z-index: 20;
    width: 100vw;
    min-height: 100vh;
    height: 100dvh;
  }
  .menu-button { z-index: 22; }
}

/* A legenda deixa de disputar o rodapé do vídeo. Ela vira uma faixa em fluxo,
   sempre abaixo dos controles nativos e com contraste suficiente para leitura. */
.hero-visual { grid-template-rows: auto auto; align-content: center; }
.visual-note {
  position: relative;
  grid-area: 2 / 1;
  justify-self: center;
  z-index: 5;
  inset: auto;
  width: min(350px, 80vw);
  margin: 18px 0 0;
  padding: 10px 0 0;
  transform: none;
  border-top: 1px solid var(--line);
  color: #3f3d36;
  font: 600 13px/1.45 var(--body);
  text-align: left;
}

/* Ritmo mais compacto: as seções continuam respirando, sem parecer uma página
   composta de telas isoladas. */
.why,
.task-section,
.device-section,
.safety,
.faq,
.steps,
.good-fit { padding-top: 68px; padding-bottom: 70px; }
.final-cta { min-height: 0; padding-top: 68px; padding-bottom: 70px; }
.clips { padding-top: 18px; padding-bottom: 18px; }

@media (max-width: 760px) {
  body .hero { padding-top: 30px; padding-bottom: 26px; gap: 22px; }
  body .hero-visual { padding-top: 20px; padding-bottom: 22px; }
  body .visual-note {
    width: min(310px, 100%);
    margin-top: 16px;
    padding-top: 10px;
    font-size: 13px;
    line-height: 1.5;
  }
  body .clips { padding-top: 14px; padding-bottom: 14px; }
  body .why,
  body .steps,
  body .task-section,
  body .good-fit,
  body .device-section,
  body .safety,
  body .faq { padding-top: 34px; padding-bottom: 36px; gap: 18px; }
  body .task-heading { margin-top: 12px; margin-bottom: 22px; }
  body .final-cta { padding-top: 40px; padding-bottom: 42px; }
}

/* Rótulo e exclamação são conteúdos independentes; o antigo posicionamento
   absoluto deixava o "!" sobre a palavra ATENÇÃO em telas menores. */
.safety-seal {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.safety-seal span {
  position: static;
  z-index: 1;
  font-size: 8px;
  line-height: 1;
  letter-spacing: .14em;
}
.safety-seal b {
  position: relative;
  z-index: 1;
  font-size: 56px;
  line-height: .68;
  transform: translateY(2px);
}

/* Polimento de leitura: os textos de interface não ficam abaixo de um tamanho
   confortável e os elementos de ação ganham a presença esperada de uma marca
   premium. */
.main-nav,
.instructions-back,
.check-back,
.share-button { font-size: 12px; }
.nav-cta {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.button { font-size: 12px; }
.section-number { font-size: 10px; }
.task-card p { font-size: 14px; line-height: 1.5; }
.task-disclaimer { font-size: 13px; line-height: 1.5; }
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--acid);
  outline-offset: 3px;
}

@media (max-width: 980px) {
  .main-nav { gap: 24px; font-size: 20px; }
  .main-nav .nav-cta { min-height: 46px; margin-top: 8px; padding: 0 18px; font-size: 14px; }
}

@media (max-width: 760px) {
  /* O primeiro bloco deixa de imitar uma tela fechada: ele acompanha o conteúdo
     e entrega o vídeo logo após os CTAs, sem a faixa vazia antes dele. */
  body .hero { gap: 16px; }
  body .hero-copy {
    min-height: 0;
    padding: 0;
    display: block;
  }
  body .hero-copy .scroll-hint { margin-top: 16px; }
  body .hero-visual { padding-top: 18px; padding-bottom: 20px; }
  body .why,
  body .steps,
  body .task-section,
  body .good-fit,
  body .device-section,
  body .safety,
  body .faq { padding-top: 30px; padding-bottom: 32px; }
  body .section-number { font-size: 12px; }
  body .button { font-size: 13px; }
  body .task-card p { font-size: 15px; }
}

@media (min-width: 761px) {
  .why,
  .task-section,
  .device-section,
  .safety,
  .faq,
  .steps,
  .good-fit { padding-top: 60px; padding-bottom: 62px; }
  .final-cta { padding-top: 62px; padding-bottom: 64px; }
}

/* Escala tipografica mobile-first. Esta camada fecha os microtextos que ainda
   vinham dos estilos antigos em 8-13px e garante alvos confortaveis para toque. */
:root {
  --text-body: 17px;
  --text-secondary: 16px;
  --text-small: 14px;
  --text-label: 13px;
}

body { font-size: var(--text-body); line-height: 1.6; }

.brand,
.share-button,
.menu-button,
.instructions-back,
.check-back { min-height: 44px; }
.share-button,
.menu-button { min-width: 44px; }
.main-nav,
.instructions-back,
.check-back,
.share-button { font-size: var(--text-small); }
.button,
.nav-cta { min-height: 48px; font-size: 15px; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; font-size: 15px; }

.eyebrow,
.section-number { font-size: var(--text-label); line-height: 1.4; }
.hero-pix { font-size: var(--text-label); }
.hero-pix b { font-size: 18px; }
.microcopy,
.scroll-hint,
.visual-note { font-size: 15px; line-height: 1.55; }
.visual-sticker { font-size: 12px; line-height: 1.35; }
.clips-titulo,
.clips-fonte { font-size: var(--text-label); line-height: 1.45; }
.clip figcaption { font-size: 12.5px; line-height: 1.45; }

.why-body,
.safety-copy > p,
.device-lead,
.final-cta > p:not(.eyebrow),
.footer-top > p { font-size: var(--text-body); line-height: 1.6; }
.step-list p,
.steps-cta p,
.task-card p,
.task-disclaimer,
.fit-list p,
.device-copy > p:not(.eyebrow, .device-lead),
.accordion details p,
.safety-copy ul { font-size: var(--text-secondary); line-height: 1.6; }
.step-index,
.task-tag,
.fit-list span,
.phone-needs span,
.safety-seal span { font-size: 12px; line-height: 1.35; }
.phone-needs p { font-size: 15px; line-height: 1.45; }
.device-caveat { font-size: var(--text-small); line-height: 1.55; }
.device-panel-head { font-size: var(--text-label); }
.device-result small,
.device-data dt { color: #c4c4c4; font-size: var(--text-label); line-height: 1.4; }
.device-data dd { font-size: 15px; line-height: 1.4; }
.device-refresh,
.device-privacy,
.device-official { font-size: var(--text-small); line-height: 1.5; }
.device-privacy { color: #c4c4c4; }
.accordion summary { min-height: 54px; font-size: var(--text-body); }
.footer-links { font-size: var(--text-small); }
.footer-bottom { font-size: 12px; line-height: 1.5; }

.modelos-abrir > summary,
.modelos-busca label,
.modelos-status,
.modelos-grupo-topo p,
.modelos-rotulo,
.modelo-fora .modelo-nome,
.modelos-mais,
.modelos-pegadinha { font-size: var(--text-small); line-height: 1.5; }
.modelos-busca input { min-height: 48px; font-size: var(--text-secondary); }
.modelo-nome { font-size: 15px; line-height: 1.45; }
.modelo-nome em,
.modelo-nome small,
.modelo-codigo,
.modelo-detalhe { font-size: var(--text-label); line-height: 1.45; }

/* Passo a passo: os mesmos tamanhos funcionam no celular e no desktop; a
   largura controlada do wizard preserva linhas curtas e leitura rapida. */
.wizard-progress-meta { font-size: var(--text-label); }
.wizard-count b { font-size: 20px; }
.wizard-noscript { font-size: 15px; line-height: 1.55; }
.wizard-kicker { font-size: var(--text-label); }
.wizard-step-body h2 { font-size: 30px; line-height: 1.05; }
.wizard-hub .wizard-step-body h2 { font-size: 36px; }
.wizard-step-body > p { font-size: var(--text-secondary); line-height: 1.62; }
.org-code-label,
.org-code-action,
.store-link span { font-size: var(--text-label); }
.org-code-value { font-size: 25px; }
.store-link b { font-size: var(--text-secondary); }
.store-link i { font-size: var(--text-small); }
.wizard-tip,
.wizard-alt,
.wizard-warn p,
.wizard-returned { font-size: 15px; line-height: 1.6; }
.wizard-alt code { font-size: var(--text-small); }
.wizard-warn b { font-size: 15px; }
.wizard-note { font-size: var(--text-label); line-height: 1.55; }
.wizard-cta,
.wizard-restart,
.wizard-done-hub,
.wizard-prev,
.wizard-next { min-height: 48px; font-size: 15px; }
.wizard-done-card h2 { font-size: 30px; }
.wizard-done-card > p { font-size: var(--text-secondary); line-height: 1.6; }
.instructions-footer { font-size: var(--text-small); line-height: 1.5; }

/* Verificador: o resultado e as alternativas precisam continuar legiveis mesmo
   quando o navegador reduz a largura util por barras ou zoom do sistema. */
.check-card-bar { font-size: var(--text-label); }
.check-message h2 { font-size: 28px; }
.check-message p,
.check-desktop p,
.check-success p,
.check-reason,
.check-share-models li,
.check-share-text,
.check-note { font-size: 15px; line-height: 1.58; }
.check-desktop > a,
.check-desktop button,
.check-blocked > button,
.check-success > a,
.check-anyway,
.check-share-native,
.check-share-whatsapp,
.check-share-copy,
#check-again { min-height: 44px; font-size: var(--text-small); }
.check-desktop small,
.check-share-feedback { font-size: var(--text-small); }
.check-detected dt { font-size: var(--text-label); }
.check-detected dd { font-size: 15px; line-height: 1.4; }
.check-share-kicker { font-size: var(--text-label); }
.check-share-title { font-size: 22px; line-height: 1.2; }
.check-footer { font-size: var(--text-small); line-height: 1.5; }

@media (max-width: 760px) {
  body .hero-copy { min-width: 0; }
  body .hero h1 { font-size: clamp(38px, 10vw, 44px); }
  body .eyebrow,
  body .section-number { font-size: var(--text-label); }
  body .button { font-size: 15px; }
  body .site-header .nav-cta { font-size: var(--text-small); }
  body .microcopy,
  body .visual-note { font-size: 15px; }
  body .why-body,
  body .safety-copy,
  body .device-copy > p { font-size: var(--text-body); line-height: 1.62; }
  body .step-list p,
  body .steps-cta p,
  body .task-card p,
  body .fit-list p,
  body .accordion details p,
  body .task-disclaimer { font-size: var(--text-secondary); line-height: 1.62; }
  body .task-card { padding-bottom: 22px; }
  body .clip { width: 250px; }
  body .clip figcaption { font-size: var(--text-label); }

  .instructions-header,
  .check-header { padding-left: 17px; padding-right: 17px; }
  .instructions-back,
  .check-back { width: 44px; font-size: 0; }

  /* No celular mostramos apenas o titulo curto: ele contextualiza o resultado
     sem recolocar o paragrafo e o adesivo que antes empurravam o cartao. */
  body .check-main { padding: 24px 0 38px; gap: 20px; }
  body .check-intro {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
  }
  body .check-intro .eyebrow,
  body .check-intro > p:not(.eyebrow),
  body .check-sticker { display: none; }
  body .check-intro h1 { margin: 0; font-size: clamp(34px, 10vw, 44px); line-height: 1; }
}

@media (min-width: 761px) {
  .fit-copy h2,
  .device-copy h2 { font-size: clamp(68px, 6.5vw, 94px); }
  .wizard-step-body { padding: 26px 28px 30px; }
  .check-message h2 { font-size: 30px; }
}
