.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:12px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.booking-modal{width:100%;max-width:700px;max-height:90vh;overflow-y:auto}.loading-state{flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem;display:flex}.booking-step{margin-bottom:2rem}.booking-step h3{color:var(--primary-black);margin:0 0 1rem;font-size:1rem;font-weight:600}.services-list{flex-direction:column;gap:.75rem;display:flex}.service-option{cursor:pointer;text-align:left;background:#fff;border:2px solid #e5e7eb;border-radius:.5rem;justify-content:space-between;align-items:center;padding:1rem;transition:all .2s;display:flex}.service-option:hover{border-color:var(--primary-green);background:#f0fdf4}.service-option.selected{border-color:var(--primary-green);background:#d1fae5}.service-info{flex-direction:column;gap:.25rem;display:flex}.service-name{color:var(--primary-black);font-size:.9375rem;font-weight:600}.service-duration{color:#6b7280;font-size:.75rem}.service-price{color:var(--primary-orange);font-size:1.125rem;font-weight:700}.dates-list{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:.75rem;display:grid}.date-option{cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:.5rem;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;transition:all .2s;display:flex}.date-option:hover:not(:disabled){border-color:var(--primary-green);background:#f0fdf4}.date-option.selected{border-color:var(--primary-green);background:#d1fae5}.date-option.unavailable{opacity:.4;cursor:not-allowed}.date-day{color:#6b7280;text-transform:uppercase;font-size:.75rem}.date-number{color:var(--primary-black);font-size:1.25rem;font-weight:700}.date-month{color:#6b7280;font-size:.75rem}.times-list{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem;display:grid}.time-option{cursor:pointer;color:var(--primary-black);background:#fff;border:2px solid #e5e7eb;border-radius:.5rem;padding:.75rem;font-size:.875rem;font-weight:600;transition:all .2s}.time-option:hover{border-color:var(--primary-green);background:#f0fdf4}.time-option.selected{border-color:var(--primary-green);background:#d1fae5}.no-slots{color:#92400e;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:.375rem;margin:0;padding:1rem;font-size:.875rem}.booking-step textarea{resize:vertical;border:1px solid #d1d5db;border-radius:.375rem;width:100%;padding:.75rem;font-family:inherit;font-size:.875rem}.booking-summary{background:#f9fafb;border-radius:.375rem;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:1rem;display:flex}.summary-item{color:#4b5563;font-size:.875rem}.summary-item strong{color:var(--primary-black);font-size:1rem}.summary-item.price{color:var(--primary-orange);font-size:1.25rem;font-weight:700}.footer-actions{gap:.75rem;display:flex}@media (max-width:768px){.booking-modal{border-radius:0;max-width:100%;height:100vh;max-height:100vh}.dates-list{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.times-list{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.footer-actions{flex-direction:column-reverse}.footer-actions button{width:100%}}
.quote-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.2s quoteOverlayFadeIn;display:flex;position:fixed;inset:0}@keyframes quoteOverlayFadeIn{0%{opacity:0}to{opacity:1}}.quote-modal{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;animation:.3s quoteModalSlideIn;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}@keyframes quoteModalSlideIn{0%{opacity:0;transform:translateY(-20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.quote-modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.quote-modal-header h2{color:#111827;margin:0;font-size:1.25rem;font-weight:700}.quote-modal-close{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:.25rem;font-size:1.5rem;line-height:1;transition:all .2s;display:flex}.quote-modal-close:hover{color:#111827;background:#f3f4f6}.quote-business-name{color:#6b7280;background:#f3f4f6;border-bottom:1px solid #e5e7eb;padding:.75rem 1.5rem;font-size:.875rem}.quote-business-name strong{color:#111827}.quote-form{padding:1.5rem}.quote-form .form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (max-width:480px){.quote-form .form-row{grid-template-columns:1fr}}.quote-form .form-group{margin-bottom:1.25rem}.quote-form label{color:#374151;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.quote-form input,.quote-form select,.quote-form textarea{border:2px solid #e5e7eb;border-radius:8px;width:100%;padding:.75rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #ff7a001a}.quote-form textarea{resize:vertical;min-height:100px}.urgency-options{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:.5rem;display:grid}@media (max-width:480px){.urgency-options{grid-template-columns:1fr}}.urgency-option{cursor:pointer;text-align:center;border:2px solid #e5e7eb;border-radius:12px;flex-direction:column;align-items:center;padding:1rem;transition:all .2s;display:flex}.urgency-option:hover{background:#f9fafb;border-color:#d1d5db}.urgency-option.selected{border-color:var(--primary);background:linear-gradient(135deg,#ff7a000d,#ff99330d)}.urgency-option input{opacity:0;width:0;height:0;position:absolute}.urgency-icon{margin-bottom:.5rem;font-size:1.5rem}.urgency-label{color:#111827;font-size:.875rem;font-weight:600}.urgency-desc{color:#6b7280;margin-top:.25rem;font-size:.75rem}.quote-form .form-actions{border-top:1px solid #e5e7eb;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.quote-form .btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:var(--dark);cursor:pointer;border:none;border-radius:8px;flex:1;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s}.quote-form .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #ff7a004d}.quote-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.quote-form .btn-secondary{color:#374151;cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;transition:background .2s,border-color .2s}.quote-form .btn-secondary:hover{background:#f9fafb;border-color:#d1d5db}
.business-profile-loading,.business-profile-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.business-profile-error h1{margin-bottom:1rem;font-size:3rem}.business-profile-error p{color:#6b7280;margin-bottom:2rem;font-size:1.25rem}.btn-back{background:linear-gradient(135deg,var(--primary),var(--secondary));color:var(--dark);cursor:pointer;border:none;border-radius:.375rem;padding:.875rem 2rem;font-size:1rem;font-weight:600;transition:all .2s}.btn-back:hover{background:linear-gradient(135deg,var(--primary-dark),var(--secondary-dark));transform:translateY(-1px);box-shadow:0 4px 6px #0000001a}.business-profile{min-height:100vh}.business-profile-header{background:#fff;width:100%;position:relative}.business-banner{background-color:#f3f4f6;width:100%;height:280px;position:relative;overflow:hidden}.business-banner img{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.business-banner-overlay{display:none}.business-profile-info{align-items:flex-end;gap:1.5rem;max-width:1200px;margin:-60px auto 0;padding:0 2rem 1.5rem;display:flex;position:relative}.business-profile-picture{background:#fff;border:4px solid #fff;border-radius:12px;width:120px;min-width:120px;height:120px;position:relative;overflow:hidden;box-shadow:0 4px 12px #00000026}.business-profile-details{flex:1;padding-top:60px;padding-bottom:.5rem}.business-profile-details h1{color:var(--primary-black);margin:0 0 .5rem;font-size:2rem;line-height:1.2}.business-profile-tags{flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem;display:flex}.business-profile-tags .tag{color:var(--dark);white-space:nowrap;background:linear-gradient(135deg,#99edc3f2,#c2aff0f2);border-radius:9999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.business-profile-location{color:#6b7280;margin:0;font-size:1rem}.business-hero{width:100%;height:400px;position:relative;overflow:hidden}.business-hero-image{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.business-hero-overlay{background:linear-gradient(#0000,#000c);padding:3rem 2rem;position:absolute;bottom:0;left:0;right:0}.business-hero-content{max-width:1200px;margin:0 auto}.business-hero-content h1{color:#fff;text-shadow:0 2px 4px #0000004d;margin:0 0 1rem;font-size:3rem}.business-hero-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.business-hero-tags .tag{color:var(--dark);background:linear-gradient(135deg,#99edc3f2,#c2aff0f2);border-radius:9999px;padding:.375rem .875rem;font-size:.875rem;font-weight:600}.business-hero-neighborhood{color:#fff;text-shadow:0 1px 2px #0000004d;margin:0;font-size:1.125rem}.business-profile-container{grid-template-columns:1fr 350px;gap:3rem;max-width:1200px;margin:0 auto;padding:3rem 2rem;display:grid}.business-profile-main{flex-direction:column;gap:2rem;display:flex}.business-section{background:#fff;border-radius:.5rem;padding:2rem;box-shadow:0 1px 3px #0000001a}.business-section h2{color:var(--primary-black);border-bottom:2px solid #f3f4f6;margin:0 0 1.5rem;padding-bottom:.75rem;font-size:1.75rem}.business-description{color:#4b5563;margin:0;font-size:1.125rem;line-height:1.75}.products-placeholder,.reviews-placeholder{text-align:center;color:#6b7280;background:#f9fafb;border-radius:.375rem;padding:3rem 2rem}.products-display{gap:1.5rem;display:grid}.product-item{background:#f9fafb;border-radius:.5rem;grid-template-columns:150px 1fr;gap:1.5rem;padding:1.25rem;transition:background .2s;display:grid}.product-item.no-image{grid-template-columns:1fr}.product-item:hover{background:#f3f4f6}.product-item-image{-o-object-fit:cover;object-fit:cover;border-radius:.375rem;width:150px;height:150px}.product-item-content{flex-direction:column;gap:.75rem;display:flex}.product-item-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.product-item-header h4{color:var(--primary-black);flex:1;margin:0;font-size:1.25rem}.product-item-price{color:var(--secondary-dark);white-space:nowrap;font-size:1.5rem;font-weight:700}.product-item-category{color:var(--secondary-dark);background:#c2aff026;border-radius:9999px;width:fit-content;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.product-item-description{color:#6b7280;margin:0;font-size:.9375rem;line-height:1.6}.product-item-actions{align-items:center;gap:.5rem;margin-top:1rem;display:flex}.product-item-actions .btn{flex:1}.product-item-actions .btn-favorite-active,.product-item-actions .btn-outline{flex:none;min-width:48px;padding:.75rem}.business-profile-sidebar{flex-direction:column;gap:1.5rem;display:flex}.business-info-card,.business-map-card{background:#fff;border-radius:.5rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.business-info-card h3,.business-map-card h3{color:var(--primary-black);margin:0 0 1.5rem;font-size:1.25rem}.booking-cta{border:2px solid var(--primary);background:linear-gradient(135deg,#99edc31a,#c2aff01a)}.booking-cta h3{color:var(--primary-dark)}.info-item{gap:1rem;margin-bottom:1.25rem;display:flex}.info-item:last-child{margin-bottom:0}.info-icon{flex-shrink:0;font-size:1.5rem}.info-content{flex-direction:column;flex:1;gap:.25rem;display:flex}.info-content strong{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}.info-content p{color:var(--primary-black);margin:0;font-size:1rem}.info-content a{color:var(--secondary-dark);font-weight:500;text-decoration:none;transition:color .2s}.info-content a:hover{color:var(--secondary);text-decoration:underline}.map-container{border-radius:.375rem;height:200px;margin-top:1rem;position:relative;overflow:hidden}.map-link{width:100%;height:100%;text-decoration:none;display:block;position:relative}.map-placeholder{-o-object-fit:cover;object-fit:cover;filter:grayscale(20%);width:100%;height:100%}.map-overlay{background:#0000004d;justify-content:center;align-items:center;transition:background .2s;display:flex;position:absolute;inset:0}.map-link:hover .map-overlay{background:#00000080}.map-overlay span{color:var(--primary-black);background:#fff;border-radius:.375rem;padding:.75rem 1.5rem;font-weight:600;box-shadow:0 2px 4px #0000001a}.reviews-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.reviews-summary{align-items:center;gap:.75rem;display:flex}.reviews-average{color:var(--primary-black);font-size:1.5rem;font-weight:700}.reviews-count{color:#6b7280;font-size:.875rem}.review-form-container{background:#f9fafb;border-radius:.5rem;margin-bottom:2rem;padding:1.5rem}.review-form-container h3{color:var(--primary-black);margin:0 0 1rem;font-size:1.125rem}.review-form{flex-direction:column;gap:1rem;display:flex}.review-form-actions{gap:1rem;display:flex}.btn-delete{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:.375rem;padding:.875rem 2rem;font-size:1rem;font-weight:600;transition:all .2s}.btn-delete:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 6px #0000001a}.review-login-prompt{text-align:center;color:#6b7280;background:#f9fafb;border-radius:.5rem;margin-bottom:2rem;padding:2rem}.reviews-list{flex-direction:column;gap:1.5rem;display:flex}.review-item{background:#f9fafb;border-radius:.5rem;padding:1.5rem}.review-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.review-author{align-items:flex-start;gap:1rem;display:flex}.review-avatar,.review-avatar-placeholder{border-radius:50%;flex-shrink:0;width:48px;height:48px}.review-avatar{-o-object-fit:cover;object-fit:cover}.review-avatar-placeholder{background:linear-gradient(135deg,var(--primary),var(--secondary));color:var(--dark);justify-content:center;align-items:center;font-size:1.25rem;font-weight:600;display:flex}.review-author-info{flex-direction:column;gap:.25rem;display:flex}.review-author-info strong{color:var(--primary-black);font-size:1rem}.review-rating{margin-top:.25rem}.review-date{color:#6b7280;font-size:.875rem}.review-comment{color:#4b5563;white-space:pre-wrap;margin:0;font-size:.9375rem;line-height:1.6}@media (max-width:968px){.business-profile-container{grid-template-columns:1fr;gap:2rem;padding:2rem 1rem}.business-banner{height:220px}.business-profile-info{gap:1rem;margin-top:-50px;padding:0 1rem 1rem}.business-profile-picture{width:100px;min-width:100px;height:100px}.business-profile-details{padding-top:50px}.business-profile-details h1{font-size:1.5rem}.business-hero{height:300px}.business-hero-content h1{font-size:2rem}.business-hero-overlay{padding:2rem 1rem}.business-section{padding:1.5rem}}@media (max-width:640px){.product-item{grid-template-columns:1fr}.business-banner{height:180px}.business-profile-info{text-align:center;flex-direction:column;align-items:center;margin-top:0;padding:0 1rem 1rem}.business-profile-picture{width:100px;min-width:100px;height:100px;margin-top:-60px}.business-profile-details{padding-top:.5rem;padding-bottom:0}.business-profile-details h1{font-size:1.25rem}.business-profile-tags{justify-content:center}.business-profile-location{font-size:.875rem}.business-hero{height:250px}.business-hero-content h1,.business-section h2{font-size:1.5rem}.business-description{font-size:1rem}}
