:root{--ch-calendar-gold:#c9a227;--ch-calendar-gold-light:#d4af37;--ch-calendar-gold-dark:#b8911e;--ch-calendar-bg-dark:rgba(26,26,26,.95);--ch-calendar-bg-darker:rgba(44,44,44,.95);--ch-calendar-text-light:#faf8f5;--ch-calendar-text-dark:#1a1a1a;--ch-calendar-text-muted:rgba(255,255,255,.6);--ch-calendar-border:rgba(201,162,39,.2);--ch-calendar-transition:all .3s cubic-bezier(.4,0,.2,1)}.ch-booking-hub{background:linear-gradient(135deg,var(--ch-calendar-bg-dark),var(--ch-calendar-bg-darker));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ch-calendar-border);border-radius:24px;padding:32px;box-shadow:0 25px 50px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.1);max-width:480px;margin:0 auto}.ch-booking-header{text-align:center;margin-bottom:32px}.ch-booking-title{font-family:'Cormorant Garamond',serif;font-size:1.75rem;font-weight:600;color:var(--ch-calendar-text-light);margin:0 0 8px;letter-spacing:.5px}.ch-booking-subtitle{font-family:'Montserrat',sans-serif;font-size:.875rem;color:var(--ch-calendar-text-muted);margin:0;letter-spacing:.3px}.ch-calendar-container{margin-bottom:32px}.ch-calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.ch-calendar-nav-btn{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:50%;background:rgba(201,162,39,.1);border:1px solid rgba(201,162,39,.3);color:var(--ch-calendar-gold);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--ch-calendar-transition);flex-shrink:0}.ch-calendar-nav-btn:hover:not(:disabled){background:var(--ch-calendar-gold);color:var(--ch-calendar-text-dark);transform:scale(1.1)}.ch-calendar-nav-btn:active:not(:disabled){transform:scale(.95)}.ch-calendar-nav-btn:disabled{opacity:.3;cursor:not-allowed}.ch-calendar-nav-btn:focus-visible{outline:2px solid var(--ch-calendar-gold);outline-offset:2px}.ch-calendar-month{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--ch-calendar-text-light);font-weight:600;text-align:center;flex:1;display:flex;flex-direction:column;gap:2px}.ch-calendar-month-name{display:block}.ch-calendar-month-year{display:block;font-size:1rem;font-weight:400;color:var(--ch-calendar-text-muted)}.ch-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:12px}.ch-calendar-weekdays span{font-family:'Montserrat',sans-serif;font-size:.75rem;font-weight:600;color:var(--ch-calendar-text-muted);text-align:center;text-transform:uppercase;letter-spacing:.5px}.ch-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;transition:var(--ch-calendar-transition);min-height:280px}.ch-calendar-date{position:relative;width:48px;height:48px;min-width:44px;min-height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-size:.875rem;font-weight:500;color:var(--ch-calendar-text-light);cursor:pointer;transition:var(--ch-calendar-transition);background:0 0;border:none;overflow:hidden}.ch-calendar-date:not(.unavailable):not(.disabled):hover{background:rgba(201,162,39,.15);transform:scale(1.1);box-shadow:0 0 20px rgba(201,162,39,.3)}.ch-calendar-date.selected{background:linear-gradient(135deg,var(--ch-calendar-gold),var(--ch-calendar-gold-light));color:var(--ch-calendar-text-dark);font-weight:600;box-shadow:0 4px 15px rgba(201,162,39,.4)}.ch-calendar-date.in-range{background:rgba(201,162,39,.1);border-radius:0}.ch-calendar-date.in-range:first-of-type{border-top-left-radius:12px;border-bottom-left-radius:12px}.ch-calendar-date.in-range:last-of-type{border-top-right-radius:12px;border-bottom-right-radius:12px}.ch-calendar-date.unavailable,.ch-calendar-date.disabled{color:rgba(255,255,255,.25);background:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.03) 2px,rgba(255,255,255,.03) 4px);cursor:not-allowed;pointer-events:none}.ch-calendar-date.today{border:2px solid var(--ch-calendar-gold)}.ch-calendar-date.empty{visibility:hidden;pointer-events:none}.ch-calendar-date:focus-visible{outline:2px solid var(--ch-calendar-gold);outline-offset:2px}.ch-ripple{position:absolute;border-radius:50%;background:rgba(201,162,39,.5);transform:scale(0);animation:ripple-animation .6s ease-out;pointer-events:none}@keyframes ripple-animation{to{transform:scale(4);opacity:0}}.ch-calendar-price-preview{position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);background:var(--ch-calendar-gold);color:var(--ch-calendar-text-dark);padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:10}.ch-calendar-date:hover .ch-calendar-price-preview{opacity:1}.ch-booking-summary{background:rgba(0,0,0,.2);border-radius:16px;padding:24px;margin-bottom:24px}.ch-summary-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.ch-summary-row:last-of-type{margin-bottom:0}.ch-summary-label{font-family:'Montserrat',sans-serif;font-size:.875rem;color:var(--ch-calendar-text-muted);font-weight:500}.ch-summary-value{font-family:'Montserrat',sans-serif;font-size:.875rem;color:var(--ch-calendar-text-light);font-weight:600}.ch-summary-divider{height:1px;background:var(--ch-calendar-border);margin:20px 0}.ch-summary-total .ch-summary-label{font-size:1rem;color:var(--ch-calendar-text-light)}.ch-summary-total .ch-summary-value{font-size:1.25rem;color:var(--ch-calendar-gold)}.ch-summary-note{font-family:'Montserrat',sans-serif;font-size:.75rem;color:var(--ch-calendar-text-muted);text-align:center;margin:12px 0 0;font-style:italic}.ch-guest-selector{display:flex;align-items:center;gap:12px}.ch-guest-btn{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:8px;background:rgba(201,162,39,.1);border:1px solid rgba(201,162,39,.3);color:var(--ch-calendar-gold);cursor:pointer;font-size:1.25rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:var(--ch-calendar-transition);line-height:1}.ch-guest-btn:hover:not(:disabled){background:var(--ch-calendar-gold);color:var(--ch-calendar-text-dark);transform:scale(1.1)}.ch-guest-btn:disabled{opacity:.3;cursor:not-allowed}.ch-guest-btn:focus-visible{outline:2px solid var(--ch-calendar-gold);outline-offset:2px}.ch-guest-count{font-family:'Montserrat',sans-serif;font-size:1rem;color:var(--ch-calendar-text-light);font-weight:600;min-width:24px;text-align:center}.ch-booking-cta{width:100%;padding:18px 32px;background:linear-gradient(135deg,var(--ch-calendar-gold),var(--ch-calendar-gold-light));border:none;border-radius:16px;color:var(--ch-calendar-text-dark);font-family:'Montserrat',sans-serif;font-size:1rem;font-weight:600;letter-spacing:.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:var(--ch-calendar-transition);box-shadow:0 4px 20px rgba(201,162,39,.3)}.ch-booking-cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 30px rgba(201,162,39,.4)}.ch-booking-cta:active:not(:disabled){transform:translateY(0)}.ch-booking-cta:disabled{opacity:.5;cursor:not-allowed}.ch-booking-cta:focus-visible{outline:2px solid var(--ch-calendar-text-dark);outline-offset:2px}.ch-booking-cta .ch-arrow{transition:transform .3s ease}.ch-booking-cta:hover:not(:disabled) .ch-arrow{transform:translateX(4px)}@media (max-width:768px){.ch-booking-hub{padding:24px;border-radius:20px}.ch-booking-title{font-size:1.5rem}.ch-calendar-month{font-size:1.25rem}.ch-calendar-date{width:44px;height:44px}}@media (max-width:480px){.ch-booking-hub{padding:20px;border-radius:16px}.ch-booking-header{margin-bottom:24px}.ch-booking-title{font-size:1.375rem}.ch-booking-subtitle{font-size:.813rem}.ch-calendar-nav{gap:12px}.ch-calendar-month{font-size:1.125rem}.ch-calendar-month-year{font-size:.875rem}.ch-calendar-weekdays{gap:4px}.ch-calendar-grid{gap:4px}.ch-calendar-date{width:44px;height:44px;font-size:.813rem}.ch-booking-summary{padding:20px}.ch-booking-cta{padding:16px 24px;font-size:.938rem}}@media (prefers-reduced-motion:reduce){.ch-calendar-date,.ch-calendar-nav-btn,.ch-guest-btn,.ch-booking-cta,.ch-calendar-grid,.ch-calendar-price-preview{transition:none}.ch-calendar-date:hover,.ch-calendar-nav-btn:hover,.ch-guest-btn:hover{transform:none}.ch-booking-cta:hover{transform:none}.ch-ripple{display:none}}@media print{.ch-booking-hub{background:#fff;color:#000;box-shadow:none;border:1px solid #ccc}.ch-calendar-nav-btn,.ch-booking-cta{display:none}}