:root {
  --vermelho: #d9232a;
  --vermelho-escuro: #b51b21;
  --vermelho-claro: #ffdad6;
  --dourado: #ca915a;
  --dourado-escuro: #7b4d10;
  --dourado-claro: #ffdcbb;
  --creme: #f5f1ed;
  --creme-escuro: #f7e4df;
  --creme-claro: #fff1ed;
  --texto: #2b2220;
  --texto-suave: #6f6360;
  --borda: #e7ddd5;
  --branco: #ffffff;
  --sucesso: #1f8a4c;
  --raio: 16px;
  --sombra: 0 6px 20px rgba(43, 34, 32, 0.08);
  --sombra-destaque: 0 12px 32px rgba(217, 35, 42, 0.14);
}

* { box-sizing: border-box; }

html, body { margin: 0; }

body {
  font-family: 'Poppins', system-ui, -apple-system, sans-serif;
  background: var(--creme);
  color: var(--texto);
  -webkit-tap-highlight-color: transparent;
}

.app {
  max-width: 560px;
  min-height: 100dvh;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  background: var(--creme);
}

/* Topo */
.topo {
  position: sticky;
  top: 0;
  z-index: 5;
  padding: calc(14px + env(safe-area-inset-top)) 16px 12px;
  background: var(--vermelho);
  color: var(--branco);
  border-radius: 0 0 22px 22px;
}
.marca { display: flex; align-items: center; gap: 12px; }
.marca__icone {
  display: grid; place-items: center;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--branco);
  font-size: 22px;
}
.marca strong { display: block; font-size: 17px; }
.marca small { opacity: 0.85; font-size: 12px; }
.progresso { height: 6px; margin-top: 14px; border-radius: 99px; background: rgba(255, 255, 255, 0.3); overflow: hidden; }
.progresso__barra { height: 100%; width: 0; background: var(--branco); border-radius: 99px; transition: width 0.3s ease; }
.progresso__texto { margin: 6px 0 0; font-size: 12px; opacity: 0.9; }

