/* Luna Blu – Ordini e Family. Usa i colori del tema (theme.json), con valori di riserva. */
:root {
	--lbo-blu: var(--wp--preset--color--blu, #016BB5);
	--lbo-notte: var(--wp--preset--color--notte, #1E2A6E);
	--lbo-crema: var(--wp--preset--color--crema, #FBF6EA);
	--lbo-linea: var(--wp--preset--color--linea, #D9DFEC);
	--lbo-grigio: var(--wp--preset--color--grigio, #5C6584);
	--lbo-oro: var(--wp--preset--color--blu, #016BB5); /* etichette: blu del logo */
	--lbo-oro-chiaro: var(--wp--preset--color--cielo, #9DBDE3);
	--lbo-titoli: var(--wp--preset--font-family--lora, Georgia, serif);
}

/* ─── moduli ───────────────────────────────────────────────────────── */
.lbo-form { display: grid; gap: 18px; max-width: 720px; }
.lbo-form[hidden] { display: none; }
.lbo-passo { border: 1px solid var(--lbo-linea); border-radius: 14px; padding: 18px 18px 20px; margin: 0; background: #fff; min-width: 0; }
.lbo-passo legend { font-family: var(--lbo-titoli); font-size: 1.25rem; color: var(--lbo-notte); padding: 0 6px; display: flex; align-items: center; gap: 10px; }
.lbo-n { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--lbo-notte); color: #fff; font-family: var(--wp--preset--font-family--jost, system-ui); font-size: .95rem; }
.lbo-campo { margin: 0 0 12px; }
.lbo-campo label { display: grid; gap: 6px; font-weight: 600; }
.lbo-campo small { font-weight: 400; color: var(--lbo-grigio); }
.lbo-form input:not([type=checkbox]):not([type=radio]), .lbo-form select, .lbo-form textarea {
	min-height: 48px; padding: 10px 12px; font: inherit; font-weight: 400; border: 1px solid #A9B2C9; border-radius: 8px; background: #fff; color: inherit; width: 100%; box-sizing: border-box;
}
.lbo-form input:focus, .lbo-form select:focus, .lbo-form textarea:focus { outline: 2px solid var(--lbo-blu); outline-offset: 1px; }
.lbo-due { display: grid; gap: 0 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.lbo-check { margin: 4px 0 0; font-size: .95em; }
.lbo-check label { display: flex; gap: 10px; align-items: flex-start; }
.lbo-check input { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 2px; accent-color: var(--lbo-blu); }
.lbo-gruppo { margin: 0 0 16px; }
.lbo-gruppo h4 { margin: 0 0 8px; font-size: 1rem; font-family: inherit; font-weight: 600; color: var(--lbo-notte); }
.lbo-gruppo h4 small { font-weight: 400; color: var(--lbo-grigio); }
.lbo-gruppo[hidden] { display: none; }
.lbo-spento { opacity: .45; }
.lbo-avviso { margin: 8px 0 0; font-size: .9em; color: var(--lbo-grigio); }
.lbo-scelte { display: flex; flex-wrap: wrap; gap: 8px; }
.lbo-pill { position: relative; display: inline-flex; }
.lbo-pill input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.lbo-pill span { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid #A9B2C9; border-radius: 999px; background: #fff; line-height: 1.25; cursor: pointer; transition: background .15s, border-color .15s; }
.lbo-pill input:checked + span { background: var(--lbo-notte); border-color: var(--lbo-notte); color: #fff; }
.lbo-pill input:focus-visible + span { outline: 2px solid var(--lbo-blu); outline-offset: 2px; }
.lbo-pill input:disabled + span { cursor: not-allowed; text-decoration: line-through; }
.lbo-errore input, .lbo-errore select, .lbo-errore textarea, .lbo-errore .lbo-pill span { border-color: #B3261E !important; }
.lbo-passo.lbo-errore, .lbo-gruppo.lbo-errore { box-shadow: 0 0 0 2px #B3261E; border-radius: 14px; }
.lbo-esito { font-weight: 600; margin: 0; }
.lbo-esito:empty { display: none; }
.lbo-riepilogo:empty { display: none; }
.lbo-riepilogo { background: var(--lbo-crema); border-left: 3px solid var(--lbo-oro-chiaro); padding: 12px 16px; border-radius: 0 10px 10px 0; }
.lbo-chiuso { background: var(--lbo-crema); padding: 14px 16px; border-radius: 10px; margin: 0; }
.rbrm-hp { position: absolute !important; left: -9999px !important; }

/* ─── esito ─────────────────────────────────────────────────────────── */
.lbo-fatto { max-width: 720px; background: #fff; border: 1px solid var(--lbo-linea); border-top: 4px solid var(--lbo-blu); border-radius: 14px; padding: 22px; display: grid; gap: 12px; justify-items: start; }
.lbo-fatto:focus { outline: none; }
.lbo-fatto-titolo { font-family: var(--lbo-titoli); font-size: 1.4rem; color: var(--lbo-notte); margin: 0; }
.lbo-fatto ul { margin: 0; padding-left: 1.2em; }
.lbo-fatto .lbo-nota { color: var(--lbo-grigio); font-size: .92em; margin: 0; }
.lbo-regalo { border-top-color: var(--lbo-oro); background: var(--lbo-crema); }
.lbo-ora { font-size: 2rem; font-weight: 600; margin: 0; letter-spacing: .02em; }

/* ─── convenzione ────────────────────────────────────────────────────── */
.lbo-conv { display: grid; gap: 28px; }
.lbo-come { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.lbo-come > div { background: var(--lbo-crema); border-radius: 14px; padding: 18px 20px; }
.lbo-come h3 { margin: 0 0 8px; font-size: 1.2rem; }
.lbo-come ul { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; }
.lbo-app { margin: 10px 0 0; font-size: .92em; }
.lbo-settimana { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.lbo-giorno-menu { border: 1px solid var(--lbo-linea); border-radius: 14px; padding: 16px 18px; background: #fff; }
.lbo-giorno-menu h3 { margin: 0 0 6px; font-size: 1.15rem; }
.lbo-giorno-menu dl { margin: 0; }
.lbo-giorno-menu dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--lbo-oro); font-weight: 600; margin-top: 10px; }
.lbo-giorno-menu dd { margin: 2px 0 0; line-height: 1.35; }
.lbo-oggi { border-color: var(--lbo-blu); }
.lbo-vuoto { background: var(--lbo-crema); padding: 14px 16px; border-radius: 10px; }

/* ─── gift card disegnata ────────────────────────────────────────────── */
.lbo-card {
	position: relative; display: grid; align-content: space-between; gap: 2px; width: 100%; max-width: 360px; min-height: 200px; box-sizing: border-box; padding: 22px 24px; border-radius: 18px; color: #fff; overflow: hidden;
	background: linear-gradient(160deg, #1A86D0 0%, #016BB5 45%, #0B4F8C 100%); box-shadow: 0 18px 40px -18px rgba(1, 60, 110, .55);
}
.lbo-card::after { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); pointer-events: none; }
.lbo-card::before { content: ""; position: absolute; right: 18px; top: 18px; width: 44px; height: 44px; border-radius: 50%; box-shadow: -9px 4px 0 0 #FFFFFF; transform: rotate(-20deg); opacity: .9; }
.lbo-card span { position: relative; z-index: 1; }
.lbo-card-marchio { font-family: var(--lbo-titoli); font-size: 1.5rem; letter-spacing: .01em; }
.lbo-card-tipo { font-size: .7rem; letter-spacing: .28em; text-transform: uppercase; color: #DCEBF8; }
.lbo-card-importo { font-family: var(--lbo-titoli); font-size: 3rem; line-height: 1; margin: 14px 0 4px; }
.lbo-card-riga { font-size: .95rem; }
.lbo-card-piccola { font-size: .78rem; opacity: .85; }
.lbo-card-codice { font-family: ui-monospace, Menlo, monospace; font-size: 1.05rem; margin: 6px 0 4px; word-break: break-all; letter-spacing: .12em; background: rgba(255, 255, 255, .12); padding: 3px 8px; border-radius: 6px; justify-self: start; }
.lbo-card-indirizzo { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.lbo-family, .lbo-regala { display: grid; gap: 28px; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); align-items: start; }
.lbo-family-card { display: grid; gap: 12px; position: sticky; top: 110px; }
.lbo-condizioni { font-size: .85em; color: var(--lbo-grigio); margin: 0; }
@media (max-width: 781px) {
	.lbo-family, .lbo-regala { grid-template-columns: 1fr; }
	.lbo-family-card { position: static; justify-items: center; }
}

/* ─── delivery ───────────────────────────────────────────────────────── */
.lbo-delivery { display: flex; flex-wrap: wrap; gap: 10px; }

/* ─── pop-up ─────────────────────────────────────────────────────────── */
dialog.lbo-popup { border: 0; border-radius: 22px; padding: 30px 28px 24px; max-width: 400px; width: calc(100% - 32px); box-sizing: border-box; text-align: center; background: #fff; color: var(--wp--preset--color--testo, #1B2140); box-shadow: 0 30px 80px -20px rgba(20, 27, 74, .5); }
dialog.lbo-popup[open] { display: grid; gap: 10px; justify-items: center; animation: lbo-su .35s ease-out; }
dialog.lbo-popup::backdrop { background: rgba(20, 27, 74, .55); backdrop-filter: blur(2px); }
.lbo-popup .lbo-card { max-width: 280px; transform: rotate(-3deg); margin-bottom: 8px; }
.lbo-popup h2 { margin: 0; font-size: 1.6rem; }
.lbo-popup p { margin: 0; }
.lbo-popup-eti { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--lbo-oro); font-weight: 600; }
.lbo-popup-chiudi:focus:not(:focus-visible) { outline: none; }
.lbo-popup-chiudi { position: absolute; right: 10px; top: 8px; width: 44px; height: 44px; border: 0; background: none; font-size: 1.8rem; line-height: 1; cursor: pointer; color: var(--lbo-grigio); }
.lbo-popup-no { border: 0; background: none; color: var(--lbo-grigio); text-decoration: underline; cursor: pointer; min-height: 44px; font: inherit; font-size: .9em; }
@keyframes lbo-su { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { dialog.lbo-popup[open] { animation: none; } }

/* Icone del prenotatore: Lucide v0.460.0 (licenza ISC) */
/* ─── prenotatore a passi (stile Resmio) ─────────────────────────────── */
.lbo-prenota { background: #fff; border: 1px solid var(--lbo-linea); border-radius: 20px; padding: clamp(18px, 3vw, 30px); box-shadow: 0 20px 50px -30px rgba(1, 60, 110, .45); max-width: 640px; gap: 0; }
.lbo-pr-passo { padding: 16px 0; border-bottom: 1px solid var(--lbo-linea); }
.lbo-pr-passo:last-child { border-bottom: 0; padding-bottom: 0; }
.lbo-pr-passo[hidden] { display: none; }
.lbo-pr-titolo { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-family: var(--lbo-titoli); font-size: 1.25rem; color: var(--lbo-notte); }
.lbo-pr-ico { width: 22px; height: 22px; background: var(--lbo-blu); -webkit-mask: var(--lb-i) center / contain no-repeat; mask: var(--lb-i) center / contain no-repeat; flex: 0 0 22px; }
.lbo-pr-persone { --lb-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' /%3E %3Ccircle cx='9' cy='7' r='4' /%3E %3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87' /%3E %3Cpath d='M16 3.13a4 4 0 0 1 0 7.75' /%3E%3C/svg%3E"); }
.lbo-pr-data { --lb-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4' /%3E %3Cpath d='M16 2v4' /%3E %3Crect width='18' height='18' x='3' y='4' rx='2' /%3E %3Cpath d='M3 10h18' /%3E%3C/svg%3E"); }
.lbo-pr-ora { --lb-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10' /%3E %3Cpolyline points='12 6 12 12 16 14' /%3E%3C/svg%3E"); }
.lbo-pr-dati { --lb-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2' /%3E %3Ccircle cx='12' cy='7' r='4' /%3E%3C/svg%3E"); }
.lbo-scelte-persone .lbo-pill span { min-width: 48px; justify-content: center; font-weight: 600; }
.lbo-scelte-date { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.lbo-scelte-date .lbo-pill { scroll-snap-align: start; flex: 0 0 auto; }
.lbo-scelte-date .lbo-pill span { flex-direction: column; min-width: 58px; padding: 8px 10px; border-radius: 14px; line-height: 1.15; gap: 2px; }
.lbo-scelte-date small { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; opacity: .75; }
.lbo-scelte-date strong { font-size: 1.3rem; font-family: var(--lbo-titoli); font-weight: 500; }
.lbo-pr-fascia { margin: 4px 0 8px; font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; color: var(--lbo-grigio); font-weight: 600; }
.lbo-pr-fascia + .lbo-scelte { margin-bottom: 10px; }
.lbo-pr-riepilogo:empty { display: none; }
.lbo-pr-riepilogo { background: var(--lbo-crema); color: var(--lbo-notte); font-weight: 600; padding: 10px 14px; border-radius: 10px; margin: 0 0 14px; }
.lbo-pr-nota { margin: 10px 0 0; font-size: .88rem; color: var(--lbo-grigio); }
.lbo-prenota .lbo-invia .wp-block-button__link { width: 100%; }
.lbo-prenota .lbo-pill input:checked + span, .lbo-pill input:checked + span { background: var(--lbo-blu); border-color: var(--lbo-blu); }
/* niente contenuto che esce dal riquadro: le colonne della griglia non si allargano oltre il modulo */
.lbo-form { grid-template-columns: minmax(0, 1fr); }
.lbo-form > *, .lbo-pr-passo, .lbo-scelte { min-width: 0; }
.lbo-prenota { width: 100%; box-sizing: border-box; }

/* ─── v3: Family, Regala, Check-in in una colonna centrata, moduli in riquadro come Prenota ─── */
.lbo-family, .lbo-regala { grid-template-columns: minmax(0, 1fr); max-width: 640px; margin-inline: auto; gap: 22px; }
.lbo-family-card { position: static; justify-items: center; text-align: center; }
.lbo-family-card .lbo-card { transform: rotate(-2deg); }
.lbo-family .lbo-form, .lbo-regala .lbo-form, .lbo-checkin, .lbo-form.lbo-ordine { background: #fff; border: 1px solid var(--lbo-linea); border-radius: 20px; padding: clamp(18px, 3vw, 30px); box-shadow: 0 20px 50px -30px rgba(1, 60, 110, .45); max-width: 640px; box-sizing: border-box; width: 100%; margin-inline: auto; }
.lbo-regala .lbo-passo, .lbo-ordine .lbo-passo { border: 0; border-bottom: 1px solid var(--lbo-linea); border-radius: 0; padding: 14px 0; }
.lbo-regala .lbo-passo legend, .lbo-ordine .lbo-passo legend { padding: 0; margin-bottom: 10px; }
.lbo-form .wp-block-button, .lbo-form .wp-block-button__link { width: 100%; }
.lbo-form .wp-block-button__link { justify-content: center; text-align: center; }
.lbo-aiuto { display: block; margin-top: 6px; color: var(--lbo-grigio); font-size: .85rem; }
.lbo-condizioni { text-align: center; }
.lbo-scelte-persone { justify-content: center; }
.lbo-regole-ico { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); text-align: center; }
.lbo-regole-ico h3 { font-size: 1.1rem; margin: 0 0 4px; }
.lbo-regole-ico p:not(.lb-ico) { margin: 0 auto; color: var(--lbo-grigio); font-size: .95rem; }
.lbo-app { text-align: center; font-size: .9rem; color: var(--lbo-grigio); margin: 0; }
.lbo-fatto { margin-inline: auto; }
/* 7 icone: righe centrate, anche l'ultima */
.lb-punti.lbo-regole-ico { display: flex !important; flex-wrap: wrap; justify-content: center; }
.lbo-regole-ico > .lb-punto { flex: 0 1 220px; }

/* ─── v3.1: convenzione più semplice, tutto in colonna, app di consegna ovunque ─── */
.lbo-mini { display: inline-block; width: 22px; height: 22px; flex: 0 0 22px; background: var(--lbo-blu); -webkit-mask: var(--lb-i) center / contain no-repeat; mask: var(--lb-i) center / contain no-repeat; vertical-align: middle; }
.lbo-conv { max-width: 640px; margin-inline: auto; gap: 18px; }
.lbo-regole-mini { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.lbo-regole-mini li { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--lbo-crema); border-radius: 12px; font-size: .9rem; line-height: 1.25; color: var(--lbo-notte); font-weight: 500; text-align: left; }
.lbo-ordine .lbo-passo legend .lbo-mini { width: 24px; height: 24px; flex-basis: 24px; }
.lbo-ordine .lbo-gruppo h4 { display: flex; align-items: center; gap: 8px; }
.lbo-ordine .lbo-gruppo h4 .lbo-mini { width: 18px; height: 18px; flex-basis: 18px; }
/* scelte una sotto l'altra, a tutta larghezza, col pallino */
.lbo-ordine .lbo-scelte { flex-direction: column; flex-wrap: nowrap; gap: 6px; }
.lbo-ordine .lbo-pill { display: flex; }
.lbo-ordine .lbo-pill span { width: 100%; border-radius: 12px; padding: 10px 14px 10px 44px; position: relative; justify-content: flex-start; text-align: left; }
.lbo-ordine .lbo-pill span::before { content: ""; position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border: 2px solid #A9B2C9; border-radius: 50%; box-sizing: border-box; background: #fff; }
.lbo-ordine .lbo-pill input:checked + span { background: var(--lbo-crema); border-color: var(--lbo-blu); color: var(--lbo-notte); font-weight: 600; }
.lbo-ordine .lbo-pill input:checked + span::before { border: 5px solid var(--lbo-blu); }
.lbo-ordine [data-gruppo="acqua"] .lbo-scelte { flex-direction: row; }
.lbo-ordine [data-gruppo="acqua"] .lbo-pill { flex: 1 1 0; }
.lbo-ordine .lbo-check small { color: var(--lbo-grigio); }
.lbo-ordine .lbo-due { grid-template-columns: 1fr; }
/* app di consegna */
.lbo-delivery { display: grid; gap: 10px; justify-items: center; text-align: center; }
.lbo-delivery-titolo { margin: 0; font-family: var(--lbo-titoli); font-size: 1.15rem; color: var(--lbo-notte); }
.lbo-delivery-link { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.lbo-app-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 18px; border: 1px solid var(--lbo-blu); border-radius: 999px; color: var(--lbo-blu); background: #fff; text-decoration: none; font-weight: 600; }
.lbo-app-link:hover { background: var(--lbo-blu); color: #fff; }
.lbo-app-link:hover .lbo-mini { background: #fff; }
.lbo-delivery-piede { margin-top: 10px; }
.lbo-delivery-piede .lbo-delivery-titolo { font-family: inherit; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #fff; opacity: .85; font-weight: 600; }
.lbo-delivery-piede .lbo-app-link { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); min-height: 40px; padding: 6px 14px; font-size: .9rem; }
.lbo-delivery-piede .lbo-mini { background: #fff; }
.lbo-delivery-piede .lbo-app-link:hover { background: #fff; color: var(--lbo-notte); }
.lbo-delivery-piede .lbo-app-link:hover .lbo-mini { background: var(--lbo-notte); }
/* caselle del pranzo come le scelte: riquadro a tutta larghezza */
.lbo-ordine [data-passo="piatti"] .lbo-check { margin: 6px 0 0; }
.lbo-ordine [data-passo="piatti"] .lbo-check label { align-items: center; min-height: 48px; padding: 10px 14px; border: 1px solid #A9B2C9; border-radius: 12px; box-sizing: border-box; cursor: pointer; }
.lbo-ordine [data-passo="piatti"] .lbo-check label:has(input:checked) { border-color: var(--lbo-blu); background: var(--lbo-crema); font-weight: 600; }
.lbo-ordine [data-passo="piatti"] .lbo-check input { margin-top: 0; }
.lbo-form small, .lbo-campo small, .lbo-check small { color: #46506B; font-size: .92em; }
/* sulla pagina del pranzo la barra in basso serve solo a chiamare */
body:has(.lbo-conv) .lb-barra-mobile .lb-btn-prenota, body:has(.lbo-conv) .lb-barra-mobile .lbo-ordina { display: none; }
/* pagina del pranzo: meno spazio vuoto sopra il modulo */
body:has(.lbo-conv) .lb-testata { padding-block: clamp(32px, 4vw, 48px) clamp(24px, 3vw, 36px); }
.lb-sezione:has(> .lbo-conv), .lb-sezione:has(.lbo-conv) { padding-top: clamp(20px, 3vw, 32px); }
/* menu della settimana: tutti i giorni su una riga (sul telefono si scorre di lato) */
.lbo-settimana { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 10px; }
.lbo-giorno-menu { padding: 14px 12px; }
.lbo-giorno-menu h3 { font-size: 1.02rem; }
.lbo-giorno-menu dd { font-size: .9rem; }
@media (max-width: 999px) {
	.lbo-settimana { grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
	.lbo-giorno-menu { scroll-snap-align: start; }
}
@media (min-width: 600px) and (max-width: 999px) { .lbo-settimana { grid-auto-columns: 40%; } }

/* ─── prenotatore standard RBR («Richiedi la tua prenotazione») ─── */
.lbo-prenota { max-width: 760px; margin-inline: auto; padding: clamp(22px, 3.5vw, 36px) clamp(18px, 3.5vw, 32px); text-align: left; }
.prenota-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.prenota-grid .lbo-campo { margin: 0; }
.prenota-grid .lbo-campo label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--lbo-notte); gap: 7px; }
.prenota-grid .lbo-campo label small { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .95em; }
.prenota-grid .lbo-campo label > span { display: block; }
.lbo-prenota input:not([type=checkbox]), .lbo-prenota select, .lbo-prenota textarea { font-size: .95rem; text-transform: none; letter-spacing: 0; border-width: 1.5px; border-color: #D3DCE8; }
.lbo-prenota input[type=date] { -webkit-appearance: none; appearance: none; display: block; text-align: left; }
.lbo-prenota select:invalid { color: #7A869C; }
.lbo-pieno { grid-column: 1 / -1; }
.prenota-grid .lbo-check { margin: 0 0 8px; font-size: .86rem; color: #46506B; }
.lbo-pr-invio { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; }
.lbo-prenota .lbo-pr-invio .wp-block-button, .lbo-prenota .lbo-pr-invio .wp-block-button__link { width: auto; }
.lbo-pr-invio .wp-block-button__link { padding-inline: 32px; }
.lbo-pr-alt { font-size: .88rem; color: #46506B; }
.lbo-pr-alt a { font-weight: 600; }
.lbo-prenota .lbo-esito:empty { display: none; }
@media (max-width: 600px) {
	.prenota-grid { grid-template-columns: minmax(0, 1fr); }
	.lbo-pr-invio { flex-direction: column; align-items: stretch; text-align: center; }
	.lbo-prenota .lbo-pr-invio .wp-block-button, .lbo-prenota .lbo-pr-invio .wp-block-button__link { width: 100%; }
}

/* ─── Gift card e Regala: card a sinistra, modulo a fianco ─── */
.lbo-vantaggi { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 8px; width: 100%; max-width: 340px; }
.lbo-vantaggi li { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: var(--lbo-crema); border-radius: 12px; font-weight: 500; color: var(--lbo-notte); font-size: .95rem; text-align: left; }
@media (min-width: 900px) {
	.lbo-family, .lbo-regala { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); max-width: 1080px; gap: 48px; align-items: start; }
	.lbo-family-card { position: sticky; top: 130px; }
	.lbo-family .lbo-form, .lbo-regala .lbo-form { max-width: none; }
}

/* ─── tasto «Ordina» che si apre (testata e barra del telefono) ─── */
.lbo-ordina { position: relative; }
.lbo-ordina > summary { list-style: none; cursor: pointer; background: #fff; color: var(--lbo-blu); border: 1.5px solid var(--lbo-blu); border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; user-select: none; }
.lbo-ordina > summary::-webkit-details-marker { display: none; }
.lbo-ordina > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .15s; }
.lbo-ordina[open] > summary::after { transform: rotate(-135deg) translate(-2px, 0); }
.lbo-ordina > summary:hover, .lbo-ordina[open] > summary { background: var(--lbo-blu); color: #fff; }
.lbo-ordina-testata > summary { padding: 11px 20px; }
.lbo-ordina-menu { position: absolute; z-index: 80; right: 0; top: calc(100% + 10px); min-width: 250px; background: #fff; border: 1px solid var(--lbo-linea); border-radius: 16px; padding: 8px; box-shadow: 0 24px 50px -20px rgba(1, 60, 110, .45); display: grid; gap: 2px; }
.lbo-ordina-menu a { display: grid; grid-template-columns: 22px 1fr; column-gap: 12px; align-items: center; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: var(--lbo-notte); font-weight: 600; font-size: .95rem; }
.lbo-ordina-menu a .lbo-mini { grid-row: span 2; }
.lbo-ordina-menu a small { grid-column: 2; font-weight: 400; color: #46506B; font-size: .8rem; }
.lbo-ordina-menu a:hover { background: var(--lbo-crema); }
.lb-barra-mobile { gap: 8px; }
.lb-barra-mobile > * { flex: 1 1 0; min-width: 0; }
.lb-barra-mobile .wp-block-button, .lb-barra-mobile .wp-block-button__link, .lbo-ordina-barra > summary { width: 100%; box-sizing: border-box; }
.lbo-ordina-barra > summary { min-height: 100%; padding: 12px 10px; }
.lb-barra-mobile .wp-block-button__link { padding-inline: 10px; }
.lbo-ordina-barra .lbo-ordina-menu { position: fixed; top: auto; bottom: calc(76px + env(safe-area-inset-bottom)); left: 16px; right: 16px; min-width: 0; }
@media (max-width: 781px) { .lbo-ordina-testata { display: none; } }

.prenota-grid .lbo-campo label input, .prenota-grid .lbo-campo label select, .prenota-grid .lbo-campo label textarea { font-size: 1rem !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
.prenota-grid .lbo-aiuto { font-size: .8rem; margin-top: 5px; }
.prenota-grid .lbo-campo label input, .prenota-grid .lbo-campo label select, .prenota-grid .lbo-campo label textarea { border: 1.5px solid #B9C4D4 !important; border-radius: 8px; background-color: #fff; }
.lbo-pr-intestazione { margin: 0 0 20px; text-align: center; font-family: var(--lbo-titoli); font-size: 1.45rem; color: var(--lbo-notte); }
/* moduli Gift card, Regala e Family come il prenotatore */
.lbo-family .lbo-campo label, .lbo-regala .lbo-campo label, .lbo-checkin .lbo-campo label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--lbo-notte); gap: 7px; }
.lbo-family .lbo-campo label small, .lbo-regala .lbo-campo label small, .lbo-checkin .lbo-campo label small { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: .95em; }
.lbo-family .lbo-campo label :is(input, select, textarea), .lbo-regala .lbo-campo label :is(input, select, textarea), .lbo-checkin .lbo-campo label :is(input, select, textarea) { font-size: 1rem !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; border: 1.5px solid #B9C4D4 !important; }
.lbo-campo label small { font-size: 12px !important; }
@media (max-width: 600px) { .lbo-family-card .lbo-card { max-width: min(320px, 100%); } }

/* ─── loghi originali delle app di consegna ─── */
.lbo-logo-app { display: block; height: 24px; width: auto; }
.lbo-app-link { padding: 10px 22px; border-color: var(--lbo-linea); background: #fff; }
.lbo-app-link:hover { background: #fff; border-color: var(--lbo-blu); box-shadow: 0 6px 18px -10px rgba(1, 60, 110, .5); }
.lbo-delivery-piede .lbo-app-link { background: #fff; border-color: #fff; }
.lbo-delivery-piede .lbo-app-link:hover { background: #fff; }
.lbo-ordina-menu a.lbo-ordina-app { display: grid; grid-template-columns: 1fr; gap: 3px; padding: 12px 14px; }
.lbo-ordina-menu a.lbo-ordina-app .lbo-logo-app { height: 22px; }
.lbo-ordina-menu a.lbo-ordina-app small { grid-column: 1; }
