.calendar{border:1px solid var(--color-primary-200);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);background:#fff}.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-normal);color:var(--color-neutral-800);margin:0}.calendar-nav-btn{background:var(--bg-cream);border:1px solid var(--color-primary-300);border-radius:var(--radius-md);width:40px;height:40px;font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-neutral-600);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);justify-content:center;align-items:center;display:flex}.calendar-nav-btn:hover:not(:disabled){background:var(--color-neutral-800);border-color:var(--color-neutral-800);color:#fff}.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-medium);font-size:var(--text-xs);color:var(--color-neutral-500);padding:var(--space-2)0;text-transform:uppercase;letter-spacing:var(--tracking-wider)}.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-md);cursor:pointer;transition:all var(--duration-200)var(--ease-out);background:var(--bg-cream-light);color:var(--color-neutral-700);border:1px solid #0000;justify-content:center;align-items:center;display:flex}.calendar-day.free{color:#065f46;background:#10b9811a;border-color:#10b98133}.calendar-day.free:hover{color:#fff;background:#10b981;border-color:#10b981;transform:scale(1.05)}.calendar-day.partial{color:#92400e;background:#f59e0b26;border-color:#f59e0b4d}.calendar-day.partial:hover{color:#fff;background:#f59e0b;border-color:#f59e0b;transform:scale(1.05)}.calendar-day.full{color:#991b1b;cursor:not-allowed;background:#ef44441a;border-color:#ef444433}.calendar-day.blocked{color:#ef4444;cursor:not-allowed;background:repeating-linear-gradient(45deg,#ef444414,#ef444414 4px,#ef444429 4px 8px)}.calendar-day.closed{background:var(--color-neutral-100);color:var(--color-neutral-400);cursor:not-allowed}.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 2px var(--color-neutral-600)}.calendar-day.selected{box-shadow:var(--shadow-lg);z-index:1;transform:scale(1.1);background:var(--color-neutral-800)!important;color:#fff!important;border-color:var(--color-neutral-800)!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(--bg-cream-light);border-radius:var(--radius-full);border:1px solid var(--color-primary-200);display:flex}.legend-color{border-radius:var(--radius-sm);flex-shrink:0;width:12px;height:12px}.legend-color.free{background:#10b9814d;border:1px solid #10b98180}.legend-color.partial{background:#f59e0b4d;border:1px solid #f59e0b80}.legend-color.full{background:#ef444433;border:1px solid #ef444459}.legend-color.closed{background:var(--color-neutral-200);border:1px solid var(--color-neutral-300)}@media (max-width:480px){.calendar{padding:var(--space-4);border-radius:var(--radius-lg)}.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-sm)}.calendar-weekday{font-size:10px}.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(--bg-cream);min-height:100vh}.booking-hero{background:var(--bg-cream-light);padding:var(--space-20)var(--space-6);text-align:center;position:relative}.booking-hero h1{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:var(--font-normal);color:var(--color-neutral-800);margin-bottom:var(--space-4)}.booking-hero p{font-size:var(--text-lg);color:var(--color-neutral-500);max-width:600px;margin:0 auto}.booking-form-section{padding:var(--space-16)var(--space-6);background:var(--bg-cream)}.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(--color-neutral-800);padding:var(--space-8);border-radius:var(--radius-xl);color:#fff;height:fit-content;position:relative}.booking-info h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-normal);margin-bottom:var(--space-4)}.booking-info>p{font-size:var(--text-base);line-height:var(--leading-relaxed);margin-bottom:var(--space-6);color:#fffc}.info-box{border-radius:var(--radius-lg);padding:var(--space-6);margin-top:var(--space-6);background:#ffffff1a;border:1px solid #ffffff26}.info-box h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-normal);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:#fffc;position:relative}.info-box li:last-child{margin-bottom:0}.info-box li:before{content:"";background:var(--color-secondary-400);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:0}.booking-form{border:1px solid var(--color-primary-200);border-radius:var(--radius-xl);padding:var(--space-10);box-shadow:var(--shadow-md);background:#fff}.form-group{margin-bottom:var(--space-6)}.form-group label{margin-bottom:var(--space-2);color:var(--color-neutral-700);font-weight:var(--font-medium);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(--bg-cream-light);border:1px solid var(--color-primary-200);border-radius:var(--radius-lg);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-neutral-600);background:#fff;outline:none;box-shadow:0 0 0 3px #3a352f1a}.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:#92400e;margin-top:var(--space-2);font-weight:var(--font-medium);padding:var(--space-3);border-radius:var(--radius-md);background-color:#fef3c7;border-left:3px solid #f59e0b}.selected-date-text{font-size:var(--text-sm);font-weight:var(--font-medium);color:#065f46;margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);text-align:center;background:#ecfdf5;border-left:3px solid #10b981}.error-message{color:#991b1b;padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-6);font-weight:var(--font-medium);background:#fef2f2;border:1px solid #fecaca}.submit-button{background:var(--color-neutral-800);color:#fff;width:100%;padding:var(--space-4)var(--space-8);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-medium);letter-spacing:var(--tracking-wider);text-transform:uppercase;cursor:pointer;transition:transform var(--duration-200)var(--ease-out),background var(--duration-200)var(--ease-out);border:none}.submit-button:hover{background:var(--color-neutral-700);transform:translateY(-2px)}.submit-button:active{transform:translateY(0)}.submit-button:disabled{background:var(--color-neutral-300);cursor:not-allowed;transform:none}.submit-button:disabled:hover{background:var(--color-neutral-300);transform:none}.recaptcha-container{margin:var(--space-6)0;padding:var(--space-4);background:var(--bg-cream-light);border-radius:var(--radius-lg);justify-content:center;align-items:center;display:flex}.success-message{text-align:center;padding:var(--space-12);background:var(--color-neutral-800);border-radius:var(--radius-xl);color:#fff;grid-column:1/-1;position:relative}.success-icon{width:80px;height:80px;color:var(--color-neutral-800);font-size:var(--text-4xl);font-weight:var(--font-bold);margin:0 auto var(--space-8);background:#fff;border-radius:50%;justify-content:center;align-items:center;display:flex}.success-message h2{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--font-normal);margin-bottom:var(--space-4)}.success-message p{font-size:var(--text-lg);margin-bottom:var(--space-4);line-height:var(--leading-relaxed);color:#fffc}.confirmation-note{margin-top:var(--space-8);padding-top:var(--space-8);font-style:italic;font-size:var(--text-base);color:#ffffffb3;border-top:1px solid #fff3}@media (max-width:968px){.booking-container{gap:var(--space-8);grid-template-columns:1fr}.booking-hero h1{font-size:var(--text-4xl)}.success-message h2{font-size:var(--text-2xl)}}@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:60px;height:60px;font-size:var(--text-3xl)}}@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-sm)}.success-message h2{font-size:var(--text-xl)}}
