.modal-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(0, 0, 0, 0.65); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 1.5rem; animation: fadeInUp 200ms ease; } .modal-content { position: relative; width: 100%; max-width: 560px; max-height: 85vh; overflow-y: auto; background: var(--bg-secondary); border: 1px solid var(--border-subtle); border-radius: var(--radius-xl); padding: 2rem; box-shadow: var(--shadow-lg); } .modal-close { position: absolute; top: 1rem; right: 1rem; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, 0.05); color: var(--text-muted); transition: all var(--transition-fast); } .modal-close:hover { background: rgba(255, 255, 255, 0.1); color: var(--text-primary); } .modal-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.25rem; padding-right: 2.5rem; } .modal-name { font-size: 1.3rem; font-weight: 700; margin-bottom: 0.3rem; } .modal-category { font-size: 0.65rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.15rem 0.5rem; border-radius: 4px; background: rgba(238, 105, 131, 0.15); color: var(--accent-secondary); } .modal-rating { display: flex; align-items: center; gap: 0.35rem; font-size: 1.1rem; font-weight: 700; color: var(--warning); } .modal-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.75rem; margin-bottom: 1.25rem; } .modal-detail { padding: 0.6rem 0.75rem; background: var(--bg-card); border-radius: var(--radius-sm); } .modal-detail-label { display: block; font-size: 0.62rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); margin-bottom: 0.2rem; } .modal-detail span:last-child { font-size: 0.85rem; color: var(--text-primary); } .modal-price { color: var(--success) !important; font-weight: 600; } .modal-section { margin-bottom: 1.25rem; } .modal-section-title { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); margin-bottom: 0.5rem; } .modal-features { display: flex; flex-wrap: wrap; gap: 0.4rem; } .modal-feature-tag { display: flex; align-items: center; gap: 0.3rem; font-size: 0.78rem; font-weight: 500; padding: 0.25rem 0.6rem; border-radius: 20px; background: rgba(0, 184, 148, 0.1); border: 1px solid rgba(0, 184, 148, 0.2); color: var(--success); } .modal-review { font-size: 0.88rem; color: var(--text-secondary); font-style: italic; line-height: 1.6; padding: 0.75rem 1rem; border-left: 3px solid var(--accent-primary); background: rgba(238, 105, 131, 0.05); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; margin: 0; } .modal-map-button { display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.8rem 1.5rem; background: var(--accent-primary); color: white; font-size: 0.9rem; font-weight: 600; text-decoration: none; border-radius: var(--radius-md); transition: all var(--transition-fast); box-shadow: 0 4px 15px rgba(238, 105, 131, 0.2); margin-top: 1rem; } .modal-map-button:hover { background: var(--accent-secondary); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(238, 105, 131, 0.3); }