/* Widget prenotazioni — stessa lingua visiva del tema (sf-btn-yellow,
   sf-step-option, sf-stepform), non un componente a parte (23/09/2026). */
.sfpb-widget {
  width: 100%;
  max-width: 560px;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 32px 26px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,0.35);
  font-size: 14px;
}
.sfpb-widget h3 {
  font-size: 22px; font-weight: 800; text-transform: uppercase;
  letter-spacing: -0.01em; margin: 0 0 18px; color: var(--black);
}

/* step "tipo" */
.sfpb-tipo-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 480px) { .sfpb-tipo-grid { grid-template-columns: 1fr 1fr; } }
.sfpb-tipo-btn {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 24px 14px; border: 2px solid var(--gray-200); border-radius: var(--radius-md);
  background: var(--white); cursor: pointer; font-weight: 800; font-size: 13px; color: var(--black);
  transition: border-color 0.2s ease, background 0.2s ease;
}
.sfpb-tipo-btn:hover { border-color: var(--yellow); background: var(--yellow-soft); }
.sfpb-tipo-icon { font-size: 28px; }

.sfpb-back {
  display: inline-flex; align-items: center; gap: 6px; background: none; border: none;
  padding: 0; margin-bottom: 20px; font-size: 11px; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--gray-500); cursor: pointer;
}
.sfpb-back:hover { color: var(--black); }

/* step "data" */
.sfpb-date-input {
  width: 100%; padding: 12px 14px; border: 1px solid var(--gray-200); border-radius: var(--radius-sm);
  font-size: 14px; font-family: inherit; color: var(--black); margin-bottom: 18px;
}
.sfpb-date-input:focus { outline: none; border-color: var(--yellow-dark); }
.sfpb-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 10px; }
.sfpb-slot-btn {
  padding: 11px 4px; border: 2px solid var(--gray-200); border-radius: var(--radius-sm);
  background: var(--white); cursor: pointer; font-weight: 800; font-size: 13px; color: var(--black);
  transition: border-color 0.2s ease, background 0.2s ease;
}
.sfpb-slot-btn:hover { border-color: var(--yellow); background: var(--yellow-soft); }
.sfpb-loading, .sfpb-empty { color: var(--gray-500); font-size: 13px; grid-column: 1 / -1; }

/* step "form" */
.sfpb-slot-riepilogo {
  font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: 0.04em;
  margin-bottom: 18px; padding: 12px 14px; background: var(--yellow-soft); color: var(--black);
  border-radius: var(--radius-sm);
}
.sfpb-step-form label {
  display: block; margin-bottom: 14px; font-weight: 800; font-size: 10px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--gray-500);
}
.sfpb-step-form input, .sfpb-step-form textarea {
  display: block; width: 100%; margin-top: 6px; padding: 12px 14px;
  border: 1px solid var(--gray-200); border-radius: var(--radius-sm); font-size: 14px; font-weight: 400;
  font-family: inherit; color: var(--black); box-sizing: border-box; transition: border-color 0.2s ease;
}
.sfpb-step-form input:focus, .sfpb-step-form textarea:focus { outline: none; border-color: var(--yellow-dark); }
#sfpb-turnstile { display: flex; justify-content: center; min-height: 65px; margin: 4px 0 18px; }

