@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Sans:wght@300;400;500&display=swap');

/* Tema chiaro, identico nella palette al gestionale: --fpb-white contiene il colore del TESTO
   (nome storico, valore invertito rispetto alla versione scura originale). --fpb-accent resta
   l'oro del brand per sfondi/bordi; --fpb-accent-text è la variante più scura per il testo,
   dove l'oro chiaro non avrebbe contrasto sufficiente su sfondo chiaro. */
.fpb-root{
	--fpb-bg:#F4F1EC;--fpb-card:#FFFFFF;--fpb-input:#FFFFFF;--fpb-white:#211D18;
	--fpb-muted:rgba(33,29,24,.68);--fpb-accent:#D4A574;--fpb-accent-d:#B88A5A;--fpb-accent-text:#8B5E2E;
	--fpb-border:rgba(0,0,0,.12);
	font-family:'DM Sans',sans-serif;background:transparent;color:var(--fpb-white);
	max-width:640px;margin:0 auto;padding:clamp(24px,5vw,48px);box-sizing:border-box;
}
.fpb-root *{box-sizing:border-box;}
.fpb-h{font-family:'Playfair Display',serif;font-weight:300;font-size:clamp(1.5rem,4vw,2.2rem);margin:0 0 20px;color:var(--fpb-white);}
.fpb-h em{font-style:italic;color:var(--fpb-accent-text);}

/* step indicator */
.fpb-steps{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:32px;}
.fpb-step-dot{width:28px;height:28px;border-radius:50%;border:1px solid var(--fpb-border);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--fpb-muted);position:relative;flex-shrink:0;}
.fpb-step-dot.active{border-color:var(--fpb-accent);color:var(--fpb-accent-text);}
.fpb-step-dot.done{background:var(--fpb-accent);border-color:var(--fpb-accent);color:#0f0f0f;}
.fpb-step-dot span{position:absolute;top:34px;left:50%;transform:translateX(-50%);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;color:var(--fpb-muted);}
.fpb-step-dot.active span{color:var(--fpb-white);}
.fpb-step-line{width:40px;height:1px;background:var(--fpb-border);flex-shrink:0;}

.fpb-panel{display:none;}
.fpb-panel-active{display:block;animation:fpbFade .4s ease;}
@keyframes fpbFade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* services list */
.fpb-services-list{display:flex;flex-direction:column;gap:20px;}
.fpb-cat-title{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fpb-accent-text);opacity:.85;margin-bottom:8px;}
.fpb-service-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--fpb-card);border:1px solid var(--fpb-border);cursor:pointer;transition:border-color .25s,background .25s;margin-bottom:6px;}
.fpb-service-item:hover{border-color:var(--fpb-accent);background:#FBF6EE;}
.fpb-service-item.selected{border-color:var(--fpb-accent);background:#F5EBD8;}
.fpb-service-item.selected .fpb-service-name::before{content:'\2713';color:var(--fpb-accent-text);margin-right:6px;}
.fpb-multi-hint{font-size:.72rem;line-height:1.6;color:var(--fpb-muted);margin-bottom:16px;}
.fpb-selection-bar{font-size:.78rem;color:var(--fpb-white);min-height:16px;margin-top:14px;line-height:1.6;}
.fpb-selection-bar strong{color:var(--fpb-accent-text);font-weight:500;}
.fpb-selection-totals{color:var(--fpb-muted);font-size:.72rem;}
.fpb-service-name{font-size:.85rem;font-weight:400;color:var(--fpb-white);}
.fpb-service-time{font-size:.65rem;color:var(--fpb-muted);margin-top:2px;}
.fpb-service-price{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--fpb-accent-text);white-space:nowrap;margin-left:12px;}
.fpb-loading{color:var(--fpb-muted);font-size:.85rem;}

/* step 2 */
.fpb-selected-service{font-size:.8rem;color:var(--fpb-muted);margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--fpb-border);}
.fpb-selected-service strong{color:var(--fpb-accent-text);font-weight:400;}
.fpb-date-row{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;}
.fpb-date-row label{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--fpb-accent-text);opacity:.9;}
.fpb-input{background:var(--fpb-input);border:1px solid var(--fpb-border);color:var(--fpb-white);padding:12px 14px;font-family:'DM Sans',sans-serif;font-size:.85rem;width:100%;}
.fpb-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;margin-bottom:20px;min-height:40px;}
.fpb-slot-btn{padding:10px 6px;background:var(--fpb-card);border:1px solid var(--fpb-border);color:var(--fpb-white);font-size:.78rem;cursor:pointer;transition:all .2s;}
.fpb-slot-btn:hover{border-color:var(--fpb-accent);}
.fpb-slot-btn.selected{background:var(--fpb-accent);color:#0f0f0f;border-color:var(--fpb-accent);}
.fpb-slots-empty,.fpb-slots-hint{color:var(--fpb-muted);font-size:.8rem;padding:10px 0;}

/* step 3 form */
.fpb-recap{font-size:.8rem;color:var(--fpb-muted);margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--fpb-border);}
.fpb-recap strong{color:var(--fpb-accent-text);font-weight:400;}
.fpb-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fpb-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.fpb-field label{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fpb-muted);}
.fpb-field input,.fpb-field select,.fpb-field textarea{background:var(--fpb-input);border:1px solid var(--fpb-border);color:var(--fpb-white);padding:11px 12px;font-family:'DM Sans',sans-serif;font-size:.85rem;width:100%;}
.fpb-field textarea{resize:vertical;}
.fpb-checkbox{display:flex;align-items:flex-start;gap:8px;font-size:.75rem;color:var(--fpb-muted);margin-bottom:12px;line-height:1.5;cursor:pointer;}
.fpb-checkbox input{margin-top:3px;}
.fpb-checkbox a{color:var(--fpb-accent-text);}
.fpb-hp{position:absolute;left:-9999px;opacity:0;}
.fpb-error{color:#b3261e;font-size:.78rem;margin:8px 0;min-height:18px;}

/* actions / buttons */
.fpb-actions{display:flex;justify-content:space-between;gap:12px;margin-top:12px;}
.fpb-btn-primary{background:var(--fpb-accent);color:#0f0f0f;border:none;padding:13px 30px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;font-weight:500;transition:background .25s;}
.fpb-btn-primary:hover{background:var(--fpb-accent-d);}
.fpb-btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.fpb-btn-ghost{background:transparent;color:var(--fpb-muted);border:1px solid var(--fpb-border);padding:13px 22px;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:all .25s;}
.fpb-btn-ghost:hover{color:var(--fpb-white);border-color:rgba(0,0,0,.35);background:rgba(0,0,0,.03);}

/* step 4 success */
.fpb-success{text-align:center;padding:20px 0;}
.fpb-success-icon{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--fpb-accent);color:var(--fpb-accent-text);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:1.3rem;}
.fpb-success-note{font-size:.78rem;color:var(--fpb-muted);margin-top:16px;}
#fpb-success-text{color:var(--fpb-white);font-size:.9rem;line-height:1.7;}
#fpb-success-text strong{color:var(--fpb-accent-text);font-weight:400;}

/* messaggi generici (es. pagina "La mia prenotazione": stato, errori di caricamento) */
.fpb-msg{color:var(--fpb-white);font-size:.85rem;line-height:1.7;}

/* credits Anti Studio + pop-up (stessi nomi di classe/markup del sito, adattati alle variabili del widget) */
.fpb-anti-credit{display:block;text-align:center;margin-top:32px;padding-top:20px;font-size:.68rem;color:var(--fpb-muted);text-decoration:none;letter-spacing:.02em;}
.fpb-anti-credit-logo{display:block;width:36px;height:auto;margin:0 auto 8px;opacity:.85;}
.fpb-anti-credit:hover{color:var(--fpb-accent-text);}
.fpb-credits-popup-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99999;align-items:center;justify-content:center;padding:20px;}
.fpb-credits-popup-overlay.open{display:flex;}
.fpb-credits-popup-box{background:var(--fpb-card);border:1px solid var(--fpb-border);border-top:3px solid var(--fpb-accent);padding:28px;width:100%;max-width:340px;text-align:center;box-shadow:0 12px 40px rgba(0,0,0,.2);}
.fpb-credits-popup-title{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:300;color:var(--fpb-white);margin-bottom:6px;}
.fpb-credits-popup-title em{font-style:italic;color:var(--fpb-accent-text);}
.fpb-credits-popup-sub{font-size:.78rem;color:var(--fpb-muted);margin-bottom:20px;}
.fpb-credits-popup-btns{display:flex;flex-direction:column;gap:10px;}
.fpb-credits-popup-btns a{text-decoration:none;}