/* Conteúdo */
.conteudo { flex: 1; padding: 20px 16px 120px; }
.passo--entrando { animation: entrar 0.25s ease; }
@keyframes entrar { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.passo h1 { font-size: 22px; line-height: 1.3; margin: 0 0 6px; }
.passo .ajuda { margin: 0 0 18px; color: var(--texto-suave); font-size: 14px; }

/* Opções */
.opcoes { display: grid; gap: 12px; }
.opcoes--grade { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.opcao {
  position: relative;
  display: flex; align-items: flex-start; gap: 14px;
  width: 100%;
  padding: 16px;
  border: 2px solid var(--borda);
  border-radius: 24px;
  background: var(--branco);
  box-shadow: 0 4px 16px rgba(43, 34, 32, 0.04);
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
}
.opcao:active { transform: scale(0.98); }
.opcao[aria-pressed="true"] { border-color: var(--vermelho); box-shadow: 0 6px 20px -2px rgba(217, 35, 42, 0.15); }
.opcao[disabled] { opacity: 0.45; cursor: not-allowed; }
.opcao--com-selo { margin-top: 10px; padding-top: 22px; }
.opcao__selo {
  position: absolute; top: -11px; left: 20px;
  padding: 2px 12px;
  border-radius: 99px;
  background: var(--vermelho); color: var(--branco);
  font-size: 11px; font-weight: 700; line-height: 18px;
  box-shadow: 0 2px 6px rgba(217, 35, 42, 0.25);
}
.opcao__icone {
  display: grid; place-items: center;
  width: 56px; height: 56px; flex-shrink: 0;
  border-radius: var(--raio);
  background: var(--creme-escuro);
  font-size: 28px; line-height: 1;
}
.opcao__corpo { flex: 1; min-width: 0; }
.opcao__titulo { display: block; font-size: 17px; font-weight: 700; line-height: 1.3; }
.opcao__desc { display: block; margin-top: 4px; font-size: 13px; line-height: 1.5; color: var(--texto-suave); }
.opcao__etiquetas { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.etiqueta {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px;
  border-radius: 99px;
  background: var(--creme-escuro);
  font-size: 11px; font-weight: 600; line-height: 18px; color: var(--texto-suave);
}
.opcao__check {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: var(--creme-escuro);
  color: var(--branco); font-size: 15px; font-weight: 700;
  transform: scale(0.92);
  transition: background 0.15s, transform 0.15s;
}
.opcao[aria-pressed="true"] .opcao__check { background: var(--vermelho); transform: none; }

/* Variante compacta (produtos): ícone e check centralizados, destaque ao lado do título */
.opcoes--compactas { gap: 10px; }
.opcao--compacta { align-items: center; padding: 14px 16px; border-radius: 20px; }
.opcao--compacta .opcao__icone { width: 48px; height: 48px; font-size: 24px; }
.opcao--compacta .opcao__desc { margin-top: 2px; }
.opcao__destaque {
  display: inline-block; vertical-align: 2px;
  margin-left: 4px; padding: 1px 8px;
  border-radius: 99px;
  background: var(--vermelho-claro); color: var(--vermelho-escuro);
  font-size: 11px; font-weight: 700; line-height: 18px;
}

.secao-rotulo {
  margin: 0 0 8px; padding: 0 4px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--texto-suave);
}

/* Sabores do geladinho dentro do passo de produtos */
.sabores { margin-top: 24px; }

/* Rótulo acima do título do passo */
.rotulo {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 8px; padding: 3px 10px;
  border-radius: 99px;
  background: var(--dourado-claro); color: var(--dourado-escuro);
  font-size: 12px; font-weight: 600;
}

/* Profissional do Carrinho Simples, na mesma tela do carrinho */
.servico {
  display: grid; gap: 14px;
  margin-top: 20px; padding: 16px;
  border-radius: 24px;
  background: var(--creme-escuro);
  scroll-margin-bottom: 110px;
  animation: entrar 0.25s ease;
}
.servico__cabecalho { display: flex; align-items: center; gap: 10px; }
.servico__icone {
  display: grid; place-items: center;
  width: 40px; height: 40px; flex-shrink: 0;
  border-radius: 50%;
  background: var(--vermelho-claro);
  font-size: 20px;
}
.servico h2 { margin: 0; font-size: 16px; line-height: 1.3; }
.servico p { margin: 2px 0 0; font-size: 13px; color: var(--texto-suave); }
.servico__opcoes { display: grid; gap: 8px; }
.servico__opcao {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  width: 100%; padding: 14px;
  border: none; border-radius: var(--raio);
  background: var(--branco); box-shadow: 0 2px 8px rgba(43, 34, 32, 0.05);
  font: inherit; color: inherit; text-align: left;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, transform 0.1s;
}
.servico__opcao:active { transform: scale(0.98); }
.servico__opcao strong { display: block; font-size: 14px; }
.servico__opcao small { display: block; font-size: 12px; color: var(--texto-suave); }
.servico__opcao[aria-pressed="true"] { background: var(--vermelho); color: var(--branco); box-shadow: 0 6px 20px -2px rgba(217, 35, 42, 0.3); }
.servico__opcao[aria-pressed="true"] small { color: inherit; opacity: 0.9; }
.servico__marca {
  display: grid; place-items: center;
  width: 22px; height: 22px; flex-shrink: 0;
  border: 2px solid var(--borda); border-radius: 50%;
  font-size: 12px; font-weight: 700;
}
.servico__opcao[aria-pressed="true"] .servico__marca { border-color: var(--branco); }

.nota {
  display: flex; align-items: center; gap: 10px;
  margin: 20px 0 0; padding: 10px 14px;
  border-radius: var(--raio);
  background: var(--branco); box-shadow: 0 2px 8px rgba(43, 34, 32, 0.05);
  font-size: 13px; line-height: 1.4; color: var(--texto-suave);
}
.nota strong { color: var(--texto); }
.nota__icone {
  display: grid; place-items: center;
  width: 32px; height: 32px; flex-shrink: 0;
  border-radius: 50%;
  background: var(--dourado-claro);
  font-size: 16px;
}

.chip {
  padding: 12px 10px;
  border: 2px solid var(--borda);
  border-radius: 12px;
  background: var(--branco);
  font: inherit; font-size: 14px;
  color: inherit;
  cursor: pointer;
  text-align: center;
}
.chip[aria-pressed="true"] { border-color: var(--vermelho); background: var(--vermelho); color: var(--branco); font-weight: 600; }
.chip[disabled] { opacity: 0.4; cursor: not-allowed; }

.contador {
  position: sticky; top: calc(var(--altura-topo, 118px) + 8px); z-index: 2;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  margin-bottom: 12px; padding: 12px 14px 12px 16px;
  border-radius: var(--raio);
  background: var(--branco);
  box-shadow: var(--sombra);
}
.contador__texto { min-width: 0; }
.contador__texto strong { display: block; font-size: 15px; line-height: 1.3; }
.contador__texto small { display: block; font-size: 12px; color: var(--texto-suave); }
.contador__pilula {
  display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0;
  padding: 5px 12px;
  border-radius: 99px;
  background: var(--creme-escuro); color: var(--texto-suave);
  font-size: 14px; font-weight: 700; white-space: nowrap;
  transition: background 0.15s, color 0.15s;
}
.contador__pilula--ativa { background: var(--vermelho); color: var(--branco); }

/* Item de seleção múltipla (sabores, acompanhamentos) */
.sabor {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  min-height: 56px; padding: 10px 12px 10px 14px;
  border: none; border-radius: var(--raio);
  background: var(--branco); box-shadow: 0 2px 8px rgba(43, 34, 32, 0.05);
  font: inherit; font-size: 14px; font-weight: 600; line-height: 1.3; text-align: left;
  color: inherit;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, transform 0.1s;
}
.sabor:active { transform: scale(0.96); }
.sabor__nome { min-width: 0; overflow-wrap: anywhere; }
.sabor__marca {
  display: grid; place-items: center;
  width: 22px; height: 22px; flex-shrink: 0;
  border: 2px solid var(--borda); border-radius: 50%;
  font-size: 13px; font-weight: 700; line-height: 1; color: var(--texto-suave);
}
.sabor[aria-pressed="true"] { background: var(--vermelho); color: var(--branco); box-shadow: 0 4px 14px rgba(217, 35, 42, 0.22); }
.sabor[aria-pressed="true"] .sabor__marca { border-color: var(--branco); color: var(--branco); }
.sabor[disabled] { opacity: 0.45; cursor: not-allowed; }
.sabor[disabled]:active { transform: none; }

/* Convidados */
.passo .destaque { color: var(--vermelho); }
.convidados {
  display: grid; gap: 16px;
  margin-bottom: 20px; padding: 20px;
  border-radius: 24px;
  background: var(--branco);
  box-shadow: var(--sombra);
}
.convidados__controle { display: flex; align-items: center; gap: 12px; }
.convidados__botao {
  display: grid; place-items: center;
  width: 56px; height: 56px; flex-shrink: 0;
  border: none; border-radius: 50%;
  background: var(--creme-escuro); color: var(--vermelho);
  font: inherit; font-size: 28px; font-weight: 600; line-height: 1;
  cursor: pointer;
  transition: transform 0.1s, opacity 0.15s;
}
.convidados__botao:active { transform: scale(0.9); }
.convidados__botao:disabled { opacity: 0.4; cursor: not-allowed; }
.convidados__botao--mais { background: var(--vermelho); color: var(--branco); box-shadow: 0 4px 16px rgba(217, 35, 42, 0.25); }
.convidados__visor { flex: 1; min-width: 0; display: grid; justify-items: center; }
.convidados__visor input {
  width: 100%; padding: 0;
  border: none; background: transparent;
  font: inherit; font-size: 44px; font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; text-align: center;
  color: var(--texto);
  -moz-appearance: textfield;
}
.convidados__visor input::-webkit-outer-spin-button,
.convidados__visor input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.convidados__visor input:focus-visible { outline: none; }
.convidados__visor:focus-within { border-radius: var(--raio); box-shadow: 0 0 0 3px rgba(217, 35, 42, 0.25); }
.convidados__legenda { white-space: nowrap; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--texto-suave); }
.convidados__estimativa {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin: 0; padding: 10px 14px;
  border-radius: var(--raio);
  background: var(--creme-escuro);
  font-size: 13px; text-align: center; text-wrap: balance;
}
.convidados__estimativa strong { color: var(--vermelho); }

.secao-titulo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.secao-titulo strong { font-size: 15px; }
.secao-titulo small { white-space: nowrap; font-size: 12px; color: var(--texto-suave); }

.atalhos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 24px; }
.atalho {
  display: grid; justify-items: center; gap: 2px;
  padding: 10px 6px;
  border: none; border-radius: var(--raio);
  background: var(--branco); box-shadow: 0 2px 8px rgba(43, 34, 32, 0.05);
  font: inherit; color: inherit;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, transform 0.1s;
}
.atalho:active { transform: scale(0.96); }
.atalho strong { font-size: 18px; }
.atalho small { font-size: 11px; color: var(--texto-suave); }
.atalho[aria-pressed="true"] { background: var(--vermelho); color: var(--branco); box-shadow: 0 6px 20px -2px rgba(217, 35, 42, 0.3); }
.atalho[aria-pressed="true"] small { color: inherit; opacity: 0.9; }

