/* =========================================================
   PRENOTA+ - DAL SICILIANO
   Booking wizard consolidated stylesheet
   ========================================================= */

:root{
  --booking-gold:#ddb45d;
  --booking-gold-hover:#d2a64b;
  --booking-gold-border:#bc8e34;
  --booking-gold-text:#3a281b;
  --booking-brown:#4b3422;
  --booking-brown-dark:#382519;
  --booking-cream:#fffaf4;
  --booking-line:#dbc8ac;
  --booking-danger:#7a1f1f;
  --booking-danger-hover:#922828;
}

body.booking-open{overflow:hidden}

/* ---------- Overlay e finestra ---------- */
.booking-layer{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:8px;
  background:rgba(50,31,18,.52);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.booking-layer.is-open{display:flex}

.booking-dialog{
  position:relative;
  display:flex;
  flex-direction:column;
  width:min(980px,calc(100vw - 12px));
  height:min(920px,calc(100dvh - 12px));
  overflow:hidden;
  color:#3a281c;
  background:var(--booking-cream);
  border:1px solid #cda552;
  border-radius:24px;
  box-shadow:0 28px 90px rgba(0,0,0,.55);
}

.booking-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  color:#fff;
  background:#2d1d12;
  border-bottom:1px solid #c89b45;
}
.booking-head-logo{
  width:92px;
  height:54px;
  object-fit:contain;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
}
.booking-head-copy{min-width:0;flex:1}
.booking-head-copy strong{display:block;color:#e0bb6a;font-size:15px}
.booking-head-copy span{
  display:block;
  overflow:hidden;
  color:#f4eadc;
  font-size:12px;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.booking-head .support-quick{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:inline-grid;
  place-items:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  text-decoration:none;
}
.booking-head .support-quick svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.booking-head .support-quick.phone{background:linear-gradient(135deg,#c79a43,#e1bd6c)}
.booking-head .support-quick.whatsapp{background:#25D366}

.booking-close{
  width:42px;
  height:42px;
  flex:0 0 42px;
  color:#fff;
  background:var(--booking-danger);
  border:1px solid #9b3030;
  border-radius:50%;
  font-size:27px;
  line-height:1;
  cursor:pointer;
}
.booking-close:hover{background:var(--booking-danger-hover);border-color:#b23b3b}

.booking-progress{
  height:14px;
  flex:0 0 auto;
  padding:4px 18px;
  background:#fff;
  border-bottom:1px solid rgba(75,52,34,.08);
}
.booking-progress>i{
  display:block;
  width:16.666%;
  height:6px;
  border-radius:999px;
  background:linear-gradient(90deg,#d6a94f,#e5c474);
  box-shadow:0 2px 7px rgba(188,142,52,.22);
  transition:width .32s cubic-bezier(.4,0,.2,1);
}

.booking-body{
  flex:1;
  overflow:auto;
  padding:20px 18px 110px;
  color:#1f1f1f;
  background:radial-gradient(circle at 85% 12%,rgba(202,158,92,.08),transparent 25%),var(--booking-cream);
  font-family:Arial,Helvetica,sans-serif;
  font-size:17px;
  line-height:1.55;
}

/* ---------- Step ---------- */
.booking-step{display:none;max-width:760px;margin:0 auto}
.booking-step.is-active{display:block}
.booking-kicker{
  color:#a87228;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.booking-step h2{
  margin:5px 0 8px;
  color:#3b2719;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(30px,6vw,42px);
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.08;
}
.booking-step .lead{margin:0 0 18px;color:#655746;font-size:17px;line-height:1.5}
.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}

/* ---------- Campi ---------- */
.booking-field label{display:block;margin:0 0 6px;color:#33291e;font-size:15px;font-weight:600}
.booking-field input,
.booking-field select,
.booking-field textarea,
.birthday-selects select{
  width:100%;
  padding:14px;
  color:#211a12;
  background:#fff;
  border:1px solid var(--booking-line);
  border-radius:14px;
  outline:none;
  font-size:17px;
}
.booking-field textarea{min-height:92px;resize:vertical}
.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus,
.birthday-selects select:focus{
  border-color:#b27c28;
  box-shadow:0 0 0 3px rgba(220,174,85,.18);
}
.birthday-selects{display:grid;grid-template-columns:1fr 1.5fr;gap:10px}
.booking-help{display:block;margin-top:5px;color:#7d6b57;font-size:13px;line-height:1.45}
.booking-help-emphasis{color:#655746;font-size:15px;line-height:1.55}
.email-important{
  margin-top:8px;
  padding:12px 13px;
  color:#5a4218;
  background:#fff5df;
  border:1px solid #e3bd6d;
  border-radius:12px;
  font-size:15px;
  line-height:1.45;
}

.booking-field .field-invalid{
  border-color:#d63d35;
  box-shadow:0 0 0 3px rgba(214,61,53,.12);
}
.group-invalid{
  padding:5px;
  border:2px solid #d63d35;
  border-radius:16px;
  box-shadow:0 0 0 3px rgba(214,61,53,.08);
}
.privacy-check.group-invalid{padding:9px;background:#fff6f5}

/* ---------- Selezioni comuni ---------- */
.selection-block{margin-top:18px}
.selection-title{margin:0 0 9px;color:#2b251e;font-size:16px;font-weight:600}

.calendar-toggle,
.people-btn,
.slot,
.choice{
  color:#3a281c;
  background:#fff;
  border:1px solid var(--booking-line);
  cursor:pointer;
}

.calendar-toggle.is-selected,
.cal-day.is-selected,
.people-btn.is-selected,
.slot.is-selected,
.choice.is-selected,
.promo-choice-row .promo-choice.is-selected{
  color:var(--booking-gold-text);
  background:var(--booking-gold);
  border-color:var(--booking-gold-border);
  box-shadow:0 5px 14px rgba(188,142,52,.18);
}
.calendar-toggle.is-selected *,
.cal-day.is-selected *,
.people-btn.is-selected *,
.slot.is-selected *,
.choice.is-selected *,
.promo-choice-row .promo-choice.is-selected *{color:inherit}

.calendar-toggle.is-selected:hover,
.cal-day.is-selected:hover,
.people-btn.is-selected:hover,
.slot.is-selected:hover,
.choice.is-selected:hover,
.promo-choice-row .promo-choice.is-selected:hover{
  color:var(--booking-gold-text);
  background:var(--booking-gold-hover);
}

/* ---------- Calendario ---------- */
.calendar-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:50px;
  padding:12px 14px;
  border-radius:14px;
  font-size:17px;
  font-weight:600;
}
.calendar-toggle:hover:not(.is-selected){background:#faf8f4}
.inline-calendar{
  margin-top:10px;
  overflow:hidden;
  background:#fff;
  border:1px solid #ddd4c8;
  border-radius:18px;
  box-shadow:0 10px 28px rgba(39,30,18,.06);
  transition:max-height .25s ease,opacity .2s ease;
}
.inline-calendar.is-collapsed{max-height:0;margin-top:0;opacity:0;border-width:0;pointer-events:none}
.inline-calendar:not(.is-collapsed){max-height:520px;opacity:1}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid #eee7de}
.cal-title{color:#231e18;font-size:15px;font-weight:700;text-transform:capitalize}
.cal-nav{width:38px;height:38px;display:grid;place-items:center;color:#7d5519;background:#fff;border:1px solid #d9c9ae;border-radius:11px;font-size:21px;cursor:pointer}
.cal-nav:disabled{opacity:.3;cursor:not-allowed}
.cal-week,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-week{padding:8px 10px 2px;color:#8e8171;font-size:11px;font-weight:600;text-align:center;text-transform:uppercase}
.cal-grid{padding:5px 10px 12px;gap:4px}
.cal-day{aspect-ratio:1;color:#28221c;background:transparent;border:0;border-radius:11px;font-size:16px;font-weight:600;cursor:pointer}
.cal-day:hover:not(:disabled):not(.is-selected){background:#f7f1e7}
.cal-day.is-today{box-shadow:inset 0 0 0 1px #caa25e}
.cal-day:disabled{color:#ccc5bc;cursor:not-allowed}
.cal-day.empty{visibility:hidden}

/* ---------- Persone ---------- */
.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.people-btn{min-height:48px;border-color:#c9ae7e;border-radius:13px;font-size:17px;font-weight:700}
.people-btn:hover:not(.is-selected){background:#fff8ec}
.more-people{margin-top:10px;overflow:hidden;background:#fbfaf8;border:1px dashed #c8b18b;border-radius:14px}
.more-people-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;color:#6e4d1e;background:transparent;border:0;font-weight:600;text-align:left;cursor:pointer}
.more-people-panel{display:none;padding:0 14px 14px}
.more-people.is-open .more-people-panel{display:block}
.more-people-panel input{width:100%;padding:12px 13px;color:#211a12;background:#fff;border:1px solid #c9b99f;border-radius:12px;outline:none;font-size:16px}
.step-note{margin-top:18px;padding:13px 14px;color:#54483a;background:#faf7f1;border-left:4px solid #c3923d;border-radius:0 13px 13px 0;font-size:14px;line-height:1.6}

/* ---------- Slot e turni ---------- */
.slot-services{display:grid;gap:18px;margin-top:12px}
.slot-service-group{display:grid;gap:9px}
.slot-service-title{display:flex;align-items:center;gap:9px;margin:0;color:#7a5015;font-size:16px;font-weight:650}
.slot-service-title::after{content:"";height:1px;flex:1;background:#eadcc4}
.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.slot-service-group .slot-grid{margin-top:0}
.slot{padding:13px 8px;color:#4a3322;border-color:#cfb07c;border-radius:13px;font-size:17px;font-weight:600}
.slot:hover:not(:disabled):not(.is-selected){background:#fff8ea}
.slot.is-past,
.slot:disabled.is-past{
  opacity:.38;
  color:#8b847c;
  background:#e6e2dc;
  border-color:#d2cbc2;
  box-shadow:none;
  filter:grayscale(1);
  transform:none;
  cursor:not-allowed;
  pointer-events:none;
}

/* ---------- Promo ---------- */
.promo-card{
  margin:12px 0;
  padding:16px;
  background:#fffaf4;
  border:1px solid #d8bd8c;
  border-radius:18px;
  box-shadow:0 8px 22px rgba(75,52,34,.06);
}
.promo-card h3{margin:0 0 5px;color:var(--booking-brown)}
.promo-card p{margin:0;color:#5b4a3d;line-height:1.45}
.promo-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.promo-options.single-no{grid-template-columns:1fr}
.choice{padding:14px;border-color:#b99a6a;border-radius:15px;text-align:left}
.choice strong{display:block;margin-bottom:3px}

.promo-choice-list{display:grid;gap:12px;margin:12px 0}
.promo-choice-list .choice{text-align:left}
.promo-choice-list .choice strong{display:block;margin-bottom:5px}
.promo-choice-list .choice span{display:block}
.promo-choice-row{display:flex;align-items:stretch;width:100%;gap:12px}
.promo-choice-row .promo-choice{
  flex:1 1 auto;
  min-width:0;
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-self:stretch;
  margin:0;
  color:var(--booking-brown-dark);
  background:#fffaf3;
  border:1px solid #d8bd8c;
  box-shadow:none;
}
.promo-choice-row .promo-choice strong,
.promo-choice-row .promo-choice span{color:inherit}

.promo-thumb-btn,
.promo-thumb-placeholder{
  flex:0 0 112px;
  width:112px;
  aspect-ratio:9/16;
  align-self:stretch;
  border-radius:15px;
}
.promo-thumb-btn{
  appearance:none;
  -webkit-appearance:none;
  padding:0;
  margin:0;
  overflow:hidden;
  background:#f6efe5;
  border:0;
  box-shadow:0 5px 16px rgba(56,37,25,.14);
  cursor:zoom-in;
}
.promo-thumb-btn img{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:9/16;
  object-fit:contain;
  object-position:center;
  background:#f6efe5;
  border-radius:15px;
  transition:transform .18s ease,filter .18s ease;
}
.promo-thumb-btn:hover img{transform:scale(1.025);filter:brightness(.96)}
.promo-thumb-placeholder{background:#f1e7da;border:1px solid rgba(75,52,34,.12)}

/* ---------- Lightbox promo ---------- */
.promo-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(20,13,9,.84);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
.promo-lightbox.is-open{display:flex}
.promo-lightbox-dialog{position:relative;width:min(540px,94vw);max-height:92vh;display:flex;align-items:center;justify-content:center}
.promo-lightbox-img{display:block;max-width:100%;max-height:88vh;width:auto;height:auto;object-fit:contain;background:#fff;border-radius:18px;box-shadow:0 22px 70px rgba(0,0,0,.42)}
.promo-lightbox-close{position:absolute;top:-13px;right:-13px;z-index:2;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--booking-danger);border:2px solid rgba(255,255,255,.78);border-radius:50%;box-shadow:0 5px 18px rgba(0,0,0,.28);font-size:25px;font-weight:700;line-height:1;cursor:pointer}

/* ---------- Checkbox e privacy ---------- */
.check-row{display:flex;align-items:flex-start;gap:9px;margin-top:12px;color:#5e5040;font-size:13px;line-height:1.4}
.check-row input{margin-top:2px;accent-color:#9a671d}
.privacy-link{appearance:none;padding:0;color:#8f5d16;background:none;border:0;text-decoration:underline;font:inherit;font-weight:600;cursor:pointer}
.privacy-overlay{position:absolute;inset:0;z-index:40;display:none;align-items:center;justify-content:center;padding:10px;background:rgba(0,0,0,.58)}
.privacy-overlay.is-open{display:flex}
.privacy-dialog{width:min(720px,100%);max-height:calc(100% - 20px);display:flex;flex-direction:column;overflow:hidden;color:#24201b;background:#fff;border:1px solid #d9c49c;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.36)}
.privacy-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid #ece4d8}
.privacy-head strong{font-size:20px;font-weight:600}
.privacy-x{width:38px;height:38px;background:#fff;border:1px solid #d8c7aa;border-radius:50%;font-size:23px;cursor:pointer}
.privacy-content{padding:17px;overflow:auto;font-size:15px;line-height:1.6}
.privacy-content h3{margin:17px 0 5px;font-size:17px;font-weight:600}
.privacy-content p{margin:0 0 10px;color:#51483d}
.privacy-actions{padding:13px 17px;background:#fff;border-top:1px solid #ece4d8}
.privacy-accept{width:100%;min-height:50px;color:var(--booking-gold-text);background:var(--booking-gold);border:1px solid var(--booking-gold-border);border-radius:14px;box-shadow:0 5px 14px rgba(188,142,52,.18);font-size:16px;font-weight:600;cursor:pointer}
.privacy-accept:hover{background:var(--booking-gold-hover)}

/* ---------- OTP ---------- */
.otp-box{max-width:500px;margin:15px auto;text-align:center}
.otp-input{letter-spacing:.34em;text-align:center;font-size:25px;font-weight:700}
.demo-code{display:none;margin:12px 0;padding:12px;color:#5b4018;background:#fff1cc;border:1px solid #d4ae5a;border-radius:12px;font-size:13px}
.demo-code.show{display:block}
.demo-code b{font-size:18px;letter-spacing:.14em}
.otp-sent-note{margin-bottom:12px;color:#655746;font-size:15px;line-height:1.5}
.otp-fallback{display:none;width:100%;margin-top:14px;padding:0;color:#6b5a45;background:none;border:0;font-size:14px;line-height:1.5;text-align:center;cursor:pointer}
.otp-fallback.is-visible{display:block}
.otp-fallback span{color:#8f5d16;text-decoration:underline;font-weight:600}

/* ---------- Errori ---------- */
.booking-error{display:none;margin:12px 0;padding:10px 12px;color:#8a261f;background:#fff0ef;border:1px solid #d99b96;border-radius:12px;font-size:13px}
.booking-error.show{display:block}

/* ---------- Footer wizard ---------- */
.booking-footer{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  gap:10px;
  padding:12px 14px max(12px,env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97);
  border-top:1px solid #e7e0d5;
  backdrop-filter:blur(10px);
}
.booking-btn{flex:1;min-height:49px;padding:10px 15px;border:1px solid #9d7b47;border-radius:14px;font-weight:700;cursor:pointer}
.booking-btn.secondary{color:#33291e;background:#fff}
.booking-btn.primary{color:var(--booking-gold-text);background:var(--booking-gold);border-color:var(--booking-gold-border);box-shadow:0 5px 14px rgba(188,142,52,.18)}
.booking-btn.primary:hover{background:var(--booking-gold-hover)}
.booking-btn:disabled{opacity:.45;cursor:not-allowed}

/* ---------- Riepilogo e conferma ---------- */
.summary{margin:14px 0;overflow:hidden;background:#fff;border:1px solid #e2d5c1;border-radius:18px}
.summary-row{display:flex;justify-content:space-between;gap:15px;padding:11px 14px;border-bottom:1px solid #ece2d4}
.summary-row:last-child{border-bottom:0}
.summary-row span{color:#7b6a55}
.summary-row strong{color:#2b2118;text-align:right}
.confirmation{text-align:center;padding:8px 0}
.confirmation .ok{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 10px;color:#26743a;background:#e8f6ea;border:1px solid #a6d7ae;border-radius:50%;font-size:36px}
.booking-code{display:inline-block;padding:9px 14px;color:#5b3c10;background:#fff7e8;border:1px dashed #9e742d;border-radius:12px;font-size:20px;font-weight:700;letter-spacing:.08em}

.save-booking-box{margin-top:16px;padding:16px;color:#2f2922;background:#fffaf2;border:1px solid #e1d4c4;border-radius:16px}
.save-booking-box>strong{font-size:18px}
.save-booking-box p{margin:7px 0 13px;color:#6d6257;font-size:14px;line-height:1.45}
.save-booking-actions{display:grid;grid-template-columns:1fr;gap:9px}
.save-action{display:flex;align-items:center;justify-content:center;min-height:47px;border-radius:12px;font-weight:750;text-decoration:none}
.save-action.whatsapp{color:#fff;background:#25D366}
.save-action.calendar{color:#fff;background:#111}
.save-action.manage{color:var(--booking-gold-text);background:var(--booking-gold)}

/* ---------- Ultime prenotazioni ---------- */
.my-bookings{display:grid;gap:12px;margin-top:14px}
.booking-card{max-width:100%;padding:14px;background:#fff;border:1px solid #e2d5c1;border-radius:17px;box-sizing:border-box}
.booking-card *{max-width:100%;box-sizing:border-box}
.booking-card.cancelled{opacity:.58}
.booking-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.booking-card h3{margin:0;color:#2e2319}
.booking-card small{color:#76644f}
.status-pill{padding:5px 8px;color:#2a6d37;background:#e7f4e9;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.status-pill.cancelled{color:#8c332c;background:#f2e3e1}
.booking-card-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;width:100%;min-width:0;margin-top:11px;overflow:hidden}
.booking-card-actions .mini-btn{width:100%;min-width:0;padding:10px 6px;color:#fff;background:var(--booking-brown-dark);border:1px solid var(--booking-brown-dark);border-radius:11px;font-size:11px;font-weight:600;line-height:1.15;text-align:center;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.booking-card-actions .mini-btn:hover{background:#2f1f15}
.booking-card-actions .mini-btn.danger{color:#fff;background:var(--booking-danger);border-color:#651919}
.booking-card-actions .mini-btn.danger:hover{background:#651919}
.identity-box{max-width:520px;margin:15px auto;padding:16px;background:#fff;border:1px solid #d5c4a9;border-radius:17px}
.device-note{margin-top:12px;color:#806f5b;font-size:11px;text-align:center}

/* ---------- Conferma annullamento ---------- */
.cancel-confirm-overlay{position:absolute;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:14px;background:rgba(0,0,0,.64)}
.cancel-confirm-overlay.is-open{display:flex}
.cancel-confirm-dialog{width:min(520px,100%);overflow:hidden;background:#fff;border:1px solid #ddb4ad;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.38)}
.cancel-confirm-head{padding:18px 18px 10px;text-align:center}
.cancel-confirm-icon{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 10px;color:#fff;background:#8a2525;border-radius:50%;font-size:30px;font-weight:700}
.cancel-confirm-head h3{margin:0;color:#651d1d;font-size:24px;font-weight:650}
.cancel-confirm-body{padding:0 18px 17px;color:#5a4a42;font-size:16px;line-height:1.55;text-align:center}
.cancel-confirm-code{display:inline-block;margin-top:7px;padding:6px 10px;color:#7d2525;background:#f7eeee;border-radius:10px;font-weight:700}
.cancel-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 18px 18px;border-top:1px solid #eee3df}
.cancel-dialog-btn{min-height:48px;border-radius:13px;font-size:15px;font-weight:650;cursor:pointer}
.cancel-dialog-btn.back{color:#3c332b;background:#fff;border:1px solid #cfc0ae}
.cancel-dialog-btn.confirm{color:#fff;background:#821f1f;border:1px solid #821f1f}

/* ---------- Responsive ---------- */
@media(min-width:560px){
  .save-booking-actions{grid-template-columns:1fr 1fr}
  .save-action.manage{grid-column:1/-1}
}

@media(max-width:650px){
  .booking-layer{padding:4px}
  .booking-dialog{width:calc(100vw - 8px);height:calc(100dvh - 8px);border-radius:18px}
  .booking-body{padding:16px 13px 105px}
  .booking-grid{grid-template-columns:1fr}
  .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .promo-options{grid-template-columns:1fr}
  .booking-head-logo{width:72px;height:44px}
  .people-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(max-width:560px){
  .booking-head{gap:8px;padding-left:10px;padding-right:10px}
  .booking-head-logo{width:72px;height:44px}
  .booking-head .support-quick{width:38px;height:38px;flex-basis:38px}
  .booking-close{width:40px;height:40px;flex-basis:40px}
}

@media(max-width:520px){
  .slot-service-title{font-size:15px}
}

@media(max-width:480px){
  .promo-choice-row{gap:10px}
  .promo-thumb-btn,
  .promo-thumb-placeholder{flex-basis:102px;width:102px}
  .promo-choice-row .promo-choice{padding:13px 12px}
  .promo-lightbox{padding:14px}
  .promo-lightbox-close{top:-10px;right:-7px}
}

@media(max-width:380px){
  .slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .booking-card-actions{gap:6px}
  .booking-card-actions .mini-btn{padding:9px 4px;font-size:10px}
}

@media(max-width:370px){
  .promo-thumb-btn,
  .promo-thumb-placeholder{flex-basis:94px;width:94px}
  .promo-choice-row{gap:8px}
}


/* Promo con requisito persone non soddisfatto */
.promo-choice-row.is-ineligible .promo-choice{
  background:#f4efe7;
  border-color:#d7c8b4;
  color:#756858;
  box-shadow:none;
  cursor:not-allowed;
  opacity:.84;
}
.promo-choice-row.is-ineligible .promo-thumb-btn{opacity:.84}
.promo-choice.is-disabled{cursor:not-allowed}
.promo-people-rule{
  display:inline-flex;
  align-self:flex-start;
  margin-top:10px;
  padding:5px 9px;
  border-radius:999px;
  background:var(--ds-gold-active);
  color:var(--ds-gold-active-text);
  border:1px solid var(--ds-gold-active-border);
  font-style:normal;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
}
.promo-choice.is-disabled .promo-people-rule{
  background:#7a1f1f;
  color:#fff;
  border-color:#651919;
}
.promo-people-warning{
  display:block;
  margin-top:7px;
  color:#7a1f1f;
  font-size:12px;
  line-height:1.3;
  font-weight:800;
}


/* Indicatore discreto: la locandina promo è cliccabile/ingrandibile */
.promo-thumb-btn{
  position:relative;
}
.promo-zoom-icon{
  position:absolute;
  right:7px;
  bottom:7px;
  width:27px;
  height:27px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(58,40,27,.78);
  color:#fff;
  border:1px solid rgba(255,255,255,.72);
  pointer-events:none;
  box-shadow:0 2px 7px rgba(0,0,0,.18);
}
.promo-zoom-icon svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(max-width:370px){
  .promo-zoom-icon{
    right:6px;
    bottom:6px;
    width:24px;
    height:24px;
  }
  .promo-zoom-icon svg{
    width:13px;
    height:13px;
  }
}


/* Riepilogo sintetico nelle ultime prenotazioni */
.booking-card-top{
  justify-content:flex-end;
}
.booking-card-summary{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:4px 0 14px;
  min-width:0;
}
.booking-card-summary strong{
  color:#322318;
  font-size:16px;
  line-height:1.25;
}
.booking-card-summary span{
  color:#6b5b4c;
  font-size:14px;
  line-height:1.3;
}
.booking-card-summary .booking-card-promo{
  color:#8a641f;
  font-weight:800;
}

/* Motivazione facoltativa annullamento */
.cancel-reason-box{
  margin:16px 0 0;
  padding:13px 12px 9px;
  border:1px solid #dccdbb;
  border-radius:14px;
  background:#fffaf4;
}
.cancel-reason-box legend{
  padding:0 5px;
  color:#3a281b;
  font-size:14px;
  font-weight:900;
}
.cancel-reason-box legend span{
  color:#817264;
  font-size:12px;
  font-weight:600;
}
.cancel-reason-option{
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px 4px;
  color:#49392d;
  font-size:14px;
  cursor:pointer;
}
.cancel-reason-option input{
  margin:0;
  accent-color:#b98b33;
}
