.availability-calendar{font-family:var(--font-body,"Work Sans", sans-serif);background:linear-gradient(135deg,#fdfcfb 0%,#f8f6f3 100%);border:1px solid #0000000f;border-radius:16px;max-width:100%;margin:0;overflow:hidden}.availability-header{color:#fff;background:linear-gradient(135deg,#2d3436 0%,#434a4d 100%);padding:20px 24px;position:relative;overflow:hidden}.availability-header:before{content:"";pointer-events:none;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");position:absolute;inset:0}.calendar-navigation{z-index:1;justify-content:space-between;align-items:center;display:flex;position:relative}.availability-header h3{font-family:var(--font-heading,"Poppins", sans-serif);color:#fff;text-align:center;letter-spacing:.02em;flex:1;margin:0;font-size:20px;font-weight:600}.nav-button{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff26;border-radius:10px;outline:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.nav-button:hover:not(:disabled){background:#fff3;border-color:#ffffff4d;transform:translateY(-1px)}.nav-button:active:not(:disabled){transform:translateY(0)scale(.96)}.nav-button:disabled{opacity:.3;cursor:not-allowed;transform:none}.availability-months-container{background:0 0;flex-direction:row;gap:0;padding:20px;display:flex}.availability-month{background:#fff;border:1px solid #0000000d;border-radius:12px;flex:1;min-width:0;margin:0 8px;transition:box-shadow .2s,transform .2s;overflow:hidden;box-shadow:0 2px 8px #0000000a,0 1px 2px #0000000f}.availability-month:first-child{margin-left:0}.availability-month:last-child{margin-right:0}.availability-month:hover{box-shadow:0 4px 16px #00000014,0 2px 4px #0000000f}.month-title{font-family:var(--font-heading,"Poppins", sans-serif);color:#1a1a1a;text-align:center;letter-spacing:.01em;background:linear-gradient(#f9f9f9 0%,#f4f4f4 100%);border-bottom:1px solid #eee;margin:0;padding:12px 16px;font-size:14px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:0;display:grid}.calendar-header{display:contents}.day-header{text-align:center;font-family:var(--font-body,"Work Sans", sans-serif);color:#888;text-transform:uppercase;letter-spacing:.05em;background:#fafafa;border-bottom:1px solid #f0f0f0;padding:10px 4px;font-size:11px;font-weight:600}.day-header:first-child,.day-header:last-child{color:#aaa}.calendar-days{display:contents}.calendar-day{cursor:default;flex-direction:column;justify-content:center;align-items:center;min-height:36px;padding:6px 4px;transition:all .15s;display:flex;position:relative}.day-number{z-index:1;font-size:13px;font-weight:500;line-height:1;position:relative}.calendar-day.other-month{background-color:#fcfcfc}.calendar-day.other-month .day-number{color:#d0d0d0;font-weight:400}.calendar-day.available{background:linear-gradient(#f0faf0 0%,#e6f7e6 100%)}.calendar-day.available .day-number{color:#2d8a3e;font-weight:600}.calendar-day.available:hover{background:linear-gradient(#e6f7e6 0%,#d9f2d9 100%)}.calendar-day.booked{background:linear-gradient(#fff5f5 0%,#ffeded 100%)}.calendar-day.booked .day-number{color:#c75050;font-weight:500}.calendar-day.booked:after{content:"";background:#c7505040;width:60%;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.calendar-day.unavailable{background-color:#f8f8f8}.calendar-day.unavailable .day-number{color:#bbb;font-weight:400}.availability-legend{background:#fafafa;border-top:1px solid #f0f0f0;justify-content:center;gap:24px;padding:16px 20px;display:flex}.legend-item{color:#666;align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.legend-dot{border-radius:4px;flex-shrink:0;width:12px;height:12px}.legend-dot.available{background:linear-gradient(135deg,#4ade80 0%,#22c55e 100%);box-shadow:0 1px 3px #22c55e4d}.legend-dot.booked{background:linear-gradient(135deg,#fb7185 0%,#f43f5e 100%);box-shadow:0 1px 3px #f43f5e4d}.legend-dot.unavailable{background:#d1d5db}.availability-note{color:#888;text-align:center;padding:0 20px 16px;font-size:12px;line-height:1.5}.availability-loading,.availability-error{text-align:center;color:#666;padding:48px 24px;font-size:15px}.availability-loading{flex-direction:column;align-items:center;gap:16px;display:flex;position:relative}.availability-loading:before{content:"";border:3px solid #f0f0f0;border-top:3px solid var(--color-primary,#ff4a52);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite calendarSpin}.availability-error{color:#dc2626;background:linear-gradient(#fef2f2 0%,#fee2e2 100%);border:1px solid #fecaca;border-radius:12px;margin:20px}@keyframes calendarSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:1100px){.availability-calendar{border-radius:12px}.availability-months-container{flex-direction:column;gap:12px;padding:16px}.availability-month{margin:0}.availability-legend{flex-wrap:wrap;gap:16px}}@media (max-width:768px){.availability-header{padding:16px 20px}.availability-header h3{font-size:18px}.nav-button{width:34px;height:34px;font-size:14px}.calendar-day{min-height:32px;padding:4px}.day-number{font-size:12px}.month-title{padding:10px 14px;font-size:13px}.day-header{padding:8px 3px;font-size:10px}.availability-legend{gap:12px;padding:12px 16px}.legend-item{font-size:11px}}@media (max-width:480px){.availability-months-container{padding:12px}.calendar-day{min-height:28px;padding:3px}.day-number{font-size:11px}.nav-button{border-radius:8px;width:32px;height:32px;font-size:13px}.availability-header h3{font-size:16px}.availability-note{padding:0 16px 14px;font-size:11px}.availability-legend{flex-direction:column;align-items:center;gap:8px}}
.image-gallery{border-radius:16px;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000014}.image-gallery-grid{cursor:pointer;background:#f0f0f0;gap:6px;display:grid}.image-gallery-grid.layout-single{grid-template-rows:480px;grid-template-columns:1fr}.image-gallery-grid.layout-duo{grid-template-rows:480px;grid-template-columns:2fr 1fr}.image-gallery-grid.layout-trio{grid-template-rows:repeat(2,237px);grid-template-columns:2fr 1fr}.gallery-image-cell{background:linear-gradient(135deg,#e8e8e8 0%,#f5f5f5 100%);position:relative;overflow:hidden}.gallery-image-cell.main-image{grid-row:span 2}.gallery-image-cell.main-image.single{grid-row:span 1}.gallery-image{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.25,.46,.45,.94),filter .3s}.gallery-image-cell:hover .gallery-image{transform:scale(1.03)}.image-gallery-grid:hover .gallery-image{filter:brightness(.97)}.image-gallery-grid:hover .gallery-image-cell:hover .gallery-image{filter:brightness(1.02)}.gallery-image-cell:after{content:"";pointer-events:none;background:linear-gradient(#0000 60%,#00000008 100%);transition:opacity .3s;position:absolute;inset:0}.gallery-image-cell.main-image:after{background:linear-gradient(#00000005 0%,#0000 20% 70%,#00000014 100%)}.gallery-image-cell:before{content:"";z-index:2;pointer-events:none;border:2px solid #0000;transition:border-color .3s;position:absolute;inset:0}.image-gallery-grid:hover .gallery-image-cell:hover:before{border-color:#ffffff4d}.gallery-show-all-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#1a1a1a;font-family:var(--font-body,"Work Sans", sans-serif);cursor:pointer;z-index:10;background:#fffffff7;border:1px solid #00000014;border-radius:10px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;bottom:20px;right:20px;box-shadow:0 4px 12px #0000001f,0 1px 3px #00000014}.gallery-show-all-btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #00000026,0 2px 6px #0000001a}.gallery-show-all-btn:active{transform:translateY(0)}.gallery-show-all-btn svg{opacity:.8;width:18px;height:18px}.gallery-image-count{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-family:var(--font-body,"Work Sans", sans-serif);z-index:10;opacity:0;background:#0009;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:16px;left:16px;transform:translateY(-4px)}.image-gallery:hover .gallery-image-count{opacity:1;transform:translateY(0)}.gallery-image-count svg{opacity:.9;width:16px;height:16px}.gallery-click-hint{z-index:5;pointer-events:none;background:0 0;justify-content:center;align-items:center;transition:background .3s;display:flex;position:absolute;inset:0}.image-gallery-grid:hover .gallery-click-hint{background:#00000005}.gallery-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%) 0 0/200% 100%;animation:1.5s infinite galleryShimmer}@keyframes galleryShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.mobile-gallery-carousel{background:#f5f5f5;position:relative;overflow:hidden}.mobile-gallery-image{object-fit:cover;width:100%;height:100%;transition:opacity .3s}.mobile-gallery-counter{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;letter-spacing:.02em;background:#000000a6;border-radius:16px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:500;display:flex;position:absolute;bottom:16px;left:16px}.mobile-gallery-show-all{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#1a1a1a;cursor:pointer;background:#fffffff2;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;position:absolute;bottom:16px;right:16px;box-shadow:0 2px 8px #0000001f}.mobile-gallery-dots{background:0 0;justify-content:center;gap:6px;padding:12px 16px;display:flex}.mobile-gallery-dot{cursor:pointer;background:#d1d5db;border:none;border-radius:4px;width:8px;height:8px;padding:0;transition:all .25s cubic-bezier(.4,0,.2,1)}.mobile-gallery-dot.active{background:var(--color-primary,#ff4a52);width:24px}.gallery-modal-overlay{z-index:1000;background:#000000f5;flex-direction:column;animation:.2s modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.gallery-modal-header{color:#fff;z-index:20;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:relative}.gallery-modal-counter{background:#ffffff1a;border-radius:20px;padding:8px 16px;font-size:15px;font-weight:500}.gallery-modal-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;transition:background .2s;display:flex}.gallery-modal-close:hover{background:#fff3}.gallery-modal-nav{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;z-index:10;background:#ffffff26;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gallery-modal-nav:hover{background:#ffffff40;transform:translateY(-50%)scale(1.05)}.gallery-modal-nav.prev{left:24px}.gallery-modal-nav.next{right:24px}.gallery-modal-image-container{flex:1;justify-content:center;align-items:center;padding:0 100px;display:flex;position:relative}.gallery-modal-image{object-fit:contain;border-radius:4px;max-width:100%;max-height:calc(100vh - 200px)}.gallery-modal-thumbnails{scrollbar-width:thin;scrollbar-color:#ffffff4d transparent;z-index:20;background:#00000080;gap:8px;padding:16px 24px;display:flex;position:relative;overflow-x:auto}.gallery-modal-thumbnails::-webkit-scrollbar{height:6px}.gallery-modal-thumbnails::-webkit-scrollbar-track{background:0 0}.gallery-modal-thumbnails::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.gallery-modal-thumbnail{object-fit:cover;cursor:pointer;opacity:.5;border:2px solid #0000;border-radius:6px;flex-shrink:0;width:80px;height:60px;transition:all .2s}.gallery-modal-thumbnail:hover{opacity:.8}.gallery-modal-thumbnail.active{opacity:1;border-color:#fff}@media (max-width:900px){.image-gallery-grid.layout-trio{grid-template-rows:300px;grid-template-columns:1fr}.gallery-image-cell.main-image{grid-row:span 1}.gallery-image-cell:not(.main-image){display:none}.gallery-show-all-btn{padding:8px 14px;font-size:13px;bottom:16px;right:16px}}@media (max-width:768px){.gallery-modal-nav{width:44px;height:44px;font-size:20px}.gallery-modal-nav.prev{left:12px}.gallery-modal-nav.next{right:12px}.gallery-modal-image-container{padding:0 60px}}
