.booking-widget{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;max-width:600px;margin:0 auto;padding:20px;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;box-sizing:border-box}@media (min-width: 768px){.booking-widget{max-width:900px}}@media (max-width: 480px){.booking-widget{padding:12px;border-radius:8px;max-width:100%}}.booking-widget h2{font-size:24px;font-weight:600;margin-bottom:20px;color:#1f2937}.booking-widget .step-title{font-size:22px;font-weight:600;margin:0 0 8px;color:#1f2937}.booking-widget .step-subtitle{font-size:14px;color:#6b7280;margin:0 0 20px}.booking-widget .form-group{margin-bottom:16px}.booking-widget label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:6px}.booking-widget input:not([type=checkbox]):not([type=radio]),.booking-widget select{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;transition:border-color .2s,box-shadow .2s}.booking-widget input:not([type=checkbox]):not([type=radio]):focus,.booking-widget select:focus{outline:none;border-color:var(--primary-color, #2563eb);box-shadow:0 0 0 3px #2563eb1a}.booking-widget .date-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-widget .widget-dates-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:20px}.booking-widget .widget-dates-title{margin:0;font-size:1.35rem;font-weight:600;color:#111827;letter-spacing:-.02em}.booking-widget .widget-dates-type-badge{display:inline-block;padding:6px 12px;font-size:13px;font-weight:500;color:var(--primary-color, #2563eb);background:#2563eb14;border:1px solid rgba(37,99,235,.2);border-radius:20px}.booking-widget .widget-dates-hourly{margin-bottom:24px}.booking-widget .widget-dates-hourly-card{background:#fff;border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a;border:1px solid #e5e7eb}.booking-widget .widget-dates-hourly-label{display:block;font-size:13px;font-weight:500;color:#4b5563;margin-bottom:14px;letter-spacing:.01em}.booking-widget .widget-dates-hourly-hint{font-size:13px;color:#9ca3af;margin:0;line-height:1.45}.booking-widget .widget-date-field{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid #d1d5db;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}.booking-widget .widget-date-field:hover{border-color:#2563eb99;background:#fbfdff}.booking-widget .widget-date-field:active{transform:scale(.99)}.booking-widget .widget-date-field-value{font-size:16px;font-weight:500;color:#111827}.booking-widget .widget-date-field-icon{font-size:18px;opacity:.75}.booking-widget .widget-calendar-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999}.booking-widget .widget-calendar-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73}.booking-widget .widget-calendar-sheet{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,380px);background:#fff;border-radius:16px;border:1px solid rgba(226,232,240,.9);box-shadow:0 20px 60px #00000040;padding:14px}.booking-widget .widget-calendar-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.booking-widget .widget-calendar-sheet-title{font-size:15px;font-weight:600;color:#111827}.booking-widget .widget-calendar-sheet-close{width:34px;height:34px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;cursor:pointer;color:#374151}.booking-widget .widget-calendar-sheet-close:hover{background:#f3f4f6}.booking-widget .widget-dates-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}.booking-widget .widget-dates-btn-primary{padding:14px 20px;font-size:16px;font-weight:600;border-radius:10px;box-shadow:0 2px 8px #2563eb40}.booking-widget .widget-dates-btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #2563eb4d}.booking-widget .widget-dates-btn-back{background:#f9fafb;color:#6b7280;border:1px solid #e5e7eb;padding:12px 20px;font-weight:500;border-radius:10px}.booking-widget .widget-dates-btn-back:hover{background:#f3f4f6;color:#374151}.booking-widget .widget-calendar{background:#f8fafc;border-radius:14px;padding:18px;border:1px solid #e2e8f0;max-width:320px;box-shadow:inset 0 1px 2px #fffc}.booking-widget .widget-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px}.booking-widget .widget-calendar-title{font-size:17px;font-weight:600;color:#1e293b;text-transform:capitalize;letter-spacing:-.01em}.booking-widget .widget-calendar-nav{width:38px;height:38px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;font-size:22px;line-height:1;cursor:pointer;color:#475569;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s,border-color .2s,color .2s;box-shadow:0 1px 2px #0000000a}.booking-widget .widget-calendar-nav:hover{background:#fff;border-color:var(--primary-color, #2563eb);color:var(--primary-color, #2563eb)}.booking-widget .widget-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:10px}.booking-widget .widget-calendar-weekday{font-size:11px;font-weight:600;color:#64748b;text-align:center;text-transform:uppercase;letter-spacing:.03em}.booking-widget .widget-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.booking-widget .widget-calendar-day{aspect-ratio:1;max-width:42px;max-height:42px;margin:0 auto;width:100%;border:none;border-radius:10px;font-size:14px;font-weight:500;background:transparent;color:#334155;cursor:pointer;transition:background .2s,color .2s,transform .1s}.booking-widget .widget-calendar-day:hover:not(.widget-calendar-day-disabled){background:#e2e8f0;color:#0f172a}.booking-widget .widget-calendar-day-empty{cursor:default;aspect-ratio:1;max-width:42px;max-height:42px;margin:0 auto}.booking-widget .widget-calendar-day-disabled{color:#cbd5e1;cursor:not-allowed}.booking-widget .widget-calendar-day-selected{background:var(--primary-color, #2563eb);color:#fff;font-weight:600;box-shadow:0 2px 8px #2563eb59}.booking-widget .widget-calendar-day-selected:hover{background:var(--primary-color-hover, #1d4ed8);color:#fff;box-shadow:0 2px 10px #2563eb66}.booking-widget .widget-hourly-slots{display:flex;flex-direction:column;gap:20px}.booking-widget .widget-hourly-card .room-card-body{padding:12px 16px}.booking-widget .widget-hourly-slots-block{margin-top:12px;padding-top:10px;border-top:1px solid #e5e7eb}.booking-widget .widget-hourly-slots-label{font-size:12px;font-weight:500;color:#6b7280;margin-bottom:8px}.booking-widget .widget-hourly-slots-grid{display:flex;flex-wrap:wrap;gap:6px}.booking-widget .widget-slot-btn{display:inline-flex;flex-direction:column;align-items:center;gap:1px;padding:8px 12px;font-size:13px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa;color:#374151;cursor:pointer;transition:background .15s,border-color .15s,color .15s;text-align:center}.booking-widget .widget-slot-btn.selected{background:#2563eb14;border-color:var(--primary-color, #2563eb);color:var(--primary-color, #2563eb)}.booking-widget .widget-slot-btn:hover{background:#f0f9ff;border-color:var(--primary-color, #2563eb);color:var(--primary-color, #2563eb)}.booking-widget .widget-slot-time{font-weight:600;white-space:nowrap}.booking-widget .widget-slot-price{font-size:11px;color:#6b7280}.booking-widget .widget-hourly-compact{margin-top:10px;padding-top:10px;border-top:1px solid #e5e7eb}.booking-widget .widget-hourly-block{margin-bottom:10px}.booking-widget .widget-hourly-block:last-child{margin-bottom:0}.booking-widget .widget-hourly-block-duration{margin-top:8px;padding-top:8px;border-top:1px dashed #e5e7eb}.booking-widget .widget-hourly-block-label{font-size:13px;font-weight:500;color:#4b5563;text-align:center;margin-bottom:8px}.booking-widget .widget-hourly-start-collapsed{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 0}.booking-widget .widget-hourly-start-collapsed-label{font-size:13px;color:#6b7280}.booking-widget .widget-hourly-start-collapsed-value{font-size:14px;font-weight:600;color:#111827}.booking-widget .widget-hourly-start-expand-btn{font-size:13px;color:var(--primary-color, #2563eb);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.booking-widget .widget-hourly-start-expand-btn:hover{color:var(--primary-color-hover, #1d4ed8)}.booking-widget .widget-hourly-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%}.booking-widget .widget-chip{padding:6px 14px;min-width:52px;font-size:13px;font-weight:500;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.booking-widget .widget-chip:hover{background:#f0f9ff;border-color:var(--primary-color, #2563eb);color:var(--primary-color, #2563eb)}.booking-widget .widget-chip.selected{background:#2563eb1a;border-color:var(--primary-color, #2563eb);color:var(--primary-color, #2563eb)}.booking-widget .widget-chip-duration{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px}.booking-widget .widget-chip-duration-value{font-weight:600;color:#111827;white-space:nowrap}.booking-widget .widget-chip-price{font-size:11px;font-weight:600;color:#6b7280;white-space:nowrap}.booking-widget .widget-chip-duration:hover .widget-chip-price,.booking-widget .widget-chip-duration:hover .widget-chip-duration-value{color:var(--primary-color, #2563eb)}.booking-widget .btn{width:100%;padding:14px;font-size:16px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s}.booking-widget .btn:active{transform:scale(.98)}.booking-widget .btn-primary{background-color:var(--primary-color, #2563eb);color:#fff}.booking-widget .btn-primary:hover{background-color:var(--primary-color-hover, #1d4ed8)}.booking-widget .btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed}.booking-widget .rooms-list{margin-top:20px;display:grid;grid-template-columns:1fr;gap:16px;align-items:stretch}.booking-widget .rooms-groups{display:flex;flex-direction:column;gap:24px;margin-top:20px}.booking-widget .rooms-group-header{width:100%;padding:10px 10px 8px;margin:0;border:1px solid #e5e7eb;border-radius:10px;background:#f9fafb;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;gap:8px}.booking-widget .rooms-group-header:hover{background:#f3f4f6}.booking-widget .rooms-group-header-main{display:flex;flex-direction:column;gap:4px}.booking-widget .rooms-group-title{font-size:16px;font-weight:600;color:#111827}.booking-widget .rooms-group-meta{display:flex;justify-content:flex-start;align-items:center;gap:8px;font-size:13px;color:#6b7280}.booking-widget .rooms-group-meta-price{font-weight:600;color:var(--primary-color, #2563eb)}.booking-widget .rooms-group-toggle{font-size:16px;color:#6b7280}@media (min-width: 480px){.booking-widget .rooms-list{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.booking-widget .rooms-list{grid-template-columns:repeat(3,1fr)}}@media (max-width: 480px){.booking-widget .rooms-list{margin-top:16px;gap:12px}}.booking-widget .room-card{border:1px solid #e5e7eb;border-radius:10px;padding:0;margin-bottom:16px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.booking-widget .rooms-list>.room-card.room-card-with-photos:not(.widget-hourly-card){display:flex;flex-direction:column;height:100%;margin-bottom:0}.booking-widget .rooms-list>.room-card.room-card-with-photos:not(.widget-hourly-card) .room-card-body{flex:1;display:flex;flex-direction:column;min-height:0}.booking-widget .rooms-list>.room-card.room-card-with-photos:not(.widget-hourly-card) .room-card-body .room-price-block{margin-top:auto}.booking-widget .room-card:hover{border-color:var(--primary-color, #2563eb);box-shadow:0 2px 12px #00000014}.booking-widget .room-card.selected{border-color:var(--primary-color, #2563eb);background-color:#2563eb0a}.booking-widget .room-card-with-photos{padding:0;overflow:hidden}.booking-widget .room-card-photos{display:flex;gap:4px;padding:4px;background:#f9fafb;border-bottom:1px solid #e5e7eb}.booking-widget .room-card-photo-placeholder{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;background:#f3f4f6;border-bottom:1px solid #e5e7eb}.booking-widget .room-card-no-photo{font-size:14px;color:#9ca3af}@media (max-width: 480px){.booking-widget .room-card-photo-placeholder{aspect-ratio:4/3}}.booking-widget .room-card-photos-slider{position:relative;display:block;padding:0;aspect-ratio:16/10;background:#e5e7eb;overflow:hidden}.booking-widget .room-card-photo-main-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.booking-widget .room-card-photo-main-wrap.clickable{cursor:pointer}.booking-widget .room-card-photos-slider .room-card-photo-main{width:100%;height:100%;object-fit:contain;display:block;background:#f3f4f6;pointer-events:none}.booking-widget .room-card-photo-main-wrap.clickable .room-card-photo-main{pointer-events:none}.booking-widget .room-card-photo-prev,.booking-widget .room-card-photo-next{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:50%;background:#00000080;color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;transition:background .2s}.booking-widget .room-card-photo-prev:hover,.booking-widget .room-card-photo-next:hover{background:#000000bf}.booking-widget .room-card-photo-prev{left:8px}.booking-widget .room-card-photo-next{right:8px}@media (max-width: 480px){.booking-widget .room-card-photo-prev,.booking-widget .room-card-photo-next{width:44px;height:44px;font-size:28px}.booking-widget .room-card-photo-prev{left:6px}.booking-widget .room-card-photo-next{right:6px}.booking-widget .room-card-photos-slider{aspect-ratio:4/3}}.booking-widget .room-card-photo-dots{position:absolute;bottom:8px;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:2}.booking-widget .room-card-photo-dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:#fff9;cursor:pointer;transition:background .2s,width .2s}.booking-widget .room-card-photo-dot:hover{background:#ffffffe6}.booking-widget .room-card-photo-dot.active{background:#fff;width:20px;border-radius:4px}.booking-widget .room-card-photo{flex:1;min-width:0;aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:#e5e7eb}.booking-widget .room-card-photo img{width:100%;height:100%;object-fit:cover}.booking-widget .room-card-body{padding:16px;display:flex;flex-direction:column;gap:8px}@media (max-width: 480px){.booking-widget .room-card-body{padding:12px;gap:6px}}.booking-widget .room-name{font-size:18px;font-weight:600;color:#1f2937;margin:0;line-height:1.3}@media (max-width: 480px){.booking-widget .room-name{font-size:17px}}.booking-widget .room-type{font-size:13px;color:#6b7280;margin:0}.booking-widget .room-spec{font-size:13px;color:#4b5563;margin:0}.booking-widget .room-description{font-size:13px;color:#6b7280;margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.booking-widget .room-price-block{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:4px}.booking-widget .room-price{font-size:20px;font-weight:700;color:var(--primary-color, #2563eb)}@media (max-width: 480px){.booking-widget .room-price{font-size:18px}}.booking-widget .room-price-label{font-size:13px;color:#6b7280;font-weight:400}.booking-widget .room-applied-rules-hint{margin-top:8px;padding:8px 10px;border-radius:8px;background:#f3f4f6;border:1px solid #e5e7eb}.booking-widget .room-price-before-rules{font-size:12px;color:#6b7280;margin:0 0 4px}.booking-widget .room-price-strike{text-decoration:line-through;color:#9ca3af}.booking-widget .room-applied-rules-text{font-size:12px;color:#4b5563;margin:0;line-height:1.35}.booking-widget .room-promotion-choice{margin-top:8px;padding:10px;border-radius:8px;background:#f3f4f6;border:1px solid #e5e7eb;min-width:0;max-width:100%;box-sizing:border-box}.booking-widget .room-promotion-choice-title{font-size:12px;font-weight:600;color:#374151;margin:0 0 8px}.booking-widget .room-promotion-choice-options{display:flex;flex-direction:column;gap:6px}.booking-widget .room-promotion-choice-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:8px;font-size:12px;color:#374151;cursor:pointer;line-height:1.35;width:100%;max-width:100%;box-sizing:border-box}.booking-widget .room-promotion-choice-row input{margin-top:2px;justify-self:start}.booking-widget .room-promotion-choice-label{min-width:0;overflow-wrap:break-word;word-break:normal}.booking-widget .room-promotion-choice-disc{font-weight:600;color:#059669;white-space:nowrap;justify-self:end}.booking-widget .room-card-select-btn{width:100%;margin-top:8px;padding:12px 20px;font-size:16px;font-weight:600;border:none;border-radius:8px;cursor:pointer;background:var(--primary-color, #2563eb);color:#fff;transition:background .2s,transform .1s;-webkit-tap-highlight-color:transparent}.booking-widget .room-card-select-btn:hover{filter:brightness(1.05)}.booking-widget .room-card-select-btn:active{transform:scale(.98)}@media (max-width: 480px){.booking-widget .room-card-select-btn{padding:14px 20px;min-height:48px;font-size:16px}}.booking-widget .widget-package-actions{display:flex;flex-wrap:wrap;gap:10px 12px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #e5e7eb}.booking-widget .widget-package-skip{flex:1;min-width:140px}.booking-widget .widget-package-back{background:#f9fafb;color:#374151;border:1px solid #e5e7eb}.booking-widget .widget-package-back:hover{background:#f3f4f6;color:#111827}.booking-widget .widget-package-list{display:flex;flex-direction:column;gap:16px;margin-top:8px}.booking-widget .widget-package-card{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff;transition:border-color .2s,box-shadow .2s;cursor:pointer}.booking-widget .widget-package-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000f}.booking-widget .widget-package-card.selected{border-color:var(--primary-color, #2563eb);box-shadow:0 0 0 1px var(--primary-color, #2563eb),0 4px 12px #2563eb1f;cursor:default}.booking-widget .widget-package-card-header{padding:18px 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.booking-widget .widget-package-card.selected .widget-package-card-header{padding-bottom:16px;border-bottom:1px solid #e5e7eb}.booking-widget .widget-package-card-title{font-size:17px;font-weight:600;color:#111827;margin:0;line-height:1.35;letter-spacing:-.01em}.booking-widget .widget-package-card-badge{flex-shrink:0;padding:5px 10px;font-size:12px;font-weight:500;color:#4b5563;background:#f3f4f6;border-radius:20px}.booking-widget .widget-package-card-desc{font-size:14px;color:#6b7280;margin:6px 0 0;line-height:1.45}.booking-widget .widget-package-card-body{padding:20px;background:#fafbfc;border-top:1px solid #f3f4f6}.booking-widget .widget-package-slots-title{font-size:13px;font-weight:600;color:#374151;margin:0 0 14px;letter-spacing:.02em}.booking-widget .widget-package-service-list{display:flex;flex-direction:column;gap:14px}.booking-widget .widget-package-service-item{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;transition:border-color .2s}.booking-widget .widget-package-service-item:focus-within{border-color:var(--primary-color, #2563eb);box-shadow:0 0 0 2px #2563eb1a}.booking-widget .widget-package-service-name{font-size:14px;font-weight:600;color:#111827;margin-bottom:10px}.booking-widget .widget-package-service-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;align-items:end}@media (max-width: 420px){.booking-widget .widget-package-service-fields{grid-template-columns:1fr}}.booking-widget .widget-package-service-fields label{font-size:12px;font-weight:500;color:#6b7280;margin-bottom:6px;display:block}.booking-widget .widget-package-service-fields .widget-package-slot-input{width:100%;box-sizing:border-box;padding:10px 12px;font-size:15px;color:#1a1a1a;background:#fffef9;border:1px solid rgba(180,150,60,.45);border-radius:4px;transition:border-color .2s,box-shadow .2s}.booking-widget .widget-package-service-fields .widget-package-slot-input:focus{outline:none;border-color:#c9a227;box-shadow:0 0 0 2px #d4af3738}.booking-widget .widget-package-service-fields select.widget-package-slot-input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fffef9;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='none' stroke='%23b5952f' stroke-width='1.5' stroke-linecap='round' d='M2 2.5L7 6.5l5-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.booking-widget .widget-package-footer{margin-top:20px;padding-top:18px;border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.booking-widget .widget-package-total-label{font-size:13px;color:#6b7280;margin:0}.booking-widget .widget-package-total-value{font-size:20px;font-weight:700;color:var(--primary-color, #2563eb);margin:0}.booking-widget .widget-package-continue{min-width:160px}.booking-widget .loading{text-align:center;padding:40px;color:#6b7280}.booking-widget .error{background-color:#fef2f2;color:#dc2626;padding:12px;border-radius:8px;margin-bottom:16px;position:sticky;top:0;z-index:50;box-shadow:0 1px #0000000f}.booking-widget .success{background-color:#f0fdf4;color:#16a34a;padding:20px;border-radius:8px;text-align:center}.booking-widget .success h3{font-size:20px;margin-bottom:12px}.booking-widget .success a{color:var(--primary-color, #2563eb);text-decoration:none;font-weight:600}.booking-widget .success a.btn-primary{color:#fff}.booking-widget .step-indicator{display:flex;flex-wrap:wrap;gap:0 12px;margin-bottom:24px;border-bottom:1px solid #e5e7eb}.booking-widget .step{flex:0 1 auto;text-align:center;padding:10px 4px 12px;font-size:13px;color:#6b7280;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s}.booking-widget .step.active{color:var(--primary-color, #2563eb);border-bottom-color:var(--primary-color, #2563eb);font-weight:600}.booking-widget .step.completed{color:#6b7280;border-bottom-color:transparent}@media (max-width: 480px){.booking-widget .step-indicator{gap:2px 8px;margin-bottom:16px}.booking-widget .step{font-size:11px;padding:4px 2px}}.booking-widget .warning-message{background-color:#fef3c7;color:#92400e;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;line-height:1.5;border:1px solid #fcd34d}.booking-widget .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.booking-widget .modal-content{background:#fff;border-radius:16px;padding:24px;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 40px #0003;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.booking-widget .modal-icon{font-size:48px;margin-bottom:16px}.booking-widget .modal-content h3{font-size:20px;font-weight:600;color:#1f2937;margin-bottom:12px}.booking-widget .modal-content p{color:#4b5563;font-size:15px;line-height:1.6}.booking-widget .widget-period-filter-hint{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 14px;padding:10px 12px;border-radius:8px;background:#f0f9ff;border:1px solid #bae6fd;font-size:13px;color:#1e3a5f;line-height:1.4}.booking-widget .widget-period-filter-reset{font-size:13px;font-weight:600;color:var(--primary-color, #2563eb);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.booking-widget .widget-period-filter-reset:hover{color:var(--primary-color-hover, #1d4ed8)}.booking-widget .categories-row{margin-bottom:24px}.booking-widget .categories-row:last-child{margin-bottom:0}.booking-widget .categories-row-label{font-size:14px;font-weight:600;color:#6b7280;margin-bottom:8px}.booking-widget .categories-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}@media (max-width: 600px){.booking-widget .categories-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 400px){.booking-widget .categories-grid{grid-template-columns:1fr}}.booking-widget .category-card{text-align:center;padding:24px 16px;margin-bottom:0}.booking-widget .category-card .room-name{font-size:18px;margin-bottom:8px}.booking-widget .category-card .room-type{font-size:13px;color:#6b7280}.booking-widget .payment-methods{display:flex;flex-direction:column;gap:12px}.booking-widget .payment-option{display:flex;align-items:flex-start;gap:14px;padding:16px;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .2s}.booking-widget .payment-option:hover{border-color:#d1d5db;background:#f9fafb}.booking-widget .payment-option.selected{border-color:var(--primary-color, #2563eb);background:#2563eb0d}.booking-widget .payment-radio{width:22px;height:22px;min-width:22px;border:2px solid #d1d5db;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px}.booking-widget .payment-option.selected .payment-radio{border-color:var(--primary-color, #2563eb)}.booking-widget .radio-dot{width:12px;height:12px;border-radius:50%;background:transparent;transition:background .2s}.booking-widget .radio-dot.active{background:var(--primary-color, #2563eb)}.booking-widget .payment-info{flex:1}.booking-widget .payment-title{font-weight:600;font-size:16px;color:#1f2937;margin-bottom:4px}.booking-widget .payment-desc{font-size:14px;color:#6b7280;margin-bottom:6px}.booking-widget .payment-price{font-weight:600;font-size:15px;color:var(--primary-color, #2563eb)}.booking-widget .consents-block{margin-top:20px;margin-bottom:20px;padding:16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px}.booking-widget .consent-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;cursor:pointer}.booking-widget .consent-row:last-child{margin-bottom:0}.booking-widget .consent-row input[type=checkbox]{width:20px;height:20px;min-width:20px;margin-top:2px;accent-color:var(--primary-color, #2563eb);cursor:pointer;flex-shrink:0}.booking-widget .consent-row span{font-size:14px;line-height:1.45;color:#374151}.booking-widget .consent-row .consent-required{color:#6b7280;font-size:13px}.booking-widget .photo-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:20px 20px 56px;box-sizing:border-box}.booking-widget .photo-lightbox-content{position:relative;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center}.booking-widget .photo-lightbox-img{max-width:100%;max-height:85vh;width:auto;height:auto;object-fit:contain;border-radius:8px}.booking-widget .photo-lightbox-close{position:absolute;top:-44px;right:0;width:36px;height:36px;border:none;border-radius:50%;background:#fff3;color:#fff;font-size:28px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;transition:background .2s}.booking-widget .photo-lightbox-close:hover{background:#ffffff59}.booking-widget .photo-lightbox-prev,.booking-widget .photo-lightbox-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:none;border-radius:50%;background:#00000080;color:#fff;font-size:32px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;transition:background .2s}.booking-widget .photo-lightbox-prev:hover,.booking-widget .photo-lightbox-next:hover{background:#000000b3}.booking-widget .photo-lightbox-prev{left:16px}.booking-widget .photo-lightbox-next{right:16px}.booking-widget .photo-lightbox-dots{position:absolute;bottom:-36px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:2}.booking-widget .photo-lightbox-dot{width:10px;height:10px;border-radius:50%;border:none;padding:0;background:#ffffff80;cursor:pointer;transition:background .2s,width .2s}.booking-widget .photo-lightbox-dot:hover{background:#fffc}.booking-widget .photo-lightbox-dot.active{background:#fff;width:24px;border-radius:5px}@media (max-width: 480px){.booking-widget .photo-lightbox-prev,.booking-widget .photo-lightbox-next{width:44px;height:44px;font-size:28px;left:8px}.booking-widget .photo-lightbox-next{right:8px}.booking-widget .photo-lightbox-close{top:-40px;right:8px}}.booking-widget .widget-parking-block{margin-top:20px;padding:16px;border:1px solid #e5e7eb;border-radius:10px;background:#f9fafb}.booking-widget .widget-parking-title{font-weight:600;font-size:15px;color:#1f2937;margin-bottom:10px}.booking-widget .widget-parking-check{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:14px;line-height:1.45;color:#374151;margin:0}.booking-widget .widget-parking-check input[type=checkbox]{width:20px;height:20px;min-width:20px;margin-top:2px;flex-shrink:0;accent-color:var(--primary-color, #2563eb);cursor:pointer}.booking-widget .widget-parking-check span{flex:1;min-width:0}.booking-widget .widget-parking-hint{font-size:13px;color:#6b7280;line-height:1.5;margin:12px 0 14px}.booking-widget .widget-parking-hint p{margin:0 0 10px}.booking-widget .widget-parking-hint p:last-child{margin-bottom:0}.booking-widget .widget-parking-hint-pay{color:#4b5563}.booking-widget .widget-parking-field-hint{font-size:12px;color:#6b7280;margin:6px 0 0;line-height:1.4}
