/* Pagina per ordinare: menù a sinistra, carrello a destra. */
.sso { margin: 8px 0 0; }
.sso-err { padding: 12px 16px; border-radius: 10px; background: #fdecec; color: #7f1d1d; margin: 0 0 16px; }
.sso-esito { text-align: center; padding: 40px 20px; border: 1px solid var(--sl-line, #e6d8c2); border-radius: 16px; background: var(--sl-soft, #f4e9d9); }
.sso-esito h2 { margin-top: 0; }
.sso-stato { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 7px 14px; border-radius: 999px; font-size: 14.5px; font-weight: 600; background: var(--sl-soft, #f4e9d9); }
.sso-stato i { width: 9px; height: 9px; border-radius: 50%; background: #15803d; }
.sso-stato.is-chiuso i { background: #c3361b; }
.sso-griglia { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; }
.sso-carrello { position: sticky; top: 20px; border: 1px solid var(--sl-line, #e6d8c2); border-radius: 16px; padding: 20px; background: var(--sl-bg, #fff); }
.sso-carrello h2 { margin: 0 0 14px; font-size: 21px; }
.sso-vuoto { color: var(--sl-muted, #7a6754); font-size: 15px; margin: 0; }
.sso-elenco { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.sso-elenco li { display: grid; grid-template-columns: auto 1fr auto auto; gap: 8px; align-items: center; font-size: 15px; }
.sso-q { display: inline-flex; align-items: center; gap: 4px; }
.sso-q button { width: 26px; height: 26px; border: 1px solid var(--sl-line, #d9c9ad); background: var(--sl-soft, #f4e9d9); border-radius: 7px; font: inherit; line-height: 1; cursor: pointer; }
.sso-q span { min-width: 18px; text-align: center; font-variant-numeric: tabular-nums; }
.sso-nome small { display: block; color: var(--sl-muted, #7a6754); font-size: 13px; }
.sso-elenco .sso-prezzo { font-variant-numeric: tabular-nums; white-space: nowrap; }
.sso-via { border: 0; background: none; color: var(--sl-muted, #7a6754); font-size: 19px; line-height: 1; cursor: pointer; padding: 0 2px; }
.sso-conti { margin: 0 0 16px; padding-top: 12px; border-top: 1px solid var(--sl-line, #e6d8c2); display: grid; gap: 6px; }
.sso-conti > div { display: flex; justify-content: space-between; gap: 12px; }
.sso-conti dt, .sso-conti dd { margin: 0; font-size: 15px; color: var(--sl-muted, #7a6754); }
.sso-conti .sso-tot dt, .sso-conti .sso-tot dd { font-size: 18px; font-weight: 700; color: var(--sl-ink, #1b1512); }
.sso-tipi { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 14px; }
.sso-tipo { position: relative; }
.sso-tipo input { position: absolute; opacity: 0; width: 0; height: 0; }
.sso-tipo span { display: block; padding: 10px 8px; text-align: center; border: 1px solid var(--sl-line, #d9c9ad); border-radius: 10px; font-size: 14.5px; cursor: pointer; }
.sso-tipo input:checked + span { border-color: var(--sl-accent, #c3361b); background: var(--sl-accent, #c3361b); color: #fff; font-weight: 600; }
.sso-tipo input:focus-visible + span { outline: 2px solid var(--sl-accent, #c3361b); outline-offset: 2px; }
.sso-paga { grid-template-columns: 1fr; }
.sso-campo { display: block; margin: 0 0 12px; font-size: 14.5px; color: var(--sl-muted, #7a6754); }
.sso-campo input, .sso-campo select, .sso-campo textarea { width: 100%; margin-top: 4px; padding: 10px 12px; border: 1px solid var(--sl-line, #d9c9ad); border-radius: 9px; font: inherit; color: var(--sl-ink, #1b1512); background: #fff; }
.sso-campo small { display: block; margin-top: 3px; font-size: 12.5px; }
.sso-due { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sso-req { color: #b32d2e; }
.sso-consenso { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; margin: 6px 0 14px; color: var(--sl-muted, #7a6754); }
.sso-consenso input { margin-top: 3px; }
.sso-btn { display: inline-block; padding: 13px 24px; border: 0; border-radius: 10px; background: var(--sl-accent, #c3361b); color: #fff; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; }
.sso-invia { width: 100%; font-size: 17px; }
.sso-invia:disabled { opacity: .45; cursor: not-allowed; }
.sso-min { margin: 8px 0 0; font-size: 13.5px; color: #b32d2e; }
.sso-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sso-piu { border: 0; border-radius: 8px; padding: 7px 14px; background: var(--sl-accent, #c3361b); color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.sso-finito { font-size: 13px; color: #b32d2e; border: 1px dashed #e0b4ad; border-radius: 8px; padding: 5px 10px; }
/* Scelta delle aggiunte */
.sso-agg { position: absolute; z-index: 40; width: min(300px, 92vw); background: #fff; border: 1px solid var(--sl-line, #d9c9ad); border-radius: 12px; box-shadow: 0 12px 34px rgba(27,21,18,.22); padding: 14px; }
.sso-agg-tit { margin: 0 0 8px; font-weight: 700; }
.sso-agg label { display: flex; gap: 8px; align-items: center; padding: 6px 0; font-size: 15px; }
.sso-agg label span { flex: 1; }
.sso-agg label b { font-weight: 600; color: var(--sl-muted, #7a6754); font-size: 14px; }
.sso-agg-fine { display: flex; gap: 8px; justify-content: flex-end; margin-top: 10px; }
.sso-agg-fine button { border: 1px solid var(--sl-line, #d9c9ad); background: #fff; border-radius: 8px; padding: 7px 14px; font: inherit; cursor: pointer; }
.sso-agg-si { background: var(--sl-accent, #c3361b) !important; color: #fff; border-color: var(--sl-accent, #c3361b) !important; font-weight: 600; }
/* Barra del carrello su telefono */
.sso-apri-carrello { display: none; }
@media (max-width: 900px) {
	.sso-griglia { grid-template-columns: 1fr; gap: 24px; }
	.sso-carrello { position: static; }
	.sso-apri-carrello { display: block; position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 30; padding: 15px 20px; border: 0; border-radius: 12px; background: var(--sl-ink, #1b1512); color: #fff; font: inherit; font-weight: 700; cursor: pointer; box-shadow: 0 8px 24px rgba(27,21,18,.3); }
	.sso-apri-carrello.is-scosso { transform: scale(1.04); transition: transform .2s; }
	.sso-due { grid-template-columns: 1fr; }
}
