@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Raleway:wght@300;400;500;600;700;800&display=swap');

:root {
    --col-primario:       #da6220;  /* turchese mare */
    --col-primario-scuro: #b54e18;
    --col-accento:        #f0c090;  /* terracotta corallo */
    --col-sfondo:         #fff8f2;  /* sabbia chiara */
    --col-card:           #f9ede2;
    --col-testo:          #3d1f08;  /* marrone caldo */
    --col-bordo:          #ecd5bd;  /* sabbia bordo */
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: 'Raleway', sans-serif;
    background: var(--col-sfondo);
    color: var(--col-testo);
    padding-bottom: 90px;
}

.ordina-header-titolo,
.categoria-titolo-ordina,
.conferma-box h2,
.wizard-step-title {
    font-family: 'Cinzel', serif;
}

/* HEADER */
.ordina-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    background: var(--col-primario);
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
    z-index: 1000;
    padding: 10px 12px 8px;
}
.ordina-header-titolo {
    text-align: center;
    margin-bottom: 8px;
}
.ordina-header-logo {
    height: 40px;
    width: auto;
    display: inline-block;
}
.mySwiperOrdina { overflow: hidden; }
.categoria-slide-ordina {
    width: auto;
    padding: 5px 14px;
    background: rgba(255,255,255,.15);
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    cursor: pointer;
    transition: background .2s, border-color .2s;
}
.categoria-slide-attiva {
    background: #fff;
    color: var(--col-primario);
    border-color: #fff;
}

/* CONTAINER prodotti */
.container-ordini {
    max-width: 720px;
    margin: 0 auto;
    padding: 12px;
    margin-top: 96px;
}
.categoria-box-ordina { margin-bottom: 14px; }

.categoria-titolo-ordina {
    display: flex; align-items: center; justify-content: space-between;
    cursor: pointer; user-select: none;
    padding: 16px 20px;
    background: linear-gradient(135deg, var(--col-primario) 0%, var(--col-primario-scuro) 100%);
    color: #fff;
    border-radius: 16px;
    margin-bottom: 0;
    font-size: 1.2rem;
    letter-spacing: .06em;
    border-bottom: none;
    box-shadow: 0 4px 16px rgba(218,98,32,.22);
    transition: box-shadow .2s;
}
.categoria-titolo-ordina:hover { box-shadow: 0 6px 20px rgba(218,98,32,.35); }
.categoria-titolo-ordina .cat-chev {
    font-size: 1.3em; font-family: sans-serif; opacity: .85;
    transition: transform .3s ease; flex-shrink: 0;
}
.categoria-titolo-ordina.open .cat-chev { transform: rotate(180deg); }

.cat-body {
    overflow: hidden;
    max-height: 0;
    transition: max-height .4s ease, padding .3s ease;
    padding: 0 2px;
}
.cat-body.open {
    max-height: 9999px;
    padding-top: 10px;
}

