.place-details-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:rgba(0,0,0,.46);backdrop-filter:blur(1px);display:flex;justify-content:center;align-items:center;z-index:5000;animation:fadeIn .3s ease;padding:20px;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.place-details-modal-container{position:relative;width:100%;max-width:900px;max-height:90vh;background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 0 60px 0 rgba(0,0,0,.16);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.place-details-modal-header{position:absolute;top:0;left:0;right:0;background:transparent;padding:16px 20px;display:flex;justify-content:space-between;align-items:flex-start;z-index:10}.place-details-modal-title h3{margin:0;font-size:18px;font-weight:600;color:white;text-shadow:0 2px 4px rgba(0,0,0,.5)}.place-modal-types{margin:4px 0 0;font-size:12px;color:rgba(255,255,255,.8);text-shadow:0 1px 2px rgba(0,0,0,.5);text-transform:capitalize}.place-details-modal-close{width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.15);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:white;flex-shrink:0}.place-details-modal-close:hover{background:rgba(255,255,255,.25);transform:scale(1.05)}.place-details-modal-close svg{width:20px;height:20px}.place-details-modal-content{flex:1;width:100%;position:relative;overflow-y:auto;overflow-x:hidden}.place-modal-photo-carousel{position:relative;width:100%;height:400px;background:#f5f5f5;overflow:hidden}.place-modal-carousel-photo{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;animation:fadeInScale .5s ease-out}.place-modal-carousel-photo.slide-right{animation:slideInFromRight .5s cubic-bezier(.4,0,.2,1)}.place-modal-carousel-photo.slide-left{animation:slideInFromLeft .5s cubic-bezier(.4,0,.2,1)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(50px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-50px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}.place-modal-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#333;z-index:6;box-shadow:0 4px 12px rgba(0,0,0,.2)}.place-modal-carousel-arrow:hover{background:white;transform:translateY(-50%) scale(1.1)}.place-modal-carousel-arrow-left{left:20px}.place-modal-carousel-arrow-right{right:20px}.place-modal-carousel-arrow svg{width:32px;height:32px}.place-modal-carousel-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);color:white;padding:8px 16px;border-radius:20px;font-size:14px;font-weight:500;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:all .3s cubic-bezier(.4,0,.2,1)}.place-modal-carousel-counter:hover{background:rgba(0,0,0,.85);transform:translateX(-50%) scale(1.05)}.place-modal-details-section{padding:24px;background:white}.place-modal-details-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:16px}.place-modal-name{font-size:28px;font-weight:700;color:#000;margin:0 0 8px;line-height:1.2}.place-modal-types-detail{font-size:14px;color:#666;margin:0;text-transform:capitalize}.place-modal-price{font-size:20px;font-weight:600;color:#2e7d32;white-space:nowrap}.place-modal-rating{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #e0e0e0}.place-modal-rating-stars{display:flex;gap:4px}.place-modal-rating-text{font-size:16px;color:#666}.place-modal-rating-text strong{color:#000;font-size:18px}.place-modal-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.place-modal-info-item{display:flex;flex-direction:column;gap:6px}.place-modal-info-item strong{font-size:14px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.place-modal-info-item p{margin:0;font-size:15px;color:#333;line-height:1.5}.place-modal-info-item a{font-size:15px;color:#1976d2;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:color .2s ease}.place-modal-info-item a:hover{color:#1565c0;text-decoration:underline}.place-modal-info-item.place-modal-hours{grid-column:1/-1}.place-modal-hours-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:12px}.place-modal-hours-day{font-size:14px;color:#333;padding:12px 16px;background:linear-gradient(135deg,#f9f9f9,#f5f5f5);border-radius:10px;display:flex;justify-content:space-between;align-items:center;border:1px solid #e8e8e8;transition:all .2s ease}.place-modal-hours-day:hover{background:linear-gradient(135deg,#f5f5f5,#f0f0f0);border-color:#d0d0d0;transform:translateX(4px)}.place-modal-hours-day-name{font-weight:600;color:#000;min-width:90px}.place-modal-hours-day-time{color:#666;font-weight:500;text-align:right}@media (max-width:768px){.place-details-modal-overlay{padding:0}.place-details-modal-container{max-width:100%;max-height:100%;border-radius:0;height:100vh}.place-details-modal-header{padding:12px 16px}.place-details-modal-title h3{font-size:16px}.place-modal-types{font-size:11px}.place-details-modal-close{width:32px;height:32px}.place-details-modal-close svg{width:18px;height:18px}.place-modal-photo-carousel{height:250px}.place-modal-details-section{padding:16px}.place-modal-name{font-size:22px}.place-modal-info-grid{grid-template-columns:1fr;gap:16px}.place-modal-carousel-arrow{width:40px;height:40px}.place-modal-carousel-arrow-left{left:12px}.place-modal-carousel-arrow-right{right:12px}.place-modal-carousel-arrow svg{width:24px;height:24px}.place-modal-hours-list{grid-template-columns:1fr}.place-modal-hours-day{padding:10px 14px}.place-modal-hours-day-name{min-width:80px;font-size:13px}.place-modal-hours-day-time{font-size:13px}}