.hero{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background-size:cover;background-position:center;overflow:hidden;background-color:var(--color-secondary)}.hero.hero-loaded{background-image:var(--hero-bg-image)}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,rgba(0,0,0,.4) 0,rgba(0,0,0,.6) 100%);z-index:1}.hero-content{position:relative;z-index:2;max-width:900px;padding:var(--spacing-3xl) var(--container-padding)}.hero-eyebrow{font-family:var(--font-secondary);font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:var(--letter-spacing-widest);color:var(--color-accent);margin-bottom:var(--spacing-md);opacity:0;animation:.8s ease-out .2s forwards fadeInUp}.hero-title{font-family:var(--font-display);font-size:var(--font-size-5xl);font-weight:300;margin-bottom:var(--spacing-lg);line-height:1.05;letter-spacing:var(--letter-spacing-tight);color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3);opacity:0;animation:.8s ease-out .4s forwards fadeInUp}.hero-subtitle{font-family:var(--font-secondary);font-size:var(--font-size-lg);font-weight:300;margin-bottom:var(--spacing-xl);color:rgba(255,255,255,.95);text-shadow:0 1px 2px rgba(0,0,0,.2);opacity:0;line-height:var(--line-height-relaxed);max-width:600px;margin-left:auto;margin-right:auto;animation:.8s ease-out .6s forwards fadeInUp}.hero-cta{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center;margin-top:var(--spacing-lg);opacity:0;animation:.8s ease-out .8s forwards fadeInUp}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (min-width:768px){.hero{min-height:80vh}.hero-cta{flex-direction:row;justify-content:center;gap:var(--spacing-md)}}.location-selector{margin:var(--spacing-xl) 0;opacity:0;animation:.8s ease-out .5s forwards fadeInUp}.location-prompt{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:400;color:var(--color-white);margin-bottom:var(--spacing-lg);text-align:center}.location-buttons{display:flex;gap:var(--spacing-md);justify-content:center;flex-direction:row;align-items:stretch}@media (max-width:640px){.location-buttons{flex-direction:column}}.btn-location{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg) var(--spacing-xl);background:var(--color-cream);color:var(--color-secondary);border:1px solid var(--color-border);text-decoration:none;transition:all var(--transition-base);flex:1;max-width:300px;min-width:200px}@media (max-width:640px){.btn-location{max-width:100%}}.btn-location:hover{background:var(--color-white);border-color:var(--color-primary)}.location-name{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:400;margin-bottom:var(--spacing-xs);color:var(--color-secondary)}.location-region{font-family:var(--font-secondary);font-size:var(--font-size-sm);color:var(--color-text-light);font-weight:400;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide)}.service-card{background:var(--color-white);padding:var(--spacing-xl);transition:all var(--transition-base);text-align:center;display:flex;flex-direction:column;height:100%;border:1px solid var(--color-border);position:relative}.service-card:hover{box-shadow:var(--shadow-lg)}.service-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);color:var(--color-primary);display:flex;align-items:center;justify-content:center}.service-icon svg{width:48px;height:48px}.service-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:400;color:var(--color-secondary);margin-bottom:var(--spacing-sm)}.service-description{font-family:var(--font-secondary);color:var(--color-text-light);margin-bottom:var(--spacing-lg);flex-grow:1;line-height:var(--line-height-relaxed)}.process-steps{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl);margin:var(--spacing-xl) 0}.process-step{display:flex;align-items:flex-start;gap:var(--spacing-lg)}.step-number{flex-shrink:0;width:60px;height:60px;background-color:transparent;border:1px solid var(--color-accent);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:400}.step-content h3{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:400;margin-bottom:var(--spacing-xs);color:var(--color-secondary)}.step-content p{font-family:var(--font-secondary);color:var(--color-text-light);line-height:var(--line-height-relaxed)}@media (min-width:768px){.process-steps{grid-template-columns:repeat(3,1fr)}.process-step{flex-direction:column;text-align:center}.step-number{margin:0 auto var(--spacing-md)}}.testimonial{background-color:var(--color-white);padding:var(--spacing-xl);position:relative;border:1px solid var(--color-border)}.testimonial::before{content:'"';position:absolute;top:var(--spacing-md);left:var(--spacing-lg);font-family:var(--font-display);font-size:6rem;color:var(--color-accent);opacity:.3;line-height:1}.testimonial-text{font-family:var(--font-display);font-size:var(--font-size-lg);font-style:italic;font-weight:400;color:var(--color-secondary);margin-bottom:var(--spacing-lg);position:relative;z-index:1;line-height:var(--line-height-relaxed)}.testimonial-author{font-family:var(--font-secondary);font-size:var(--font-size-sm);font-weight:500;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-secondary)}.testimonial-location{font-family:var(--font-secondary);font-size:var(--font-size-sm);color:var(--color-text-light);margin-top:.25rem}.reviews-section{padding:var(--spacing-3xl) 0;background-color:var(--color-cream)}.reviews-section .section-header{margin-bottom:var(--spacing-xl)}.reviews-section .subtitle{font-size:var(--font-size-md);color:var(--color-text-light);margin-top:var(--spacing-sm)}.overall-rating{margin:var(--spacing-lg) 0}.overall-rating .stars{display:flex;justify-content:center;gap:4px;margin-bottom:var(--spacing-sm)}.rating-text{font-family:var(--font-secondary);font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.review-stars .star,.stars .star{font-size:24px;line-height:1}.review-stars .star{font-size:18px}.star-filled{color:#fbbc04}.star-half{color:#fbbc04;position:relative}.star-half::after{content:'☆';position:absolute;left:0;color:#fbbc04;width:50%;overflow:hidden}.star-empty{color:#ddd}.reviews-carousel{position:relative;max-width:100%;margin:0 auto;padding:0 var(--container-padding)}.carousel-container{overflow:hidden;position:relative;width:100%}.carousel-track{display:flex;gap:var(--spacing-lg);transition:transform .5s ease-in-out}.carousel-slide{flex:0 0 calc((100% - (var(--spacing-lg) * 2))/ 3);box-sizing:border-box}@media (max-width:768px){.reviews-carousel{padding:0}.carousel-container{padding:0 var(--container-padding)}.carousel-track{gap:0}.carousel-slide{flex:0 0 100%;min-width:100%;padding:0}}@media (min-width:769px) and (max-width:1024px){.carousel-slide{flex:0 0 calc((100% - var(--spacing-lg))/ 2)}}.review-card{margin:0;background:var(--color-white);height:100%;min-height:300px;max-width:100%;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column}@media (max-width:768px){.review-card{margin:var(--spacing-md)}}.review-footer{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.review-card .testimonial-author{margin:0;font-size:var(--font-size-md);font-weight:600;color:var(--color-secondary)}.review-stars{display:flex;gap:2px}.review-date{font-family:var(--font-secondary);font-size:var(--font-size-xs);color:var(--color-text-light);margin:0}.review-card .testimonial-text{font-family:var(--font-secondary);font-size:var(--font-size-sm);font-style:normal;line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-md);word-wrap:break-word;overflow-wrap:break-word;white-space:normal;max-width:100%;flex-grow:1}.review-card .testimonial-text p{word-wrap:break-word;overflow-wrap:break-word;white-space:normal;margin:0}.review-text-truncated{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.review-text-full{display:block}.read-more-btn{color:var(--color-primary);background:0 0;border:none;padding:0;font-family:var(--font-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;text-decoration:underline;margin-top:var(--spacing-xs);transition:color var(--transition-base)}.read-more-btn:hover{color:var(--color-secondary)}.google-badge{display:flex;align-items:center;gap:var(--spacing-xs);font-family:var(--font-secondary);font-size:var(--font-size-xs);color:var(--color-text-light);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.carousel-navigation{display:block}.carousel-btn{display:flex;position:absolute;top:50%;transform:translateY(-50%);background:var(--color-white);border:1px solid var(--color-border);width:48px;height:48px;border-radius:50%;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);z-index:10;color:var(--color-secondary)}.carousel-btn:hover:not(:disabled){background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary);box-shadow:var(--shadow-md)}.carousel-btn:disabled{opacity:.3;cursor:not-allowed}.carousel-btn-prev{left:0}.carousel-btn-next{right:0}.carousel-btn-mobile{display:none;position:static;transform:none;width:36px;height:36px}@media (max-width:768px){.carousel-navigation{display:none}.carousel-btn-mobile{display:flex}}.carousel-dots{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xl)}@media (max-width:768px){.carousel-dots{gap:var(--spacing-md);overflow-x:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-accent) var(--color-border)}.carousel-dots::-webkit-scrollbar{height:6px}.carousel-dots::-webkit-scrollbar-track{background:var(--color-border);border-radius:3px}.carousel-dots::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:3px}.carousel-dots::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}}.carousel-dot{width:12px;height:12px;border-radius:50%;background:var(--color-border);border:none;cursor:pointer;transition:all var(--transition-base);padding:0}.carousel-dot:hover{background:var(--color-accent)}.carousel-dot.active{background:var(--color-primary);width:32px;border-radius:6px}.no-reviews{text-align:center;padding:var(--spacing-3xl) var(--spacing-lg);color:var(--color-text-light)}.review-cta{text-align:center;margin-top:var(--spacing-2xl)}.btn-review{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md)}.btn-review:hover svg{transform:translateX(4px)}.btn-review svg{transition:transform var(--transition-base)}.cta-section{background-color:var(--color-secondary);color:var(--color-white);padding:var(--spacing-3xl) var(--container-padding);text-align:center;margin:var(--spacing-2xl) 0}.cta-section h2{font-family:var(--font-display);font-weight:300;color:var(--color-white);margin-bottom:var(--spacing-md)}.cta-section p{font-family:var(--font-secondary);font-size:var(--font-size-lg);font-weight:300;margin-bottom:var(--spacing-xl);opacity:.9;max-width:600px;margin-left:auto;margin-right:auto}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-xl);text-align:center}.stat-item{padding:var(--spacing-lg)}.stat-number{font-family:var(--font-display);font-size:var(--font-size-5xl);font-weight:300;color:var(--color-primary);margin-bottom:var(--spacing-xs);line-height:1}.stat-label{font-family:var(--font-secondary);font-size:var(--font-size-sm);color:var(--color-text-light);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);font-weight:500}.image-overlay-section{position:relative;min-height:500px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}.image-overlay-section::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(33,27,20,.5)}.overlay-content{position:relative;z-index:2;color:var(--color-white);text-align:center;padding:var(--spacing-3xl) var(--container-padding);max-width:800px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-sm);margin:var(--spacing-xl) 0}.gallery-item{position:relative;overflow:hidden;aspect-ratio:4/3;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.gallery-item:hover img{transform:scale(1.05)}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(33,27,20,.9),transparent);padding:var(--spacing-lg);color:var(--color-white);transform:translateY(100%);transition:transform var(--transition-base)}.gallery-item:hover .gallery-overlay{transform:translateY(0)}.gallery-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:400;margin-bottom:.25rem}.gallery-subtitle{font-family:var(--font-secondary);font-size:var(--font-size-sm);opacity:.8}.feature-section{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl);align-items:center}@media (min-width:768px){.feature-section{grid-template-columns:1fr 1fr;gap:var(--spacing-3xl)}.feature-section.reverse{direction:rtl}.feature-section.reverse>*{direction:ltr}}.feature-image{aspect-ratio:4/3;overflow:hidden}.feature-image img{width:100%;height:100%;object-fit:cover}.feature-content{padding:var(--spacing-lg) 0}.section-header{text-align:center;max-width:700px;margin:0 auto var(--spacing-2xl)}.section-header .eyebrow{margin-bottom:var(--spacing-sm)}.section-header h2{margin-bottom:var(--spacing-md)}.section-header .divider{margin:var(--spacing-md) auto}.section-header p{font-family:var(--font-secondary);color:var(--color-text-light);line-height:var(--line-height-relaxed)}.quote-block{padding:var(--spacing-2xl);background-color:var(--color-white);border-left:3px solid var(--color-accent);margin:var(--spacing-xl) 0}.quote-block blockquote{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:400;font-style:italic;color:var(--color-secondary);line-height:var(--line-height-snug);margin-bottom:var(--spacing-md)}.quote-block cite{font-family:var(--font-secondary);font-size:var(--font-size-sm);font-style:normal;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-light)}