/* Prenotazione tavoli. */
.sst { max-width: 620px; }
.sst-err { padding: 12px 16px; border-radius: 10px; background: #fdecec; color: #7f1d1d; margin: 0 0 16px; }
.sst-esito { text-align: center; padding: 40px 20px; border: 1px solid var(--sl-line, #e6d8c2); border-radius: 16px; background: var(--sl-soft, #f4e9d9); }
.sst-esito h2 { margin-top: 0; }
.sst-form { display: block; }
.sst-persone { border: 0; padding: 0; margin: 0 0 18px; }
.sst-persone legend { padding: 0; font-size: 15px; color: var(--sl-muted, #7a6754); margin-bottom: 8px; }
.sst-numeri { display: flex; flex-wrap: wrap; gap: 8px; }
.sst-num input { position: absolute; opacity: 0; width: 0; height: 0; }
.sst-num span { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid var(--sl-line, #d9c9ad); border-radius: 12px; font-size: 17px; font-weight: 600; cursor: pointer; }
.sst-num input:checked + span { background: var(--sl-accent, #c3361b); border-color: var(--sl-accent, #c3361b); color: #fff; }
.sst-num input:focus-visible + span { outline: 2px solid var(--sl-accent, #c3361b); outline-offset: 2px; }
.sst-grandi { margin: 10px 0 0; font-size: 13.5px; color: var(--sl-muted, #7a6754); }
.sst-campo { display: block; margin: 0 0 14px; font-size: 14.5px; color: var(--sl-muted, #7a6754); }
.sst-campo input, .sst-campo select, .sst-campo textarea { width: 100%; margin-top: 4px; padding: 11px 13px; border: 1px solid var(--sl-line, #d9c9ad); border-radius: 10px; font: inherit; color: var(--sl-ink, #1b1512); background: #fff; }
.sst-campo small { display: block; margin-top: 4px; font-size: 12.5px; }
.sst-due { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sst-consenso { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; color: var(--sl-muted, #7a6754); margin: 4px 0 16px; }
.sst-consenso input { margin-top: 3px; }
.sst-btn { width: 100%; padding: 14px 24px; border: 0; border-radius: 10px; background: var(--sl-accent, #c3361b); color: #fff; font: inherit; font-size: 17px; font-weight: 700; cursor: pointer; }
.sst-btn:disabled { opacity: .45; cursor: not-allowed; }
.sst-nota { margin: 12px 0 0; font-size: 13px; color: var(--sl-muted, #7a6754); }
.sst-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 520px) { .sst-due { grid-template-columns: 1fr; } }
