/* Protocolo 21 Dias, funil de quiz
   Mobile-first. Sem framework, LCP rápido (tráfego pago). */

:root{
  --ink:#251725;
  --ink-2:#5A4A58;
  --ink-3:#8B7C89;
  --bg:#FFF8F4;
  --surface:#FFFFFF;
  --line:#EFE2DC;
  --brand:#C93A63;
  --brand-dark:#A82B4F;
  --brand-soft:#FDEEF2;
  --accent:#E09A2E;
  --good:#2F8F63;
  --good-soft:#E9F5EF;
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 1px 2px rgba(37,23,37,.06), 0 8px 24px rgba(37,23,37,.07);
  --shadow-lg:0 2px 4px rgba(37,23,37,.06), 0 18px 48px rgba(37,23,37,.12);
  --max:520px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font);font-size:17px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video,svg{max-width:100%;display:block}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
h1,h2,h3{margin:0 0 .5em;line-height:1.2;letter-spacing:-.02em;font-weight:800}
h1{font-size:clamp(26px,7vw,36px)}
h2{font-size:clamp(22px,5.6vw,29px)}
h3{font-size:19px;font-weight:700}
p{margin:0 0 1em}
strong{font-weight:700;color:var(--ink)}

.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.center{text-align:center}
.muted{color:var(--ink-2)}
.small{font-size:14px;line-height:1.45}
.tiny{font-size:12.5px;line-height:1.45;color:var(--ink-3)}
.hide{display:none !important}

/* ---------- topbar ---------- */
.topbar{
  position:sticky;top:0;z-index:40;background:rgba(255,248,244,.92);
  backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line);
}
.topbar-in{max-width:var(--max);margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{font-weight:800;letter-spacing:-.03em;font-size:16px}
.logo span{color:var(--brand)}
.topbar .tiny{margin:0;white-space:nowrap}

/* ---------- botoes ---------- */
.btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:17px 20px;border-radius:var(--radius);
  background:var(--brand);color:#fff;font-weight:700;font-size:17px;
  text-align:center;text-decoration:none;box-shadow:var(--shadow);
  transition:transform .12s ease, background .15s ease;
  touch-action:manipulation;
}
.btn:active{transform:scale(.985);background:var(--brand-dark)}
.btn-lg{padding:20px;font-size:18.5px}
.btn-ghost{background:transparent;color:var(--ink-2);box-shadow:none;font-weight:600;font-size:15px;padding:12px}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn-pulse{animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,58,99,.35),var(--shadow)}50%{box-shadow:0 0 0 14px rgba(201,58,99,0),var(--shadow)}}

/* ---------- hero ---------- */
.hero{padding:22px 0 8px}
.eyebrow{
  display:inline-block;padding:6px 12px;border-radius:999px;
  background:var(--brand-soft);color:var(--brand-dark);
  font-size:12.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;margin-bottom:14px;
}
.hero h1 em{font-style:normal;color:var(--brand)}
.hero-sub{font-size:17px;color:var(--ink-2);margin-bottom:20px}
/* bloco da 1ª pergunta, já na abertura: começar custa 1 toque, não 2 */
.q-inline{margin-top:22px}
.q-inline-lab{
  display:inline-block;margin:0 0 10px;padding:5px 11px;border-radius:999px;
  background:var(--ink);color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em;
}
.q-inline-title{font-size:21px;margin:0 0 14px;letter-spacing:-.02em}
.trust{display:flex;gap:14px;justify-content:flex-start;flex-wrap:wrap;margin:14px 0 2px}
.trust div{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);font-weight:600}

/* ---------- quiz ---------- */
.screen{display:none;animation:fade .28s ease}
.screen.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.progress{position:sticky;top:53px;z-index:30;background:var(--bg);padding:16px 20px 12px;max-width:var(--max);margin:0 auto}
.progress-track{height:7px;border-radius:999px;background:var(--line);overflow:hidden}
.progress-fill{height:100%;width:0;border-radius:999px;background:var(--brand);transition:width .35s cubic-bezier(.4,0,.2,1)}

.q{padding:10px 0 32px}
.q h2{margin-bottom:6px}
.q-help{font-size:14.5px;color:var(--ink-3);margin-bottom:18px}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{
  display:flex;align-items:center;gap:13px;width:100%;
  padding:16px;border-radius:var(--radius);
  background:var(--surface);border:1.5px solid var(--line);
  text-align:left;font-size:16.5px;font-weight:600;
  transition:border-color .14s ease, transform .1s ease, background .14s ease;
}
.opt:active{transform:scale(.99)}
.opt:hover{border-color:#E0C3CE}
.opt.sel{border-color:var(--brand);background:var(--brand-soft)}
.opt-emoji{font-size:22px;line-height:1;flex:none;width:26px;text-align:center}
.opt-txt{flex:1}
.opt-txt small{display:block;font-weight:500;font-size:13.5px;color:var(--ink-3);margin-top:2px}
.opt-check{
  flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);
  display:grid;place-items:center;
}
.opt.sel .opt-check{background:var(--brand);border-color:var(--brand)}
.opt.sel .opt-check::after{content:"";width:6px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}

