.booking-page{padding-bottom:2rem}.booking-hero{background:linear-gradient(135deg,#f4f8fd,#e8f2ff 55%,#f8fafc);border-bottom:1px solid var(--gray-200)}.booking-hero-inner{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:2rem;gap:2rem;align-items:center;padding:3rem 0 2.5rem}.booking-hero-copy h1{margin:0 0 .75rem;font-size:clamp(2rem,4vw,2.75rem);font-weight:800;color:var(--navy)}.booking-hero-copy>p{margin:0 0 1.5rem;color:var(--gray-500);font-size:1.05rem}.booking-trust{display:flex;flex-wrap:wrap;gap:1.25rem 1.75rem;font-size:.9rem;font-weight:600;color:var(--navy)}.booking-trust>div{gap:.5rem}.booking-trust>div,.trust-icon{display:inline-flex;align-items:center}.trust-icon{justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--white);color:var(--blue);box-shadow:var(--shadow)}.booking-hero-media{min-height:240px;border-radius:var(--radius);background:linear-gradient(180deg,rgba(15,43,74,.08),rgba(15,43,74,.18)),url(https://images.unsplash.com/photo-1581578731548-c64695cc6952?w=900&q=80) 50%/cover;box-shadow:var(--shadow-lg)}.booking-steps{list-style:none;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:center;padding:1.75rem 0 .5rem;margin:0 0 1.5rem;counter-reset:none}.booking-steps li{display:inline-flex;align-items:center;gap:.5rem;color:var(--gray-500);font-weight:600;font-size:.92rem}.booking-steps li span{width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--gray-200);color:var(--gray-700);font-size:.85rem}.booking-steps li.active{color:var(--navy)}.booking-steps li.active span{background:var(--blue);color:var(--white)}.booking-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:8px}.booking-error,.booking-notice{padding:.85rem 1rem;margin-bottom:1rem}.booking-notice{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe;border-radius:8px}.booking-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.25rem;gap:1.25rem;margin-bottom:1.25rem}.booking-panel{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}.booking-panel h2{margin:0 0 .35rem;font-size:1.25rem;color:var(--navy)}.panel-sub{margin:0 0 1.25rem;color:var(--gray-500);font-size:.95rem}.service-options{display:flex;flex-direction:column;gap:.75rem}.service-option{display:grid;grid-template-columns:auto auto 1fr auto;grid-gap:.85rem;gap:.85rem;align-items:center;text-align:left;padding:1rem;border-radius:10px;border:1.5px solid var(--gray-200);background:var(--white);cursor:pointer;transition:border-color .15s,box-shadow .15s;color:inherit;font:inherit}.service-option:hover{border-color:#b7d4f7}.service-option.selected{border-color:var(--blue);background:#f5f9ff;box-shadow:0 0 0 1px var(--blue)}.radio{width:18px;height:18px;border-radius:999px;border:2px solid var(--gray-200);display:inline-block}.radio.on{border-color:var(--blue);box-shadow:inset 0 0 0 4px var(--blue)}.service-option-icon{width:42px;height:42px;border-radius:10px;background:var(--blue-light);color:var(--blue);display:inline-flex;align-items:center;justify-content:center}.service-option-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.service-option-body strong{color:var(--navy)}.service-option-body span{color:var(--gray-500);font-size:.88rem}.service-option-price{font-weight:700;color:var(--blue);white-space:nowrap}.addon-block{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--gray-100)}.addon-block h3{margin:0 0 .25rem;font-size:1rem}.addon-list{display:flex;flex-direction:column;gap:.55rem}.addon-item{display:grid;grid-template-columns:auto 1fr auto;grid-gap:.75rem;gap:.75rem;align-items:start;padding:.75rem .85rem;border:1px solid var(--gray-200);border-radius:8px;cursor:pointer}.addon-item.on{border-color:var(--blue);background:#f8fbff}.addon-item span{display:flex;flex-direction:column;gap:.15rem}.addon-item em{font-style:normal;color:var(--gray-500);font-size:.85rem}.addon-price{font-weight:700;color:var(--navy);white-space:nowrap}.services-link{display:inline-block;margin-top:1.25rem;color:var(--blue);font-weight:600;font-size:.92rem}.datetime-layout{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:1rem;gap:1rem}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar-header button{width:32px;height:32px;border-radius:8px;border:1px solid var(--gray-200);background:var(--white);cursor:pointer;font-size:1.1rem}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:.35rem;gap:.35rem}.calendar-weekdays span{text-align:center;font-size:.75rem;font-weight:700;color:var(--gray-500);padding:.25rem 0}.cal-day{aspect-ratio:1;border:none;border-radius:999px;background:transparent;cursor:pointer;font-weight:600;color:var(--gray-500);position:relative}.cal-day:disabled{cursor:default;opacity:.45}.cal-day.available{color:var(--navy)}.cal-day.available:after{content:"";position:absolute;left:50%;bottom:4px;width:5px;height:5px;border-radius:999px;background:var(--blue);transform:translateX(-50%)}.cal-day.selected{background:var(--blue);color:var(--white)}.cal-day.selected:after{background:var(--white)}.cal-empty{aspect-ratio:1}.cal-status,.selected-date-label{margin:.85rem 0 0;font-size:.9rem}.selected-date-label{font-weight:600;color:var(--navy)}.time-slots h3{margin:0 0 .75rem;font-size:.95rem}.time-list{display:flex;flex-direction:column;gap:.45rem;max-height:340px;overflow:auto}.time-slot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.7rem .85rem;border-radius:8px;border:1.5px solid var(--gray-200);background:var(--white);cursor:pointer;font-weight:600;color:var(--navy)}.time-slot:disabled{opacity:.4;cursor:default}.time-slot.selected{border-color:var(--blue);background:#f5f9ff}.prev-tag{font-size:.7rem;font-weight:700;color:var(--blue);background:var(--blue-light);padding:.15rem .4rem;border-radius:999px}.address-panel{margin-bottom:1.25rem}.address-with-map{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:1.25rem;gap:1.25rem;align-items:start}.address-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.density-map-wrap{display:flex;flex-direction:column;gap:.65rem;min-width:0}.density-map-status{font-size:.9rem;color:var(--gray-700);line-height:1.45}.density-map-status p{margin:0}.density-map-status strong{color:var(--navy)}.density-privacy{color:var(--gray-500);font-size:.82rem}.density-map-error{color:#b91c1c;margin:0}.density-map,.density-map-empty{position:relative;z-index:0;height:260px;border-radius:10px;border:1.5px solid var(--gray-200);overflow:hidden;background:var(--gray-50)}.density-map-empty{display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center}.density-map .leaflet-container{width:100%;height:100%;font:inherit}.density-fallback-note{margin:1rem 0 0;padding:.75rem .9rem;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:.9rem}.address-grid label{display:flex;flex-direction:column;gap:.4rem;font-size:.88rem;font-weight:600;color:var(--navy)}.address-grid .notes-field,.address-grid label:first-child{grid-column:1/-1}.address-grid input,.address-grid textarea{font:inherit;font-weight:500;padding:.75rem .85rem;border:1.5px solid var(--gray-200);border-radius:8px;color:var(--navy)}.address-grid input:focus,.address-grid textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,111,212,.15)}.why-book{background:var(--blue-light);padding:2rem 0;margin:1rem 0 2rem}.why-book h2{margin:0 0 1.25rem}.why-book h2,.why-book-grid{text-align:center;color:var(--navy)}.why-book-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:1rem;gap:1rem;font-weight:600;font-size:.9rem}.booking-summary-wrap{position:-webkit-sticky;position:sticky;bottom:0;z-index:20;background:linear-gradient(180deg,transparent,var(--gray-50) 18%);padding-top:1rem}.booking-summary{display:grid;grid-template-columns:auto 1.4fr auto auto;grid-gap:1.25rem;gap:1.25rem;align-items:center;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:var(--shadow-lg)}.summary-thumb{width:64px;height:64px;border-radius:10px;background:url(https://images.unsplash.com/photo-1586023492125-27b2c045efd7?w=160&q=80) 50%/cover}.summary-details h3{margin:0 0 .25rem;font-size:.95rem}.summary-details p{margin:0;color:var(--gray-500);font-size:.9rem}.summary-addons{margin-top:.25rem!important;font-size:.82rem!important}.summary-price{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.summary-price span{font-size:.8rem;color:var(--gray-500)}.summary-price strong{font-size:1.35rem;color:var(--navy)}.summary-price em{font-style:normal;font-size:.82rem;color:var(--gray-500)}.summary-actions{display:flex;flex-direction:column;align-items:stretch;gap:.35rem}.summary-actions .btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.coupon-hint{font-size:.78rem}.coupon-hint,.satisfaction-note{color:var(--gray-500);text-align:center}.satisfaction-note{font-size:.88rem;margin:.85rem 0 0}.muted{color:var(--gray-500)}.nav-auth-link{background:none;border:none;font:inherit;color:inherit;cursor:pointer;padding:0}.review-page{padding:2.5rem 0 4rem;background:var(--gray-50);min-height:70vh}.review-card{max-width:720px;margin:0 auto;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem}.review-card h1{margin:0 0 .5rem;font-size:1.75rem}.review-card>.lead{margin:0 0 1.5rem;color:var(--gray-500)}.review-rows{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.5rem}.review-row{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--gray-100)}.review-row span{color:var(--gray-500)}.review-row strong{text-align:right;color:var(--navy)}.review-total{display:flex;justify-content:space-between;align-items:baseline;margin:1rem 0 1.5rem;font-size:1.15rem}.review-actions{display:flex;flex-wrap:wrap;gap:.75rem}.auth-page{min-height:70vh;display:grid;place-items:center;padding:3rem 1rem;background:linear-gradient(180deg,#f4f8fd,#fff)}.auth-card{width:min(100%,420px);background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:2rem}.auth-card h1{margin:0 0 .35rem;font-size:1.5rem}.auth-card .lead{margin:0 0 1.25rem;color:var(--gray-500)}.auth-form{gap:.85rem}.auth-form,.auth-form label{display:flex;flex-direction:column}.auth-form label{gap:.35rem;font-size:.88rem;font-weight:600}.auth-form input{font:inherit;font-weight:500;padding:.75rem .85rem;border:1.5px solid var(--gray-200);border-radius:8px}.auth-form .btn{margin-top:.5rem;width:100%}.auth-switch{margin-top:1rem;text-align:center;color:var(--gray-500);font-size:.92rem}.auth-switch a{color:var(--blue);font-weight:600}@media (max-width:960px){.address-with-map,.booking-grid,.booking-hero-inner,.booking-summary,.datetime-layout,.why-book-grid{grid-template-columns:1fr}.summary-actions,.summary-price{align-items:flex-start}.booking-hero-media{min-height:180px}}@media (max-width:640px){.address-grid{grid-template-columns:1fr}.service-option{grid-template-columns:auto auto 1fr}.service-option-price{grid-column:3}}.beds-baths-block{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border,#e5e7eb)}.beds-baths-block h3{font-size:1rem;font-weight:600;margin:0 0 .25rem}.beds-baths-selects{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-top:.75rem}.beds-baths-selects label{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:500;color:var(--text,#111827)}.beds-baths-selects select{padding:.55rem .75rem;border:1.5px solid var(--border,#d1d5db);border-radius:8px;font-size:.95rem;background:#fff;cursor:pointer;transition:border-color .15s}.beds-baths-selects select:focus{outline:none;border-color:var(--primary,#2563eb)}.beds-baths-estimate{margin-top:.75rem;font-size:.9rem;font-weight:600;color:var(--primary,#2563eb)}.beds-baths-breakdown{display:block;font-size:.8rem;font-weight:400;color:var(--muted,#6b7280);margin-top:.15rem}.review-cta-banner{display:flex;align-items:flex-start;gap:1rem;background:linear-gradient(135deg,#fef9c3,#fef3c7);border:1.5px solid #fcd34d;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.5rem}.review-cta-stars{font-size:1.3rem;line-height:1.4;flex-shrink:0;letter-spacing:2px;color:#f59e0b}.review-cta-banner strong{display:block;font-size:.95rem;color:#92400e;margin-bottom:.25rem}.review-cta-banner p{font-size:.85rem;color:#78350f;margin:0;line-height:1.4}.review-modal-card{background:#fff;border-radius:16px;padding:2rem;width:100%;max-width:440px;position:relative;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.15)}.review-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.4rem;cursor:pointer;color:#6b7280;line-height:1;padding:.25rem .5rem}.review-modal-icon{font-size:2.5rem;margin-bottom:.5rem}.review-modal-card h2{font-size:1.3rem;font-weight:700;margin:0 0 .25rem}.review-modal-sub{color:#6b7280;font-size:.9rem;margin:0 0 1.25rem}.review-stars{display:flex;justify-content:center;gap:.5rem;margin:.75rem 0 .25rem}.review-star{background:none;border:none;font-size:2.2rem;cursor:pointer;color:#d1d5db;transition:color .1s,transform .1s;line-height:1;padding:0}.review-star.filled,.review-star:hover{color:#f59e0b;transform:scale(1.15)}.review-rating-label{font-size:.9rem;color:#6b7280;margin:.25rem 0 1rem;min-height:1.3em}.review-comment-label{display:flex;flex-direction:column;text-align:left;font-size:.9rem;font-weight:500;gap:.4rem;margin-bottom:1rem}.review-comment-label textarea{padding:.6rem .75rem;border:1.5px solid #d1d5db;border-radius:8px;font-size:.9rem;resize:vertical;font-family:inherit}.review-modal-actions{display:flex;gap:.75rem;justify-content:center;margin-top:.5rem}