:root{--color-black: #000;--color-white: #fff;--color-blue: #003799;--color-blue-light: #003799cc;--color-blue-bg: #0037990d;--color-orange: #f64f01;--color-gray-100: #f8f8f8;--color-gray-200: #e8ebed;--color-gray-300: #d1d5db;--color-gray-400: #a2a9af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-red: #dc2626;--color-red-bg: #fef2f2;--color-booked: rgba(242, 242, 242, .73);--color-booked-text: #00000066;--color-available: #fff;--color-selected: #003799;--color-selected-text: #fff;--color-range: #003799cc;--color-today: #f64f01;--color-past: transparent;--color-past-text: #d1d5db;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 20px rgba(0,0,0,.08);--shadow-lg: 0 8px 40px rgba(0,0,0,.12);--shadow-modal: 0 24px 80px rgba(0,0,0,.16);--transition: .15s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);color:var(--color-black);background:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;margin:0;padding:0}#calendar-container{position:relative;max-width:1200px;margin:0 auto;padding:0 16px}#calendar-year{font-size:24px;font-weight:600;letter-spacing:-.02em;text-align:center;margin-bottom:12px}#calendar-legend{display:flex;justify-content:center;gap:24px;margin-bottom:24px;font-size:13px;color:var(--color-gray-500)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-available{background:var(--color-white);border:1px solid var(--color-gray-300)}.legend-booked{background:#0000000d;border:1px solid var(--color-gray-300)}#btn-booking-request{display:block;margin:32px auto 0;max-width:200px;width:100%}#calendar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.month{background:transparent;border-radius:0;padding:8px;position:relative}.month-name{font-size:14px;font-weight:600;text-align:center;margin-bottom:10px;letter-spacing:-.01em}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:4px}.weekday{font-size:10px;font-weight:500;text-align:center;color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.05em;padding:2px 0}.days{display:grid;grid-template-columns:repeat(7,1fr);column-gap:0;row-gap:2px;background:var(--color-white)}.day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:400;border-radius:0;cursor:default;transition:background var(--transition),color var(--transition);position:relative;-webkit-user-select:none;user-select:none}.day.empty{cursor:default;background:var(--color-white)}.day.past{color:var(--color-past-text);background:var(--color-white)}.day.available{cursor:pointer;color:var(--color-black);background:var(--color-white);transition:none}@media(hover:hover){.day.available:not(.selected):not(.in-range):hover{background:var(--color-selected);color:var(--color-selected-text);border-radius:50%;cursor:pointer;z-index:3}.day.available:hover .taper{display:none}}.day.booked{color:var(--color-booked-text);cursor:default;background:linear-gradient(to bottom,transparent 1px,var(--color-booked) 1px,var(--color-booked) calc(100% - 1px),transparent calc(100% - 1px))}.day.booked-turnover,.day.turnover{background:transparent;color:var(--color-booked-text);cursor:default}.day-num{position:relative;z-index:2}.taper{position:absolute;top:1px;bottom:1px;pointer-events:none;z-index:1;display:flex;align-items:stretch}.taper svg{height:100%;width:auto;display:block}.taper-checkout{left:-1px}.taper-checkin{right:-1px}.day.today{font-weight:700;color:var(--color-orange)}.day.selected{background:var(--color-selected);color:var(--color-selected-text);font-weight:600;border-radius:50%;z-index:2}@media(hover:hover){.day.selected:hover,.day.range-start:hover,.day.range-end:hover{background:#172e7c;color:var(--color-selected-text);font-size:0;cursor:pointer}.day.selected:hover:before,.day.range-start:hover:before,.day.range-end:hover:before{content:"×";font-size:16px;font-weight:300;color:var(--color-selected-text)}}.day.in-range{background:var(--color-range);color:var(--color-white);border-radius:0}@media(hover:hover){.day.in-range:hover{background:var(--color-range);color:var(--color-white);cursor:pointer}.days.range-active .day.available:not(.selected):not(.in-range){transition:none}.days.range-active .day.available:not(.selected):not(.in-range):hover{background:var(--color-selected);color:var(--color-selected-text);border-radius:50%;cursor:pointer;z-index:3}.days.range-active .day.in-range:hover{background:var(--color-selected);color:var(--color-selected-text);font-size:0;cursor:pointer;border-radius:0}.days.range-active .day.in-range:hover:before{content:"×";font-size:16px;font-weight:300;color:var(--color-selected-text)}.days.range-active .day.available:not(.selected):not(.in-range):hover .taper{display:none}}.day.range-start{background:var(--color-selected);color:var(--color-selected-text);font-weight:600;border-radius:50% 0 0 50%}.day.range-end{background:var(--color-selected);color:var(--color-selected-text);font-weight:600;border-radius:0 50% 50% 0}.day.range-start.range-end{border-radius:50%}.day.selected .taper,.day.in-range .taper,.day.range-start .taper,.day.range-end .taper,.rp-day.selected .taper,.rp-day.in-range .taper,.rp-day.range-start .taper,.rp-day.range-end .taper{display:none}.day.rejected-flash,.rp-day.rejected-flash{animation:rejectedFlash .8s ease forwards}@keyframes rejectedFlash{0%{background:#e53e3e;color:var(--color-white);border-radius:50%}to{background:transparent;color:var(--color-black)}}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffffd9;border-radius:var(--radius-lg);z-index:10;transition:opacity var(--transition)}.loading-overlay.hidden{opacity:0;pointer-events:none}.spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.modal.open{opacity:1;pointer-events:all}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-content{position:relative;background:var(--color-white);border-radius:var(--radius-xl);padding:32px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-modal);transform:translateY(20px);transition:transform .25s ease;z-index:1}.modal.open .modal-content{transform:translateY(0)}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:var(--color-gray-100);border-radius:var(--radius-sm);color:var(--color-gray-500);cursor:pointer;transition:all var(--transition);flex-shrink:0}.modal-close:hover{background:var(--color-gray-200);color:var(--color-black)}.progress-bar{margin-bottom:20px;display:flex;align-items:center;gap:16px}.step-dots{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}.step-dot{width:6px;height:6px;border-radius:50%;background:var(--color-gray-300);transition:background .3s ease}.step-dot.active{background:var(--color-blue)}.step-title{font-size:18px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;flex-shrink:0}.range-picker{margin-bottom:6px}.range-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.range-picker-month{font-size:15px;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:color var(--transition)}.range-picker-month:hover{color:var(--color-gray-500)}.range-picker-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-gray-200);border-radius:50%;background:var(--color-white);color:var(--color-black);cursor:pointer;transition:all var(--transition)}.range-picker-nav:hover{border-color:var(--color-black);background:var(--color-gray-100)}.range-picker-nav:disabled{opacity:.3;cursor:not-allowed}.range-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.range-picker-weekdays .rp-weekday{font-size:11px;font-weight:500;text-align:center;color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.05em;padding:4px 0}.range-picker-days{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);column-gap:0;row-gap:2px;background:var(--color-white)}.rp-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:400;border-radius:0;cursor:default;transition:background var(--transition),color var(--transition);-webkit-user-select:none;user-select:none;position:relative}.rp-day.empty{cursor:default;background:var(--color-white)}.rp-day.past{color:var(--color-past-text);background:var(--color-white)}.rp-day.available{cursor:pointer;color:var(--color-black);background:var(--color-white);transition:none}@media(hover:hover){.rp-day.available:not(.selected):not(.in-range):hover{background:var(--color-selected);color:var(--color-selected-text);border-radius:50%;cursor:pointer;z-index:3}.rp-day.available:hover .taper{display:none}}.rp-day.booked{color:var(--color-booked-text);cursor:not-allowed;background:linear-gradient(to bottom,transparent 1px,var(--color-booked) 1px,var(--color-booked) calc(100% - 1px),transparent calc(100% - 1px))}.rp-day.booked-turnover,.rp-day.turnover{background:transparent;color:var(--color-booked-text);cursor:default}.rp-day.today{font-weight:700;color:var(--color-orange)}.rp-day.selected{background:var(--color-selected);color:var(--color-selected-text);font-weight:600;border-radius:50%;z-index:2}@media(hover:hover){.rp-day.selected:hover,.rp-day.range-start:hover,.rp-day.range-end:hover{background:#172e7c;color:var(--color-selected-text);font-size:0;cursor:pointer}.rp-day.selected:hover:before,.rp-day.range-start:hover:before,.rp-day.range-end:hover:before{content:"×";font-size:16px;font-weight:300;color:var(--color-selected-text)}}.rp-day.in-range{background:var(--color-range);color:var(--color-white);border-radius:0}@media(hover:hover){.rp-day.in-range:hover{background:var(--color-range);color:var(--color-white);cursor:pointer}}.range-picker-days.range-active .rp-day.available:not(.selected):not(.in-range){transition:none}.range-picker-days.range-active .rp-day.available:not(.selected):not(.in-range):hover{background:var(--color-selected);color:var(--color-selected-text);border-radius:50%;cursor:pointer;z-index:3}.range-picker-days.range-active .rp-day.in-range:hover{background:var(--color-selected);color:var(--color-selected-text);font-size:0;cursor:pointer;border-radius:0}.range-picker-days.range-active .rp-day.in-range:hover:before{content:"×";font-size:16px;font-weight:300;color:var(--color-selected-text)}.range-picker-days.range-active .rp-day.available:not(.selected):not(.in-range):hover .taper{display:none}.rp-day.range-start{background:var(--color-selected);color:var(--color-selected-text);font-weight:600;border-radius:50% 0 0 50%}.rp-day.range-end{background:var(--color-selected);color:var(--color-selected-text);font-weight:600;border-radius:0 50% 50% 0}.rp-day.range-start.range-end{border-radius:50%}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:8px;color:var(--color-black)}#step-1 .form-group label{margin-bottom:16px}.required{color:var(--color-black)}input[type=text],input[type=email],input[type=tel]{width:100%;height:48px;padding:0 14px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);font-family:var(--font-body);font-size:15px;color:var(--color-black);background:var(--color-white);transition:all var(--transition);outline:none}input:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px var(--color-blue-bg)}input.error{border-color:var(--color-red);background:var(--color-red-bg)}input::placeholder{color:var(--color-gray-400)}.email-input-wrapper{position:relative}.email-input-wrapper .input-icon-left{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-gray-400);pointer-events:none}.email-input-wrapper input{padding-left:40px}.field-error{display:block;font-size:13px;color:var(--color-red);margin-top:4px;min-height:0;transition:all var(--transition)}.field-error:empty{margin-top:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.guest-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px 6px;row-gap:12px}.guest-btn{height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-gray-200);border-radius:50%;background:var(--color-white);font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--color-gray-600);cursor:pointer;transition:all var(--transition);aspect-ratio:1;width:42px}.guest-btn:hover{border-color:var(--color-blue);color:var(--color-blue)}.guest-btn.active{border-color:var(--color-blue);background:var(--color-blue);color:var(--color-white)}.phone-group{position:relative}.phone-input-wrapper{display:flex;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition)}.phone-input-wrapper:focus-within{border-color:var(--color-blue);box-shadow:0 0 0 3px var(--color-blue-bg)}.phone-code-select{display:flex;align-items:center;gap:4px;padding:0 12px;background:var(--color-gray-100);border-right:1px solid var(--color-gray-200);cursor:pointer;white-space:nowrap;min-width:90px;transition:background var(--transition)}.phone-code-select:hover{background:var(--color-gray-200)}.phone-flag{font-size:18px}.phone-dial{font-size:14px;font-weight:500;color:var(--color-gray-600)}.chevron{color:var(--color-gray-400);flex-shrink:0}.phone-input-wrapper input{border:none;border-radius:0}.phone-input-wrapper input:focus{box-shadow:none}.phone-dropdown{position:absolute;left:0;right:0;bottom:100%;margin-bottom:4px;background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;max-height:280px;overflow:hidden;display:flex;flex-direction:column}.phone-dropdown.hidden{display:none}.phone-search-wrapper{position:relative;margin:8px;order:-1}.phone-search{width:100%;height:44px!important;font-size:16px!important;border:1px solid var(--color-gray-200)!important;border-radius:var(--radius-sm)!important;padding-right:40px!important}.phone-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:var(--color-gray-200);border-radius:50%;color:var(--color-gray-500);cursor:pointer;transition:all var(--transition)}.phone-search-clear:hover{background:var(--color-gray-300);color:var(--color-black)}.phone-options{overflow-y:auto;flex:1}.phone-option{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:14px;cursor:pointer;transition:background var(--transition)}.phone-option:hover,.phone-option.highlighted{background:var(--color-gray-100)}.phone-option-flag{font-size:18px}.phone-option-name{flex:1;color:var(--color-black)}.phone-option-dial{color:var(--color-gray-400);font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 28px;border:none;border-radius:9999px;font-family:var(--font-body);font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn-primary{background:var(--color-blue);color:var(--color-white);width:100%}.btn-primary:hover{background:#002d80}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-gray-100);color:var(--color-gray-600);border:1px solid var(--color-gray-200)}.btn-secondary:hover{background:var(--color-gray-200);color:var(--color-black)}.form-actions{display:flex;gap:12px}.form-actions .btn-secondary{flex-shrink:0}.form-actions .btn-primary{flex:1}.btn-back-icon{width:48px;height:48px;padding:0;display:flex;align-items:center;justify-content:center}.response-time{text-align:center;font-size:13px;color:var(--color-gray-500);margin-top:12px}.booking-summary{text-align:center;font-size:13px;color:var(--color-gray-500);margin-bottom:16px;min-height:20px}.booking-summary.error{color:var(--color-red);transition:opacity .3s ease}.booking-summary.error-fade{opacity:0}.success-content{text-align:center;padding:20px 0;position:relative}.success-icon{margin-bottom:20px}.success-booking{font-size:14px;color:var(--color-black);margin-bottom:12px;line-height:1.5}.ibiza-tip{font-size:14px;color:var(--color-black);line-height:1.5;margin-bottom:12px;font-style:italic}.success-response{font-size:14px;color:var(--color-gray-500);margin-bottom:28px}.success-content .btn-secondary{width:100%}.star-confetti-container{position:absolute;top:40px;left:50%;width:0;height:0;pointer-events:none;z-index:20}.star-confetti{position:absolute;animation:starBurst 1.2s cubic-bezier(.22,.61,.36,1) forwards;opacity:0}.star-confetti svg{width:100%;height:100%}@keyframes starBurst{0%{transform:translate(0) rotate(0) scale(0);opacity:0}10%{opacity:1;transform:translate(0) rotate(0) scale(1.2)}40%{opacity:1;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(1)}to{transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(0);opacity:0}}.submit-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#fffffff2;border-radius:var(--radius-xl);z-index:10}.submit-loading p{font-size:14px;color:var(--color-gray-500)}.hidden{display:none!important}@media(max-width:1023px)and (min-width:768px){#calendar-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:767px)and (min-width:480px){#calendar-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:479px){#calendar-grid{grid-template-columns:repeat(2,1fr);gap:10px}.month{padding:5px}.month-name{font-size:12px}.weekday{font-size:8px}.day{font-size:10px}.modal-content{padding:20px;margin:12px;border-radius:var(--radius-lg);max-height:calc(100vh - 24px)}.step-title{font-size:18px}.form-row{grid-template-columns:1fr;gap:0}.guest-grid{grid-template-columns:repeat(6,1fr);gap:4px;row-gap:10px}.guest-btn{height:34px;width:34px;font-size:12px}#calendar-year{font-size:20px}#calendar-legend{font-size:11px;gap:12px}.form-actions{gap:8px}}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:transparent}.modal-content::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:3px}