.sfpb-btn-primary {
  display: inline-flex; align-items: center; justify-content: center; width: 100%;
  padding: 15px 28px; border: 2px solid transparent; border-radius: var(--radius-sm);
  background: var(--yellow); color: var(--black);
  font-weight: 800; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
  cursor: pointer; transition: transform 0.15s ease, background 0.15s ease;
}
.sfpb-btn-primary:hover { background: var(--yellow-dark); }
.sfpb-btn-primary:active { transform: scale(0.97); }
.sfpb-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.sfpb-error { color: #c0392b; font-size: 13px; margin-top: 12px; font-weight: 600; }

/* step "done" */
.sfpb-step-done { text-align: center; padding: 30px 10px; }
.sfpb-done-icon {
  width: 60px; height: 60px; margin: 0 auto 16px; border-radius: 50%;
  background: #e6f6ea; color: #0a7a2f; display: flex; align-items: center; justify-content: center;
  font-size: 28px;
}
.sfpb-step-done h3 { text-transform: none; }
.sfpb-step-done p { color: var(--gray-500); font-size: 13px; line-height: 1.6; }

/* sezione che ospita il widget: massima priorita' in pagina, sopra al form
   classico. Tutto impilato e centrato, su ogni larghezza (23/09/2026). */
.sf-contatti-booking { background: var(--black); padding: 40px 0 48px; }
.sf-contatti-booking-grid { display: grid; grid-template-columns: 1fr; gap: 32px; justify-items: center; }
.sf-contatti-booking-text { text-align: center; max-width: 640px; margin: 0 auto; }
.sf-contatti-booking-eyebrow, .sf-contatti-booking-eyebrow-2 { color: var(--yellow); margin-bottom: 6px; justify-content: center; }
.sf-contatti-booking-eyebrow-2 { margin-top: 28px; }
.sf-contatti-booking-h1 {
  font-size: 32px; font-weight: 800; text-transform: uppercase; line-height: 1.15;
  color: var(--white); margin: 0 auto 16px; max-width: 560px;
}
.sf-contatti-booking-intro {
  max-width: 560px; margin: 0 auto; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,0.75);
}
.sf-contatti-booking-intro strong { color: var(--white); }
.sf-contatti-booking-text h2 {
  color: var(--white); font-size: 26px; font-weight: 800; text-transform: uppercase;
  line-height: 1.15; margin: 0 auto 10px; max-width: 560px;
}
.sf-contatti-booking-sub { color: rgba(255,255,255,0.65); font-size: 15px; max-width: 460px; margin: 0 auto; }
.sf-contatti-booking-divider {
  text-align: center; margin-top: 30px; font-size: 12px; font-weight: 800;
  letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.4);
}
.sf-contatti-booking-widget-col { display: flex; justify-content: center; width: 100%; }
@media (min-width: 1024px) {
  .sf-contatti-booking { padding: 70px 0 80px; }
  .sf-contatti-booking-h1 { font-size: 46px; }
  .sf-contatti-booking-text h2 { font-size: 32px; }
}

/* pagina /prenota/: solo il calendario, da mandare ai clienti */
body.sfpb-standalone { margin: 0; background: var(--black); min-height: 100vh; }
.sfpb-standalone-main { max-width: 600px; margin: 0 auto; padding: 36px 16px 48px; box-sizing: border-box; }
.sfpb-standalone-head { text-align: center; margin-bottom: 26px; }
.sfpb-standalone-brand { display: block; color: var(--yellow); font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 14px; }
.sfpb-standalone-head h1 { color: var(--white); font-size: 30px; font-weight: 800; text-transform: uppercase; line-height: 1.15; margin: 0 0 12px; }
.sfpb-standalone-head p { color: rgba(255,255,255,0.7); font-size: 15px; line-height: 1.5; margin: 0; }
.sfpb-standalone-foot { text-align: center; margin: 26px 0 0; font-size: 12px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.sfpb-standalone-foot { margin-top: 30px; }
.sfpb-standalone-explore {
  display: inline-flex; align-items: center; justify-content: center; padding: 15px 30px;
  border: 2px solid var(--yellow); border-radius: var(--radius-sm); color: var(--yellow);
  font-weight: 800; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.sfpb-standalone-explore:hover, .sfpb-standalone-explore:focus-visible { background: var(--yellow); color: var(--black); }
.sfpb-privacy { font-size: 12px; line-height: 1.5; color: var(--gray-500); margin: 4px 0 14px; }
.sfpb-privacy a { color: inherit; text-decoration: underline; }

.sfpb-standalone-legal { text-align: center; margin: 22px 0 0; font-size: 12px; color: rgba(255,255,255,0.45); }
.sfpb-standalone-legal a { color: rgba(255,255,255,0.55); text-decoration: underline; }

.sfpb-meet { margin-top: 14px; padding: 12px 14px; background: var(--yellow-soft); border-radius: var(--radius-sm); font-size: 13px; font-weight: 700; color: var(--black); word-break: break-all; }
.sfpb-meet a { color: var(--black); text-decoration: underline; }

.sfpb-meet-notice { display: flex; flex-direction: column; gap: 4px; margin: 4px 0 14px; padding: 14px 16px; background: var(--yellow-soft); border-radius: var(--radius-sm); font-size: 13px; line-height: 1.5; color: var(--black); }
.sfpb-meet-notice[hidden] { display: none; }
.sfpb-meet-notice strong { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }

.sfpb-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* calendario non raggiungibile (02/10/2026) */
.sfpb-down{grid-column:1/-1;width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.sfpb-down .sfpb-empty{margin:0}
.sfpb-wa{display:inline-flex;align-items:center;gap:8px;background:#25d366;color:#fff!important;border-radius:999px;padding:12px 22px;font-weight:600;text-decoration:none}
.sfpb-wa:hover{filter:brightness(.95)}
