.calendar{background:var(--glass-bg-solid);-webkit-backdrop-filter:var(--blur-xl);border:var(--glass-border-light);border-radius:var(--radius-2xl);padding:var(--space-6);box-shadow:var(--shadow-lg);margin-bottom:var(--space-6);animation:fadeIn .5s var(--ease-out)forwards}.calendar-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.calendar-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-neutral-800);margin:0}.calendar-nav-btn{background:var(--glass-bg-pink-light);border:2px solid var(--color-primary-200);border-radius:var(--radius-lg);width:40px;height:40px;font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-primary-500);cursor:pointer;transition:background var(--duration-200)var(--ease-out),border-color var(--duration-200)var(--ease-out),color var(--duration-200)var(--ease-out),transform var(--duration-200)var(--ease-bounce);justify-content:center;align-items:center;display:flex}.calendar-nav-btn:hover:not(:disabled){background:var(--gradient-primary);border-color:var(--color-primary-400);color:#fff;transform:scale(1.05)}.calendar-nav-btn:active:not(:disabled){transform:scale(.95)}.calendar-nav-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--color-neutral-100);border-color:var(--color-neutral-200);color:var(--color-neutral-400)}.calendar-weekdays{gap:var(--space-1);margin-bottom:var(--space-2);grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{text-align:center;font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--color-neutral-500);padding:var(--space-2)0;text-transform:uppercase;letter-spacing:.05em}.calendar-days{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.calendar-day{aspect-ratio:1;font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-200)var(--ease-out);background:var(--glass-bg-light);color:var(--color-neutral-700);border:2px solid #0000;justify-content:center;align-items:center;display:flex}.calendar-day.free{color:var(--color-success-700);background:#22c55e26;border-color:#22c55e4d}.calendar-day.free:hover{background:var(--color-success-500);color:#fff;border-color:var(--color-success-500);transform:scale(1.08);box-shadow:0 4px 12px #22c55e4d}.calendar-day.partial{color:var(--color-warning-700);background:#fbbf2433;border-color:#fbbf2466}.calendar-day.partial:hover{background:var(--color-warning-400);color:var(--color-neutral-900);border-color:var(--color-warning-400);transform:scale(1.08);box-shadow:0 4px 12px #fbbf244d}.calendar-day.full{color:var(--color-error-600);cursor:not-allowed;background:#ef44441f;border-color:#ef444440}.calendar-day.blocked{color:var(--color-error-500);cursor:not-allowed;background:repeating-linear-gradient(45deg,#ef44441a,#ef44441a 4px,#ef444433 4px 8px)}.calendar-day.closed{color:var(--color-neutral-400);cursor:not-allowed;background:#9ca3af26}.calendar-day.past{background:var(--color-neutral-50);color:var(--color-neutral-300);cursor:not-allowed}.calendar-day.other-month{opacity:.25;cursor:default}.calendar-day.today{font-weight:var(--font-bold);box-shadow:inset 0 0 0 3px var(--color-primary-400)}.calendar-day.selected{box-shadow:var(--shadow-lg),var(--glow-pink-strong);z-index:var(--z-raised);transform:scale(1.15);background:var(--gradient-primary)!important;color:#fff!important;border-color:var(--color-primary-500)!important}.calendar-day:disabled{cursor:not-allowed}.calendar-day:disabled:hover{box-shadow:none;transform:none}.calendar-legend{gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-primary-100);flex-wrap:wrap;justify-content:center;display:flex}.legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-neutral-600);padding:var(--space-2)var(--space-3);background:var(--glass-bg-light);border-radius:var(--radius-full);border:1px solid var(--color-neutral-200);display:flex}.legend-color{border-radius:var(--radius-sm);border:1px solid #0000001a;flex-shrink:0;width:14px;height:14px}.legend-color.free{background:#22c55e4d;border-color:#22c55e80}.legend-color.partial{background:#fbbf2459;border-color:#fbbf2480}.legend-color.full{background:#ef444433;border-color:#ef444459}.legend-color.closed{background:#9ca3af33;border-color:#9ca3af59}@media (max-width:480px){.calendar{padding:var(--space-4);border-radius:var(--radius-xl)}.calendar-header{margin-bottom:var(--space-4)}.calendar-title{font-size:var(--text-base)}.calendar-nav-btn{width:36px;height:36px;font-size:var(--text-base)}.calendar-day{font-size:var(--text-xs);border-radius:var(--radius-md)}.calendar-weekday{font-size:var(--text-xs)}.calendar-legend{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3)}.legend-item{padding:var(--space-1)var(--space-2);font-size:10px}.legend-color{width:10px;height:10px}}
.booking{background:var(--gradient-mesh);background-attachment:fixed;min-height:100vh}.booking-hero{background:var(--gradient-primary);padding:var(--space-20)var(--space-6);text-align:center;position:relative;overflow:hidden}.booking-hero:before,.booking-hero:after{content:"";background:var(--glass-bg-light);pointer-events:none;border-radius:50%;position:absolute}.booking-hero:before{width:300px;height:300px;animation:10s ease-in-out infinite float;top:-100px;left:-100px}.booking-hero:after{width:200px;height:200px;animation:8s ease-in-out infinite reverse float;bottom:-60px;right:-60px}.booking-hero h1{z-index:var(--z-raised);font-family:var(--font-display);font-size:var(--text-5xl);font-weight:var(--font-bold);color:#fff;margin-bottom:var(--space-4);text-shadow:0 2px 10px #0000001a;animation:fadeInUp .8s var(--ease-out)forwards;position:relative}.booking-hero p{z-index:var(--z-raised);font-size:var(--text-xl);color:#fffffff2;max-width:600px;animation:fadeIn .8s var(--ease-out).2s forwards;opacity:0;margin:0 auto;position:relative}.booking-form-section{padding:var(--space-16)var(--space-6);background:var(--gradient-subtle)}.booking-container{gap:var(--space-10);grid-template-columns:1fr 1.5fr;align-items:start;max-width:1100px;margin:0 auto;display:grid}.booking-info{background:var(--gradient-primary);padding:var(--space-8);border-radius:var(--radius-2xl);color:#fff;height:fit-content;box-shadow:var(--shadow-xl);animation:fadeInLeft .6s var(--ease-out)forwards;opacity:0;position:relative;overflow:hidden}.booking-info:before{content:"";background:var(--glass-bg-light);pointer-events:none;border-radius:50%;width:200px;height:200px;position:absolute;bottom:-80px;right:-80px}.booking-info h2{z-index:var(--z-raised);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-4);position:relative}.booking-info>p{z-index:var(--z-raised);font-size:var(--text-base);line-height:var(--leading-relaxed);margin-bottom:var(--space-6);color:#fffffff2;position:relative}.info-box{z-index:var(--z-raised);background:var(--glass-bg-light);-webkit-backdrop-filter:var(--blur-sm);border:var(--glass-border-light);border-radius:var(--radius-xl);padding:var(--space-6);margin-top:var(--space-6);position:relative}.info-box h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-4);color:#fff}.info-box ul{margin:0;padding:0;list-style:none}.info-box li{margin-bottom:var(--space-3);padding-left:var(--space-6);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:#fffffff2;position:relative}.info-box li:last-child{margin-bottom:0}.info-box li:before{content:"✓";font-weight:var(--font-bold);color:#fff;position:absolute;left:0}.booking-form{background:var(--glass-bg-solid);-webkit-backdrop-filter:var(--blur-xl);border:var(--glass-border-light);border-radius:var(--radius-2xl);padding:var(--space-10);box-shadow:var(--shadow-xl);animation:fadeInRight .6s var(--ease-out).1s forwards;opacity:0}.form-group{margin-bottom:var(--space-6)}.form-group label{margin-bottom:var(--space-2);color:var(--color-primary-600);font-weight:var(--font-semibold);font-size:var(--text-sm);letter-spacing:.025em;display:block}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--space-4);background:var(--glass-bg-light);border:2px solid var(--color-primary-100);border-radius:var(--radius-xl);font-size:var(--text-base);color:var(--color-neutral-800);transition:border-color var(--duration-200)var(--ease-out),box-shadow var(--duration-200)var(--ease-out),background var(--duration-200)var(--ease-out);font-family:inherit}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-neutral-400)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 4px var(--color-primary-100),var(--glow-pink);background:#fff;outline:none}.form-group textarea{resize:vertical;min-height:100px}.form-group select:disabled{background-color:var(--color-neutral-100);cursor:not-allowed;opacity:.6}.helper-text{font-size:var(--text-sm);color:var(--color-neutral-500);margin-bottom:var(--space-2);font-style:italic}.warning-text{font-size:var(--text-sm);color:var(--color-warning-700);margin-top:var(--space-2);font-weight:var(--font-medium);background-color:var(--color-warning-50);padding:var(--space-3);border-radius:var(--radius-lg);border-left:4px solid var(--color-warning-500)}.selected-date-text{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-success-700);margin-top:var(--space-3);padding:var(--space-4);background:var(--glass-bg-light);border-radius:var(--radius-xl);border-left:4px solid var(--color-success-500);text-align:center}.error-message{color:var(--color-error-700);padding:var(--space-4);border-radius:var(--radius-xl);border:2px solid var(--color-error-200);margin-bottom:var(--space-6);font-weight:var(--font-medium);-webkit-backdrop-filter:var(--blur-sm);backdrop-filter:var(--blur-sm);background:linear-gradient(135deg,#fee2e2e6 0%,#fecacae6 100%)}.submit-button{background:var(--gradient-primary);color:#fff;width:100%;padding:var(--space-4)var(--space-8);border-radius:var(--radius-xl);font-size:var(--text-lg);font-weight:var(--font-bold);cursor:pointer;box-shadow:var(--shadow-lg);transition:transform var(--duration-200)var(--ease-bounce),box-shadow var(--duration-200)var(--ease-out);border:none}.submit-button:hover{box-shadow:var(--shadow-xl),var(--glow-pink-strong);transform:translateY(-3px)scale(1.01)}.submit-button:active{transform:translateY(-1px)scale(.99)}.submit-button:disabled{background:var(--color-neutral-300);cursor:not-allowed;box-shadow:none;transform:none}.submit-button:disabled:hover{background:var(--color-neutral-300);box-shadow:none;transform:none}.recaptcha-container{margin:var(--space-6)0;padding:var(--space-4);background:var(--glass-bg-light);border-radius:var(--radius-xl);justify-content:center;align-items:center;display:flex}.success-message{text-align:center;padding:var(--space-12);background:var(--gradient-primary);border-radius:var(--radius-2xl);color:#fff;box-shadow:var(--shadow-2xl);animation:fadeInUp .6s var(--ease-out)forwards;grid-column:1/-1;position:relative;overflow:hidden}.success-message:before{content:"";background:var(--glass-bg-light);pointer-events:none;border-radius:50%;width:200px;height:200px;position:absolute;top:-80px;right:-80px}.success-message:after{content:"";background:var(--glass-bg-light);pointer-events:none;border-radius:50%;width:150px;height:150px;position:absolute;bottom:-60px;left:-60px}.success-icon{z-index:var(--z-raised);width:100px;height:100px;color:var(--color-primary-500);font-size:var(--text-5xl);font-weight:var(--font-bold);margin:0 auto var(--space-8);box-shadow:var(--shadow-xl);animation:popIn .5s var(--ease-spring).2s forwards;opacity:0;background:#fff;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative;transform:scale(0)}.success-message h2{z-index:var(--z-raised);font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-bold);margin-bottom:var(--space-4);position:relative}.success-message p{z-index:var(--z-raised);font-size:var(--text-lg);margin-bottom:var(--space-4);line-height:var(--leading-relaxed);color:#fffffff2;position:relative}.confirmation-note{z-index:var(--z-raised);margin-top:var(--space-8);padding-top:var(--space-8);font-style:italic;font-size:var(--text-base);color:#ffffffe6;border-top:1px solid #ffffff4d;position:relative}@media (max-width:968px){.booking-container{gap:var(--space-8);grid-template-columns:1fr}.booking-hero h1{font-size:var(--text-4xl)}.booking-info{animation:fadeInUp .6s var(--ease-out)forwards}.booking-form{animation:fadeInUp .6s var(--ease-out).1s forwards}.success-message h2{font-size:var(--text-3xl)}}@media (max-width:768px){.booking-hero{padding:var(--space-16)var(--space-4)}.booking-hero h1{font-size:var(--text-3xl)}.booking-form-section{padding:var(--space-10)var(--space-4)}.booking-info,.booking-form{padding:var(--space-6)}.success-message{padding:var(--space-8)}.success-icon{width:80px;height:80px;font-size:var(--text-4xl)}.booking-hero:before,.booking-hero:after{display:none}}@media (max-width:480px){.booking-hero h1{font-size:var(--text-2xl)}.form-group input,.form-group select,.form-group textarea{padding:var(--space-3)}.submit-button{padding:var(--space-4)var(--space-6);font-size:var(--text-base)}.success-message h2{font-size:var(--text-2xl)}}