/* pop-up Privacy Policy (contenuto lungo, scorrevole) */
.fpb-privacy-popup-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99999;align-items:center;justify-content:center;padding:20px;}
.fpb-privacy-popup-overlay.open{display:flex;}
.fpb-privacy-popup-box{background:var(--fpb-card);border:1px solid var(--fpb-border);border-top:3px solid var(--fpb-accent);width:100%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.2);}
.fpb-privacy-popup-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--fpb-border);flex-shrink:0;}
.fpb-privacy-popup-title{font-family:'Playfair Display',serif;font-size:1.25rem;font-weight:300;color:var(--fpb-white);}
.fpb-privacy-popup-title em{font-style:italic;color:var(--fpb-accent-text);}
.fpb-privacy-popup-close{background:none;border:none;color:var(--fpb-muted);font-size:.95rem;cursor:pointer;padding:4px;line-height:1;}
.fpb-privacy-popup-close:hover{color:var(--fpb-white);}
.fpb-privacy-popup-body{padding:20px 24px;overflow-y:auto;font-size:.78rem;line-height:1.65;color:var(--fpb-muted);}
.fpb-privacy-popup-body h3{font-size:.85rem;color:var(--fpb-white);margin:18px 0 8px;font-weight:500;}
.fpb-privacy-popup-body h3:first-of-type{margin-top:0;}
.fpb-privacy-popup-body p{margin:0 0 10px;}
.fpb-privacy-popup-body ul{margin:0 0 10px 18px;padding:0;}
.fpb-privacy-popup-body li{margin-bottom:7px;}
.fpb-pp-label{color:var(--fpb-white);font-weight:500;}
.fpb-privacy-popup-footer{padding:14px 24px;border-top:1px solid var(--fpb-border);flex-shrink:0;}

@media(max-width:480px){
	.fpb-grid2{grid-template-columns:1fr;gap:0;}
	.fpb-step-dot span{display:none;}
}
