:root{--booking-primary-color:#2563eb;--booking-primary-hover:#1d4ed8;--booking-secondary-color:#64748b;--booking-success-color:#10b981;--booking-error-color:#ef4444;--booking-warning-color:#f59e0b;--booking-bg:#fff;--booking-bg-light:#f8fafc;--booking-bg-dark:#1e293b;--booking-bg-selected:#dbeafe;--booking-bg-reserved:#fef3c7;--booking-bg-available:#f0fdf4;--booking-text:#1e293b;--booking-text-light:#64748b;--booking-text-past:#cbd5e1;--booking-text-selected:#fff;--booking-addon-icon-bg:var(--booking-bg);--booking-addon-icon-color:var(--booking-primary-color);--booking-addon-icon-border:var(--booking-primary-color);--booking-addon-selected-bg:var(--booking-bg-selected);--booking-addon-selected-icon-bg:var(--booking-primary-color);--booking-addon-selected-icon-color:var(--booking-text-selected);--booking-addon-selected-border:var(--booking-primary-color);--booking-addon-check-bg:var(--booking-success-color,#22c55e);--booking-addon-check-color:#fff;--booking-border:#e2e8f0;--booking-border-radius:8px;--booking-border-width:1px;--booking-spacing-2xs:0.125rem;--booking-spacing-xs:0.25rem;--booking-spacing-sm:0.5rem;--booking-spacing-md:1rem;--booking-spacing-lg:1.5rem;--booking-spacing-xl:2rem;--booking-spacing-3xl:3rem;--booking-spacing-4xl:4rem;--booking-font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--booking-font-size-sm:0.875rem;--booking-font-size-base:1rem;--booking-font-size-lg:1.125rem;--booking-font-size-xl:1.25rem;--booking-font-size-2xl:1.5rem;--booking-shadow-xs:0 1px 3px rgba(0,0,0,.05);--booking-shadow-sm:0 2px 4px rgba(0,0,0,.06);--booking-shadow-md:0 4px 8px rgba(0,0,0,.08);--booking-shadow-lg:0 10px 20px rgba(0,0,0,.1);--booking-shadow-xl:0 15px 30px rgba(0,0,0,.12);--booking-shadow-hover:0 8px 16px rgba(0,0,0,.12);--booking-gradient-primary:linear-gradient(135deg,var(--booking-primary-color),var(--booking-primary-hover));--booking-gradient-success:linear-gradient(135deg,#10b981,#059669);--booking-gradient-subtle:linear-gradient(180deg,transparent,rgba(0,0,0,.02));--booking-transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--booking-transition-base:250ms cubic-bezier(0.4,0,0.2,1);--booking-transition-slow:350ms cubic-bezier(0.4,0,0.2,1);--booking-transition-bounce:500ms cubic-bezier(0.68,-0.55,0.265,1.55)}.booking-calendar{background:var(--booking-bg);padding:var(--booking-spacing-lg);border-radius:var(--booking-border-radius);box-shadow:var(--booking-shadow-md);border:var(--booking-border-width) solid var(--booking-border);font-family:var(--booking-font-family)}.booking-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--booking-spacing-lg)}.booking-calendar-nav-button{padding:var(--booking-spacing-sm);background:transparent;border:none;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.booking-calendar-nav-button:hover{background:var(--booking-bg-light)}.booking-calendar-nav-icon{width:1.25rem;height:1.25rem;color:var(--booking-text)}.booking-calendar-legend{display:flex;align-items:center;gap:var(--booking-spacing-md);font-size:var(--booking-font-size-sm);color:var(--booking-text)}.booking-calendar-legend-item{display:flex;align-items:center;gap:var(--booking-spacing-xs)}.booking-calendar-legend-color{width:.75rem;height:.75rem;border-radius:2px}.booking-calendar-months{display:grid;grid-template-columns:1fr;gap:var(--booking-spacing-xl)}@media (min-width:768px){.booking-calendar-months{grid-template-columns:1fr 1fr}}.booking-calendar-month-second{display:none}@media (min-width:768px){.booking-calendar-month-second{display:block}}.booking-calendar-month-title{text-align:center;font-weight:600;color:var(--booking-text);margin-bottom:var(--booking-spacing-md);font-size:var(--booking-font-size-base)}.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.125rem}.booking-calendar-day-header{text-align:center;font-size:var(--booking-font-size-sm);font-weight:700;color:var(--booking-text);padding:var(--booking-spacing-sm)}.booking-calendar-day-empty{aspect-ratio:1}.booking-calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative;border-radius:var(--booking-border-radius);font-size:var(--booking-font-size-sm);font-weight:500;transition:all .2s;color:var(--booking-text)}.booking-calendar-day-active{cursor:pointer;transform-origin:center;will-change:transform,box-shadow}.booking-calendar-day-active:hover{background:var(--booking-bg-light);z-index:10}.booking-calendar-day-active.booking-calendar-selected{animation:dayPulse .6s ease-out}@keyframes dayPulse{0%{box-shadow:0 0 0 0 rgba(37,99,235,.4)}70%{box-shadow:0 0 0 8px rgba(37,99,235,0)}to{box-shadow:0 0 0 0 rgba(37,99,235,0)}}.booking-calendar-day-past{cursor:not-allowed;opacity:.5}.booking-calendar-day-number{position:relative;z-index:10;color:inherit}.booking-calendar-day-price{position:absolute;bottom:.125rem;left:0;right:0;text-align:center;font-size:.625rem;color:var(--booking-text-light);font-weight:400}.booking-calendar-day-split-bottom,.booking-calendar-day-split-top{position:absolute;inset:0;border-radius:var(--booking-border-radius)}.booking-calendar-day-split-top{clip-path:polygon(0 0,100% 0,0 100%)}.booking-calendar-day-split-bottom{clip-path:polygon(100% 0,100% 100%,0 100%)}.booking-calendar-available{background:var(--booking-bg-available)}.booking-calendar-selected{background:var(--booking-primary-color)}.booking-calendar-reserved{background:var(--booking-bg-reserved)}.booking-calendar-text-selected{color:var(--booking-text-selected)}.booking-calendar-text-past{color:var(--booking-text-past)}.booking-calendar-style-minimal{box-shadow:none;border:1px solid var(--booking-border)}.booking-calendar-style-minimal .booking-calendar-day,.booking-calendar-style-minimal .booking-calendar-day-split-bottom,.booking-calendar-style-minimal .booking-calendar-day-split-top{border-radius:0}.booking-calendar-style-rounded{border-radius:16px}.booking-calendar-style-rounded .booking-calendar-day,.booking-calendar-style-rounded .booking-calendar-day-split-bottom,.booking-calendar-style-rounded .booking-calendar-day-split-top,.booking-calendar-style-rounded .booking-calendar-nav-button{border-radius:12px}.booking-calendar-style-rounded .booking-calendar-legend-color{border-radius:6px}.booking-calendar-style-bordered{border:2px solid var(--booking-border)}.booking-calendar-style-bordered .booking-calendar-grid{gap:0;border:1px solid var(--booking-border)}.booking-calendar-style-bordered .booking-calendar-day{border:1px solid var(--booking-border);border-radius:0}.booking-calendar-style-bordered .booking-calendar-day-header{border:1px solid var(--booking-border);background:var(--booking-bg-light)}.booking-calendar-style-bordered .booking-calendar-day-empty{border:1px solid var(--booking-border)}.booking-calendar-style-bordered .booking-calendar-day-split-bottom,.booking-calendar-style-bordered .booking-calendar-day-split-top{border-radius:0}.booking-calendar-day-shape-circle .booking-calendar-day,.booking-calendar-day-shape-circle .booking-calendar-day-split-bottom,.booking-calendar-day-shape-circle .booking-calendar-day-split-top{border-radius:50%}.booking-calendar-day-shape-rounded .booking-calendar-day,.booking-calendar-day-shape-rounded .booking-calendar-day-split-bottom,.booking-calendar-day-shape-rounded .booking-calendar-day-split-top{border-radius:12px}.booking-calendar-grid-with-weeks{grid-template-columns:auto repeat(7,1fr)}.booking-calendar-week-header{text-align:center;font-weight:600;padding:var(--booking-spacing-sm);border-radius:var(--booking-border-radius) 0 0 0}.booking-calendar-week-header,.booking-calendar-week-number{font-size:var(--booking-font-size-sm);color:var(--booking-text-light);background:var(--booking-bg-light)}.booking-calendar-week-number{display:flex;align-items:center;justify-content:center;font-weight:500;padding:var(--booking-spacing-xs);min-width:2rem}.booking-calendar-style-bordered .booking-calendar-week-header,.booking-calendar-style-bordered .booking-calendar-week-number{border:1px solid var(--booking-border)}.booking-form{background:var(--booking-form-bg,var(--booking-bg,#fff));background-image:var(--booking-form-bg-image,none);padding:var(--booking-form-padding,var(--booking-spacing-lg,1.5rem));border-radius:var(--booking-form-border-radius,var(--booking-border-radius,8px));box-shadow:var(--booking-form-shadow,var(--booking-shadow-md,0 4px 6px -1px rgba(0,0,0,.1)));border:var(--booking-form-border-width,var(--booking-border-width,1px)) var(--booking-form-border-style,solid) var(--booking-form-border,var(--booking-border,#e2e8f0));font-family:var(--booking-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);max-width:var(--booking-form-max-width,100%)}.booking-form-title{font-size:var(--booking-font-size-title,var(--booking-font-size-xl,1.25rem));font-weight:var(--booking-font-weight-title,700);color:var(--booking-text,#1e293b);margin-bottom:var(--booking-spacing-lg,1.5rem)}.booking-form-error,.booking-form-message{padding:var(--booking-spacing-md);border-radius:var(--booking-border-radius);margin-bottom:var(--booking-spacing-md);display:flex;align-items:center;gap:var(--booking-spacing-sm);font-size:var(--booking-font-size-sm)}.booking-form-error{background:var(--booking-error-bg,#fef2f2);border:2px solid var(--booking-error-border,var(--booking-error-color,#ef4444));color:var(--booking-error-text,#991b1b);border-radius:var(--booking-message-border-radius,var(--booking-border-radius,8px))}.booking-form-message-success{background:var(--booking-success-bg,#f0fdf4);border:2px solid var(--booking-success-border,var(--booking-success-color,#10b981));color:var(--booking-success-text,#166534);border-radius:var(--booking-message-border-radius,var(--booking-border-radius,8px))}.booking-form-message-error{background:var(--booking-error-bg,#fef2f2);border:2px solid var(--booking-error-border,var(--booking-error-color,#ef4444));color:var(--booking-error-text,#991b1b);border-radius:var(--booking-message-border-radius,var(--booking-border-radius,8px))}.booking-form-icon{width:1rem;height:1rem;flex-shrink:0;color:var(--booking-message-icon-color,inherit)}.booking-form-price{padding:var(--booking-price-padding,var(--booking-spacing-md,1rem));background:var(--booking-price-bg,var(--booking-bg-light,#f8fafc));border:var(--booking-price-border,none);border-radius:var(--booking-price-border-radius,var(--booking-border-radius,8px));margin-bottom:var(--booking-spacing-md,1rem)}.booking-form-price-total{font-size:var(--booking-price-total-size,var(--booking-font-size-xl,1.25rem));font-weight:var(--booking-price-total-weight,700);color:var(--booking-price-total-text,var(--booking-text,#1e293b));margin-bottom:var(--booking-spacing-sm,.5rem)}.booking-form-price-breakdown{display:flex;flex-direction:column;gap:var(--booking-spacing-xs,.25rem);font-size:var(--booking-price-breakdown-size,var(--booking-font-size-sm,.875rem));color:var(--booking-price-breakdown-text,var(--booking-text-light,#64748b))}.booking-form-price-item{border-bottom:var(--booking-price-separator,1px solid var(--booking-border,#e2e8f0));padding-bottom:var(--booking-spacing-xs,.25rem)}.booking-form-icon-selector{gap:var(--booking-spacing-sm,.5rem);padding:var(--booking-spacing-md,1rem);background:var(--booking-bg-light,#f8fafc);flex-wrap:wrap}.booking-form-icon-selector,.booking-form-icon-selector-icon-button{display:flex;align-items:center;border:var(--booking-border-width,1px) solid var(--booking-border,#e2e8f0);border-radius:var(--booking-border-radius,8px)}.booking-form-icon-selector-icon-button{justify-content:center;width:2.5rem;height:2.5rem;background:var(--booking-bg,#fff);color:var(--booking-text-light,#94a3b8);cursor:pointer;transition:all .2s ease;flex-shrink:0;box-shadow:var(--booking-shadow-sm,0 1px 2px 0 rgba(0,0,0,.05));position:relative}.booking-form-icon-selector-icon-button:hover{background:var(--booking-primary-color,#2563eb);color:var(--booking-text-selected,#fff);border-color:var(--booking-primary-color,#2563eb);transform:scale(1.1);box-shadow:var(--booking-shadow-md,0 4px 6px -1px rgba(0,0,0,.1));z-index:1}.booking-form-icon-selector-icon-button:active{transform:scale(1.05)}.booking-form-icon-selector-icon-button.selected{background:var(--booking-primary-color,#2563eb);color:var(--booking-text-selected,#fff);border-color:var(--booking-primary-color,#2563eb);box-shadow:var(--booking-shadow-md,0 4px 6px -1px rgba(0,0,0,.1))}.booking-form-icon-selector-icon-button.selected:hover{background:var(--booking-primary-hover,#1d4ed8);transform:scale(1.1)}.booking-form-icon-selector-icon-button.hover-preview{background:var(--booking-primary-color,#2563eb);color:var(--booking-text-selected,#fff);border-color:var(--booking-primary-color,#2563eb);opacity:.7}.booking-form-icon-selector-icon-button.zero-option{font-size:var(--booking-font-size-base,1rem);font-weight:600;min-width:2.5rem}.booking-form-icon-selector-icon{width:1.5rem;height:1.5rem;stroke-width:2;transition:all .2s ease}.booking-form-icon-selector-zero{font-size:var(--booking-font-size-base,1rem);font-weight:600;color:inherit}.booking-form-icon-selector-count{margin-left:auto;font-size:var(--booking-font-size-lg,1.125rem);font-weight:600;color:var(--booking-text,#1e293b);min-width:2rem;text-align:center;padding:.25rem .75rem;background:var(--booking-bg,#fff);border-radius:var(--booking-border-radius,8px);border:var(--booking-border-width,1px) solid var(--booking-border,#e2e8f0)}.booking-form-price-item{padding:var(--booking-spacing-xs) 0}.booking-form-fields{display:flex;flex-direction:column;gap:var(--booking-spacing-field-gap,var(--booking-spacing-md,1rem))}.booking-form-two-columns .booking-form-fields{display:grid;grid-template-columns:1fr;gap:var(--booking-spacing-md)}@media (min-width:768px){.booking-form-two-columns .booking-form-fields{grid-template-columns:1fr 1fr}}.booking-form-group{display:flex;flex-direction:column;gap:var(--booking-spacing-group-gap,var(--booking-spacing-md,1rem));padding:var(--booking-group-padding,var(--booking-spacing-md,1rem));background:var(--booking-group-bg,var(--booking-bg-light,#f8fafc));border:var(--booking-group-border,none);border-radius:var(--booking-group-border-radius,var(--booking-border-radius,8px));box-shadow:var(--booking-group-shadow,none);margin-bottom:var(--booking-spacing-md,1rem)}.booking-form-group-title{font-size:var(--booking-group-title-size,var(--booking-font-size-lg,1.125rem));font-weight:var(--booking-group-title-weight,600);color:var(--booking-group-title-color,var(--booking-text,#1e293b));background:var(--booking-group-title-bg,transparent);border-bottom:var(--booking-group-title-border,none);margin-bottom:var(--booking-spacing-sm,.5rem);padding-bottom:var(--booking-spacing-xs,.25rem)}.booking-form-loading{padding:var(--booking-spacing-xl);text-align:center;color:var(--booking-text-light);font-size:var(--booking-font-size-base)}.booking-form-field{display:flex;flex-direction:column;gap:var(--booking-spacing-sm)}.booking-form-label{font-size:var(--booking-label-size,var(--booking-font-size-label,var(--booking-font-size-sm,.875rem)));font-weight:var(--booking-label-weight,var(--booking-font-weight-label,500));color:var(--booking-label-color,var(--booking-text,#1e293b));display:flex;align-items:center;gap:var(--booking-spacing-xs,.25rem);margin-bottom:var(--booking-label-margin-bottom,var(--booking-spacing-label-margin,.5rem))}.booking-form-label-icon{width:1rem;height:1rem;color:var(--booking-text-light)}.booking-form-input,.booking-form-select,.booking-form-textarea{width:100%;padding:var(--booking-spacing-md,1rem);border:var(--booking-input-border-width,var(--booking-border-width,1px)) solid var(--booking-input-border,var(--booking-border,#e2e8f0));border-radius:var(--booking-input-border-radius,var(--booking-border-radius,8px));font-size:var(--booking-font-size-input,var(--booking-font-size-base,1rem));font-family:var(--booking-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);color:var(--booking-input-text,var(--booking-text,#1e293b));background:var(--booking-input-bg,var(--booking-bg,#fff));transition:all .2s}.booking-form-input::-moz-placeholder,.booking-form-select::-moz-placeholder,.booking-form-textarea::-moz-placeholder{color:var(--booking-input-placeholder,#94a3b8)}.booking-form-input::placeholder,.booking-form-select::placeholder,.booking-form-textarea::placeholder{color:var(--booking-input-placeholder,#94a3b8)}.booking-form-input:hover,.booking-form-select:hover,.booking-form-textarea:hover{border-color:var(--booking-input-hover-border,var(--booking-border,#cbd5e1))}.booking-form-input:focus,.booking-form-select:focus,.booking-form-textarea:focus{outline:var(--booking-focus-outline-style,none);border-color:var(--booking-input-focus-border,var(--booking-primary-color,#2563eb));box-shadow:0 0 0 var(--booking-input-focus-ring-width,var(--booking-focus-ring-width,3px)) var(--booking-input-focus-ring,var(--booking-focus-ring-color,rgba(37,99,235,.15))),0 4px 12px rgba(37,99,235,.1);transform:scale(1.01)}.booking-form-input:valid:not(:-moz-placeholder),.booking-form-textarea:valid:not(:-moz-placeholder){border-color:var(--booking-success,#10b981)}.booking-form-input:valid:not(:placeholder-shown),.booking-form-select:valid,.booking-form-textarea:valid:not(:placeholder-shown){border-color:var(--booking-success,#10b981)}.booking-form-input:valid:not(:-moz-placeholder):focus,.booking-form-textarea:valid:not(:-moz-placeholder):focus{box-shadow:0 0 0 3px rgba(16,185,129,.15),0 4px 12px rgba(16,185,129,.1)}.booking-form-input:valid:not(:placeholder-shown):focus,.booking-form-select:valid:focus,.booking-form-textarea:valid:not(:placeholder-shown):focus{box-shadow:0 0 0 3px rgba(16,185,129,.15),0 4px 12px rgba(16,185,129,.1)}.booking-form-input:invalid:not(:-moz-placeholder),.booking-form-textarea:invalid:not(:-moz-placeholder){border-color:var(--booking-error,#ef4444)}.booking-form-input:invalid:not(:placeholder-shown),.booking-form-textarea:invalid:not(:placeholder-shown){border-color:var(--booking-error,#ef4444)}.booking-form-input:invalid:not(:-moz-placeholder):focus,.booking-form-textarea:invalid:not(:-moz-placeholder):focus{box-shadow:0 0 0 3px rgba(239,68,68,.15),0 4px 12px rgba(239,68,68,.1)}.booking-form-input:invalid:not(:placeholder-shown):focus,.booking-form-textarea:invalid:not(:placeholder-shown):focus{box-shadow:0 0 0 3px rgba(239,68,68,.15),0 4px 12px rgba(239,68,68,.1)}.booking-form-input:disabled,.booking-form-select:disabled,.booking-form-textarea:disabled{background:var(--booking-input-disabled-bg,#f1f5f9);color:var(--booking-input-disabled-text,#94a3b8);cursor:not-allowed}.booking-form-coupon-wrapper{position:relative;display:flex;align-items:center;gap:.5rem}.booking-form-coupon-input{padding-right:2.5rem!important}.booking-form-coupon-status{position:absolute;right:.75rem;display:flex;align-items:center;justify-content:center}.booking-form-coupon-status.valid{color:var(--booking-success-color,#10b981)}.booking-form-coupon-status.invalid{color:var(--booking-error-color,#ef4444)}.booking-form-input-valid{border-color:var(--booking-success-color,#10b981)!important}.booking-form-input-invalid{border-color:var(--booking-error-color,#ef4444)!important}.booking-form-coupon-message{font-size:.75rem;margin-top:.25rem;display:flex;align-items:center;gap:.25rem}.booking-form-coupon-message.valid{color:var(--booking-success-color,#10b981)}.booking-form-coupon-message.invalid{color:var(--booking-error-color,#ef4444)}.booking-form-coupon-discount{font-weight:600}.booking-form-coupon-input{flex:1;padding-right:.75rem!important}.booking-form-coupon-applied{background-color:#ecfdf5!important;border-color:#10b981!important;color:#047857!important}.booking-form-coupon-apply-btn{padding:.5rem 1rem;background-color:var(--booking-primary-color,#10b981);color:#fff;border:none;border-radius:var(--booking-radius,.5rem);font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .2s,opacity .2s;min-width:70px;display:flex;align-items:center;justify-content:center}.booking-form-coupon-apply-btn:hover:not(:disabled){background-color:var(--booking-primary-hover,#059669)}.booking-form-coupon-apply-btn:disabled{opacity:.5;cursor:not-allowed}.booking-form-coupon-clear-btn{padding:.5rem .75rem;background-color:transparent;color:#ef4444;border:1px solid #fecaca;border-radius:var(--booking-radius,.5rem);font-size:1.25rem;font-weight:700;line-height:1;cursor:pointer;transition:background-color .2s}.booking-form-coupon-clear-btn:hover{background-color:#fef2f2}.booking-form-coupon-spinner{width:1rem;height:1rem;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:coupon-spin .6s linear infinite}@keyframes coupon-spin{to{transform:rotate(1turn)}}.booking-form-textarea{resize:vertical;min-height:100px}.booking-form-checkbox-label{display:flex;align-items:center;gap:var(--booking-spacing-sm);cursor:pointer;font-size:var(--booking-font-size-sm);color:var(--booking-text)}.booking-form-checkbox{width:var(--booking-checkbox-size,1.25rem);height:var(--booking-checkbox-size,1.25rem);cursor:pointer;border-color:var(--booking-checkbox-border,var(--booking-border,#e2e8f0))}.booking-form-checkbox,.booking-form-checkbox:checked{accent-color:var(--booking-checkbox-accent,var(--booking-primary-color,#2563eb))}.booking-form-terms-text{line-height:1.5}.booking-form-link{color:var(--booking-link-color,var(--booking-primary-color,#2563eb));-webkit-text-decoration:var(--booking-link-decoration,underline);text-decoration:var(--booking-link-decoration,underline);font-weight:var(--booking-link-weight,normal);transition:color .2s}.booking-form-link:hover{color:var(--booking-link-hover,var(--booking-primary-hover,#1d4ed8))}.booking-form-submit{width:100%;padding:var(--booking-spacing-md,1rem) var(--booking-spacing-lg,1.5rem);background:var(--booking-button-bg,var(--booking-primary-color,#2563eb));color:var(--booking-button-text,var(--booking-text-selected,#fff));border:var(--booking-button-border-width,0) solid var(--booking-button-border,transparent);border-radius:var(--booking-button-border-radius,var(--booking-border-radius,8px));font-size:var(--booking-font-size-base,1rem);font-weight:600;font-family:var(--booking-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);cursor:pointer;transition:all .2s;box-shadow:var(--booking-button-shadow,var(--booking-shadow-sm,0 1px 2px 0 rgba(0,0,0,.05)))}.booking-form-submit:hover:not(:disabled){background:var(--booking-button-hover-bg,var(--booking-primary-hover,#1d4ed8));color:var(--booking-button-hover-text,var(--booking-button-text,var(--booking-text-selected,#fff)));border-color:var(--booking-button-hover-border,var(--booking-button-border,transparent));box-shadow:var(--booking-button-hover-shadow,0 8px 20px -4px rgba(37,99,235,.4));transform:translateY(-2px)}.booking-form-submit:active:not(:disabled){transform:translateY(0);box-shadow:var(--booking-shadow-sm,0 1px 2px 0 rgba(0,0,0,.05))}.booking-form-submit:disabled{background:var(--booking-button-disabled-bg,var(--booking-button-bg,var(--booking-primary-color,#2563eb)));color:var(--booking-button-disabled-text,var(--booking-button-text,var(--booking-text-selected,#fff)));opacity:.5;cursor:not-allowed;transform:none}.booking-form-submit-container{display:flex;flex-direction:column;gap:var(--booking-spacing-sm,.5rem)}.booking-form-submit-price{display:flex;justify-content:space-between;align-items:center;padding:var(--booking-spacing-md,1rem);background:linear-gradient(135deg,rgba(22,163,74,.1),rgba(22,163,74,.05));border:1px solid rgba(22,163,74,.2);border-radius:var(--booking-border-radius,8px)}.booking-form-submit-price-label{font-size:var(--booking-font-size-base,1rem);font-weight:500;color:var(--booking-text,#1e293b)}.booking-form-submit-price-amount{font-size:1.5rem;font-weight:700;color:var(--booking-primary-color,#16a34a)}.booking-form-spinner{width:1.25rem;height:1.25rem;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;display:inline-block;margin-right:.5rem;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.booking-widget{font-family:var(--booking-font-family)}.booking-widget-container{display:grid;grid-template-columns:1fr;gap:var(--booking-spacing-xl)}@media (min-width:1024px){.booking-widget-container{grid-template-columns:1fr 1fr}}.booking-widget-calendar-section,.booking-widget-form-section{display:flex;flex-direction:column;gap:var(--booking-spacing-lg)}.booking-widget-section-title{font-size:var(--booking-font-size-xl);font-weight:700;color:var(--booking-text);margin-bottom:var(--booking-spacing-md)}.booking-widget-loading{padding:var(--booking-spacing-md);text-align:center;color:var(--booking-text-light)}.booking-widget-selection-info{display:flex;align-items:center;justify-content:space-between;padding:var(--booking-spacing-md);background:var(--booking-bg-light);border-radius:var(--booking-border-radius)}.booking-widget-dates{font-size:var(--booking-font-size-sm);color:var(--booking-text);font-weight:500}.booking-widget-clear-button{padding:var(--booking-spacing-xs) var(--booking-spacing-sm);background:transparent;border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius);font-size:var(--booking-font-size-sm);color:var(--booking-text-light);cursor:pointer;transition:all .2s}.booking-widget-clear-button:hover{background:var(--booking-bg);border-color:var(--booking-primary-color);color:var(--booking-primary-color)}.booking-widget-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--booking-spacing-md);padding:var(--booking-spacing-md);margin-top:var(--booking-spacing-md);background:var(--booking-bg);border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius)}.booking-widget-options-header{grid-column:span 2;font-size:var(--booking-font-size-base);font-weight:600;color:var(--booking-text);padding-bottom:var(--booking-spacing-xs);border-bottom:1px solid var(--booking-border);margin-bottom:var(--booking-spacing-xs)}.booking-widget-option{display:flex;flex-direction:column;gap:var(--booking-spacing-xs)}.booking-widget-option:only-child{grid-column:span 2}.booking-widget-label{font-size:var(--booking-font-size-sm);font-weight:500;color:var(--booking-text)}.booking-widget-select{padding:var(--booking-spacing-sm) var(--booking-spacing-md);border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius);font-size:var(--booking-font-size-base);font-family:var(--booking-font-family);color:var(--booking-text);background:var(--booking-bg);cursor:pointer}.booking-widget-checkbox-label{display:flex;align-items:center;gap:var(--booking-spacing-sm);cursor:pointer;font-size:var(--booking-font-size-sm);color:var(--booking-text)}.booking-widget-checkbox{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--booking-primary-color)}.booking-widget-coupon-section{margin-top:var(--booking-spacing-md);padding:var(--booking-spacing-md);background:var(--booking-bg);border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius)}.booking-widget-coupon-wrapper{display:flex;align-items:center;gap:.5rem;margin-top:var(--booking-spacing-sm)}.booking-widget-coupon-input{flex:1;padding:var(--booking-spacing-sm) var(--booking-spacing-md);border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius);font-size:var(--booking-font-size-base);font-family:var(--booking-font-family);color:var(--booking-text);background:var(--booking-bg);transition:all .2s}.booking-widget-coupon-input:focus{outline:none;border-color:var(--booking-primary-color);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.booking-widget-coupon-input.valid{background-color:#ecfdf5;border-color:#10b981;color:#047857}.booking-widget-coupon-input.invalid{border-color:#ef4444}.booking-widget-coupon-input:disabled{background-color:#ecfdf5;cursor:not-allowed}.booking-widget-coupon-apply-btn{padding:.5rem 1rem;background-color:var(--booking-primary-color,#10b981);color:#fff;border:none;border-radius:var(--booking-border-radius);font-size:var(--booking-font-size-sm);font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .2s,opacity .2s;min-width:70px;display:flex;align-items:center;justify-content:center}.booking-widget-coupon-apply-btn:hover:not(:disabled){background-color:var(--booking-primary-hover,#059669)}.booking-widget-coupon-apply-btn:disabled{opacity:.5;cursor:not-allowed}.booking-widget-coupon-clear-btn{padding:.5rem .75rem;background-color:transparent;color:#ef4444;border:1px solid #fecaca;border-radius:var(--booking-border-radius);font-size:1.25rem;font-weight:700;line-height:1;cursor:pointer;transition:background-color .2s}.booking-widget-coupon-clear-btn:hover{background-color:#fef2f2}.booking-widget-coupon-spinner{width:1rem;height:1rem;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.booking-widget-coupon-message{display:flex;align-items:center;gap:.25rem;margin-top:.5rem;font-size:.875rem}.booking-widget-coupon-message.valid{color:#10b981}.booking-widget-coupon-message.invalid{color:#ef4444}.booking-widget-coupon-icon{width:1rem;height:1rem}.booking-widget-coupon-discount{font-weight:600;margin-left:.25rem}.booking-widget-price-summary{margin-top:var(--booking-spacing-lg,1.5rem);padding:var(--booking-spacing-md,1rem);background:linear-gradient(135deg,var(--booking-bg-light,#f8fafc) 0,var(--booking-bg,#fff) 100%);border:1px solid var(--booking-border,#e2e8f0);border-radius:var(--booking-border-radius,8px);box-shadow:0 2px 8px rgba(0,0,0,.04)}.booking-widget-price-breakdown{display:flex;flex-direction:column;gap:var(--booking-spacing-xs,.25rem);margin-bottom:var(--booking-spacing-md,1rem);padding-bottom:var(--booking-spacing-md,1rem);border-bottom:1px solid var(--booking-border,#e2e8f0)}.booking-widget-price-item{font-size:var(--booking-font-size-sm,.875rem);color:var(--booking-text-muted,#64748b);padding:var(--booking-spacing-xs,.25rem) 0}.booking-widget-price-item,.booking-widget-price-total{display:flex;justify-content:space-between;align-items:center}.booking-widget-price-label{font-size:var(--booking-font-size-base,1rem);font-weight:600;color:var(--booking-text,#1e293b)}.booking-widget-price-amount{font-size:var(--booking-font-size-xl,1.25rem);font-weight:700;color:var(--booking-primary-color,#16a34a)}.booking-widget-dark{--booking-bg:#1e293b;--booking-bg-light:#334155;--booking-text:#f1f5f9;--booking-text-light:#94a3b8;--booking-border:#475569}.booking-form-wrapper{position:relative;width:100%}.booking-form-design-modern{--booking-primary-color:#6366f1;--booking-border-radius:12px;--booking-shadow-md:0 8px 16px -4px rgba(0,0,0,.1)}.booking-form-design-classic{--booking-primary-color:#1e40af;--booking-border-radius:4px;--booking-shadow-md:0 2px 4px rgba(0,0,0,.1)}.booking-form-design-minimal{--booking-primary-color:#000;--booking-border-radius:0px;--booking-shadow-md:none;--booking-border-width:2px}.booking-form-design-elegant{--booking-primary-color:#7c3aed;--booking-border-radius:16px;--booking-shadow-md:0 12px 24px -4px rgba(0,0,0,.15)}.booking-form-description{padding:var(--booking-spacing-md);background:var(--booking-bg-light);border-radius:var(--booking-border-radius);color:var(--booking-text);font-size:var(--booking-font-size-base);line-height:1.6}.booking-form-description,.booking-form-property-selector{margin-bottom:var(--booking-spacing-lg)}.booking-form-property-selector .booking-form-label{display:block;margin-bottom:var(--booking-spacing-sm);font-weight:500;color:var(--booking-text)}.booking-form-property-selector .booking-form-select{width:100%;padding:var(--booking-spacing-sm) var(--booking-spacing-md);border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius);font-size:var(--booking-font-size-base);font-family:var(--booking-font-family);color:var(--booking-text);background:var(--booking-bg);cursor:pointer}.booking-form-images-top{margin-bottom:var(--booking-spacing-lg)}.booking-form-images-bottom,.booking-form-images-top{display:flex;flex-wrap:wrap;gap:var(--booking-spacing-md)}.booking-form-images-bottom{margin-top:var(--booking-spacing-lg)}.booking-form-images-left,.booking-form-images-right{display:flex;flex-direction:column;gap:var(--booking-spacing-md)}.booking-form-image{max-width:100%;height:auto;border-radius:var(--booking-border-radius);box-shadow:var(--booking-shadow-md);-o-object-fit:cover;object-fit:cover}.booking-form-images-top .booking-form-image{max-height:300px;width:auto}.booking-form-images-bottom .booking-form-image{max-height:200px;width:auto}.booking-form-images-left .booking-form-image,.booking-form-images-right .booking-form-image{max-width:200px;height:auto}.booking-form-background-image{pointer-events:none}@media (max-width:768px){.booking-form-images-left,.booking-form-images-right{flex-direction:row;overflow-x:auto}.booking-form-images-left .booking-form-image,.booking-form-images-right .booking-form-image{max-width:150px}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--booking-bg-light) 0,#f0f0f0 50%,var(--booking-bg-light) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--booking-border-radius)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.addons-selector{background:var(--booking-bg-light);border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius);padding:var(--booking-spacing-md)}.addons-selector,.addons-selector-header{margin-bottom:var(--booking-spacing-md)}.addons-selector-title{font-size:var(--booking-font-size-base);font-weight:600;color:var(--booking-text)}.addon-item,.addons-selector-list{display:flex;flex-direction:column;gap:var(--booking-spacing-sm)}.addon-item{padding:var(--booking-spacing-md);background:var(--booking-bg);border:var(--booking-border-width) solid var(--booking-border);border-radius:var(--booking-border-radius);transition:all var(--booking-transition-fast)}.addon-item:hover{border-color:var(--booking-primary-color);box-shadow:var(--booking-shadow-sm)}.addon-item-selected{border-color:var(--booking-addon-selected-border);background:var(--booking-addon-selected-bg)}.addon-item-clickable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.addon-item-clickable:focus{outline:2px solid var(--booking-primary-color);outline-offset:2px}.addon-item-clickable:active{transform:scale(.99)}.addon-item-content{display:flex;align-items:center;gap:var(--booking-spacing-md)}.addon-item-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:var(--booking-addon-icon-bg);border-radius:var(--booking-border-radius);flex-shrink:0;color:var(--booking-addon-icon-color);border:2px solid var(--booking-addon-icon-border);position:relative;transition:all var(--booking-transition-fast)}.addon-item-selected .addon-item-icon{background:var(--booking-addon-selected-icon-bg);color:var(--booking-addon-selected-icon-color);border-color:var(--booking-addon-selected-border)}.addon-item-check{position:absolute;bottom:-4px;right:-4px;width:18px;height:18px;background:var(--booking-addon-check-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--booking-addon-check-color);border:2px solid var(--booking-bg)}.addon-icon{width:1.5rem;height:1.5rem;stroke-width:2}.addon-item-info{flex:1;display:flex;flex-direction:column;gap:var(--booking-spacing-2xs);min-width:0}.addon-item-name{font-size:var(--booking-font-size-base);font-weight:500;color:var(--booking-text)}.addon-item-description{font-size:var(--booking-font-size-sm);color:var(--booking-text-light);line-height:1.4}.addon-item-price{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.addon-price-amount{font-size:var(--booking-font-size-lg);font-weight:600;color:var(--booking-text)}.addon-price-label{font-size:var(--booking-font-size-sm);color:var(--booking-text-light)}.addon-item-control{display:flex;justify-content:flex-end;padding-top:var(--booking-spacing-xs);border-top:var(--booking-border-width) solid var(--booking-border)}.addon-quantity-selector{display:flex;align-items:center;gap:var(--booking-spacing-sm);background:var(--booking-bg-light);border-radius:var(--booking-border-radius);padding:var(--booking-spacing-xs)}.addon-quantity-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:var(--booking-bg);border-radius:calc(var(--booking-border-radius) - 2px);cursor:pointer;color:var(--booking-text);transition:all var(--booking-transition-fast)}.addon-quantity-btn:hover:not(:disabled){background:var(--booking-primary-color);color:var(--booking-text-selected)}.addon-quantity-btn:disabled{opacity:.4;cursor:not-allowed}.addon-quantity-value{min-width:2rem;text-align:center;font-size:var(--booking-font-size-base);font-weight:600;color:var(--booking-text)}.addon-checkbox-label{display:flex;align-items:center;cursor:pointer}.addon-checkbox-input{position:absolute;opacity:0;width:0;height:0}.addon-checkbox-custom{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:2px solid var(--booking-text-muted);border-radius:calc(var(--booking-border-radius) - 4px);background:var(--booking-bg);transition:all var(--booking-transition-fast)}.addon-checkbox-checked,.addon-checkbox-label:hover .addon-checkbox-custom{border-color:var(--booking-primary-color)}.addon-checkbox-checked{background:var(--booking-primary-color);color:var(--booking-text-selected)}@media (max-width:480px){.addon-item-content{flex-wrap:wrap}.addon-item-price{width:100%;flex-direction:row;justify-content:flex-start;align-items:baseline;gap:var(--booking-spacing-xs);margin-top:var(--booking-spacing-xs)}}.price-display{background:var(--booking-price-bg,linear-gradient(135deg,#f8fafc 0,#f1f5f9 100%));border:1px solid var(--booking-price-border-color,var(--booking-border,#e2e8f0));border-radius:var(--booking-price-border-radius,12px);padding:0;overflow:hidden;font-family:var(--booking-font-family)}.price-display-enhanced{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.price-display-header{display:flex;align-items:center;gap:var(--booking-spacing-sm);padding:var(--booking-spacing-md);background:linear-gradient(135deg,var(--booking-primary-color,#16a34a) 0,var(--booking-primary-hover,#15803d) 100%);color:#fff}.price-display-header-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:hsla(0,0%,100%,.2);border-radius:8px}.price-display-header-title{font-weight:600;font-size:var(--booking-font-size-base)}.price-display-section{padding:var(--booking-spacing-md);border-bottom:1px solid var(--booking-border,#e2e8f0)}.price-display-section:last-of-type{border-bottom:none}.price-display-section-header{display:flex;align-items:center;gap:var(--booking-spacing-sm);margin-bottom:var(--booking-spacing-sm);padding-bottom:var(--booking-spacing-xs);border-bottom:1px dashed var(--booking-border,#e2e8f0)}.price-display-section-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--booking-primary-color,#16a34a);background:rgba(22,163,74,.1);border-radius:6px}.price-display-section-title{font-weight:600;font-size:var(--booking-font-size-sm);color:var(--booking-text,#1e293b);text-transform:uppercase;letter-spacing:.5px}.price-display-row{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--booking-spacing-xs) 0}.price-display-row-main{padding:var(--booking-spacing-sm) 0}.price-display-row-label{display:flex;flex-direction:column;gap:2px}.price-display-row-text{font-size:var(--booking-font-size-sm);color:var(--booking-text,#1e293b);font-weight:500}.price-display-row-detail{font-size:.75rem;color:var(--booking-text-light,#64748b);font-family:var(--booking-font-family)}.price-display-row-value{font-size:var(--booking-font-size-sm);font-weight:600;color:var(--booking-text,#1e293b);font-variant-numeric:tabular-nums}.price-display-row-value:after{content:"€";margin-left:1px}.price-display-nights-toggle{margin-top:var(--booking-spacing-xs)}.price-display-toggle-btn{display:flex;align-items:center;gap:var(--booking-spacing-xs);padding:var(--booking-spacing-xs) var(--booking-spacing-sm);background:rgba(0,0,0,.03);border:none;border-radius:6px;font-size:.75rem;color:var(--booking-primary-color,#16a34a);cursor:pointer;transition:all .2s}.price-display-toggle-btn:hover{background:rgba(0,0,0,.06)}.price-display-toggle-icon{transition:transform .2s}.price-display-toggle-icon.open{transform:rotate(180deg)}.price-display-night-details{overflow:hidden;margin-top:var(--booking-spacing-sm);background:rgba(0,0,0,.02);border-radius:8px;padding:var(--booking-spacing-xs)}.price-display-night-row{display:flex;justify-content:space-between;align-items:center;padding:var(--booking-spacing-xs) var(--booking-spacing-sm);border-radius:6px;font-size:.75rem}.price-display-night-row.weekend{background:rgba(251,191,36,.1)}.price-display-night-info{display:flex;align-items:center;gap:var(--booking-spacing-sm)}.price-display-night-date{font-weight:500;color:var(--booking-text,#1e293b);min-width:60px}.price-display-night-day{color:var(--booking-text-light,#64748b)}.price-display-weekend-badge{display:flex;align-items:center;justify-content:center;color:#f59e0b}.price-display-night-price{display:flex;align-items:center;gap:var(--booking-spacing-xs);font-variant-numeric:tabular-nums}.price-display-night-price span:first-child:after{content:"€";margin-left:1px}.price-display-night-surcharge{color:#f59e0b;font-size:.7rem}.price-display-night-surcharge:after{content:"€";margin-left:1px}.price-display-section-discount{background:rgba(34,197,94,.05);border:none}.price-display-row-discount{align-items:center}.price-display-discount-icon{display:flex;align-items:center;margin-right:var(--booking-spacing-xs);color:var(--booking-success-color,#22c55e)}.price-display-coupon-badge{display:inline-block;padding:2px 8px;background:var(--booking-success-color,#22c55e);color:#fff;font-size:.65rem;font-weight:600;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;margin-left:var(--booking-spacing-xs)}.price-display-discount-value{color:var(--booking-success-color,#22c55e)!important}.price-display-total-section{padding:var(--booking-spacing-md);background:linear-gradient(135deg,rgba(22,163,74,.05),rgba(22,163,74,.1));border-top:2px solid var(--booking-primary-color,#16a34a)}.price-display-total-row{display:flex;justify-content:space-between;align-items:center}.price-display-total-label{font-size:var(--booking-font-size-base);font-weight:600;color:var(--booking-text,#1e293b)}.price-display-total-amount{display:flex;align-items:baseline;gap:var(--booking-spacing-sm,.5rem)}.price-display-original-price{font-size:1.1rem;font-weight:500;color:var(--booking-text-muted,#64748b);text-decoration:line-through;opacity:.7}.price-display-currency{font-size:var(--booking-font-size-base);font-weight:500;color:var(--booking-primary-color,#16a34a)}.price-display-total-value{font-size:1.75rem;font-weight:700;color:var(--booking-primary-color,#16a34a);font-variant-numeric:tabular-nums}.price-display-total-value:after{content:"€";font-size:1.25rem;margin-left:2px}.price-display-per-night{text-align:right;font-size:.75rem;color:var(--booking-text-light,#64748b);margin-top:var(--booking-spacing-xs)}.price-display-per-night:before{content:"≈ "}.price-display-per-night:after{content:"€";margin-left:0}.price-display-trust{display:flex;align-items:center;justify-content:center;gap:var(--booking-spacing-xs);padding:var(--booking-spacing-sm) var(--booking-spacing-md);background:rgba(0,0,0,.02);font-size:.7rem;color:var(--booking-text-light,#64748b);border-top:1px solid var(--booking-border,#e2e8f0)}.price-display-trust svg{color:var(--booking-success-color,#22c55e)}.price-display-simple-breakdown{padding:var(--booking-spacing-md)}.price-display-simple-item{padding:var(--booking-spacing-xs) 0;font-size:var(--booking-font-size-sm);color:var(--booking-text-light,#64748b);border-bottom:1px solid var(--booking-border,#e2e8f0)}.price-display-simple-item:last-child{border-bottom:none}@media (max-width:480px){.price-display-header,.price-display-section{padding:var(--booking-spacing-sm)}.price-display-total-value{font-size:1.5rem}.price-display-night-row{flex-wrap:wrap;gap:var(--booking-spacing-xs)}.price-display-night-info{flex:1}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}