.dica {
  display: flex; align-items: flex-start; gap: 14px;
  margin-bottom: 16px; padding: 16px;
  border-radius: 24px;
  background: var(--creme-escuro);
}
.dica__selo {
  display: grid; place-items: center;
  width: 48px; height: 48px; flex-shrink: 0;
  border-radius: var(--raio);
  background: var(--branco); box-shadow: var(--sombra);
  font-size: 24px;
}
.dica__titulo { display: block; margin-bottom: 2px; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dourado-escuro); }
.dica p { margin: 0; font-size: 13px; line-height: 1.45; }

.destaques { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.destaque-item {
  display: flex; align-items: center; gap: 8px;
  padding: 10px;
  border-radius: var(--raio);
  background: var(--branco); box-shadow: 0 2px 8px rgba(43, 34, 32, 0.05);
  min-width: 0;
}
.destaque-item > span:last-child { min-width: 0; }
.destaque-item strong, .destaque-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.destaque-item strong { font-size: 13px; }
.destaque-item small { font-size: 11px; color: var(--texto-suave); }
.destaque-item__icone {
  display: grid; place-items: center;
  width: 32px; height: 32px; flex-shrink: 0;
  border-radius: 50%;
  background: var(--dourado-claro);
  font-size: 16px;
}
.destaque-item__icone--vermelho { background: var(--vermelho-claro); }

/* Campos de formulário */
.campos { display: grid; gap: 14px; }
.campo__rotulo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.campo__rotulo span { font-size: 14px; font-weight: 600; }
.campo__rotulo small { font-size: 12px; color: var(--texto-suave); text-align: right; }
.campo__caixa { position: relative; }
.campo__icone {
  position: absolute; top: 50%; left: 14px; transform: translateY(-50%);
  font-size: 18px; line-height: 1;
  pointer-events: none;
}
/* 16px evita o zoom automático do iOS ao focar o campo. */
.campo__caixa input {
  width: 100%; height: 52px; padding: 0 16px 0 46px;
  border: 2px solid transparent; border-radius: var(--raio);
  background: var(--creme-claro);
  font: inherit; font-size: 16px; color: var(--texto);
  -webkit-appearance: none; appearance: none;
  transition: background 0.15s, border-color 0.15s;
}
.campo__caixa input::placeholder { color: var(--texto-suave); opacity: 0.7; }
.campo__caixa input:focus { background: var(--branco); border-color: var(--vermelho); outline: none; }
.campo__caixa input[type="date"] { display: flex; align-items: center; min-height: 52px; }

/* Dados de contato (último passo) */
.ultimo-passo { padding: 20px; border-radius: 28px; background: var(--branco); box-shadow: var(--sombra); }
.ultimo-passo__rotulo {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 6px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--vermelho);
}
.ultimo-passo h1 { text-wrap: balance; }
.ultimo-passo .ajuda { margin-bottom: 16px; }
.ultimo-passo__pacote {
  display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 6px 8px;
  margin: 0 0 18px; padding: 12px 14px;
  border-radius: var(--raio);
  background: var(--creme-escuro);
  font-size: 13px;
}
.ultimo-passo__pacote .pacote__codigo { margin-left: 0; justify-self: start; }
.ultimo-passo__pacote strong { justify-self: end; font-size: 15px; color: var(--vermelho); white-space: nowrap; }
.ultimo-passo__pacote-nome { grid-column: 1 / -1; font-weight: 600; line-height: 1.35; }
.ultimo-passo__garantia {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin: 18px 0 0;
  font-size: 12px; text-align: center; color: var(--texto-suave);
}
input:focus-visible, button:focus-visible { outline: 3px solid rgba(217, 35, 42, 0.35); outline-offset: 2px; }

