
:root{
  --bg:#fbfaf6;--surface:#fffefa;--surface-soft:#f5f6ec;--text:#182018;--muted:#666b63;
  --green:#285f31;--green-2:#3f7844;--green-soft:#edf5e8;--gold:#b98a2f;--gold-soft:#fff7e5;
  --orange:#c96a11;--red:#b93832;--border:#e7e4db;
  --shadow:0 10px 30px rgba(45,54,42,.08),0 2px 8px rgba(45,54,42,.05);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--bg)}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--text)}
body{background:radial-gradient(circle at 50% -10%,#fff 0,#fbfaf6 42%,#f8f6ef 100%)}
.client-header{background:rgba(255,254,250,.94);text-align:center;padding:25px 15px 20px;border-bottom:1px solid rgba(185,138,47,.15);position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}
.client-brand{font-family:Georgia,serif;font-size:31px;letter-spacing:5px;color:#152717}
.client-sub{font-family:Georgia,serif;font-size:13px;letter-spacing:2.4px;margin-top:5px;color:#504c42}
main{max-width:620px;margin:auto;padding:22px 14px 48px}
.client-card{background:rgba(255,254,250,.96);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:27px;padding:23px;margin-bottom:17px;animation:cardIn .24s ease both}
@keyframes cardIn{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}
h1{font-size:30px;line-height:1.12;margin:0 0 12px;letter-spacing:-.7px}
.lead{font-size:17px;line-height:1.55;color:var(--muted);margin-bottom:0}
.step-title{font-size:23px;font-weight:850;margin:0 0 20px;letter-spacing:-.35px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{margin-bottom:17px}.field label{display:block;font-weight:800;font-size:14px;margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;padding:16px 17px;border:1px solid #dadbd3;border-radius:18px;background:#fff;font-size:18px;color:var(--text);outline:0;transition:border-color .18s,box-shadow .18s,background .18s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 4px rgba(63,120,68,.11);background:#fff}
.field textarea{min-height:105px;resize:vertical}
.room-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.room-option{min-height:58px;padding:17px 9px;border:1px solid var(--border);border-radius:19px;text-align:center;font-weight:800;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.18s ease}
.room-option:active{transform:scale(.98)}
.room-option.active{border:2px solid var(--green-2);background:linear-gradient(145deg,#f7fbf4,#edf5e8);color:var(--green)}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.slot{min-height:104px;padding:18px 7px;border:1px solid var(--border);border-radius:22px;text-align:center;background:#fff;cursor:pointer;display:flex;flex-direction:column;justify-content:center;transition:transform .17s,box-shadow .17s,border-color .17s}
.slot:active:not(.unavailable){transform:scale(.97)}
.slot .time{font-size:22px;font-weight:850}.slot .label{font-size:12px;margin-top:8px;font-weight:750}
.slot.available{background:linear-gradient(145deg,#f3f9ef,#eaf4e6);color:#286e32}.slot.limited{background:linear-gradient(145deg,#fffaf0,#fff1d9);color:#ad5c09}.slot.review{background:#f0f6f1;color:#315f3a}.slot.unavailable{background:#f1f1ee;color:#9a9d98;cursor:not-allowed}
.slot.active{outline:4px solid rgba(185,138,47,.17);border-color:var(--gold)}
.btn{width:100%;border:0;border-radius:20px;padding:17px 19px;font-size:17px;font-weight:850;cursor:pointer;transition:transform .15s,filter .15s,box-shadow .15s}
.btn:active:not(:disabled){transform:scale(.985)}
.primary,.gold{background:linear-gradient(135deg,var(--green),var(--green-2));color:#fff;box-shadow:0 9px 20px rgba(40,95,49,.18)}
.secondary{background:#fffefa;border:1.5px solid var(--gold);color:#8c6319}
.summary{background:linear-gradient(135deg,#fffaf0,#fff5df);border:1px solid #ead39c;border-radius:20px;padding:16px 17px;line-height:1.55;color:#34352f}
.notice{font-size:14px;line-height:1.55;color:var(--muted)}
.success{text-align:center;padding:34px 20px}.success-icon{width:92px;height:92px;margin:0 auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:56px;color:var(--green);background:radial-gradient(circle,#fff 35%,#edf5e8 100%);box-shadow:0 12px 35px rgba(40,95,49,.16)}.success h2{font-size:28px;margin-bottom:8px}
#client-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#19231a;color:#fff;padding:13px 19px;border-radius:16px;display:none;z-index:30;max-width:90%;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.22)}
#client-loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(251,250,246,.8);backdrop-filter:blur(5px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s,visibility .16s}
#client-loader.visible{opacity:1;visibility:visible;pointer-events:auto}.client-loader-box{min-width:190px;padding:25px 26px;border-radius:26px;background:#fffefa;box-shadow:0 18px 50px rgba(32,45,33,.16);text-align:center;font-weight:700}.client-spinner{width:38px;height:38px;margin:0 auto 13px;border:4px solid rgba(63,120,68,.16);border-top-color:var(--green-2);border-radius:50%;animation:clientSpin .72s linear infinite}@keyframes clientSpin{to{transform:rotate(360deg)}}
.client-is-loading button,.client-is-loading .room-option,.client-is-loading .slot{pointer-events:none}button:disabled{opacity:.58;cursor:not-allowed}
@media(max-width:480px){.client-header{padding-top:22px}.client-brand{font-size:29px}.grid{grid-template-columns:1fr}.room-options{grid-template-columns:1fr}.slots{grid-template-columns:repeat(2,1fr)}.client-card{border-radius:25px;padding:20px}.slot{min-height:112px}}


/* 3.0.0 RC1 Mobile Porting Fix */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;width:100%;overflow-x:hidden}
body{width:100%;min-width:0;overflow-x:hidden}
main,.client-card{min-width:0;max-width:100%}
button{touch-action:manipulation}


/* 4.2.12 - schermata finale prenotazione */
.success{padding:28px 20px 30px}
.success h2{margin:0 0 14px;line-height:1.14}
.success-message{margin:0 auto 20px;max-width:500px;font-size:clamp(15px,4.2vw,17px);line-height:1.48;overflow-wrap:anywhere}
.success-summary{margin-top:0;margin-bottom:18px}
.success-note{margin:0 auto 22px;max-width:500px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:480px){.success{padding:24px 17px 26px}.success-icon{width:78px;height:78px;font-size:48px;margin-bottom:16px}.success h2{font-size:26px}.success-message{font-size:15.5px}.success-summary{padding:15px 14px}}

/* 4.2.22 calendario */
.date-closed-notice{margin-top:14px;padding:14px;border:1px solid #ead8c8;background:#fff7ef;border-radius:16px}.date-closed-notice b,.date-closed-notice span{display:block}.date-closed-notice b{font-size:15px}.date-closed-notice span{margin-top:4px;font-size:12px;line-height:1.45;color:var(--muted)}

/* 4.2.21 - lingua IT/EN */
.client-header{position:sticky}
.client-brand-wrap{display:inline-block}
.client-language{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.client-language button{border:0;background:transparent;color:var(--muted);font:inherit;font-weight:800;padding:9px 5px;min-width:34px;border-radius:10px;cursor:pointer}
.client-language button.active{color:var(--green);background:var(--green-soft)}
.client-language span{opacity:.35}
@media(max-width:480px){.client-language{right:9px;gap:1px}.client-language button{min-width:30px;padding:8px 3px;font-size:11px}.client-brand{font-size:26px;letter-spacing:4px}.client-sub{font-size:11px;letter-spacing:1.8px}}
