@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes strokeCircle{to{stroke-dashoffset:0}}@keyframes strokeCheck{to{stroke-dashoffset:0}}.booking-container{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);padding:var(--space-lg)}.booking-header{text-align:center;margin-bottom:var(--space-2xl);padding-top:var(--space-xl)}.booking-header h1{font-size:var(--fs-800);color:var(--color-text);margin-bottom:var(--space-sm);font-weight:var(--fw-bold)}.booking-subtitle{font-size:var(--fs-500);color:var(--color-text-muted)}.booking-main{flex:1;max-width:800px;width:100%;margin:0 auto}.wizard-only{display:none}.desktop-only{display:block}.booking-footer{text-align:center;padding:var(--space-2xl) var(--space-md) var(--space-xl);color:var(--color-text-muted);font-size:var(--fs-400)}.booking-footer a{color:var(--color-accent);font-weight:var(--fw-semibold);text-decoration:none}.booking-footer a:hover{color:var(--color-accent-hover);text-decoration:underline}.booking-step{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-2xl);box-shadow:var(--shadow-card);animation:fadeIn .4s ease}.step-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl)}.step-number{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-accent);color:var(--color-text-inverse);border-radius:var(--radius-full);font-weight:var(--fw-bold);font-size:var(--fs-500);flex-shrink:0}.step-header h2{font-size:var(--fs-700);color:var(--color-text);margin:0}.helper-text{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-text-muted);font-size:var(--fs-400);margin-top:var(--space-lg)}.helper-text svg{flex-shrink:0;opacity:.7}.calendar-wrapper{margin-bottom:var(--space-md)}.calendar-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);padding:0 var(--space-xs)}.calendar-month{font-size:var(--fs-600);font-weight:var(--fw-semibold);color:var(--color-text);margin:0}.btn-calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;transition:all var(--transition-base)}.btn-calendar-nav:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.btn-calendar-nav:active{transform:scale(.95)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-xs)}.calendar-day-header{text-align:center;font-size:var(--fs-300);font-weight:var(--fw-semibold);color:var(--color-text-muted);padding:var(--space-sm);text-transform:uppercase;letter-spacing:.5px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--fs-400);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--transition-base);border:2px solid transparent;background:var(--color-surface-alt);color:var(--color-text);position:relative}.calendar-day:hover:not(.disabled):not(.empty){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);transform:scale(1.05)}.calendar-day.disabled{color:var(--color-text-subtle);cursor:not-allowed;opacity:.4}.calendar-day.empty{background:0 0;cursor:default}.calendar-day.selected,.calendar-day.today{border-color:var(--color-accent);font-weight:var(--fw-bold)}.calendar-day.selected{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.calendar-day.selected:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-text-inverse)}.calendar-day.ideal::after{content:"";position:absolute;bottom:4px;width:4px;height:4px;background:var(--color-accent);border-radius:50%}.calendar-day.selected.ideal::after{background:var(--color-accent-light)}.selected-date-display{background:var(--color-primary-light);border-left:4px solid var(--color-primary);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);margin-bottom:var(--space-xl);font-weight:var(--fw-medium);color:var(--color-text)}.time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.time-slot{position:relative;padding:var(--space-lg);background:var(--color-surface-alt);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-align:center}.time-slot:hover{background:var(--color-primary-light);border-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.time-slot.selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.time-slot.ideal{border-color:var(--color-accent);background:var(--color-accent-light)}.time-slot.ideal::before{content:"Recommended";position:absolute;top:-10px;left:50%;transform:translateX(-50%);color:var(--color-text-inverse);font-size:var(--fs-300);font-weight:var(--fw-semibold);padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap}.time-slot.selected.ideal{background:var(--color-primary);border-color:var(--color-primary)}.time-slot.ideal::before,.time-slot.selected.ideal::before{background:var(--color-accent)}.time-label{font-size:var(--fs-600);font-weight:var(--fw-bold);margin-bottom:var(--space-xs)}.summary-details h3,.time-period{font-size:var(--fs-300);color:var(--color-text-muted)}.time-slot.selected .time-period{color:var(--color-text-inverse-muted)}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);font-size:var(--fs-500);font-weight:var(--fw-semibold);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);border:0;font-family:var(--font-sans);text-decoration:none;justify-content:center}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-surface-alt);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary)}.booking-summary,.button-group{display:flex;gap:var(--space-md)}.button-group{margin-top:var(--space-xl)}.button-group .btn-primary{flex:1}.button-group .btn-secondary{flex:.6}.booking-summary{flex-direction:column;margin-bottom:var(--space-2xl)}.summary-card{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg);background:var(--color-surface-alt);border-radius:var(--radius-md);border:1px solid var(--color-border)}.success-animation,.summary-icon{display:flex;justify-content:center}.summary-icon{align-items:center;width:56px;height:56px;background:var(--color-primary-light);border-radius:var(--radius-md);color:var(--color-primary);flex-shrink:0}.summary-details h3{font-size:var(--fs-400);margin-bottom:var(--space-xs);font-weight:var(--fw-medium)}.summary-details p{font-size:var(--fs-600);color:var(--color-text);font-weight:var(--fw-semibold);margin:0}.success-animation{margin-bottom:var(--space-xl)}.checkmark{animation:scaleIn .5s ease}.checkmark-circle{stroke-dasharray:240;stroke-dashoffset:240;animation:strokeCircle .6s ease forwards;animation-delay:.2s}.checkmark-check{stroke-dasharray:60;stroke-dashoffset:60;animation:strokeCheck .4s ease forwards;animation-delay:.6s}.success-title{font-size:var(--fs-700);color:var(--color-success);text-align:center;margin-bottom:var(--space-md)}.success-message,.success-summary{margin-bottom:var(--space-xl);text-align:center}.success-message{color:var(--color-text-muted);font-size:var(--fs-500);line-height:var(--lh-relaxed)}.success-summary{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--space-lg)}.success-summary p{margin:var(--space-sm)0;font-size:var(--fs-500);color:var(--color-text)}.success-summary strong{color:var(--color-text-muted);font-weight:var(--fw-semibold);margin-right:var(--space-xs)}.success-note{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);color:var(--color-text-muted);font-size:var(--fs-400);margin-bottom:var(--space-xl);font-style:italic}.success-note svg{flex-shrink:0}#step-success .btn-secondary{width:100%}@media (max-width:640px){.booking-container{padding:var(--space-md)}.booking-step{padding:var(--space-lg)}.booking-header{padding-top:var(--space-md);margin-bottom:var(--space-xl)}.booking-header h1{font-size:var(--fs-700)}.step-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.step-number{width:32px;height:32px;font-size:var(--fs-400)}.step-header h2{font-size:var(--fs-600)}.calendar{gap:4px}.calendar-day{font-size:var(--fs-300)}.time-grid{grid-template-columns:1fr}.button-group{flex-direction:column-reverse}.button-group .btn-primary,.button-group .btn-secondary{flex:1;width:100%}.summary-card{flex-direction:column;text-align:center}}@media (max-width:400px){.calendar-day-header{font-size:10px;padding:var(--space-xs)}.time-slot.ideal::before{font-size:10px;padding:2px 6px}}