/* CARD prodotto */
.prodotto-card {
    display: flex;
    gap: 12px;
    background: var(--col-card);
    border: 1px solid var(--col-bordo);
    border-radius: 14px;
    padding: 12px;
    margin-bottom: 10px;
}
.prodotto-img {
    width: 84px;
    height: 84px;
    object-fit: cover;
    border-radius: 10px;
    flex-shrink: 0;
}
.prodotto-contenuto { flex: 1; min-width: 0; }
.prodotto-nome { font-size: 1.05rem; margin: 0 0 4px; font-weight: 700; }
.prodotto-descrizione {
    font-size: 0.88rem;
    color: #6b5847;
    margin: 0 0 6px;
    line-height: 1.45;
}
.prodotto-ingredienti { font-size: 0.82rem; color: #a07050; margin: 0 0 6px; }
.etichetta-campo { font-weight: 700; color: #6b5847; }
.prodotto-allergeni { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.prodotto-prezzo { font-weight: 700; color: var(--col-accento); margin: 0 0 8px; }
.prodotto-variante-select { margin-bottom: 8px; font-size: 0.9rem; }
.prodotto-azione { display: flex; justify-content: flex-end; gap: 8px; }
.btn-dettagli {
    background: transparent;
    color: var(--col-primario);
    border: 1px solid var(--col-primario);
    border-radius: 20px;
    padding: 7px 16px;
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
}
.btn-dettagli:active { background: var(--col-sfondo); }
.btn-aggiungi {
    background: var(--col-primario);
    color: #fff;
    border: none;
    border-radius: 20px;
    padding: 7px 20px;
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
}
.btn-aggiungi:active { background: var(--col-primario-scuro); }

/* BARRA carrello */
.cart-bar {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    z-index: 1100;
}
.cart-bar-btn {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--col-primario-scuro);
    color: #fff;
    border: none;
    border-radius: 14px;
    padding: 14px 18px;
    font-weight: 700;
    box-shadow: 0 4px 14px rgba(0,0,0,.25);
    cursor: pointer;
}
.cart-bar-left { position: relative; display: flex; align-items: center; }
.cart-bar-conta {
    position: absolute;
    top: -10px; right: -12px;
    background: #fff;
    color: var(--col-accento);
    border-radius: 50%;
    min-width: 20px;
    height: 20px;
    font-size: 0.75rem;
    display: flex; align-items: center; justify-content: center;
    padding: 0 5px;
}
.cart-bar-label { flex: 1; text-align: left; }
.cart-bar-totale { font-size: 1.05rem; }

/* OFFCANVAS carrello */
.ordina-offcanvas { height: 96vh; max-height: 96vh; border-radius: 18px 18px 0 0; }
.carrello-vuoto { text-align: center; color: #a07050; padding: 24px 0; }
.carrello-riga {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; padding: 10px 0;
    border-bottom: 1px solid var(--col-bordo);
}
.carrello-info { flex: 1; min-width: 0; }
.carrello-nome { font-weight: 700; font-size: 0.95rem; }
.carrello-prezzo { color: var(--col-accento); font-size: 0.9rem; }
.stepper { display: flex; align-items: center; gap: 10px; }
.stepper-btn {
    width: 34px; height: 34px;
    border: 1px solid var(--col-primario);
    background: #fff;
    color: var(--col-primario);
    border-radius: 50%;
    font-size: 1.2rem; line-height: 1;
    cursor: pointer;
}
.stepper-qta { min-width: 20px; text-align: center; font-weight: 700; }

/* WIZARD */
.wizard-step-bar{display:flex;gap:6px;padding:12px 0 4px}
.wizard-dot{flex:1;height:4px;border-radius:99px;background:var(--col-bordo);transition:background .2s}
.wizard-dot-done{background:var(--col-primario)}
.wizard-dot-act{background:var(--col-accento)}
.wizard-step-label{font-size:11px;font-weight:700;color:var(--col-primario);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}
.wizard-step-title{font-size:20px;font-weight:700;color:var(--col-testo);margin-bottom:14px}
.wizard-panel{padding-top:4px}
.wizard-riepilogo-dati{font-size:13px;color:#a07050;margin-top:10px;line-height:1.6}
.wizard-riepilogo-dati strong{color:var(--col-testo)}
.wizard-nav{display:flex;gap:8px;margin-top:12px}
.wizard-nav .btn-posizione{flex-shrink:0;padding:10px 16px;border-radius:8px}
.wizard-nav .btn-invia-ordine{flex:1;margin-top:0}

.wizard-radio-label{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--col-bordo);border-radius:12px;margin-bottom:8px;cursor:pointer;font-size:14px;font-weight:600;color:var(--col-testo);transition:border-color .15s,background .15s}
.wizard-radio-label:has(input:checked){border-color:var(--col-primario);background:rgba(26,122,110,.07)}
.wizard-radio-label input[type=radio]{accent-color:var(--col-primario);width:16px;height:16px;flex-shrink:0}

/* FORM / posizione */
.form-ordine { margin-top: 18px; }
.posizione-wrap { display: flex; flex-direction: column; gap: 8px; }
.posizione-btn-group { display: flex; gap: 8px; }
.btn-posizione {
    flex: 1;
    display: flex; align-items: center; justify-content: center; gap: 6px;
    background: var(--col-sfondo);
    border: 1px solid var(--col-bordo);
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 0.88rem; font-weight: 700;
    color: var(--col-primario);
    cursor: pointer;
}
.btn-posizione svg { width: 16px; height: 16px; }
.btn-posizione:active { background: var(--col-bordo); }
.posizione-stato { font-size: 0.82rem; margin: 2px 0 0; min-height: 1.2em; }
.posizione-stato a { color: var(--col-primario); }
.posizione-ok    { color: #2e9e5b; }
.posizione-info  { color: #a07050; }
.posizione-errore{ color: #c0392b; }

/* ── Hint "seleziona" sopra le opzioni ── */
.pc-scegli-hint {
    font-size: 0.85rem; font-weight: 600;
    color: var(--col-primario);
    background: color-mix(in srgb, var(--col-primario) 10%, var(--col-sfondo));
    border-left: 3px solid var(--col-primario);
    border-radius: 0 8px 8px 0;
    padding: 8px 14px; margin: 0 0 12px;
    display: flex; align-items: center; gap: 8px;
}

/* ── Lista opzioni ── */
.metodi-pagamento { display: flex; flex-direction: column; gap: 10px; }
.pc-punto-wrap { display: flex; flex-direction: column; }
.pc-campi-tendina {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}
.pc-campi-inner { padding: 12px 4px 4px; }

/* Radio nascosta, cerchio custom */
.metodo-opzione input[type="radio"] {
    appearance: none; -webkit-appearance: none;
    width: 22px; height: 22px; flex-shrink: 0;
    border: 2px solid #cdb89a; border-radius: 50%;
    background: #fff; margin: 0;
    transition: border-color .2s, background .2s, box-shadow .2s;
}
.metodo-opzione input[type="radio"]:checked {
    border-color: var(--col-primario);
    background: var(--col-primario);
    box-shadow: inset 0 0 0 5px #fff;
}

/* Opzione base */
.metodo-opzione {
    display: flex; align-items: center; gap: 12px;
    border: 2px solid var(--col-bordo);
    border-radius: 12px; padding: 14px 16px;
    cursor: pointer; margin: 0;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    font-size: 1rem; font-weight: 600; color: var(--col-testo);
    transition: border-color .2s, background .2s, box-shadow .2s;
}
.metodo-opzione:hover {
    border-color: color-mix(in srgb, var(--col-primario) 50%, var(--col-bordo));
    box-shadow: 0 2px 8px rgba(0,0,0,.10);
}
.metodo-opzione.selezionato {
    border-color: var(--col-primario);
    background: color-mix(in srgb, var(--col-primario) 8%, #fff);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--col-primario) 25%, transparent),
                0 2px 8px rgba(0,0,0,.08);
}
.metodo-opzione span { display: flex; align-items: center; gap: 8px; }
.metodo-opzione svg { width: 20px; height: 20px; color: var(--col-primario); }

/* Animazione di richiamo finché l'utente non seleziona */
@keyframes pc-richiamo {
    0%, 100% { box-shadow: 0 1px 4px rgba(0,0,0,.06); }
    50%       { box-shadow: 0 0 0 4px color-mix(in srgb, var(--col-primario) 30%, transparent),
                            0 2px 8px rgba(0,0,0,.08); }
}
.pc-scegli-attesa .metodo-opzione {
    animation: pc-richiamo 1.6s ease 0.4s 3;
}

.wc-modalita-wrap { margin-top: 14px; border-top: 1px solid var(--col-bordo); padding-top: 14px; }
.wc-modalita-lista { display: flex; flex-direction: column; gap: 10px; }
.wc-modalita-opzione { margin-bottom: 0; }
.wc-modalita-attesa .metodo-opzione { animation: pc-richiamo 1.6s ease 0.3s 3; }
.wc-modalita-costo { font-size: 0.82rem; font-weight: 600; color: var(--col-primario); }
.wc-modalita-costo.gratis { color: #2a9d5c; }
.metodo-disabilitato { opacity: 0.5; cursor: not-allowed; }

/* ── Grid punti di consegna ── */
.pc-punti-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 12px;
}
.pc-icona-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 20px 10px 16px;
    border: 2px solid var(--col-bordo);
    border-radius: 16px;
    background: #fff;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    color: var(--col-testo);
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    transition: border-color .2s, background .2s, box-shadow .2s;
    user-select: none;
    min-height: 100px;
}
.pc-icona-card input[type="radio"] {
    position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.pc-icona-emoji { font-size: 2.4rem; line-height: 1; transition: transform .2s; display: block; }
.pc-card-label { font-size: 0.86rem; font-weight: 700; color: var(--col-testo); line-height: 1.3; }
.pc-icona-card-check {
    position: absolute; top: 8px; right: 8px;
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--col-primario); color: #fff;
    font-size: 13px; font-weight: 800;
    display: none; align-items: center; justify-content: center;
}
.pc-icona-card.selezionato {
    border-color: var(--col-primario);
    background: color-mix(in srgb, var(--col-primario) 8%, #fff);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--col-primario) 25%, transparent);
}
.pc-icona-card.selezionato .pc-icona-emoji { transform: scale(1.15); }
.pc-icona-card.selezionato .pc-icona-card-check { display: flex; }
.pc-punti-grid.pc-scegli-attesa .pc-icona-card { animation: pc-richiamo 1.6s ease 0.4s 3; }
/* Sezione campi sotto la grid */
.pc-campi-selected {
    max-height: 0; overflow: hidden;
    transition: max-height 0.35s ease;
}
.pc-campi-selected.open { max-height: 900px; border-top: 1px solid var(--col-bordo); padding-top: 4px; margin-top: 2px; }
.pc-campi-selected-inner { padding: 12px 0 4px; }

/* ── Intestazione location (fase B) ── */
.pc-location-header {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 18px; padding-bottom: 14px;
    border-bottom: 1.5px solid var(--col-bordo);
}
.pc-location-back {
    flex-shrink: 0; width: 36px; height: 36px;
    border: 1.5px solid var(--col-bordo); border-radius: 50%;
    background: #fff; color: var(--col-testo);
    font-size: 1rem; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s, border-color .15s;
}
.pc-location-back:active { background: var(--col-sfondo); border-color: var(--col-primario); }
.pc-location-emoji { font-size: 1.7rem; line-height: 1; }
.pc-location-nome {
    flex: 1; font-size: 1.1rem; font-weight: 700;
    color: var(--col-testo); line-height: 1.25;
}
/* Transizione fade-in tra le due fasi */
@keyframes pcDoveFadeIn {
    from { opacity: 0; transform: translateX(12px); }
    to   { opacity: 1; transform: translateX(0); }
}
.pc-dove-fadein { animation: pcDoveFadeIn 0.22s ease both; }
.metodo-disabilitato small { color: #999; }

.riepilogo-riga-consegna {
    display: flex; justify-content: space-between;
    font-size: 0.92rem; color: var(--col-testo);
    margin-bottom: 6px; padding: 6px 0;
    border-top: 1px dashed var(--col-bordo);
}
.riepilogo-totale {
    display: flex; justify-content: space-between;
    font-weight: 700; font-size: 1.15rem;
    margin: 16px 0;
    color: var(--col-primario);
}
.btn-invia-ordine {
    width: 100%;
    background: var(--col-primario);
    color: #fff; border: none;
    border-radius: 14px;
    padding: 15px;
    font-weight: 700; font-size: 1.05rem;
    cursor: pointer;
}
.btn-invia-ordine:disabled { opacity: 0.6; }
.errore-ordine { color: #c0392b; text-align: center; margin-top: 10px; font-weight: 700; }

/* CONFERMA */
.overlay-conferma {
    position: fixed; inset: 0;
    background: rgba(0,0,0,.65);
    z-index: 2000;
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
    backdrop-filter: blur(2px);
}
.conferma-box {
    background: #fff; border-radius: 22px;
    padding: 28px 22px 22px; text-align: center;
    max-width: 400px; width: 100%;
    max-height: 92vh; overflow-y: auto;
}
.conferma-icona svg { width: 52px; height: 52px; color: #16a34a; }
.conferma-box h2 { color: var(--col-primario); margin: 10px 0 4px; font-size: 1.3rem; }
.conferma-label-num {
    font-size: 11px; text-transform: uppercase; letter-spacing: .08em;
    color: #888; margin: 12px 0 4px;
}
.conferma-num-badge {
    display: inline-block;
    background: linear-gradient(135deg, var(--col-primario) 0%, var(--col-primario-scuro) 100%);
    color: #fff;
    font-size: 2.8rem; font-weight: 800; letter-spacing: -1px;
    border-radius: 16px; padding: 10px 30px 12px; margin-bottom: 8px;
    box-shadow: 0 6px 20px rgba(218,98,32,.35); line-height: 1;
    font-family: 'Raleway', sans-serif;
}
.conferma-dettaglio { color: #6b5847; font-size: 0.9rem; margin-bottom: 4px; }
.conferma-avviso {
    background: #fffbeb; border: 1.5px solid #f59e0b;
    border-radius: 12px; padding: 11px 14px;
    margin: 12px 0 6px; font-size: 13px; font-weight: 700;
    color: #92400e; text-align: left; line-height: 1.4;
}
.conferma-avviso span { font-weight: 400; display: block; margin-top: 2px; color: #78350f; font-size: 12px; }
.conferma-redirect { font-size: 12px; color: #999; margin: 6px 0 10px; }
.conferma-redirect strong { color: var(--col-primario); }
.btn-tracking {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    margin-top: 8px; background: var(--col-primario); color: #fff;
    border: none; border-radius: 14px;
    padding: 16px 26px; font-weight: 700; font-size: 1.05rem;
    text-decoration: none; cursor: pointer;
    width: 100%; text-align: center; letter-spacing: .01em;
    box-shadow: 0 4px 14px rgba(218,98,32,.3); transition: opacity .15s;
}
.btn-tracking:hover { opacity: .9; }
.btn-ricevuta-pdf {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    margin-top: 10px;
    background: var(--col-sfondo); color: var(--col-primario);
    border: 1.5px solid var(--col-primario); border-radius: 12px;
    padding: 10px 20px; font-weight: 600; font-size: 0.88rem;
    text-decoration: none; cursor: pointer; width: 100%;
}
.btn-ricevuta-pdf svg { width: 16px; height: 16px; }
.btn-nuovo-ordine {
    display: block; margin-top: 14px;
    background: none; color: #aaa;
    border: none; border-radius: 10px;
    padding: 8px 20px; font-size: 0.85rem; font-weight: 500;
    cursor: pointer; width: 100%; text-decoration: underline;
}

/* OFFCANVAS DETTAGLI PRODOTTO */
.offcanvas-dettagli { max-height: 92vh; border-radius: 18px 18px 0 0; }
.dettagli-img { width: 100%; max-height: 220px; object-fit: cover; border-radius: 12px; margin-bottom: 14px; }
.dettagli-descrizione { font-size: 0.95rem; color: #6b5847; margin-bottom: 10px; line-height: 1.5; }
.dettagli-ingredienti { font-size: 0.88rem; color: #a07050; margin-bottom: 10px; }
.dettagli-allergeni { margin-bottom: 12px; }
.dettagli-allergeni-label { margin: 0 0 6px; font-size: 0.88rem; }
.dettagli-allergeni-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.allergene-tag {
    background: #fff3cd; border: 1px solid #ffc107; color: #7a5800;
    border-radius: 20px; padding: 3px 10px;
    font-size: 0.8rem; font-weight: 600;
}
.dettagli-azione { margin-top: 14px; }
.dettagli-prezzo { font-size: 1.2rem; font-weight: 700; color: var(--col-accento); margin-bottom: 10px; }
.btn-aggiungi-dettagli {
    width: 100%; padding: 14px;
    background: var(--col-primario); color: #fff;
    border: none; border-radius: 14px;
    font-weight: 700; font-size: 1rem; cursor: pointer;
}

/* LOADER */
.loader-iniziale {
    position: fixed; inset: 0;
    background: var(--col-sfondo);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem; color: var(--col-primario); font-weight: 700;
    z-index: 3000;
}

/* SPLASH */
#splashScreen{position:fixed;inset:0;z-index:10000;background:#1c0e04;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 32px;touch-action:manipulation;cursor:pointer;overflow:hidden;gap:0}
#splashScreen.splash-out{animation:splashFadeOut .55s ease forwards}
@keyframes splashFadeOut{to{opacity:0;pointer-events:none}}
.splash-logo-ris{animation:splashFadeUp .8s ease .2s both;background:#fff;border-radius:18px;padding:18px 22px;display:flex;align-items:center;justify-content:center;width:clamp(180px,52vw,240px)}
.splash-logo-ris img{width:100%;height:auto;display:block}
.splash-sep{margin:28px auto 24px;width:0;height:1px;background:rgba(255,255,255,.15);animation:splashLineExpand .55s ease 1.1s forwards}
@keyframes splashLineExpand{to{width:100px}}
.splash-brand{text-align:center;animation:splashFadeUp .6s ease 1.55s both}
.splash-un-prodotto{font-family:'Open Sans',sans-serif;font-size:.6rem;color:rgba(255,255,255,.28);letter-spacing:.22em;text-transform:uppercase;margin-bottom:9px}
.splash-logo-digitalbe{display:inline-block;line-height:1}
.splash-logo-nome{font-family:Arial Black,'Arial Bold',Gadget,sans-serif;font-size:clamp(1.55rem,6.5vw,2rem);font-weight:900;color:#fff;letter-spacing:-.01em;display:block;text-transform:uppercase}
.splash-logo-sub{font-family:'Open Sans',Arial,sans-serif;font-size:clamp(.5rem,1.8vw,.62rem);font-weight:400;color:rgba(255,255,255,.45);letter-spacing:.2em;text-transform:uppercase;display:block;margin-top:4px}
.splash-skip{position:absolute;bottom:50px;left:0;right:0;text-align:center;font-size:.6rem;color:rgba(255,255,255,.18);letter-spacing:.14em;text-transform:uppercase;animation:splashFadeUp .5s ease 2.2s both}
.splash-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(255,255,255,.1)}
.splash-progress-bar{height:100%;background:rgba(218,98,32,.7);animation:splash-fill 3.5s linear forwards}
@keyframes splashFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes splash-fill{to{width:100%}}

/* COOKIE */
.cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 4000; padding: 0 0 env(safe-area-inset-bottom); }
.cookie-banner-inner { background: #3d1f08; color: #e8ddd5; padding: 16px 18px 14px; border-radius: 16px 16px 0 0; max-width: 700px; margin: 0 auto; }
.cookie-banner-text { font-size: 12px; line-height: 1.55; margin: 0 0 10px; }
.cookie-link-btn { background: none; border: none; padding: 0; color: #88d4cc; text-decoration: underline; cursor: pointer; font-size: 12px; }
.cookie-banner-azioni { display: flex; gap: 8px; }
.cookie-btn { flex: 1; padding: 9px; border: none; border-radius: 8px; font-size: 13px; font-weight: 700; cursor: pointer; }
.cookie-btn-primary { background: var(--col-primario); color: #fff; }
.cookie-btn-secondary { background: rgba(255,255,255,.15); color: #e8ddd5; }
.cookie-gestisci-btn { position: fixed; bottom: 8px; right: 8px; z-index: 3999; background: rgba(44,27,14,.7); color: #e8ddd5; border: none; border-radius: 20px; padding: 5px 12px; font-size: 11px; cursor: pointer; backdrop-filter: blur(4px); }

/* MODAL LEGALE */
.legal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.6); z-index: 5000; display: flex; align-items: flex-end; }
.legal-sheet { background: #fff; width: 100%; max-height: 88vh; border-radius: 18px 18px 0 0; display: flex; flex-direction: column; overflow: hidden; }
.legal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px 10px; border-bottom: 1px solid var(--col-bordo); }
.legal-title { margin: 0; font-size: 1rem; font-weight: 700; }
.legal-close { background: none; border: none; font-size: 1.3rem; cursor: pointer; color: #6b5847; padding: 0 4px; }
.legal-body { flex: 1; overflow-y: auto; padding: 16px 18px; font-size: 0.88rem; line-height: 1.65; color: #3d1f08; }
.legal-footer { padding: 10px 18px; border-top: 1px solid var(--col-bordo); font-size: 0.78rem; color: #a07050; }

/* FOOTER */
.ordina-footer { background: #fff8f2; border-top: 1px solid #ecd5bd; padding: 28px 20px 24px; text-align: center; margin-top: 32px; }
.ordina-footer-nome { font-family: 'Cinzel', serif; font-size: 16px; font-weight: 600; color: #3d1f08; margin: 0 0 6px; letter-spacing: .06em; }
.ordina-footer-indirizzo { font-size: 13px; color: #a07050; margin: 0 0 10px; }
.ordina-footer-orari { font-size: 12px; color: #a07050; line-height: 1.8; margin-bottom: 4px; }
.ordina-footer-orari span { display: block; }

/* INGREDIENTI RIMOVIBILI */
.dettagli-ingredienti-label { font-size: 13px; color: var(--col-testo); margin: 0 0 8px; }
.ing-chips { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 4px; }
.ing-chip {
    padding: 6px 13px; border-radius: 20px;
    border: 1.5px solid var(--col-bordo);
    background: #fff; color: var(--col-testo);
    font-size: 13px; font-weight: 500; cursor: pointer;
    transition: all .15s; user-select: none;
}
.ing-chip:hover { border-color: var(--col-primario); }
.ing-chip.rimosso {
    background: #fdf0ee;
    border-color: #e74c3c;
    color: #c0392b;
    text-decoration: line-through;
    font-weight: 600;
}
.carrello-senza { font-size: 11px; color: #c0392b; font-weight: 700; margin-top: 2px; }
.riepilogo-senza { font-size: 11px; color: #c0392b; font-weight: 700; margin-top: 3px; }

/* BOTTOM SHEET INGREDIENTI */
.ing-sheet-backdrop {
    position: fixed; inset: 0; z-index: 4500;
    background: rgba(0,0,0,.45);
    display: flex; align-items: flex-end;
    opacity: 0; transition: opacity .22s ease;
}
.ing-sheet-backdrop.aperto { opacity: 1; }
.ing-sheet {
    width: 100%; background: #fff;
    border-radius: 20px 20px 0 0;
    padding: 0 0 env(safe-area-inset-bottom,0);
    transform: translateY(100%);
    transition: transform .26s cubic-bezier(.32,1,.45,1);
    max-height: 82vh; display: flex; flex-direction: column;
    box-shadow: 0 -4px 32px rgba(0,0,0,.18);
}
.ing-sheet-backdrop.aperto .ing-sheet { transform: translateY(0); }
.ing-sheet-handle {
    width: 40px; height: 4px; border-radius: 4px;
    background: #ddd; margin: 10px auto 0; flex-shrink: 0;
}
.ing-sheet-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 20px 8px; flex-shrink: 0;
}
.ing-sheet-nome {
    font-size: 16px; font-weight: 700; color: var(--col-testo);
    flex: 1; padding-right: 12px;
}
.ing-sheet-close {
    background: #f0ebe6; border: none; border-radius: 50%;
    width: 30px; height: 30px; font-size: 14px; cursor: pointer;
    color: #6b5847; display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.ing-sheet-body {
    padding: 4px 20px 12px; overflow-y: auto; flex: 1;
}
.ing-sheet-hint {
    font-size: 12px; color: #a07050; margin: 0 0 12px;
    font-style: italic;
}
.ing-sheet-footer {
    padding: 12px 20px 16px; flex-shrink: 0;
    border-top: 1px solid #f0ebe6;
}
.ing-sheet-btn {
    width: 100%; padding: 15px;
    background: var(--col-primario); color: #fff;
    border: none; border-radius: 14px;
    font-size: 16px; font-weight: 700; cursor: pointer;
    letter-spacing: .01em;
}
.ing-sheet-btn:active { opacity: .88; }
