/* Grafica ripresa dall’anteprima scelta: bianco, antracite e verde SPM */
.spm-booking{--ink:#202328;--muted:#92969b;--line:#dedfe1;--green:#23833c;--shadow:0 7px 16px rgba(0,0,0,.13);max-width:880px;margin:.625rem auto 1.5rem;background:#fff;border:2px solid #d8d8d8;border-radius:18px;overflow:hidden;color:var(--ink);font:inherit;box-shadow:0 10px 30px rgba(20,25,30,.12)}
.spm-booking__title{margin:0;padding:22px 18px 20px;text-align:center;font-size:clamp(27px,4vw,40px);font-weight:600;border-bottom:2px solid #d8d8d8;background:#fafafa;color:var(--ink)}
.spm-booking__service{display:block;max-width:650px;margin:22px auto 0;padding:20px 22px 18px;text-align:center;color:var(--ink);border:2px solid #d9e7dc;border-radius:14px;background:linear-gradient(135deg,#f6fbf7,#fff);box-shadow:0 5px 16px rgba(26,92,45,.09)}
.spm-booking__service-image{display:block;width:auto;max-width:100%;max-height:360px;height:auto;object-fit:contain;margin:0 auto 16px;border-radius:10px}
.spm-booking__steps{display:none!important}
.spm-booking__service strong{display:block;font-size:clamp(20px,3.4vw,28px);line-height:1.25;font-weight:700;color:#183e24}
.spm-booking__details{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:13px;flex-wrap:wrap}.spm-booking__detail{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;background:#fff;border:1px solid #dce5de;font-size:16px;font-weight:600;color:#313b33}.spm-booking__detail--price{background:#23833c;color:#fff;border-color:#23833c;font-size:19px;font-weight:750}
.spm-booking__form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:28px 34px 38px}
.spm-booking__form>label{display:flex;flex-direction:column;gap:.4rem;font-weight:600}
.spm-booking__form input:not([type=checkbox]),.spm-booking__form select,.spm-booking__form textarea{box-sizing:border-box;width:100%;padding:.75rem .85rem;border:1px solid #cbd2dc;border-radius:8px;background:#fff;color:#17233c;font:inherit}
.spm-booking__form input:focus,.spm-booking__form select:focus,.spm-booking__form textarea:focus{outline:2px solid #6dab79;outline-offset:1px}
.spm-booking__form textarea,.spm-booking__consent,.spm-booking__availability,.spm-booking__form button{grid-column:1/-1}
.spm-booking__availability{min-height:1.5em;margin:0;color:#526078;font-size:.95rem}
.spm-booking__consent{flex-direction:row!important;align-items:flex-start;font-size:.9rem;font-weight:400!important;line-height:1.5}
.spm-booking__consent input{margin-top:.35rem;flex:0 0 auto}
.spm-booking__form button{justify-self:start;padding:.85rem 1.4rem;border:0;border-radius:8px;background:var(--green);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.spm-booking__form button:hover{background:#1d6c32}
.spm-booking__result{padding:.9rem 1rem;border-radius:8px;background:#edf8f0;color:#14532d}
.spm-booking__result--error,.spm-booking__result--unavailable{background:#fff1f0;color:#8b1e16}
.spm-booking__trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.spm-admin__hours{display:flex;align-items:center;gap:1rem;margin:.5rem 0}.spm-admin__hours span{width:100px}.spm-admin__export{margin:1rem 0}
@media(max-width:650px){.spm-booking__service{margin:16px 12px 0;padding:18px 12px}.spm-booking__detail{font-size:14px;padding:7px 11px}.spm-booking__detail--price{font-size:17px}.spm-booking__form{grid-template-columns:1fr;padding:24px 16px 28px}.spm-booking__form>*{grid-column:1}.spm-booking__service span{font-size:14px;padding:7px 11px}}

.spm-booking__steps{display:flex;justify-content:center;align-items:flex-start;gap:8px;padding:32px 14px 18px;max-width:760px;margin:auto}
.spm-booking__step{display:flex;flex:0 0 92px;flex-direction:column;align-items:center;text-align:center;color:#bdbfc2}
.spm-booking__step.is-active{color:#202328}.spm-booking__step.is-done{color:#85898d}
.spm-booking__bubble{height:52px;width:52px;border:2px solid #d0d1d3;border-radius:50%;display:grid;place-items:center;font-size:22px;background:#fff}
.spm-booking__step.is-active .spm-booking__bubble{border-color:#25282d;color:#25282d}
.spm-booking__step.is-done .spm-booking__bubble{border-color:#23833c;color:#23833c}
.spm-booking__step-label{font-size:15px;margin-top:8px}.spm-booking__step-summary{font-size:11px;margin-top:2px;color:#686d72}
.spm-booking__steps>i{height:2px;background:#d2d2d2;flex:1;margin-top:25px;max-width:70px}
.spm-booking__panel{padding:8px 24px 36px;text-align:center}.spm-booking__panel[hidden]{display:none!important}
.spm-booking__panel h3{font-size:clamp(23px,4vw,32px);margin:18px 0 28px;font-weight:600}
.spm-booking__people-grid,.spm-booking__people-extra{display:grid;grid-template-columns:repeat(4,82px);gap:14px;justify-content:center}
.spm-booking__person{width:78px;height:78px;border:2px solid transparent;border-radius:50%;background:#f2f2f2;color:#222;font:inherit;font-size:26px;cursor:pointer;box-shadow:0 7px 12px rgba(0,0,0,.12);transition:.15s}
.spm-booking__person:hover,.spm-booking__person.is-selected{border-color:#282b30;background:#fff;transform:translateY(-2px)}
.spm-booking__more{display:block;margin:22px auto 12px;border:0;background:transparent;color:#292c30;font:inherit;font-size:17px;cursor:pointer}
.spm-booking__date-label{display:block;max-width:420px;margin:0 auto;text-align:left}
.spm-booking__date-label input{width:100%;margin-top:8px;padding:13px;border:1px solid #c9cacc;border-radius:7px;font:inherit}
.spm-booking__times{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:12px;max-width:520px;margin:0 auto 18px}
.spm-booking__time{position:absolute!important;width:1px!important;height:1px!important;clip:rect(0,0,0,0)!important;overflow:hidden!important}
.spm-booking__time-choice{border:2px solid #d7d8d9;border-radius:30px;padding:12px;background:white;font:inherit;font-size:16px;cursor:pointer}
.spm-booking__time-choice:hover,.spm-booking__time-choice.is-selected{border-color:#23833c;background:#f6fbf7}
.spm-booking__chosen-date{margin:-8px 0 20px;color:#777}
.spm-booking__fields{max-width:540px;margin:0 auto;text-align:left;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.spm-booking__fields label{display:flex;flex-direction:column;gap:6px;font-weight:500}
.spm-booking__fields input,.spm-booking__fields textarea{width:100%;padding:12px;border:1px solid #c9cacc;border-radius:7px;font:inherit}
.spm-booking__fields .spm-booking__wide{grid-column:1/-1}
.spm-booking__notice{margin:18px auto 12px;max-width:580px;padding:12px;border-radius:8px;background:#fff8dd;border:1px solid #efdfa1;color:#665400;font-size:14px}
.spm-booking__consent{display:flex;align-items:flex-start;gap:8px;max-width:540px;margin:14px auto;text-align:left;font-size:.9rem;line-height:1.5}
.spm-booking__actions{display:flex;justify-content:space-between;gap:12px;margin:28px auto 0;max-width:600px}
.spm-booking__actions--end{justify-content:flex-end}
.spm-booking__actions button{padding:12px 20px;border-radius:8px;font:inherit;font-size:16px;cursor:pointer}
.spm-booking__back{color:#23833c!important;border:2px solid #23833c!important;background:#fff!important}
.spm-booking__next{color:#fff!important;border:2px solid #23833c!important;background:#23833c!important}
.spm-booking__next:disabled{opacity:.45;cursor:not-allowed}
.spm-booking__submit{justify-self:end!important;padding:.85rem 1.25rem!important}
.spm-booking__panel .spm-booking__availability{margin:15px 0}
@media(max-width:600px){.spm-booking__steps{gap:3px;padding:25px 7px 16px}.spm-booking__step{flex-basis:68px}.spm-booking__bubble{width:44px;height:44px;font-size:19px}.spm-booking__step-label{font-size:12px}.spm-booking__step-summary{font-size:9px}.spm-booking__steps>i{margin-top:21px}.spm-booking__panel{padding:6px 12px 26px}.spm-booking__people-grid,.spm-booking__people-extra{grid-template-columns:repeat(4,60px);gap:8px}.spm-booking__person{width:58px;height:58px;font-size:21px}.spm-booking__times{grid-template-columns:repeat(2,1fr);gap:9px}.spm-booking__fields{grid-template-columns:1fr}.spm-booking__fields .spm-booking__wide{grid-column:auto}.spm-booking__actions button{font-size:14px;padding:10px 12px}}

.spm-booking__steps,.spm-booking__panel{grid-column:1/-1}.spm-booking__time-wrap{display:none!important}\n
.spm-booking__form .spm-booking__person{grid-column:auto;justify-self:auto;width:78px;height:78px;padding:0;border:2px solid transparent;border-radius:50%;background:#f2f2f2;color:#222;font-size:26px}
.spm-booking__form .spm-booking__person:hover,.spm-booking__form .spm-booking__person.is-selected{border-color:#282b30;background:#fff;color:#222}
.spm-booking__form .spm-booking__more{grid-column:auto;justify-self:center;margin:22px auto 12px;padding:0;border:0;border-radius:0;background:transparent;color:#292c30;font-size:17px;font-weight:400}
.spm-booking__form .spm-booking__time-choice{grid-column:auto;justify-self:stretch;padding:12px;border:2px solid #d7d8d9;border-radius:30px;background:#fff;color:#202328;font:inherit;font-size:16px}
.spm-booking__form .spm-booking__time-choice:hover,.spm-booking__form .spm-booking__time-choice.is-selected{border-color:#23833c;background:#f6fbf7;color:#202328}
.spm-booking__form .spm-booking__time{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;clip:rect(0,0,0,0)!important;overflow:hidden!important}
.spm-booking__form .spm-booking__actions .spm-booking__back{justify-self:auto;padding:12px 20px;border:2px solid #23833c;border-radius:8px;background:#fff;color:#23833c}
.spm-booking__form .spm-booking__actions .spm-booking__next{justify-self:auto;padding:12px 20px;border:2px solid #23833c;border-radius:8px;background:#23833c;color:#fff}
.spm-booking__form .spm-booking__actions .spm-booking__submit{justify-self:auto;padding:12px 20px;border:2px solid #23833c;border-radius:8px;background:#23833c;color:#fff}
@media(max-width:600px){.spm-booking__form .spm-booking__person{width:58px;height:58px;font-size:21px}.spm-booking__form .spm-booking__actions button{font-size:14px;padding:10px 12px}}

/* Priorità ai selettori circolari del flusso Persone rispetto agli stili globali dei pulsanti. */
.spm-booking__form .spm-booking__people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,78px));gap:14px;justify-content:center}
.spm-booking__form .spm-booking__people-extra{display:grid;grid-template-columns:repeat(4,minmax(0,78px));gap:14px;justify-content:center;margin:10px auto}
.spm-booking__form .spm-booking__people-grid .spm-booking__person,
.spm-booking__form .spm-booking__people-extra .spm-booking__person{display:grid;grid-column:auto!important;justify-self:center;width:78px;height:78px;padding:0!important;border:2px solid transparent;border-radius:50%!important;background:#f2f2f2!important;color:#222!important;font-size:26px}
.spm-booking__form .spm-booking__people-grid .spm-booking__person.is-selected,
.spm-booking__form .spm-booking__people-extra .spm-booking__person.is-selected{border-color:#282b30;background:#fff!important;color:#222!important}
.spm-booking__form .spm-booking__people-grid .spm-booking__person:hover,
.spm-booking__form .spm-booking__people-extra .spm-booking__person:hover{border-color:#282b30;background:#fff!important;color:#222!important}
@media(max-width:600px){.spm-booking__form .spm-booking__people-grid,.spm-booking__form .spm-booking__people-extra{grid-template-columns:repeat(4,minmax(0,58px));gap:8px}.spm-booking__form .spm-booking__people-grid .spm-booking__person,.spm-booking__form .spm-booking__people-extra .spm-booking__person{width:58px;height:58px;font-size:21px}}

.spm-booking__description{max-width:560px;margin:10px auto 0;color:#515b54;font-size:15px;line-height:1.55;font-weight:400}
@media(max-width:600px){.spm-booking__description{font-size:14px}}

/* Calendario mensile: selezione dei giorni con cerchi compatti e numeri centrati. */
.spm-booking__form .spm-booking__date-label{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.spm-booking__form .spm-booking__calendar{max-width:390px;margin:0 auto;color:#202328}
.spm-booking__calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 auto 16px}
.spm-booking__calendar-title{text-transform:capitalize;font-size:18px;font-weight:650}
.spm-booking__form .spm-booking__calendar-nav{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid #d8dcde;border-radius:50%;background:#fff;color:#202328;font-size:25px;line-height:1}
.spm-booking__form .spm-booking__calendar-nav:disabled{opacity:.3;cursor:default}
.spm-booking__weekdays,.spm-booking__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;justify-items:center;align-items:center}
.spm-booking__weekdays{margin-bottom:9px;color:#737a80;font-size:12px;font-weight:600}
.spm-booking__form .spm-booking__days .spm-booking__day{display:grid;place-items:center;justify-self:center;width:40px;height:40px;min-width:0;padding:0;border:1px solid transparent;border-radius:50%;background:#f3f5f3;color:#202328;font:inherit;font-size:14px;line-height:1;text-align:center;cursor:pointer}
.spm-booking__form .spm-booking__days .spm-booking__day:hover,.spm-booking__form .spm-booking__days .spm-booking__day.is-selected{border-color:#23833c;background:#23833c;color:#fff}
.spm-booking__form .spm-booking__days .spm-booking__day:disabled{background:transparent;color:#c5c8ca;cursor:default}
.spm-booking__day-empty{width:40px;height:40px}
.spm-booking__form .spm-booking__people-grid .spm-booking__person,.spm-booking__form .spm-booking__people-extra .spm-booking__person{place-items:center!important;text-align:center!important;line-height:1!important;align-content:center!important;justify-content:center!important}
@media(max-width:600px){.spm-booking__calendar{max-width:340px}.spm-booking__weekdays,.spm-booking__days{gap:4px}.spm-booking__form .spm-booking__days .spm-booking__day,.spm-booking__day-empty{width:36px;height:36px}.spm-booking__form .spm-booking__calendar-nav{width:34px;height:34px}}

/* Impedisce al tema WordPress di trasformare ogni data in una riga separata. */
.spm-booking__form .spm-booking__calendar .spm-booking__weekdays,
.spm-booking__form .spm-booking__calendar .spm-booking__days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;width:100%;}
.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day{grid-column:auto!important;grid-row:auto!important;justify-self:center!important;align-self:center!important;display:grid!important;place-items:center!important;box-sizing:border-box!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;border-radius:50%!important;text-align:center!important;line-height:1!important;}
.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day:disabled{background:#f3f5f3!important;color:#b9bec2!important;opacity:.72;}
.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day.is-selected{background:#23833c!important;color:#fff!important;border-color:#23833c!important;}
.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day-empty{width:40px;height:40px;}
@media(max-width:600px){.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day,.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day-empty{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important}}

/* Consenso privacy con testo e collegamento dello stesso colore. */
.spm-booking__form .spm-booking__consent{color:#202328!important;}
.spm-booking__form .spm-booking__consent a,.spm-booking__form .spm-booking__consent a:visited{color:inherit!important;text-decoration:underline;text-underline-offset:2px;}
/* Ombra leggera sui cerchi delle date, coordinata ai cerchi di selezione persone. */
.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day{box-shadow:0 5px 10px rgba(0,0,0,.13)!important;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;}
.spm-booking__form .spm-booking__calendar .spm-booking__days .spm-booking__day:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 7px 13px rgba(0,0,0,.18)!important;}

/* Riepilogo con accesso rapido per correggere il numero di persone. */
.spm-booking__people-review{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px auto 18px;color:#202328;font-size:15px}
.spm-booking__form .spm-booking__people-review .spm-booking__edit-people{grid-column:auto!important;padding:5px 10px;border:1px solid #23833c;border-radius:6px;background:#fff;color:#23833c;font:inherit;font-size:14px;cursor:pointer}
.spm-booking__form .spm-booking__people-review .spm-booking__edit-people:hover{background:#f1f8f2}
/* Orari già prenotati restano visibili ma disabilitati. */
.spm-booking__form .spm-booking__time-choice:disabled,.spm-booking__form .spm-booking__time-choice.is-occupied{border-color:#e2e4e5!important;background:#f0f1f2!important;color:#a4a8ab!important;text-decoration:line-through;opacity:.75;cursor:not-allowed;box-shadow:none}
.spm-booking__form .spm-booking__consent{align-items:flex-start!important;color:#202328!important}
.spm-booking__form .spm-booking__consent>span{display:block;flex:1 1 auto;min-width:0;color:inherit;}

/* Numero persone configurato dallo studio, non modificabile dal cliente. */
.spm-booking__people-fixed{max-width:430px;margin:0 auto;padding:18px 20px;border:1px solid #d9e7dc;border-radius:12px;background:#f6fbf7;color:#202328;font-size:17px;line-height:1.5}
.spm-booking__people-review{margin:14px auto 18px;text-align:center;color:#202328;font-size:15px}

/* Le opzioni tonde sono sempre selezionabili dal cliente, nel limite fissato dallo studio. */
.spm-booking__form .spm-booking__people-grid .spm-booking__person{cursor:pointer;}
.spm-booking__form .spm-booking__people-grid .spm-booking__person.is-selected{box-shadow:0 7px 12px rgba(0,0,0,.14)!important;}