.fields{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}
.field label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.field input{
  width:100%;padding:15px 16px;border-radius:var(--radius-sm);
  border:1.5px solid var(--line);background:var(--surface);
  font:inherit;font-size:16.5px;color:var(--ink);
}
.field input:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.field .err{display:none;color:var(--brand-dark);font-size:13px;font-weight:600;margin-top:5px}
.field.invalid .err{display:block}
.field.invalid input{border-color:var(--brand)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.nudge{
  display:flex;gap:10px;padding:13px 14px;border-radius:var(--radius-sm);
  background:var(--good-soft);border:1px solid #CFE8DC;
  font-size:14px;line-height:1.45;color:#1F6B4A;margin:16px 0 0;
}
.nudge b{color:#17563A}

/* ---------- analise ---------- */
.analysis{padding:60px 0;text-align:center}
.spinner{width:56px;height:56px;margin:0 auto 26px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--brand);animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.steps{display:flex;flex-direction:column;gap:12px;max-width:320px;margin:26px auto 0;text-align:left}
.step{display:flex;align-items:center;gap:11px;font-size:15px;color:var(--ink-3);opacity:.45;transition:opacity .3s ease,color .3s ease}
.step.on{opacity:1;color:var(--ink)}
.step-dot{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center}
.step.on .step-dot{background:var(--good);border-color:var(--good)}
.step.on .step-dot::after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}

/* ---------- resultado ---------- */
.result{padding:22px 0 60px}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow);margin-bottom:16px;
}
.card-head{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.card-head h3{margin:0}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:13px 10px;text-align:center}
.stat-val{font-size:23px;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.stat-lab{font-size:11.5px;color:var(--ink-3);font-weight:600;margin-top:4px;line-height:1.3}
.tag{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}
.tag-warn{background:#FDF2E3;color:#8A5A13}
.tag-good{background:var(--good-soft);color:#1F6B4A}

.chart-wrap{position:relative;margin:4px -6px 0}
.chart-wrap svg{width:100%;height:auto;overflow:visible}
.chart-tip{
  position:absolute;pointer-events:none;opacity:0;transform:translate(-50%,-115%);
  background:var(--ink);color:#fff;padding:7px 10px;border-radius:8px;
  font-size:12.5px;font-weight:600;white-space:nowrap;transition:opacity .12s ease;z-index:5;
}
.chart-tip.on{opacity:1}
.chart-tip small{display:block;font-weight:500;opacity:.75;font-size:11px}

.plan-day{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.plan-day:last-child{border-bottom:0;padding-bottom:0}
.plan-num{
  flex:none;width:42px;height:42px;border-radius:12px;background:var(--brand-soft);
  display:grid;place-items:center;font-weight:800;font-size:13px;color:var(--brand-dark);line-height:1.1;text-align:center;
}
.plan-body h4{margin:0 0 3px;font-size:15.5px;font-weight:700}
.plan-body p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.45}

.check-list{list-style:none;padding:0;margin:0}
.check-list li{display:flex;gap:10px;padding:9px 0;font-size:15.5px;line-height:1.45;border-bottom:1px solid var(--line)}
.check-list li:last-child{border-bottom:0}
.check-list li::before{content:"";flex:none;width:20px;height:20px;margin-top:2px;border-radius:50%;background:var(--good-soft);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.2l3 3 6-6.4' fill='none' stroke='%232F8F63' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size:contain}

/* ---------- oferta ---------- */
.offer{background:var(--ink);color:#fff;border-radius:var(--radius);padding:24px 20px;box-shadow:var(--shadow-lg);margin-bottom:16px}
.offer h2{color:#fff;margin-bottom:6px}
.offer .muted{color:rgba(255,255,255,.66)}
.offer .check-list li{border-bottom-color:rgba(255,255,255,.12)}
.price-box{text-align:center;padding:18px 0 4px}
.price-old{font-size:15px;color:rgba(255,255,255,.55);text-decoration:line-through}
.price-now{font-size:44px;font-weight:800;letter-spacing:-.035em;line-height:1;margin:4px 0}
.price-now small{font-size:20px;font-weight:700;vertical-align:.35em;margin-right:2px}
.price-note{font-size:14px;color:rgba(255,255,255,.7)}
.offer .btn{margin-top:18px;background:var(--good);font-size:18px}
.offer .btn:active{background:#276F4E}
.guarantee{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px}
.guarantee-seal{flex:none;width:46px;height:46px;border-radius:50%;background:var(--good-soft);display:grid;place-items:center;font-size:20px}

.timer{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--brand-soft);color:var(--brand-dark);border-radius:var(--radius-sm);
  padding:11px;font-size:14px;font-weight:700;margin-bottom:16px;
}
.timer b{font-variant-numeric:tabular-nums;font-size:16px}

.faq details{border-bottom:1px solid var(--line);padding:14px 0}
.faq details:last-child{border-bottom:0}
.faq summary{font-weight:700;font-size:16px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--brand);font-weight:800;font-size:20px;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:10px 0 0;font-size:15px;color:var(--ink-2)}

.sticky-cta{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;
  padding:12px 20px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,248,244,.95);backdrop-filter:blur(10px);border-top:1px solid var(--line);
  transform:translateY(110%);transition:transform .25s ease;
}
.sticky-cta.ready{display:block}
.sticky-cta.on{transform:none}
.sticky-cta .btn{max-width:var(--max);margin:0 auto}


@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