/* Cartões e resumo */
.cartao { padding: 16px; border-radius: var(--raio); background: var(--branco); box-shadow: var(--sombra); margin-bottom: 14px; }
.cartao h2 { margin: 0 0 10px; font-size: 16px; }

/* Selo usado no Pacote VII (isopor) e no passo de contato */
.pacote__selo {
  display: inline-block; margin-bottom: 6px; padding: 3px 10px;
  border-radius: 99px; background: var(--dourado); color: var(--branco);
  font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
}

/* Resumo e pacote ideal */
.recomendacao { display: grid; gap: 16px; animation: entrar 0.25s ease; }
.recomendacao .aviso, .recomendacao .nota { margin: 0; }
.recomendacao__topo { text-align: center; }
.recomendacao__topo h1 { text-wrap: balance; }
.recomendacao__topo .ajuda { max-width: 400px; margin: 0 auto; text-wrap: balance; }

.escolhas { padding: 20px; border-radius: 24px; background: var(--branco); box-shadow: var(--sombra); }
.escolhas__cabecalho { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px; }
.escolhas__cabecalho h2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 18px; white-space: nowrap; }
.escolhas__pilula {
  flex-shrink: 0; padding: 3px 10px;
  border-radius: 99px;
  background: var(--creme-escuro); color: var(--texto-suave);
  font-size: 11px; font-weight: 600; white-space: nowrap;
}
.escolhas__lista { margin: 0; }
.escolhas__linha { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 12px 0; border-top: 1px solid var(--creme-escuro); }
.escolhas__linha:first-child { border-top: none; }
.escolhas__linha dt { display: flex; align-items: center; gap: 8px; flex-shrink: 0; font-size: 14px; color: var(--texto-suave); }
.escolhas__icone { width: 20px; text-align: center; font-size: 16px; }
.escolhas__linha dd { min-width: 0; margin: 0; text-align: right; font-size: 14px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.escolhas__linha dd small { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; color: var(--texto-suave); }

.pacotes { display: grid; gap: 14px; }
.pacotes .secao-rotulo { margin: 0; }
.pacote {
  padding: 20px;
  border: 2px solid transparent; border-radius: 28px;
  background: linear-gradient(to bottom, var(--branco) 55%, var(--creme-claro));
  box-shadow: var(--sombra);
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
}
.pacote:active { transform: scale(0.99); }
.pacote[aria-pressed="true"] { border-color: var(--vermelho); box-shadow: var(--sombra-destaque); }
.pacote:focus-visible { outline: 3px solid rgba(217, 35, 42, 0.35); outline-offset: 2px; }
.pacote__topo { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.pacote__etiqueta {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 12px;
  border-radius: 99px;
  background: var(--vermelho); color: var(--branco);
  font-size: 11px; font-weight: 700; line-height: 16px;
  box-shadow: 0 2px 6px rgba(217, 35, 42, 0.25);
}
.pacote__etiqueta--opcao { background: var(--creme-escuro); color: var(--texto-suave); box-shadow: none; transition: background 0.15s, color 0.15s; }
.pacote[aria-pressed="true"] .pacote__etiqueta--opcao { background: var(--vermelho); color: var(--branco); }
.pacote__codigo {
  margin-left: auto; padding: 4px 10px;
  border-radius: 99px;
  background: var(--dourado-claro); color: var(--dourado-escuro);
  font-size: 11px; font-weight: 700; line-height: 16px; letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap;
}
.pacote__check {
  display: grid; place-items: center;
  width: 26px; height: 26px; flex-shrink: 0;
  border-radius: 50%;
  background: var(--creme-escuro); color: var(--branco);
  font-size: 14px; font-weight: 700;
  transition: background 0.15s;
}
.pacote[aria-pressed="true"] .pacote__check { background: var(--vermelho); }
.pacote__nome { margin: 0; font-size: 20px; line-height: 1.3; }
.pacote__faixa { margin: 4px 0 16px; font-size: 13px; color: var(--texto-suave); }
.pacote__itens {
  display: grid; gap: 10px;
  margin: 0 0 16px; padding: 16px;
  list-style: none;
  border-radius: 20px;
  background: var(--creme-claro);
  font-size: 14px; line-height: 1.45;
}
.pacote__itens li { display: flex; align-items: flex-start; gap: 10px; }
.pacote__itens li::before {
  content: '✓';
  display: grid; place-items: center;
  width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px;
  border-radius: 50%;
  background: var(--vermelho-claro); color: var(--vermelho);
  font-size: 11px; font-weight: 700;
}
.pacote__legenda { margin: 0 0 8px; font-size: 13px; color: var(--texto-suave); }
.pacote__quantidades { display: flex; gap: 8px; margin-bottom: 16px; }
.pacote__quantidades .chip { flex: 1; padding: 8px; font-size: 13px; }
.pacote__preco {
  display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 14px 16px;
  border-radius: 20px;
  background: var(--creme-escuro);
}
.pacote__preco > span { font-size: 14px; font-weight: 500; color: var(--texto-suave); }
.pacote__valor { color: var(--vermelho); font-size: 32px; font-weight: 700; line-height: 1.1; letter-spacing: -0.02em; white-space: nowrap; }
.pacote__valor small { margin-right: 4px; font-size: 15px; letter-spacing: 0; }
.pacote__valor--consulta { font-size: 22px; }

.aviso { padding: 12px 14px; border-radius: 12px; background: #fff6e8; border-left: 4px solid var(--dourado); font-size: 13px; margin-bottom: 12px; }
.erro { padding: 12px 14px; border-radius: 12px; background: #fdecec; color: var(--vermelho-escuro); font-size: 14px; margin-top: 12px; }

.destaque-pacote { border-left: 4px solid var(--vermelho); }

.sucesso { text-align: center; padding-top: 30px; }
.sucesso__icone { font-size: 64px; }

.carregando { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 200px; color: var(--texto-suave); }
.carregando::before {
  content: '';
  width: 28px; height: 28px;
  border: 3px solid var(--creme-escuro); border-top-color: var(--vermelho); border-radius: 50%;
  animation: girar 0.8s linear infinite;
}
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .carregando::before { animation-duration: 2s; }
  .passo--entrando, .recomendacao { animation: none; }
}

/* Rodapé fixo */
.rodape {
  position: fixed; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 100%; max-width: 560px;
  display: flex; gap: 10px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  background: linear-gradient(to top, var(--creme) 75%, transparent);
}
.botao {
  height: 54px; padding: 0 20px;
  border: none; border-radius: 14px;
  font: inherit; font-weight: 600; font-size: 16px;
  cursor: pointer;
}
.botao--primario { flex: 1; background: var(--vermelho); color: var(--branco); }
.botao--primario:disabled { background: #e8a5a8; cursor: not-allowed; }
.botao--secundario { background: var(--branco); color: var(--texto); box-shadow: var(--sombra); }
.botao--whatsapp { background: #25d366; }

@media (max-width: 359px) {
  .convidados { padding: 16px; }
  .convidados__botao { width: 48px; height: 48px; font-size: 24px; }
  .convidados__visor input { font-size: 38px; }
  .convidados__legenda { letter-spacing: 0.06em; }
}

@media (max-width: 359px) {
  .opcao { gap: 10px; padding: 14px; }
  .opcao__icone { width: 44px; height: 44px; font-size: 22px; }
  .escolhas, .pacote { padding: 16px; }
  .escolhas__cabecalho h2 { font-size: 16px; }
  .escolhas__linha { gap: 10px; }
  .botao { padding: 0 14px; }
  .pacote__valor { font-size: 28px; }
}

@media (min-width: 420px) {
  .opcoes--grade { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .servico__opcoes { grid-template-columns: 1fr 1fr; }
}
