/* O pedido de reserva (descalabro.pt/menus/novo e /menus/p/...). Acrescenta ao menus.css; mesma linguagem. Sem estilos inline (a CSP não os deixa).
   Telemóvel primeiro: 390 px sem scroll horizontal, alvos de toque com 44 px. */
body.reserva{overflow-x:hidden}
.reserva-cabeca{padding-bottom:clamp(12px,3vw,28px)}
.reserva-cabeca h1{max-width:22ch}
.reserva-cabeca .lead{margin-top:12px}
.guardar{margin-top:12px}
/* barra de passos */
.barra-passos{margin:0 0 22px}
.barra-compacta{display:none;font-size:14px;font-weight:700;color:var(--ink);margin:0}
.barra-passos ol{display:flex;gap:6px 14px;list-style:none;font-size:12.5px;color:var(--mute);flex-wrap:wrap}
.barra-passos li{display:flex;align-items:center}
.barra-passos a,.barra-passos span{display:inline-flex;align-items:center;gap:6px;text-decoration:none;min-height:32px}
.barra-passos b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--sand2);color:var(--ink);font-size:11px;flex:none}
.barra-passos .feito b{background:var(--olive);color:#fff}
.barra-passos .actual{color:var(--ink);font-weight:700}
.barra-passos .actual b{background:var(--terra);color:#fff}
/* L18: telemóvel (390 px) = uma linha "Passo 4 de 8 · Comida e bebida", sem a lista de 8 e sem scroll horizontal interno */
@media(max-width:640px){.barra-passos ol{display:none}.barra-compacta{display:block}.reserva-cabeca .kicker{display:none}}
/* formulário */
.reserva .caixa .campos{margin-bottom:8px}
.reserva label.opcao{flex-direction:row;align-items:center;gap:10px;color:var(--ink);min-height:44px}
.reserva label.opcao input{width:auto}
.reserva input[type=radio],.reserva input[type=checkbox]{width:auto;min-width:18px;min-height:18px}
.reserva select{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--linha);padding:11px 12px;max-width:100%}
.reserva fieldset{border:0;min-width:0;margin:0 0 18px}
.reserva fieldset>legend{font-stretch:90%;font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--terra);margin-bottom:8px}
.reserva .nivel{min-height:44px}
.reserva .comidas,.reserva .formatos-lista,.reserva .espaco-opcoes,.reserva .bar-pacotes{display:grid;gap:10px}
.reserva .aviso-curto{flex-basis:100%;font-size:13px;color:#7a3a1d}
.reserva .etiqueta{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:#7a3a1d;color:#fff;font-size:11px;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}
.reserva .so-exclusivo .aviso-curto{font-weight:600}
.reserva .disp{min-height:1.2em;grid-column:1/-1}
.reserva .sinal{background:var(--sand);border-left:3px solid var(--olive);padding:8px 12px;margin:0 0 12px}
.reserva .erros{list-style:none;margin:0 0 12px;display:grid;gap:6px}
.reserva .erros li{background:#f7e3d6;color:#7a3a1d;padding:10px 12px;font-size:14px}
.reserva .erro{margin-top:2px;font-size:13px}
.reserva .rgpd{margin:6px 0 4px}
.reserva .garrafa{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;color:var(--ink);padding:8px 0;flex-wrap:wrap}
.reserva .garrafa input{width:80px}
/* botões */
.acoes{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.acoes .cta{min-height:48px}
/* lente C, C17: "Voltar" tinha 20 px de alvo de toque; 44 px de altura sem mudar o texto */
.voltar{font-size:13px;color:var(--mute);display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
.acoes-estado form{margin:0 0 8px}
/* barra do total */
.total-barra{position:sticky;bottom:0;z-index:5;background:var(--ink);color:#fff;padding:10px 0}
.total-dentro{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
.total-rotulo{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.75)}
.total-valor{font-family:Archivo,Inter,sans-serif;font-size:26px;font-stretch:80%;font-weight:800}
.total-iva{color:rgba(255,255,255,.75)}
.total-nota{flex-basis:100%;color:rgba(255,255,255,.75)}
.total-nota:empty{display:none}
.total-barra.a-calcular .total-valor{opacity:.6}
@media(max-width:560px){.total-valor{font-size:22px}}
.preco-pessoa{margin-bottom:8px}
.preco-pessoa .decomposicao{font-size:12px;color:var(--mute)}
.total-pp{flex-basis:100%}
.total-pp[hidden]{display:none}
.total-pp b{font-size:16px}
.total-pp small{color:rgba(255,255,255,.75)}
/* passo 5, "A sala" (30-09): cada visual com a sua foto; o espaço só quando há mais do que um */
.reserva .amb-onde .opcao span small{display:block}
.reserva .amb-gama .gama{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:baseline}
.reserva .amb-gama .gama .g-desc{grid-column:2 / -1}
.reserva .amb-gama .gama .g-foto-caixa{grid-column:1 / -1;margin-top:8px}
.reserva .amb-gama .gama .g-foto{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;height:auto;border-radius:6px}

/* o formato escolhido (L08) */
.chip-formato{margin-top:10px;font-size:14px}
.chip-formato .chip{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--sand2);color:var(--ink);font-weight:600}
.chip-formato a{margin-left:6px;font-size:13px}
/* avisos honestos: grupo pequeno (L02/M07) e "isto ainda não reserva a data" (4.2) */
.reserva .aviso-grupo,.reserva .aviso-reserva{background:var(--sand);border-left:3px solid #7a3a1d;padding:10px 12px;margin:0 0 14px;font-size:14px}
.reserva .aviso-grupo p{margin:0 0 6px}
.reserva .aviso-grupo[hidden]{display:none}
.reserva .aviso-reserva{border-left-color:var(--olive)}
/* o resumo em blocos do passo 8 (L04) */
.reserva .bloco-resumo{margin:0 0 14px;padding-bottom:6px;border-bottom:1px solid var(--linha)}
.reserva .bloco-resumo h3{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.reserva .alterar{font-size:13px;font-weight:400;text-transform:none;letter-spacing:0;display:inline-flex;align-items:center;min-height:32px;padding:0 8px}
.reserva .notas{display:block;margin:0 0 12px;flex-basis:100%;width:100%}
.reserva .notas textarea{display:block;width:100%;font:inherit;font-size:16px;margin-top:6px;border:1px solid var(--linha);padding:10px 12px;resize:vertical}
.reserva .acoes-submeter{flex-direction:row}
.reserva .visita-sugestao{margin-top:12px}
/* a barra do total: o espaço à parte (L01/M06) */
.total-espaco{flex-basis:100%;color:rgba(255,255,255,.85)}
.total-espaco[hidden],.total-espaco [hidden]{display:none}

/* 30-10: o ajuste escrito pelo cliente de um pedido só da equipa */
.pedir-ajuste { display: grid; gap: 8px; margin: 0 0 12px; }
.pedir-ajuste textarea { width: 100%; box-sizing: border-box; font: inherit; min-height: 6em; }
.pedir-ajuste-mais { margin: 0 0 12px; }
.pedir-ajuste-mais > summary { cursor: pointer; padding: 8px 0; font-size: 14px; text-decoration: underline; }
