/* QuidBooking — Public CSS — Palette ufficiale */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#133a7d;
  --navy-dark:#0d2a5e;
  --navy-deeper:#091d42;
  --green:#5FD68B;
  --teal:#0E7C7B;
  --teal-light:#12A09E;
  --slate:#5C6F82;
  --body:#4A5568;
  --bg:#F8F9FA;
  --gray-100:#E9ECEF;
  --gray-200:#DEE2E6;
  --gray-300:#CED4DA;
  --radius:4px;
}
body{font-family:'Titillium Web',system-ui,-apple-system,sans-serif;color:#1B2A3B;line-height:1.6;background:#fff}
a{color:var(--teal)}

/* ═══ NAV ═══ */
.qb-pub-nav{display:flex;align-items:center;justify-content:center;padding:0 2rem;background:#fff;height:60px;position:sticky;top:0;z-index:100;border-bottom:1px solid var(--gray-200)}
.qb-pub-nav-inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1100px}
.qb-pub-logo{text-decoration:none;display:flex;align-items:center}
.qb-pub-logo img{height:36px}
.qb-pub-nav-right{display:flex;align-items:center;gap:1.5rem}
.qb-pub-nav-link{color:var(--slate);text-decoration:none;font-size:.85rem;font-weight:600;transition:color .2s}
.qb-pub-nav-link:hover{color:var(--navy)}
.qb-pub-nav-accedi{display:inline-flex;align-items:center;gap:6px;color:#fff;background:var(--navy);padding:.45rem 1.15rem;border-radius:var(--radius);font-size:.82rem;font-weight:600;text-decoration:none;transition:all .15s}
.qb-pub-nav-accedi:hover{background:var(--navy-dark);color:#fff}

/* ═══ HERO — 2 colonne ═══ */
.qb-hero{background:var(--navy);padding:4.5rem 2rem 4rem;position:relative;overflow:hidden;display:flex;justify-content:center}
.qb-hero-inner{position:relative;z-index:1;max-width:1100px;width:100%;display:flex;gap:3rem;align-items:center}
.qb-hero-left{flex:1;min-width:0}
.qb-hero-right{flex:0 0 420px;display:flex;justify-content:center;align-items:center}
.qb-hero-bg-glow{position:absolute;top:-100px;right:-60px;width:480px;height:480px;pointer-events:none;background:radial-gradient(circle,rgba(95,214,139,.12) 0%,transparent 65%)}
.qb-hero-tag{display:inline-flex;align-items:center;gap:7px;background:rgba(95,214,139,.12);border:1px solid rgba(95,214,139,.3);color:var(--green);padding:.3rem .9rem;border-radius:20px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.5rem}
.qb-dot-pulse{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.qb-hero-title{font-size:2.8rem;color:#fff;line-height:1.15;max-width:640px;margin-bottom:1.25rem;letter-spacing:-.01em;font-weight:700}
.qb-hero-title em{color:var(--green);font-style:normal}
.qb-hero-sub{color:rgba(255,255,255,.55);font-size:1rem;max-width:520px;line-height:1.75;margin-bottom:1.75rem}

/* Mockup browser nella hero */
.qb-mockup{background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden;width:100%}
.qb-mockup-bar{background:#f0f0f0;padding:8px 12px;display:flex;align-items:center;gap:6px;border-bottom:1px solid #e0e0e0}
.qb-mockup-dot{width:8px;height:8px;border-radius:50%}
.qb-mockup-dot-r{background:#ff5f57}
.qb-mockup-dot-y{background:#febc2e}
.qb-mockup-dot-g{background:#28c840}
.qb-mockup-body{padding:1.25rem;font-size:.75rem;color:var(--slate)}
.qb-mockup-step{display:flex;gap:.5rem;margin-bottom:1rem}
.qb-mockup-step-item{flex:1;height:3px;border-radius:2px;background:var(--gray-200)}
.qb-mockup-step-item.active{background:var(--teal)}
.qb-mockup-row{background:var(--bg);border-radius:6px;padding:.6rem .8rem;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}
.qb-mockup-row-label{font-weight:600;color:var(--navy);font-size:.72rem}
.qb-mockup-row-val{color:var(--slate);font-size:.7rem}
.qb-mockup-btn{display:block;background:var(--teal);color:#fff;text-align:center;padding:.45rem;border-radius:var(--radius);font-weight:600;font-size:.72rem;margin-top:.75rem}

/* Floating cards */
.qb-float-card{position:absolute;background:#fff;border-radius:10px;padding:.75rem 1rem;box-shadow:0 8px 24px rgba(0,0,0,.15);font-size:.75rem;display:flex;align-items:center;gap:8px;animation:floatUp 3s ease-in-out infinite}
.qb-float-card-top{top:10%;right:-30px}
.qb-float-card-bottom{bottom:15%;left:-20px}
@keyframes floatUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.qb-float-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0}
.qb-float-icon-green{background:rgba(95,214,139,.15);color:#28a745}
.qb-float-icon-blue{background:rgba(19,58,125,.1);color:var(--navy)}

/* PILLS */
.qb-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}
.qb-pill{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.78);padding:.3rem .75rem;border-radius:var(--radius);font-size:.75rem;font-weight:500}

/* BOOKING BOX */
.qb-booking-box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:1.75rem 2rem;max-width:540px}
.qb-booking-label{font-size:1rem;color:rgba(255,255,255,.85);margin-bottom:1rem;font-weight:600}
.qb-select-wrap{position:relative;margin-bottom:1rem}
.qb-select,.qb-hero-select{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff;padding:.8rem 2.5rem .8rem 1rem;border-radius:var(--radius);font-size:.9rem;appearance:none;cursor:pointer;font-family:inherit}
.qb-select option,.qb-hero-select option{background:var(--navy-deeper);color:#fff}
.qb-select-arrow,.qb-select-arr{position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.4);pointer-events:none}
.qb-booking-note,.qb-book-note{margin-top:.6rem;font-size:.72rem;color:rgba(255,255,255,.3);text-align:center}

/* ═══ BUTTONS ═══ */
.qb-btn-primary,.qb-btn-book{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--teal);color:#fff;padding:.8rem 1.5rem;border-radius:var(--radius);font-size:.9rem;font-weight:600;border:none;cursor:pointer;text-decoration:none;transition:all .15s;width:100%}
.qb-btn-primary:hover:not(:disabled),.qb-btn-book:hover:not(:disabled){background:var(--teal-light);color:#fff}
.qb-btn-primary:disabled,.qb-btn-book:disabled{opacity:.4;cursor:not-allowed}
.qb-btn-outline{display:inline-flex;align-items:center;gap:6px;color:var(--teal);background:#fff;border:1px solid var(--gray-200);padding:.65rem 1.25rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all .15s}
.qb-btn-outline:hover{border-color:var(--teal);color:var(--navy)}
.qb-btn-ghost{color:var(--teal);text-decoration:none;font-size:.85rem;padding:.65rem;font-weight:600}
.qb-btn-ghost:hover{color:var(--navy)}
.qb-btn-danger{background:#D9364F;color:#fff;padding:.65rem 1.25rem;border-radius:var(--radius);border:none;cursor:pointer;font-size:.85rem;font-weight:600;transition:background .15s}
.qb-btn-danger:hover{background:#b82e43}

/* ═══ FEATURES ═══ */
.qb-features{padding:4rem 2rem;background:var(--bg);display:flex;justify-content:center}
.qb-features-inner{max-width:1100px;width:100%}
.qb-section-tag{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:.5rem}
.qb-section-title{font-size:1.8rem;color:var(--navy);margin-bottom:.6rem;font-weight:700}
.qb-section-sub{color:var(--slate);font-size:.9rem;max-width:480px;line-height:1.65;margin-bottom:2.5rem}
.qb-feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.qb-feat-card{background:#fff;border:1px solid var(--gray-200);border-radius:8px;padding:1.5rem;transition:all .2s}
.qb-feat-card:hover{border-color:var(--teal);box-shadow:0 4px 16px rgba(14,124,123,.08);transform:translateY(-2px)}
.qb-feat-icon{font-size:1.5rem;margin-bottom:.65rem}
.qb-feat-title{font-size:.9rem;color:var(--navy);margin-bottom:.35rem;font-weight:700}
.qb-feat-desc{color:var(--slate);font-size:.82rem;line-height:1.55}

/* ═══ CTA ═══ */
.qb-cta{background:var(--navy);padding:4rem 2rem;text-align:center}
.qb-cta h2{font-size:1.75rem;color:#fff;margin-bottom:.75rem;font-weight:700}
.qb-cta p{color:rgba(255,255,255,.5);margin-bottom:1.5rem;font-size:.95rem}
.qb-cta .qb-btn-primary{width:auto}

/* ═══ FOOTER ═══ */
.qb-pub-footer{background:var(--navy-dark);padding:1.5rem 2rem;display:flex;justify-content:center}
.qb-pub-footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;max-width:1100px;width:100%}
.qb-pub-footer-left{color:rgba(255,255,255,.3);font-size:.75rem}
.qb-pub-footer-left strong{color:rgba(255,255,255,.55)}
.qb-pub-footer-right{display:flex;gap:1.5rem}
.qb-pub-footer-right a{color:rgba(255,255,255,.3);text-decoration:none;font-size:.75rem;transition:color .2s}
.qb-pub-footer-right a:hover{color:rgba(255,255,255,.7)}

/* ═══ WIZARD ═══ */
.qb-wizard-wrap{max-width:800px;margin:0 auto;padding:2rem 1.5rem 4rem}
.qb-wizard-header{margin-bottom:2rem;text-align:center}
.qb-wizard-comune{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--teal);margin-bottom:.3rem}
.qb-wizard-title{font-size:1.6rem;color:var(--navy);font-weight:700}

/* STEP TABS */
.qb-steps{display:flex;border-bottom:2px solid var(--gray-200);margin-bottom:0;gap:0;overflow-x:auto;justify-content:center}
.qb-step{display:flex;align-items:center;gap:0;padding:.85rem 1.25rem;border-bottom:3px solid transparent;cursor:default;white-space:nowrap;transition:all .15s;margin-bottom:-2px}
.qb-step.active{border-bottom-color:var(--teal)}
.qb-step.done{border-bottom-color:var(--teal)}
.qb-step-num{display:none}
.qb-step-label{font-size:.8rem;color:var(--slate);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.qb-step.active .qb-step-label{color:var(--teal)}
.qb-step.done .qb-step-label{color:var(--navy)}
.qb-step-line{display:none}

/* STEP BODY */
.qb-step-body{background:#fff;border:1px solid var(--gray-200);border-top:none;border-radius:0 0 8px 8px;padding:2rem;margin-bottom:0}
.qb-step-title{font-size:1.3rem;color:var(--navy);margin-bottom:.25rem;font-weight:700}
.qb-step-sub{color:var(--slate);font-size:.85rem;margin-bottom:1.5rem}

/* FIELDS */
.qb-field{margin-bottom:1rem}
.qb-label{display:block;font-size:.78rem;font-weight:600;color:var(--navy);margin-bottom:.35rem}
.qb-input{width:100%;border:1px solid var(--gray-300);border-radius:var(--radius);padding:.65rem .85rem;font-size:.88rem;font-family:inherit;transition:border-color .15s;color:#1B2A3B;background:#fff}
.qb-input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px rgba(14,124,123,.15)}
.qb-input.qb-error{border-color:#D9364F}
.qb-err-msg{font-size:.75rem;color:#D9364F;margin-top:.25rem}
.qb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem}
.qb-sede-info{font-size:.78rem;color:var(--slate);display:flex;align-items:center;gap:4px;margin-top:.35rem}

/* PRIVACY */
.qb-privacy{display:flex;align-items:flex-start;gap:10px;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--gray-200)}
.qb-checkbox{margin-top:3px;accent-color:var(--teal);width:18px;height:18px;flex-shrink:0}
.qb-privacy-label{font-size:.82rem;color:var(--body);line-height:1.5}
.qb-privacy-label a{color:var(--teal);font-weight:500}

/* ═══ CALENDARIO ═══ */
.qb-cal{border:1px solid var(--gray-200);border-radius:8px;padding:1.25rem;margin-bottom:1.25rem;background:var(--bg)}
.qb-cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}
.qb-cal-nav-label{font-size:.9rem;font-weight:700;text-transform:capitalize;color:var(--navy)}
.qb-cal-nav button{background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius);padding:.3rem .65rem;cursor:pointer;font-size:.85rem;transition:all .15s;color:var(--navy)}
.qb-cal-nav button:hover{border-color:var(--teal);color:var(--teal)}
.qb-cal-grid-pub{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.qb-cal-head{text-align:center;font-size:.7rem;font-weight:700;color:var(--slate);padding:6px 0;text-transform:uppercase}
.qb-cal-cell{text-align:center;padding:8px 4px;border-radius:var(--radius);font-size:.85rem;cursor:default;transition:all .12s;font-weight:500}
.qb-cal-cell.selectable{cursor:pointer}
.qb-cal-cell.selectable:hover{background:rgba(14,124,123,.12);color:var(--teal)}
.qb-cal-cell.past{color:var(--gray-300)}
.qb-cal-cell.today{font-weight:700;box-shadow:inset 0 0 0 2px var(--teal);border-radius:var(--radius)}
.qb-cal-cell.selected{background:var(--teal)!important;color:#fff!important;font-weight:700}
.qb-cal-cell.day-available{background:#D4EDDA;color:#155724;font-weight:600}
.qb-cal-cell.day-partial{background:#FFF3CD;color:#856404;font-weight:600}
.qb-cal-cell.day-full{background:#F8D7DA;color:#721C24}
.qb-cal-cell.day-closed{background:var(--gray-100);color:var(--gray-300)}
.qb-cal-cell.day-unavailable{background:transparent;color:var(--gray-300)}
.qb-cal-cell.day-loading{animation:calPulse 1.5s infinite}
@keyframes calPulse{0%,100%{opacity:1}50%{opacity:.4}}
.qb-cal-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;justify-content:center}
.qb-cal-legend-item{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--slate)}
.qb-cal-legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}

/* SLOT */
.qb-slots-section{margin-top:1rem}
.qb-slots-label{font-size:.82rem;color:var(--slate);margin-bottom:.75rem;font-weight:600}
.qb-slots-grid{display:flex;flex-wrap:wrap;gap:.4rem}
.qb-slot{padding:.5rem 1rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:.85rem;cursor:pointer;background:#fff;transition:all .12s;font-family:inherit;font-weight:500}
.qb-slot:hover{border-color:var(--teal);color:var(--teal)}
.qb-slot.selected{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
.qb-slot.occupied{background:var(--gray-100);color:var(--gray-300);cursor:not-allowed;border-color:var(--gray-200)}
.qb-loading{color:var(--slate);font-size:.85rem;padding:1rem 0}
.qb-no-slots{color:#856404;background:#FFF3CD;border:1px solid #FFEEBA;border-radius:var(--radius);padding:.75rem 1rem;font-size:.85rem}

/* SUMMARY */
.qb-summary{border:1px solid var(--gray-200);border-radius:8px;overflow:hidden;margin-bottom:1.25rem}
.qb-summary-row{display:flex;justify-content:space-between;padding:.6rem 1rem;font-size:.85rem;border-bottom:1px solid var(--gray-100)}
.qb-summary-row:last-child{border-bottom:none}
.qb-summary-row:nth-child(even){background:var(--bg)}
.qb-summary-label{color:var(--slate);font-weight:600}

/* WIZARD FOOTER */
.qb-wizard-footer{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;background:var(--bg);border:1px solid var(--gray-200);border-top:none;border-radius:0 0 8px 8px}
.qb-wizard-footer-right{display:flex;align-items:center;gap:.75rem}
.qb-wizard-footer .qb-btn-primary{width:auto;padding:.65rem 1.5rem}

/* ═══ CONFIRM ═══ */
.qb-confirm-wrap{max-width:580px;margin:3rem auto;padding:0 1.5rem 4rem;text-align:center}
.qb-confirm-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700;margin:0 auto 1.25rem}
.qb-confirm-ok{background:#D4EDDA;color:#155724}
.qb-confirm-done{background:#D1ECF1;color:#0C5460}
.qb-confirm-cancelled{background:#F8D7DA;color:#721C24}
.qb-confirm-title{font-size:1.6rem;color:var(--navy);margin-bottom:.65rem;font-weight:700}
.qb-confirm-sub{color:var(--slate);margin-bottom:1.75rem;line-height:1.55;font-size:.9rem}
.qb-confirm-card{background:var(--bg);border:1px solid var(--gray-200);border-radius:8px;padding:1.5rem;margin-bottom:1.75rem;text-align:left}
.qb-confirm-code{font-size:.85rem;color:var(--slate);margin-bottom:1rem;text-align:center}
.qb-confirm-code strong{font-size:1.1rem;color:var(--navy);font-family:monospace;letter-spacing:1px}
.qb-confirm-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--gray-200);font-size:.85rem}
.qb-confirm-row:last-child{border-bottom:none}
.qb-confirm-label{color:var(--slate);font-weight:600}
.qb-confirm-hint{font-size:.82rem;color:var(--slate);margin-bottom:.65rem}
.qb-confirm-actions{margin-bottom:1rem}

/* ALERT */
.qb-alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:1rem}
.qb-alert-danger{background:#F8D7DA;color:#721C24;border:1px solid #F5C6CB}
.qb-pub-alert{max-width:800px;margin:1rem auto;padding:0 1.5rem}
.qb-pub-alert-success{background:#D4EDDA;color:#155724;padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;border:1px solid #C3E6CB}

/* ═══ RESPONSIVE ═══ */
@media(max-width:768px){
    .qb-pub-nav{padding:0 1rem}
    .qb-hero{padding:2.5rem 1rem}
    .qb-hero-inner{flex-direction:column;gap:2rem}
    .qb-hero-right{display:none}
    .qb-hero-title{font-size:1.75rem}
    .qb-booking-box{padding:1.25rem}
    .qb-features{padding:2.5rem 1rem}
    .qb-feat-grid{grid-template-columns:1fr}
    .qb-cta{padding:2.5rem 1rem}
    .qb-pub-footer{padding:1.25rem 1rem}
    .qb-pub-footer-inner{flex-direction:column;text-align:center}
    .qb-form-grid{grid-template-columns:1fr}
    .qb-form-grid [style*="grid-column"]{grid-column:span 1!important}
    .qb-steps{overflow-x:auto;gap:0}
    .qb-step{padding:.6rem .75rem}
    .qb-step-label{font-size:.7rem}
    .qb-wizard-wrap{padding:1rem 1rem 3rem}
    .qb-step-body{padding:1.5rem 1rem}
    .qb-wizard-footer{padding:1rem}
    .qb-confirm-wrap{padding:0 1rem 3rem}
}

@import url('https://fonts.googleapis.com/css2?family=Titillium+Web:wght@300;400;600;700&display=swap');
