.booking-page{background:var(--color-bg);min-height:100vh}.booking-wizard-nav{display:flex;align-items:center;justify-content:center;padding:var(--space-6) var(--page-padding) var(--space-4)}.booking-wizard-nav__logo{font-family:var(--font-serif);font-size:var(--font-size-base);font-weight:700;color:var(--color-text);text-decoration:none;white-space:nowrap}.booking-wizard-nav__progress{display:flex;align-items:center;gap:0;flex:1;justify-content:center;padding:0 var(--space-6)}.booking-wizard-nav__step{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);position:relative}.booking-wizard-nav__step-circle{width:28px;height:28px;border-radius:var(--radius-full);border:2px solid var(--color-taupe);background:transparent;display:flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease,color .2s ease}.booking-wizard-nav__step-circle,.booking-wizard-nav__step-label{color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:400}.booking-wizard-nav__step-label{white-space:nowrap}.booking-wizard-nav__step--active .booking-wizard-nav__step-circle{background:var(--color-brand);border-color:var(--color-brand);color:#ffffff}.booking-wizard-nav__step--active .booking-wizard-nav__step-label{color:var(--color-text);font-weight:700}.booking-wizard-nav__step--complete .booking-wizard-nav__step-circle{background:var(--color-brand);border-color:var(--color-brand);color:#ffffff}.booking-wizard-nav__step--complete .booking-wizard-nav__step-label{color:var(--color-text-muted)}.booking-wizard-nav__connector{width:32px;height:2px;background:var(--color-border);margin:0 var(--space-2);margin-bottom:var(--space-4);transition:background .2s ease}.booking-wizard-nav__connector--complete{background:var(--color-brand)}.booking-wizard-nav__close{background:transparent;border:none;cursor:pointer;padding:0;width:var(--tap-target);height:var(--tap-target);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--color-text-muted);font-size:1.25rem;transition:color .15s ease,background .15s ease}.booking-wizard-nav__close:hover{color:var(--color-text);background:var(--color-bg)}.date-summary-bar{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5);box-sizing:border-box;width:calc(100% - 2 * var(--page-padding));max-width:calc(var(--max-width-wide) - 2 * var(--page-padding));margin:0 auto var(--space-6);background:var(--color-surface-container-low);border-radius:var(--radius-xl)}@media (max-width:767px){.date-summary-bar{width:calc(100% - 2 * var(--space-5))}}.stay-schedule__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.stay-schedule__eyebrow{font-family:var(--font-sans);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted)}.stay-schedule__edit-icon{background:transparent;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:1.125rem;transition:color .15s ease}.stay-schedule__edit-icon:hover{color:var(--color-text)}.stay-schedule__dates{display:flex;align-items:center;gap:var(--space-4)}.stay-schedule__col{flex:1;display:flex;flex-direction:column;gap:2px}.stay-schedule__label{font-family:var(--font-sans);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.stay-schedule__value{font-family:var(--font-serif);font-size:var(--font-size-lg);color:var(--color-text)}.stay-schedule__divider{width:1px;height:2.5rem;background:var(--color-border);flex-shrink:0}.booking-editorial{max-width:var(--max-width-wide);margin:0 auto var(--space-10);padding:var(--space-12) var(--page-padding) 0}.booking-editorial__eyebrow{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.2em;margin-bottom:var(--space-3)}.booking-editorial__heading{font-family:var(--font-serif);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text);line-height:var(--line-height-tight);margin:0 0 var(--space-4)}@media (min-width:768px){.booking-editorial__heading{font-size:clamp(var(--font-size-2xl),4vw,3rem)}}.booking-editorial__subhead{font-size:var(--font-size-base);max-width:480px;margin:0}.booking-editorial__meta,.booking-editorial__subhead{font-family:var(--font-sans);color:var(--color-text-muted);line-height:var(--line-height-base)}.booking-editorial__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:700;margin:var(--space-4) 0 0}.booking-editorial__meta-icon{font-size:var(--font-size-lg);color:var(--color-text-muted);line-height:1}.booking-step-header__eyebrow{font-family:var(--font-sans);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-muted);margin:0 0 var(--space-1)}.booking-step-header__heading{font-family:var(--font-serif);font-size:1.875rem;font-weight:700;color:var(--color-primary);line-height:var(--line-height-tight);margin:0 0 var(--space-4)}.booking-notice{border-radius:var(--radius-xl);padding:var(--space-5);display:flex;align-items:flex-start;gap:var(--space-4)}.booking-notice--info{background:var(--color-notice-sage-bg);border:1px solid var(--color-border)}.booking-notice--neutral{background:var(--color-surface-container-low);border:1px solid var(--color-border)}.booking-notice--error{background:var(--color-error-surface);border-left:3px solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-5)}.booking-notice__icon{font-size:1.25rem;flex-shrink:0;margin-top:var(--space-1)}.booking-notice--info .booking-notice__icon{color:var(--color-secondary)}.booking-notice--neutral .booking-notice__icon{color:var(--color-primary)}.booking-notice--error .booking-notice__icon{color:var(--color-error)}.booking-notice__title{font-family:var(--font-serif);font-size:var(--font-size-sm);font-weight:700;color:var(--color-primary);margin:0 0 var(--space-1)}.booking-notice__body{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-on-surface-variant);line-height:var(--line-height-base);margin:0}.booking-two-col{display:grid;grid-template-columns:1fr;gap:var(--space-8);max-width:var(--max-width-wide);margin:0 auto;padding:0 var(--page-padding) var(--space-16)}@media (min-width:1024px){.booking-two-col{grid-template-columns:8fr 4fr}.booking-two-col--step4{grid-template-columns:7fr 5fr}}@media (max-width:1023px){.booking-editorial{padding-left:var(--space-5);padding-right:var(--space-5)}.booking-two-col{padding:0 var(--space-5) 12rem}}.booking-panel{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:0 1px 3px rgba(0,0,0,.06)}@media (min-width:768px){.booking-panel{padding:var(--space-10)}}@media (max-width:767px){.booking-panel{background:transparent;border-radius:0;padding:0;box-shadow:none}}.booking-panel__subtitle{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--space-6)}.booking-step-container{max-width:var(--max-width-wide);margin:0 auto;padding:var(--space-8) var(--page-padding) var(--space-16)}@media (max-width:767px){.booking-step-container{padding-left:var(--space-5);padding-right:var(--space-5);padding-bottom:6rem}}.booking-actions-stack{position:sticky;bottom:0;z-index:50}@media (max-width:767px){.booking-actions-stack{position:fixed;bottom:0;left:0;right:0;z-index:100;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.08);overflow:hidden}}.booking-actions{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6) var(--page-padding);border-top:1px solid var(--color-border);background:var(--color-bg)}@media (max-width:767px){.booking-actions{background:rgba(255,253,250,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:none;padding:var(--space-5) var(--space-5) var(--space-6)}}.booking-actions__right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1)}.booking-actions__total-hint{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:right}.booking-actions__total-amount{font-family:var(--font-sans);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);text-align:right}.booking-actions__error{padding:var(--space-3) var(--page-padding);background:color-mix(in srgb,var(--color-error) 14%,var(--color-bg));color:var(--color-error);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:600;text-align:center}@media (max-width:767px){.booking-actions__error{background:color-mix(in srgb,var(--color-error) 14%,var(--color-bg));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}}.booking-btn--primary{background:var(--color-brand);color:#ffffff;border:none;border-radius:var(--radius-full);min-height:var(--tap-target);padding:0 var(--space-8);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:background .15s ease;white-space:nowrap}.booking-btn--primary:hover{background:var(--color-brand-dark)}.booking-btn--primary:disabled{opacity:.5;cursor:not-allowed}.booking-btn--full{display:block;width:100%}.booking-checkbox{flex-shrink:0;width:18px;height:18px;accent-color:var(--color-brand);cursor:pointer}.booking-btn--ghost{background:transparent;color:var(--color-text-muted);border:none;border-radius:var(--radius-full);min-height:var(--tap-target);padding:0 var(--space-6);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:400;cursor:pointer;transition:color .15s ease}.booking-btn--ghost:hover{color:var(--color-text)}.booking-btn--danger{background:transparent;color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-full);min-height:var(--tap-target);padding:0 var(--space-6);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:400;cursor:pointer;transition:background .15s ease,color .15s ease}.booking-btn--danger:hover{background:var(--color-error);color:#ffffff}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1}}.booking-step-enter{animation:stepFadeIn .2s ease}.calendar{width:100%}.calendar__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.calendar__nav-btn{width:var(--tap-target);height:var(--tap-target);display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-muted);font-size:1.125rem;transition:background .15s ease,color .15s ease,border-color .15s ease}.calendar__nav-btn:hover:not(:disabled){background:var(--color-surface);color:var(--color-text);border-color:var(--color-text-muted)}.calendar__nav-btn:disabled{opacity:.4;cursor:default}.calendar__month-label{font-family:var(--font-serif);font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);text-align:center}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar__day-header{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;text-align:center;padding:var(--space-2) 0;font-weight:400}.calendar__day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;padding:var(--space-2) var(--space-1);border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;text-align:center;transition:opacity .1s ease;user-select:none}@media (min-width:768px){.calendar__day{min-height:56px;padding:var(--space-3) var(--space-2)}}.calendar__day--empty{visibility:hidden;pointer-events:none}.calendar__day--past{cursor:default;pointer-events:none}.calendar__day--past,.calendar__day--past .calendar__day-date{color:var(--color-taupe)}.calendar__day--available-high{background:var(--color-availability-green-bg)}.calendar__day--available-high .calendar__day-date{color:var(--color-availability-green)}.calendar__day--available-high:hover{opacity:.8}.calendar__day--available-low{background:var(--color-availability-amber-bg)}.calendar__day--available-low .calendar__day-date{color:var(--color-availability-amber)}.calendar__day--available-low:hover{opacity:.8}.calendar__day--unavailable{background:var(--color-availability-red-bg);cursor:not-allowed;pointer-events:none}.calendar__day--unavailable .calendar__day-date{color:var(--color-availability-red)}.calendar__day--peak{border-top:3px solid var(--color-peak-border)}.calendar__day--selected-start{background:var(--color-brand)!important;border-radius:999px 0 0 999px}.calendar__day--selected-start .calendar__day-date{color:#ffffff!important}.calendar__day--selected-end{background:var(--color-brand)!important;border-radius:0 999px 999px 0}.calendar__day--selected-end .calendar__day-date{color:#ffffff!important}.calendar__day--selected-single{background:var(--color-brand)!important;border-radius:999px}.calendar__day--selected-single .calendar__day-date{color:#ffffff!important}.calendar__day--in-range{background:rgba(198,184,166,.4)!important;border-radius:0}.calendar__day--in-range .calendar__day-date{color:var(--color-text)}.calendar__day-date{font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:700;line-height:1}.calendar__legend{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.calendar__legend-item{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.calendar__legend-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.calendar__legend-dot--green{background:var(--color-availability-green)}.calendar__legend-dot--amber{background:var(--color-availability-amber)}.calendar__legend-dot--red{background:var(--color-availability-red)}.calendar__legend-stripe{width:16px;height:3px;border-radius:1px;flex-shrink:0;background:var(--color-peak-border)}.calendar--loading{opacity:.5;pointer-events:none}.booking-sidebar{position:sticky;top:calc(64px + var(--space-6))}.booking-sidebar__card{background:var(--color-surface-container-lowest,#ffffff);border-radius:var(--radius-lg);padding:var(--space-8);border:1px solid var(--color-border);box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:16px}.booking-sidebar__divider{height:1px;background:var(--color-border);margin:var(--space-4) 0}.booking-sidebar__duration{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);margin-bottom:var(--space-3)}.booking-sidebar__pricing-hint{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic;margin-bottom:var(--space-6)}.booking-sidebar__cta{display:block;width:100%;text-align:center}@media (max-width:1023px){.booking-sidebar{display:none}}.booking-mobile-cta{display:none}@media (max-width:1023px){.booking-mobile-cta{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;background:rgba(255,253,250,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.08);padding:var(--space-5) var(--space-5) var(--space-6)}.booking-mobile-cta__info{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4)}.booking-mobile-cta__col{display:flex;flex-direction:column;gap:2px}.booking-mobile-cta__col--right{text-align:right}.booking-mobile-cta__label{font-family:var(--font-sans);font-size:.625rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.15em}.booking-mobile-cta__value{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:700;color:var(--color-text)}.booking-mobile-cta__error{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-error);text-align:center;margin:0 0 var(--space-2)}.booking-mobile-cta__button{display:block;width:100%;background:var(--color-brand);color:#ffffff;border:none;border-radius:var(--radius-full);min-height:var(--tap-target);padding:0 var(--space-6);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:700;cursor:pointer;transition:background .15s ease;text-align:center}.booking-mobile-cta__button:hover:not(:disabled){background:var(--color-brand-dark)}.booking-mobile-cta__button:disabled{opacity:.5;cursor:not-allowed}}