:root{--primary:#2563eb;--primary-foreground:#fff;--accent:#f59e0b;--accent-foreground:#fff;--background:#fff;--foreground:#0f172a;--muted:#f1f5f9;--muted-foreground:#64748b;--border:#e2e8f0;--radius:.5rem;--status-available:#22c55e;--status-booked:#ef4444;--status-unavailable:#94a3b8;--status-pending:#f59e0b;--item-col-width:200px;--date-col-width:65px;--header-height:80px;--row-height:65px}html,body,#root{width:100%;min-height:100dvh;margin:0;padding:0}body{-webkit-overflow-scrolling:touch;background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;overflow-x:hidden}*{box-sizing:border-box}img{max-width:100%;display:block}.app-viewport{background-color:var(--background);grid-template-rows:auto 1fr;height:100dvh;display:grid;overflow:hidden}.grid-scroll-area{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;width:100%;height:100%;min-height:0;position:relative;overflow:auto}.grid-scroll-area::-webkit-scrollbar{width:12px;height:12px}.grid-scroll-area::-webkit-scrollbar-track{background:var(--muted)}.grid-scroll-area::-webkit-scrollbar-thumb{border:3px solid var(--muted);background-color:#cbd5e1;border-radius:6px}.grid-scroll-area::-webkit-scrollbar-thumb:hover{background-color:var(--muted-foreground)}.grid-body{flex:none;width:fit-content;min-width:100%}.grid-table{grid-template-columns:minmax(0, var(--item-col-width)) repeat(var(--date-count), var(--date-col-width));width:max-content;min-width:100%;display:grid}.grid-header-sticky{z-index:30;background:var(--background);position:sticky;top:0}.grid-col-sticky{z-index:20;background:var(--background);border-right:1px solid var(--border);scroll-snap-align:start;position:sticky;left:0;box-shadow:6px 0 12px -4px #00000026}.grid-cell{height:var(--row-height);border-bottom:1px solid var(--border);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:.875rem;transition:background .2s;display:flex}.grid-cell-header{height:var(--header-height);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);background:linear-gradient(#f8fafc,#f1f5f9);flex-direction:column;font-size:.65rem;font-weight:700;position:relative;overflow:hidden}.grid-cell-header:after{content:"";background:var(--primary);opacity:0;height:2px;transition:opacity .2s;position:absolute;bottom:0;left:10%;right:10%}.grid-cell-header:hover:after{opacity:.3}.grid-table .grid-cell:not(.grid-col-sticky){scroll-snap-align:start}.date-pill{flex-direction:column;align-items:center;gap:1px;display:flex}.date-number{color:var(--foreground);font-size:.75rem;font-weight:900;line-height:1}.day-label{color:var(--primary);opacity:.8;font-weight:500}.month-label{opacity:.5;font-weight:500}.top-bar{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;display:flex;box-shadow:0 1px 3px #00000005}.brand-section{align-items:center;gap:.75rem;display:flex}.brand-section h1{color:var(--foreground);letter-spacing:-.02em;font-size:1.125rem;font-weight:800}.month-picker{background:0 0;border:none;align-items:center;gap:1.5rem;padding:0;display:flex}.month-picker span{color:var(--foreground);letter-spacing:-.02em;text-align:center;min-width:150px;font-size:.9rem;font-weight:800}.month-picker button{border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--muted-foreground);background:#fff;border-radius:50%;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 2px 4px #0000000d}.month-picker button:hover{background:var(--foreground);border-color:var(--foreground);color:#fff;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.month-picker button:active{transform:translateY(0)}.grid-cell-header.grid-col-sticky{color:var(--foreground);letter-spacing:.05em;border-right:2px solid var(--border);z-index:40;background:#fff;font-size:.75rem;font-weight:900}.grid-cell-header.grid-col-sticky span{opacity:.4;text-transform:uppercase}.grid-table:hover .grid-cell-item{background-color:var(--muted)}.grid-table:hover .grid-cell-availability:not(.booked){background-color:#00000003}.grid-cell-item{background-color:var(--background);justify-content:flex-start;align-items:center;gap:.75rem;width:100%;min-width:0;padding:0 .75rem;font-weight:600;display:flex}.grid-cell-item a,.grid-cell-item .item-link{width:100%;min-width:0;color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:flex}.item-image-container{background-color:var(--muted);border:1px solid var(--border);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.item-image-container img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.grid-cell-item:hover .item-image-container img{transform:scale(1.1)}.item-name-text{min-width:0;color:var(--foreground);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.grid-cell-availability:hover:not(.booked):not(.unavailable){background:var(--muted)}.price-tag{letter-spacing:-.02em;font-size:.8rem;font-weight:700}.grid-cell-availability.selected{color:var(--primary-foreground,#fff);border-right-color:var(--primary,#2563eb);border-bottom-color:var(--primary,#2563eb);position:relative;background:var(--primary,#2563eb)!important}.cell-remove-btn{width:16px;height:16px;color:var(--primary);cursor:pointer;opacity:0;z-index:10;background:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:900;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;top:2px;right:2px;transform:scale(.5);box-shadow:0 2px 4px #0000001a}.grid-cell-availability.selected:hover .cell-remove-btn{opacity:1;transform:scale(1)}.cell-remove-btn:hover{color:#fff;background:#ef4444;transform:scale(1.1)!important}.date-pills-container{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;gap:.5rem;padding-bottom:4px;display:flex;overflow-x:auto}.date-pill{color:#1e40af;white-space:nowrap;background:#eff6ff;border:1px solid #dbeafe;border-radius:9999px;align-items:center;gap:.35rem;padding:.2rem .5rem;font-size:.75rem;font-weight:800;animation:.3s cubic-bezier(.34,1.56,.64,1) pillIn;display:flex}.pill-remove-btn{color:#1e40af;cursor:pointer;background:#bfdbfe;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;transition:all .2s;display:flex}.pill-remove-btn:hover{color:#fff;background:#ef4444}@keyframes pillIn{0%{opacity:0;transform:scale(.9)translate(-10px)}to{opacity:1;transform:scale(1)translate(0)}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.summary-actions-group{align-items:center;gap:1.5rem;display:flex}@media (max-width:480px){.summary-actions-group{gap:.5rem}}.btn-premium-clear{color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:.6rem;padding:.6rem 1.1rem;font-size:.9rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.btn-premium-clear:hover{color:#ef4444;background:#fef2f2;border-color:#fee2e2;transform:translateY(-2px)}.btn-premium-clear:active{transform:translateY(0)}.btn-premium-reserve{background:linear-gradient(135deg, var(--primary,#2563eb) 0%, #1d4ed8 100%);color:var(--primary-foreground,#fff);cursor:pointer;border:none;border-radius:14px;align-items:center;gap:.75rem;padding:.6rem 1.6rem;font-size:1rem;font-weight:800;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 8px 20px -4px #2563eb59}.btn-premium-reserve:hover{background:linear-gradient(135deg,#2563eb 0%,#1e40af 100%);transform:translateY(-4px)scale(1.02);box-shadow:0 15px 30px -6px #2563eb73}.btn-premium-reserve:active{transform:translateY(-1px)scale(.98)}.btn-premium-reserve .reserve-icon{width:1.25rem;height:1.25rem;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.btn-premium-reserve:hover .reserve-icon{transform:translate(6px)scale(1.1)}.booking-summary-container{padding-bottom:max(.75rem, env(safe-area-inset-bottom,0px));max-width:100vw;height:auto;box-shadow:0 -4px 20px -5px #0000001a}@media (max-width:768px){.selection-section{max-width:100%;margin-bottom:1rem;margin-right:0!important}}.loader-overlay{background:var(--background);flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.error-container{flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.selection-summary-card{background-color:#fff;border:1px solid #f1f5f9;border-radius:16px;flex-direction:row;gap:1.25rem;padding:1.25rem;display:flex;box-shadow:0 4px 12px -2px #0f172a14}.summary-item-header{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.summary-item-image{object-fit:cover;border:1px solid #e2e8f0;border-radius:10px;width:80px!important;min-width:80px!important;height:80px!important;min-height:80px!important}.summary-item-name{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800;overflow:hidden}.summary-item-description{color:#64748b;background-color:#f8fafc;border-left:3px solid #e2e8f0;border-radius:8px;margin-top:10px;padding:8px 12px;font-size:13px;line-height:1.6;overflow-y:auto}.summary-item-description::-webkit-scrollbar{width:5px}.summary-item-description::-webkit-scrollbar-track{background:0 0}.summary-item-description::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.summary-item-description::-webkit-scrollbar-thumb:hover{background:#94a3b8}.summary-count-badge{background-color:var(--primary);color:#fff;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900;box-shadow:0 4px 10px -2px #2563eb66}.summary-title-text{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:12px;font-weight:800}.summary-price-label{text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-size:10px;font-weight:800}.summary-price-value{color:var(--primary);font-size:1.75rem;font-weight:900;line-height:1}.summary-items-list{flex-direction:column;gap:1rem;height:auto;max-height:75vh;padding-right:8px;display:flex;overflow-y:auto}@media (max-width:768px){.summary-items-list{gap:.5rem;max-height:44vh}}.summary-right-stacked{align-self:center;min-width:240px;padding:1.5rem 0;flex-direction:column!important;justify-content:center!important;align-items:stretch!important;gap:.75rem!important;display:flex!important}.summary-right-stacked .summary-price-box{border-bottom:1px solid #f1f5f9;margin-bottom:.25rem;padding-bottom:.75rem;text-align:center!important;flex-direction:column!important;align-items:center!important;display:flex!important}.summary-right-stacked .summary-actions-group{flex-direction:column!important;gap:.75rem!important;width:100%!important;display:flex!important}.summary-right-stacked .summary-actions-group button{justify-content:center!important;width:100%!important;padding:.75rem!important;display:flex!important}.fade-in{animation:.3s cubic-bezier(.4,0,.2,1) forwards fadeIn}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-32{padding-bottom:8rem}.bg-white{background:#fff}.bg-slate-50{background:#f8fafc}.border-b{border-bottom:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-2xl{font-size:1.5rem}.uppercase{text-transform:uppercase}.font-bold{font-weight:700}.font-black{font-weight:900}.opacity-70{opacity:.7}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:768px){:root{--item-col-width:150px;--date-col-width:55px;--row-height:55px}.item-image-container{width:32px;height:32px}.item-name-text{font-size:.75rem}.grid-cell-item{gap:.5rem;padding:0 .5rem}.price-tag{font-size:.7rem}.text-xs{font-size:.65rem}.text-sm{font-size:.75rem}.text-base{font-size:.85rem}.text-lg{font-size:.95rem}.text-2xl{font-size:1.25rem}.month-picker span{font-size:.8rem}.btn-premium-reserve{padding:.55rem 1.4rem;font-size:.9rem}.btn-premium-clear{font-size:.8rem}.date-number{font-size:.7rem}.day-label,.month-label{font-size:.55rem}}@media (max-width:480px){:root{--item-col-width:120px;--date-col-width:48px;--row-height:50px}.grid-cell{font-size:.7rem}.item-image-container{width:28px;height:28px}.item-name-text{font-size:.7rem}.grid-cell-item{gap:.4rem;padding:0 .4rem}.price-tag{font-size:.6rem}.grid-cell-header{font-size:.55rem}.text-xs{font-size:.6rem}.text-sm{font-size:.7rem}.text-base{font-size:.8rem}.text-lg{font-size:.9rem}.text-2xl{font-size:1.1rem}.month-picker span{font-size:.75rem}.btn-premium-reserve{padding:.5rem 1.2rem;font-size:.85rem}.btn-premium-clear{font-size:.75rem}.date-number{font-size:.65rem}.day-label,.month-label{font-size:.5rem}.brand-section h1{font-size:.95rem}}.booking-summary-content{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;display:flex}@media (max-width:768px){.booking-summary-content{flex-direction:column;align-items:stretch;gap:.5rem}.booking-summary-container{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem 1rem}.booking-summary-container .selection-section{width:100%;max-width:100%;margin-bottom:0;margin-right:0!important}.booking-summary-container .selection-section .flex.items-center.gap-2.mb-3{margin-bottom:.25rem}.summary-right-stacked{flex-direction:row!important;justify-content:space-between!important;align-items:center!important;gap:.75rem!important;width:100%!important;min-width:0!important;padding:0!important}.booking-summary-container .summary-right-section{background:0 0;flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem;width:100%}.booking-summary-container .summary-right-section .flex-col.text-right,.summary-right-stacked .summary-price-box{text-align:left!important;border-bottom:none!important;flex-direction:row!important;flex:none!important;align-items:center!important;gap:.5rem!important;width:auto!important;margin-bottom:0!important;padding-bottom:0!important}.summary-right-stacked .summary-actions-group{flex-direction:row!important;flex:1!important;justify-content:flex-end!important;gap:.4rem!important;width:auto!important}.summary-actions-group button,.summary-right-stacked .summary-actions-group button{border-radius:8px!important;flex:0 auto!important;width:auto!important;padding:.45rem .75rem!important;font-size:.75rem!important}.booking-summary-container .summary-right-section .text-3xl{font-size:.7rem}.summary-price-label{font-size:.65rem}.summary-price-value{font-size:1.1rem!important}.summary-count-badge{padding:.15rem .4rem;font-size:.65rem}.summary-title-text{font-size:.85rem}.summary-item-name{font-size:.8rem!important}.summary-item-description{-webkit-line-clamp:1;font-size:.65rem!important}.selection-summary-card{gap:.75rem;padding:.6rem}.summary-item-image{width:45px!important;min-width:45px!important;height:45px!important}.summary-actions-group{flex:1;justify-content:flex-end;gap:.3rem;width:auto}.summary-actions-group button{border-radius:8px;flex:0 auto;padding:.45rem .75rem;font-size:.7rem}.btn-premium-reserve{padding:.45rem .75rem;min-width:110px!important}.btn-premium-reserve .reserve-icon{display:none}:is(.calendar-main-container:has(+.booking-summary-container),.calendar-grid-wrapper:has(+.booking-summary-container)){padding-bottom:250px!important}}@media (max-width:480px){.booking-summary-container{padding-left:.75rem;padding-right:.75rem}.summary-actions-group{gap:.4rem}.btn-premium-clear span{display:none}.btn-premium-clear{color:#ef4444;background:#fef2f2;border-radius:8px;padding:.6rem}}.reservation-modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:9999;background:#00000073;justify-content:center;align-items:center;padding:1rem;animation:.2s cubic-bezier(.4,0,.2,1) fadeIn;display:flex;position:fixed;inset:0}.reservation-modal{background:#fff;border-radius:20px;width:100%;max-width:600px;max-height:90vh;animation:.3s cubic-bezier(.34,1.56,.64,1) modalSlideUp;overflow-y:auto;box-shadow:0 25px 60px -10px #00000040,0 0 0 1px #0000000d}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.reservation-modal-header{justify-content:space-between;align-items:center;padding:1.25rem 1.5rem 0;display:flex}.reservation-modal-title{color:var(--foreground);letter-spacing:-.02em;font-size:1.1rem;font-weight:800}.reservation-modal-close{background:var(--muted);cursor:pointer;width:32px;height:32px;color:var(--muted-foreground);border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.reservation-modal-close:hover{color:#ef4444;background:#fee2e2;transform:rotate(90deg)}.reservation-modal-item{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.reservation-modal-image{object-fit:cover;border:1px solid var(--border);border-radius:12px;flex-shrink:0;width:64px;height:64px}.reservation-modal-item-info{flex:1;min-width:0}.reservation-modal-item-name{color:var(--foreground);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.reservation-modal-price-per-day{color:var(--muted-foreground);align-items:center;gap:.2rem;margin-top:.25rem;font-size:.8rem;font-weight:600;display:flex}.reservation-modal-dates{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.reservation-modal-date-block{flex-direction:column;flex:1;gap:.2rem;display:flex}.reservation-modal-date-block--end{text-align:right;align-items:flex-end}.reservation-modal-date-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);font-size:.65rem;font-weight:700}.reservation-modal-date-value{color:var(--foreground);letter-spacing:-.01em;font-size:.9rem;font-weight:800}.reservation-modal-date-arrow{flex-direction:column;flex-shrink:0;align-items:center;gap:.3rem;display:flex}.reservation-modal-days-badge{color:#1e40af;white-space:nowrap;background:#eff6ff;border:1px solid #dbeafe;border-radius:9999px;padding:.15rem .5rem;font-size:.7rem;font-weight:800}.reservation-modal-total{justify-content:space-between;align-items:center;padding:1rem 1.5rem .5rem;display:flex}.reservation-modal-total-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);font-size:.8rem;font-weight:700}.reservation-modal-total-price{color:var(--primary);letter-spacing:-.03em;font-size:1.5rem;font-weight:900}.reservation-modal-disclaimer{color:var(--muted-foreground);opacity:.8;padding:0 1.5rem .5rem;font-size:.72rem}.reservation-modal-error{color:#ef4444;text-align:center;background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;margin:0 1.5rem .75rem;padding:.5rem 1rem;font-size:.8rem;font-weight:600}.reservation-modal-actions{gap:.75rem;padding:1rem 1.5rem 1.5rem;display:flex}.reservation-modal-btn-cancel{border:1px solid var(--border);color:var(--muted-foreground);cursor:pointer;background:0 0;border-radius:12px;flex:1;padding:.7rem 1.2rem;font-size:.9rem;font-weight:700;transition:all .2s}.reservation-modal-btn-cancel:hover{background:var(--muted);color:var(--foreground)}.reservation-modal-btn-confirm{background:linear-gradient(135deg, var(--primary) 0%, #1d4ed8 100%);color:#fff;cursor:pointer;border:none;border-radius:12px;flex:2;justify-content:center;align-items:center;gap:.6rem;padding:.7rem 1.4rem;font-size:.95rem;font-weight:800;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 8px 20px -4px #2563eb59}.reservation-modal-btn-confirm:hover{transform:translateY(-2px);box-shadow:0 12px 28px -6px #2563eb73}.reservation-modal-config{border-bottom:1px solid var(--border);padding:1rem 1.5rem}.config-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin-bottom:.75rem;font-size:.7rem;font-weight:800}.config-list{flex-direction:column;gap:.6rem;display:flex}.config-item{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.config-label{color:var(--foreground);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.85rem;font-weight:600;overflow:hidden}.config-select{appearance:none;background:var(--muted) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right .6rem center;border:1px solid var(--border);color:var(--foreground);cursor:pointer;border-radius:8px;flex-shrink:0;max-width:55%;padding:.4rem 2rem .4rem .7rem;font-size:.82rem;font-weight:600;transition:border-color .2s,box-shadow .2s}.config-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.config-select:disabled{opacity:.5;cursor:not-allowed}.reservation-modal-form{flex-direction:column;display:flex}.reservation-modal-form-group{flex-direction:column;gap:.35rem;padding:.75rem 1.5rem 0;display:flex}.reservation-modal-form-group label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted-foreground);font-size:.7rem;font-weight:700}.reservation-modal-input-wrapper{align-items:center;display:flex;position:relative}.reservation-modal-input-wrapper svg{pointer-events:none;flex-shrink:0;position:absolute;left:.75rem}.reservation-modal-input-wrapper input{border:1px solid var(--border);background:var(--background);width:100%;color:var(--foreground);border-radius:10px;padding:.6rem .75rem .6rem 2.25rem;font-size:.88rem;font-weight:500;transition:border-color .2s,box-shadow .2s}.reservation-modal-input-wrapper input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.reservation-modal-input-wrapper input::placeholder{color:var(--muted-foreground);opacity:.7}.reservation-modal-info-box{background:#f0f7ff;border-left:4px solid #3b82f6;border-radius:8px;margin:1rem 1.5rem 0;padding:1rem 1.5rem}.reservation-modal-info-box p{color:#1e40af;margin:0;font-size:.85rem;font-weight:600;line-height:1.4}.booqable-cart,.booqable-cart-button,#booqable-cart,.bq-cart,.bq-cart-button{visibility:hidden!important;pointer-events:none!important;display:none!important}@media (max-width:480px){.reservation-modal{border-radius:16px}.reservation-modal-total-price{font-size:1.25rem}.reservation-modal-date-value{font-size:.8rem}.config-item{flex-direction:column;align-items:flex-start;gap:.3rem}.config-select{width:100%;max-width:100%}}.details-page{background-color:#fff;width:100%;padding:2rem 1rem 1rem;overflow-y:visible}.details-content-container{grid-template-columns:1fr;gap:1.5rem;width:100%;margin:0 auto;padding-bottom:5rem;display:grid}@media (max-width:375px){.details-page{padding:.75rem}.details-content-container{gap:1rem}}@media (min-width:768px){.details-page{padding:2rem}}@media (min-width:1024px){.details-content-container{grid-template-columns:.8fr 1.2fr;gap:4rem}}.back-nav{margin-bottom:1.5rem}@media (min-width:1024px){.back-nav{margin-bottom:2rem}}.back-button{color:#64748b;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:color .2s;display:inline-flex}.back-button:hover{color:var(--primary)}.image-gallery{flex-direction:column;gap:1.5rem;max-width:100%;margin:0 auto;display:flex}@media (min-width:1024px){.image-gallery{max-width:650px}}.main-carousel{aspect-ratio:16/11;background-color:#0f172a;border-radius:12px;width:100%;max-height:60vh;position:relative;overflow:hidden;box-shadow:0 4px 20px -5px #0000001a}@media (min-width:768px){.main-carousel{aspect-ratio:16/10;border-radius:20px;max-height:500px;box-shadow:0 10px 30px -10px #0000001a}}.carousel-image{object-fit:cover;width:100%;height:100%;transition:transform .3s}.carousel-nav-btn{cursor:pointer;z-index:10;color:#1e293b;background:#ffffffe6;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px #0000001a}@media (min-width:768px){.carousel-nav-btn{width:44px;height:44px}}.carousel-nav-btn:hover{background:#fff;transform:translateY(-50%)scale(1.1)}.carousel-nav-btn.prev{left:.75rem}.carousel-nav-btn.next{right:.75rem}.carousel-indicator{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;border-radius:12px;padding:3px 10px;font-size:.7rem;font-weight:600;position:absolute;bottom:.75rem;right:.75rem}.thumbnail-strip{scrollbar-width:thin;gap:.75rem;padding:.25rem;display:flex;overflow-x:auto}@media (min-width:768px){.thumbnail-strip{gap:1rem;padding:.5rem}}.thumbnail-item{cursor:pointer;border:2px solid #0000;border-radius:6px;flex-shrink:0;width:70px;height:50px;transition:all .2s;overflow:hidden}@media (min-width:768px){.thumbnail-item{border-radius:10px;width:100px;height:70px}}.thumbnail-item.active{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb33}.thumbnail-item img{object-fit:cover;width:100%;height:100%}.info-sidebar{flex-direction:column;gap:2.5rem;display:flex}@media (min-width:1024px){.info-sidebar{gap:2rem;max-height:calc(100vh - 6rem);padding-right:1.5rem;position:sticky;top:3rem}}.title-section{flex-direction:column;gap:.5rem;display:flex}.item-title{color:#0f172a;letter-spacing:-.02em;margin:0;font-size:clamp(1.25rem,6vw,2.5rem);font-weight:900;line-height:1.1}.meta-group{align-items:center;gap:.5rem;display:flex}.rating-text{color:#0f172a;font-size:.875rem;font-weight:700}.price-card{background-color:#f8fafc;border:1px solid #f1f5f9;border-radius:12px;padding:1.25rem}@media (min-width:768px){.price-card{border-radius:16px;padding:1.5rem}}.price-amount{color:var(--primary);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:900}.price-period{color:#64748b;margin-left:.5rem;font-size:.875rem;font-weight:600}.description-section{flex-direction:column;gap:1rem;display:flex}.section-title{color:#1e293b;text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin:0;font-size:.875rem;font-weight:800}.item-description{color:#475569;white-space:pre-wrap;font-size:1rem;line-height:1.8}@media (min-width:768px){.item-description{font-size:1.1rem;line-height:1.9}}.item-description p,.item-description ul,.item-description ol{margin-bottom:1.5rem}.item-description ul,.item-description ol{padding-left:1.5rem}.item-description li{margin-bottom:.75rem;position:relative}.item-description ul li:before{content:"•";color:var(--primary);width:1em;margin-left:-1em;font-weight:700;display:inline-block}.item-description b,.item-description strong{color:#0f172a;font-weight:700}.amenities-section{flex-direction:column;gap:1.25rem;display:flex}.amenities-grid{grid-template-columns:1fr;gap:.75rem;display:grid}@media (min-width:480px){.amenities-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1280px){.amenities-grid{grid-template-columns:repeat(3,1fr)}}.amenity-card{background-color:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;align-items:center;gap:.75rem;padding:.75rem;display:flex}.amenity-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.checkout-container{background-color:#f8fafc;justify-content:center;min-height:100vh;padding:3rem 1rem;display:flex}.checkout-layout{grid-template-columns:1fr 400px;align-items:flex-start;gap:2rem;width:100%;max-width:1100px;display:grid}@media (max-width:1024px){.checkout-layout{grid-template-columns:1fr}}.checkout-card{background:#fff;border:1px solid #f1f5f9;border-radius:24px;overflow:hidden;box-shadow:0 10px 25px -5px #0000000d,0 8px 10px -6px #0000000d}.checkout-form-section{padding:2.5rem}.checkout-title{color:#0f172a;margin-bottom:.5rem;font-size:1.875rem;font-weight:800}.checkout-subtitle{color:#64748b;margin-bottom:2.5rem}.form-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group.full-width{grid-column:1/-1}.form-label{color:#475569;font-size:.875rem;font-weight:600}.form-label span{color:#ef4444;margin-left:2px}.form-input,.form-select{color:#1e293b;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;outline:none;width:100%;padding:.875rem 1rem;font-size:.9375rem;transition:all .2s}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.5rem}.dropdown-highlight{border-color:#cbd5e1;font-weight:500}.form-input:focus,.form-select:focus{border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a}.form-input.input-error,.form-select.input-error{border-color:#ef4444}.form-input.input-error:focus,.form-select.input-error:focus{border-color:#ef4444;box-shadow:0 0 0 4px #ef44441a}.field-error{color:#dc2626;margin-top:-.25rem;font-size:.75rem;font-weight:500}.form-input::placeholder{color:#94a3b8}.summary-sidebar{flex-direction:column;gap:1.5rem;display:flex;position:sticky;top:2rem}.summary-card{background:#fff;border:1px solid #f1f5f9;border-radius:24px;padding:2rem;box-shadow:0 10px 15px -3px #0000000d}.summary-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.summary-title{color:#0f172a;font-size:1.25rem;font-weight:700}.edit-link{color:#3b82f6;font-size:.875rem;font-weight:600;text-decoration:none}.summary-dates{background:#f8fafc;border-radius:16px;flex-direction:column;gap:.5rem;margin-bottom:1.5rem;padding:1rem;display:flex}.date-row{color:#475569;align-items:center;gap:.75rem;font-size:.9375rem;font-weight:500;display:flex}.summary-item{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.item-name{color:#1e293b;font-size:.9375rem;font-weight:600}.item-price{color:#0f172a;font-weight:700}.price-breakdown{border-top:1px solid #f1f5f9;flex-direction:column;gap:1rem;padding-top:1.5rem;display:flex}.price-row{justify-content:space-between;align-items:center;font-size:.9375rem;display:flex}.price-row.total{margin:.5rem 0;padding-top:.5rem}.price-row.due-now{background:#eff6ff;margin:0 -2rem;padding:1.25rem 2rem}.price-row.due-later,.label-secondary{color:#64748b}.amount-bold{color:#0f172a;font-weight:700}.due-now-label{color:#1e40af;flex-direction:column;font-weight:700;display:flex}.due-now-hint{color:#60a5fa;margin-top:2px;font-size:.75rem;font-weight:500}.due-now-amount{color:#1e40af;font-size:1.25rem;font-weight:800}.submit-btn{color:#fff;cursor:pointer;background:#0f172a;border:none;border-radius:16px;justify-content:center;align-items:center;gap:.75rem;width:100%;margin-top:2rem;padding:1.25rem;font-size:1.125rem;font-weight:700;transition:all .2s;display:flex}.submit-btn:hover{background:#1e293b;transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.submit-btn:disabled{cursor:not-allowed;background:#cbd5e1;transform:none}.error-message{color:#dc2626;text-align:center;background:#fef2f2;border:1px solid #fee2e2;border-radius:12px;margin-top:1rem;padding:1rem;font-size:.875rem}.payment-page-container{background-color:#f8fafc;flex-direction:column;align-items:center;min-height:100vh;padding:3rem 1rem;display:flex}.payment-content-wrapper{width:100%;max-width:900px}.payment-header{text-align:center;margin-bottom:2.5rem}.payment-title{color:#0f172a;letter-spacing:-.025em;margin-bottom:.5rem;font-size:2.25rem;font-weight:800}.payment-subtitle{color:#64748b;font-size:1.125rem;font-weight:500}.stripe-checkout-container{background:#fff;border:1px solid #f1f5f9;border-radius:2rem;min-height:600px;padding:.5rem;transition:transform .3s;overflow:hidden;box-shadow:0 20px 25px -5px #0f172a1a,0 8px 10px -6px #0f172a1a}.payment-footer{text-align:center;margin-top:2rem}.secure-badge-text{color:#94a3b8;letter-spacing:.025em;font-size:.75rem;font-weight:500}.payment-loading-screen{background-color:#f8fafc;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100vh;display:flex}.payment-spinner{color:#2563eb;width:3.5rem;height:3.5rem;animation:1s linear infinite payment-spin}.payment-loading-text{color:#64748b;font-size:1.125rem;font-weight:600}.payment-error-card{text-align:center;background:#fff;border:1px solid #fee2e2;border-radius:2rem;width:100%;max-width:440px;padding:3rem;box-shadow:0 10px 15px -3px #0000000d}.error-icon-wrapper{background-color:#fef2f2;border-radius:9999px;justify-content:center;align-items:center;width:4rem;height:4rem;margin:0 auto 1.5rem;display:flex}.error-icon{color:#ef4444;width:2rem;height:2rem}.error-title{color:#991b1b;margin-bottom:1rem;font-size:1.5rem;font-weight:700}.error-message{color:#ef4444;margin-bottom:2rem;font-size:.9375rem;line-height:1.6}.retry-button{color:#fff;cursor:pointer;background-color:#0f172a;border:none;border-radius:1rem;width:100%;padding:1rem;font-weight:700;transition:all .2s}.retry-button:hover{background-color:#1e293b;transform:translateY(-1px)}@keyframes payment-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:640px){.payment-title{font-size:1.75rem}.stripe-checkout-container{border-radius:1.5rem}}.success-container{background-color:#f8fafc;justify-content:center;align-items:center;min-height:100vh;padding:1rem;font-family:Inter,sans-serif;display:flex}.success-card{text-align:center;background:#fff;border:1px solid #f1f5f9;border-radius:2rem;width:100%;max-width:480px;padding:3rem;box-shadow:0 20px 25px -5px #0f172a1a,0 8px 10px -6px #0f172a1a}.success-icon-wrapper{background-color:#f0fdf4;border-radius:9999px;justify-content:center;align-items:center;width:5rem;height:5rem;margin:0 auto 1.5rem;display:flex}.success-icon{color:#22c55e;width:2.5rem;height:2.5rem}.success-title{color:#0f172a;letter-spacing:-.025em;margin-bottom:.5rem;font-size:1.875rem;font-weight:800}.success-message{color:#64748b;margin-bottom:2rem;line-height:1.6}.success-details{text-align:left;background-color:#f8fafc;border-radius:1.25rem;margin-bottom:2rem;padding:1.5rem}.detail-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.detail-row:last-child{margin-bottom:0}.detail-label{color:#94a3b8;font-size:.875rem}.detail-value{color:#475569;font-size:.875rem;font-weight:600}.status-badge{color:#16a34a;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:800}.session-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem}.back-button{color:#fff;cursor:pointer;background-color:#0f172a;border:none;border-radius:1.25rem;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:1.25rem;font-weight:700;transition:all .2s;display:flex}.back-button:hover{background-color:#1e293b;transform:translateY(-1px)}.back-button-icon{width:1.25rem;height:1.25rem;transition:transform .2s}.back-button:hover .back-button-icon{transform:translate(4px)}.loading-container{background-color:#f8fafc;justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.loading-content{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.spinner{color:#2563eb;width:3rem;height:3rem;animation:1s linear infinite spin}.loading-text{color:#64748b;font-size:1.125rem;font-weight:600}
