  :root{
    --navy:#0B2545;
    --gold:#F2B100;
    --gold-deep:#C98A00;
    --paper:#FFFFFF;
    --paper-alt:#F4F5F7;
    --line:#E2E4E9;
    --text:#222428;
    --text-soft:#5B5F66;
    --green-ok:#1E7B4D;
  }
  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
  margin:0;
  min-height:100vh;
  background:radial-gradient(circle at 50% 0%, #FFFFFF 0%, var(--paper-alt) 60%);
  color:var(--text);
  font-family:"Inter", Arial, sans-serif;
  font-size:15.5px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:32px 14px;
}
  h1,h2{font-family:"Newsreader", Georgia, serif; color:var(--navy); margin:0; line-height:1.25;}

  .topo{
    width:100%;
    max-width:480px;
    text-align:center;
    margin-bottom:14px;
  }
  .logo{
    font-family:"Newsreader", serif;
    font-weight:700;
    font-size:19px;
    color:var(--navy);
  }
  .logo span{color:var(--gold-deep);}
  .eyebrow{
    font-size:11.5px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--text-soft);
    font-weight:700;
    margin-top:4px;
  }

.card{
  width:100%;
  max-width:480px;
  background:var(--paper);
  border-radius:14px;
  box-shadow:0 20px 50px rgba(11,37,69,.12), 0 2px 8px rgba(11,37,69,.06);
  padding:26px 20px;
  animation:entrada-card .45s ease-out;
}

@keyframes entrada-card{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

  .passo{display:none;}
  .passo.ativo{display:block;}

  .progresso{
    display:flex;
    gap:6px;
    margin-bottom:18px;
  }
  .progresso .ponto{
    height:4px;
    flex:1;
    border-radius:4px;
    background:var(--line);
  }
  .progresso .ponto.feito{background:var(--gold);}

  .icone-topo{font-size:30px; text-align:center; margin-bottom:10px;}

  h2.titulo-passo{font-size:22px; text-align:center; margin-bottom:8px;}
  p.sub-passo{
    text-align:center;
    color:var(--text-soft);
    margin:0 0 22px;
    font-size:14.5px;
  }

  .aviso-tempo{
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--paper-alt);
    border-radius:8px;
    padding:12px 14px;
    margin-bottom:18px;
    font-size:14px;
    color:var(--navy);
    font-weight:700;
  }

  .btn{
    display:block;
    width:100%;
    text-align:center;
    border:none;
    border-radius:8px;
    padding:15px 16px;
    font-size:15px;
    font-weight:700;
    font-family:"Inter", sans-serif;
    cursor:pointer;
    text-decoration:none;
    margin-bottom:10px;
  }
  .btn-primario{
    background:var(--gold);
    color:var(--navy);
    box-shadow:0 6px 16px rgba(242,177,0,.3);
  }
  .btn-primario:hover{background:var(--gold-deep);}
  .btn-secundario{
    background:#fff;
    color:var(--navy);
    border:2px solid var(--navy);
  }
  .btn-secundario:hover{background:var(--paper-alt);}
  .btn:disabled{opacity:.45; cursor:not-allowed;}

  .btn-voltar{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:none;
    border:none;
    color:var(--text-soft);
    font-size:13.5px;
    font-weight:700;
    cursor:pointer;
    padding:6px 0 16px;
  }

  /* ---- calendário ---- */
  .bloco-label{
    font-size:13px;
    font-weight:700;
    color:var(--navy);
    text-transform:uppercase;
    letter-spacing:.04em;
    margin:0 0 10px;
  }
  .dias-scroll{
    display:flex;
    gap:8px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:6px;
    margin-bottom:20px;
    scrollbar-width:none;
  }
  .dias-scroll::-webkit-scrollbar{display:none;}
  .chip-dia{
    flex:0 0 auto;
    min-width:64px;
    text-align:center;
    border:2px solid var(--line);
    border-radius:10px;
    padding:10px 6px;
    cursor:pointer;
    background:#fff;
  }
  .chip-dia .semana{display:block; font-size:11.5px; color:var(--text-soft); font-weight:700; text-transform:uppercase;}
  .chip-dia .numero{display:block; font-size:18px; font-weight:800; color:var(--navy); font-family:"Newsreader", serif;}
  .chip-dia .mes{display:block; font-size:10.5px; color:var(--text-soft);}
  .chip-dia.selecionado{border-color:var(--gold); background:#FFF8E6;}
  .chip-dia.desabilitado{opacity:.35; cursor:not-allowed;}

  .horarios-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:8px;
    margin-bottom:6px;
  }
  .chip-horario{
    text-align:center;
    border:2px solid var(--line);
    border-radius:8px;
    padding:11px 4px;
    font-size:14px;
    font-weight:700;
    color:var(--navy);
    cursor:pointer;
    background:#fff;
  }
  .chip-horario.selecionado{border-color:var(--gold); background:#FFF8E6;}
  .msg-sem-horario{color:var(--text-soft); font-size:13.5px; text-align:center; padding:14px 0;}

  /* ---- formulário ---- */
  .resumo-escolha{
    background:var(--paper-alt);
    border-left:4px solid var(--gold);
    border-radius:6px;
    padding:12px 14px;
    font-size:14px;
    color:var(--navy);
    font-weight:700;
    margin-bottom:18px;
  }
  label{
    display:block;
    font-size:13px;
    font-weight:700;
    color:var(--navy);
    margin-bottom:6px;
  }
  input[type="text"], input[type="tel"], input[type="email"]{
    width:100%;
    border:2px solid var(--line);
    border-radius:8px;
    padding:12px 12px;
    font-size:15px;
    font-family:"Inter", sans-serif;
    margin-bottom:16px;
    background:#fff;
    color:var(--text);
  }
  input:focus{outline:none; border-color:var(--gold);}
  .justificativa{
    font-size:12.5px;
    color:var(--text-soft);
    margin:-10px 0 18px;
    line-height:1.5;
  }
  .erro-form{
    color:#B23A3A;
    font-size:13px;
    font-weight:700;
    margin:-4px 0 14px;
    display:none;
  }

  /* ---- confirmação ---- */
  .check-grande{
    font-size:44px;
    text-align:center;
    margin-bottom:6px;
  }
  .resumo-final{
    background:var(--paper-alt);
    border-radius:10px;
    padding:16px;
    margin:18px 0;
    font-size:14.5px;
  }
  .resumo-final div{margin-bottom:6px;}
  .resumo-final strong{color:var(--navy);}

  .rodape-privacidade{
    max-width:480px;
    text-align:center;
    font-size:11.5px;
    color:var(--text-soft);
    margin-top:16px;
    line-height:1.5;
  }

  @media (min-width:480px){
    body{font-size:16px;}
    .card{padding:32px 28px;}
    h2.titulo-passo{font-size:24px;}
  }
