:root{--stone-50:#faf9f7;--stone-100:#f0ede8;--stone-200:#e2ddd4;--stone-300:#cdc5b8;--stone-400:#a89f8e;--stone-500:#8a7f6c;--stone-600:#6b6154;--stone-700:#504840;--stone-800:#3a342e;--stone-900:#1f1c18;--ochre:#c4733b;--ochre-light:#d4915f;--ochre-dark:#9a5a2e;--cream:#f7f4ef;--sand:#e8e2d6;--font-display:'Bitter', Georgia, serif;--font-body:'Montserrat', system-ui, sans-serif;--space-xs:0.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:8rem;--ease-out:cubic-bezier(0.22, 1, 0.36, 1);--duration:0.6s}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background-color:var(--cream);color:var(--stone-800);line-height:1.6;overflow-x:hidden}body.transitioning{background-color:var(--stone-900)}body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:9999}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.2}h1{font-size:clamp(1.9rem,5vw,3.6rem);letter-spacing:-.02em}h2{font-size:clamp(1.8rem, 4vw, 3rem);letter-spacing:-.01em}h3{font-size:clamp(1.2rem, 2vw, 1.5rem)}p{font-size:1.05rem;max-width:60ch}.text-ochre{color:var(--ochre)}.text-light{color:var(--stone-500)}.container{width:min(90%, 1400px);margin:0 auto}.container .page-label{padding-top:1rem}section{padding:var(--space-xl) 0}nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:var(--space-md);transition:all 0.4s var(--ease-out)}nav.scrolled{background:var(--stone-900);padding:var(--space-sm) var(--space-md);box-shadow:0 4px 30px rgb(0 0 0 / .3)}nav.scrolled .logo{color:var(--cream)}nav.scrolled .nav-links a{color:var(--stone-300);cursor:pointer}nav.scrolled .nav-links a:hover{color:var(--cream);cursor:pointer}nav.scrolled .nav-links a.active{color:var(--ochre)}nav.scrolled .menu-toggle span{background:var(--cream)}nav .container{display:flex;justify-content:space-between;align-items:center}.logo{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--stone-900);display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;transition:all 0.3s var(--ease-out)}.logo-image{display:flex;align-items:center;justify-content:center;width:80px;height:80px;flex-shrink:0}.logo-img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform 0.3s var(--ease-out);border-radius:6px;filter:drop-shadow(0 2px 8px rgb(0 0 0 / .1))}.logo .hero-tagline{font-family:var(--font-body);font-size:clamp(0.75rem, 1.2vw, 0.85rem);font-weight:500;letter-spacing:.05em;color:#fff;margin:0;opacity:1;animation:none;white-space:nowrap;transition:color 0.3s ease}@media screen and (max-width:1098px){.logo .hero-tagline{display:none}}nav.scrolled .logo .hero-tagline{color:var(--stone-300)}.logo:hover .logo-img{transform:scale(1.05)}.nav-links{display:flex;gap:var(--space-md);list-style:none}.nav-links a{font-size:.9rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--stone-600);cursor:pointer;position:relative;padding:var(--space-xs) 0;transition:color 0.3s ease}.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--ochre);transition:width 0.3s var(--ease-out)}.nav-links a:hover{color:var(--ochre)}.nav-links a:hover::after{width:100%;color:var(--ochre)}.nav-links a.active{color:var(--ochre)}.nav-cta{background:var(--stone-900);color:var(--cream)!important;padding:var(--space-xs) var(--space-md)!important;transition:background 0.3s ease,transform 0.3s ease!important}.nav-cta:hover{background:var(--ochre)!important;transform:translateY(-2px)}.nav-cta::after{display:none!important}.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:10px}.menu-toggle span{width:25px;height:2px;background:var(--cream);transition:transform 0.35s var(--ease-out),opacity 0.25s ease,background 0.3s ease;transform-origin:center}@keyframes burger-to-x-top{from{transform:translateY(0) rotate(0deg)}to{transform:translateY(7px) rotate(45deg)}}@keyframes burger-to-x-mid{from{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes burger-to-x-bot{from{transform:translateY(0) rotate(0deg)}to{transform:translateY(-7px) rotate(-45deg)}}.menu-toggle.open span:nth-child(1){animation:burger-to-x-top 0.35s var(--ease-out) forwards}.menu-toggle.open span:nth-child(2){animation:burger-to-x-mid 0.2s var(--ease-out) forwards}.menu-toggle.open span:nth-child(3){animation:burger-to-x-bot 0.35s var(--ease-out) forwards}.btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:1rem 2rem;font-family:var(--font-body);font-size:.9rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border:none;cursor:pointer;transition:all 0.3s var(--ease-out)}.btn-primary{background:var(--ochre);color:var(--cream)}.btn-primary:hover{background:var(--ochre-dark);transform:translateY(-3px)}.btn-outline{background:#fff0;color:var(--cream);border:1px solid var(--stone-400)}.btn-outline:hover{background:var(--cream);color:var(--stone-900);border-color:var(--cream)}.btn-dark{background:var(--stone-900);color:var(--cream)}.btn-dark:hover{background:var(--stone-700);transform:translateY(-3px)}.services{background:var(--stone-900);color:var(--cream);position:relative}.services::before{content:'';position:absolute;top:0;left:0;right:0;height:150px;background:linear-gradient(to bottom,var(--cream),transparent);opacity:.05}.section-header{text-align:center;margin-bottom:var(--space-md)}.section-label{display:inline-block;font-size:.8rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ochre);margin-bottom:var(--space-sm)}.section-header h2{margin-bottom:var(--space-md)}.section-header p{margin:0 auto;color:var(--stone-400)}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-md)}.service-card{background:var(--stone-800);padding:var(--space-lg);position:relative;overflow:hidden;transition:transform 0.4s var(--ease-out),box-shadow 0.4s var(--ease-out)}.service-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:0;background:var(--ochre);transition:height 0.4s var(--ease-out)}.service-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgb(0 0 0 / .3)}.service-card:hover::before{height:100%}.service-icon{width:60px;height:60px;background:var(--stone-700);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md);font-size:1.5rem}.service-card h3{margin-bottom:var(--space-sm);color:var(--cream)}.service-card p{color:var(--stone-400);font-size:.95rem}.about{background:var(--cream)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);align-items:center}.about-image{position:relative}.about-image-main{width:100%;height:auto;object-fit:contain;background:var(--stone-100)}.about-image-accent{position:absolute;bottom:-30px;right:-30px;width:200px;height:200px;background:var(--ochre);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--cream)}.about-image-accent span:first-child{font-family:var(--font-display);font-size:3rem;line-height:1}.about-image-accent span:last-child{font-size:.85rem;text-transform:uppercase;letter-spacing:.1em}.about-content{padding-left:var(--space-lg)}.about-content .section-label{text-align:left}.about-content h2{margin-bottom:var(--space-md)}.about-content p{color:var(--stone-600);margin-bottom:var(--space-md)}.values-list{list-style:none;margin:var(--space-lg) 0}.values-list li{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md)}.values-list li::before{content:'—';color:var(--ochre);font-weight:700}.values-list strong{color:var(--stone-900)}.gallery{background:var(--sand);overflow:hidden}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(2,300px);gap:var(--space-sm)}.gallery-item{position:relative;overflow:hidden;background:var(--stone-400);cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s var(--ease-out)}.gallery-item:hover img{transform:scale(1.05)}.gallery-item::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgb(31 28 24 / .7),transparent 50%);opacity:0;transition:opacity 0.3s ease}.gallery-item:hover::after{opacity:1}.gallery-item:nth-child(1){grid-column:span 5}.gallery-item:nth-child(2){grid-column:span 4}.gallery-item:nth-child(3){grid-column:span 3}.gallery-item:nth-child(4){grid-column:span 4}.gallery-item:nth-child(5){grid-column:span 8}.gallery-caption{position:absolute;bottom:var(--space-md);left:var(--space-md);color:var(--cream);z-index:1;opacity:0;transform:translateY(10px);transition:all 0.3s var(--ease-out)}.gallery-item:hover .gallery-caption{opacity:1;transform:translateY(0)}.testimonials{background:var(--cream)}.testimonials-slider{display:flex;gap:var(--space-md);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:var(--space-md) 0;scrollbar-width:none}.testimonials-slider::-webkit-scrollbar{display:none}.testimonial-card{flex:0 0 calc(50% - var(--space-sm));scroll-snap-align:start;background:#fff;padding:var(--space-lg);position:relative}.testimonial-card::before{content:'"';position:absolute;top:var(--space-md);right:var(--space-md);font-family:var(--font-display);font-size:6rem;line-height:1;color:var(--stone-100)}.testimonial-stars{display:flex;gap:4px;margin-bottom:var(--space-md);color:var(--ochre)}.testimonial-text{font-family:var(--font-display);font-style:italic;font-size:1.1rem;line-height:1.8;color:var(--stone-700);margin-bottom:var(--space-md);position:relative;z-index:1}.testimonial-author{display:flex;align-items:center;gap:var(--space-sm)}.testimonial-avatar{width:50px;height:50px;border-radius:50%;background:var(--stone-300);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--stone-600)}.testimonial-name{font-weight:600;color:var(--stone-900)}.testimonial-project{font-size:.85rem;color:var(--stone-500)}.cta-section{background:var(--ochre);color:var(--cream);text-align:center;position:relative;overflow:hidden}.cta-section::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgb(255 255 255 / .1) 0%,transparent 50%)}.cta-section h2{margin-bottom:var(--space-sm);position:relative}.cta-section p{margin:0 auto var(--space-lg);color:rgb(255 255 255 / .8);position:relative}.cta-section .btn{position:relative}.contact{background:var(--stone-900);color:var(--cream)}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-xl)}.contact-info h2{margin-bottom:var(--space-md)}.contact-info p{color:var(--stone-400);margin-bottom:var(--space-lg)}.contact-details{list-style:none}.contact-details li{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md);color:var(--stone-300)}.contact-details li strong{color:var(--ochre);min-width:80px}.contact-form{background:var(--stone-800);padding:var(--space-lg)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.form-group{margin-bottom:var(--space-md)}.form-group.full{grid-column:span 2}.form-group label{display:block;font-size:.85rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--stone-400);margin-bottom:var(--space-xs)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:1rem;background:var(--stone-700);border:1px solid var(--stone-600);color:var(--cream);font-family:var(--font-body);font-size:1rem;transition:border-color 0.3s ease,background 0.3s ease}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--stone-500)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--ochre);background:var(--stone-600)}.form-group textarea{min-height:150px;resize:vertical}.form-group select{cursor:pointer}.form-submit{display:flex;justify-content:flex-end}footer{background:var(--stone-900);border-top:1px solid var(--stone-800);padding:var(--space-lg) 0 var(--space-md);color:var(--stone-500)}.footer-main{display:grid;grid-template-columns:1fr 1fr 1fr;gap:clamp(var(--space-sm), 3vw, var(--space-md));padding-bottom:var(--space-md);align-items:start}.footer-zones h3{color:var(--stone-300);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-xs);font-family:var(--font-body)!important}.footer-zones p{font-size:.85rem;margin-bottom:0}.footer-city-list{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-sm);list-style:none;padding:0;margin:var(--space-xs) 0 0;font-family:var(--font-body)}.footer-city-list a{color:var(--stone-400);text-decoration:none;font-size:.85rem;transition:color 0.2s}.footer-city-list a:hover{color:var(--ochre);cursor:pointer}.footer-legal{text-align:center;font-size:.85rem;line-height:1.6}.footer-legal a{color:var(--stone-400);text-decoration:none}.footer-legal a:hover{color:var(--ochre)}.footer-contact-info{font-style:normal;font-size:.85rem;line-height:1.7;text-align:right}.footer-contact-info strong{color:var(--stone-300);display:block;margin-bottom:.25rem}.footer-contact-info a{color:var(--stone-400);text-decoration:none}.footer-contact-info a:hover{color:var(--ochre)}.dev-credit{text-align:center;font-size:.75rem;color:var(--stone-600);padding-top:var(--space-sm);border-top:1px solid var(--stone-800);margin-top:0;max-width:none}.dev-credit strong{color:var(--stone-500)}.dev-credit a{color:var(--stone-400);cursor:pointer;transition:color .2s ease}.dev-credit a:hover{color:var(--ochre)}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes scrollPulse{0%,100%{opacity:1}50%{opacity:.5}}.reveal{opacity:0;transform:translateY(40px);transition:opacity 0.8s var(--ease-out),transform 0.8s var(--ease-out)}.reveal.visible{opacity:1;transform:translateY(0)}@media (max-width:1024px){.about-grid{grid-template-columns:1fr;gap:var(--space-lg)}.about-image-accent{right:0}.contact-grid{grid-template-columns:1fr}}@media (max-width:900px){section{padding:var(--space-lg) 0}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--cream);padding:var(--space-md);box-shadow:0 10px 30px rgb(0 0 0 / .1)}nav.scrolled .nav-links{background:var(--stone-900)}.nav-links.open{display:flex}.menu-toggle{display:flex}.hero-ctas{flex-direction:column}.testimonial-card{flex:0 0 90%}.form-row{grid-template-columns:1fr}.form-group.full{grid-column:span 1}}@media (max-width:530px){.footer-main{grid-template-columns:1fr 1fr;gap:var(--space-md) var(--space-sm)}.footer-zones{grid-column:1 / -1;text-align:center}.footer-city-list{justify-content:center}.footer-legal{text-align:left}}.cookie-banner{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--stone-900);border-left:3px solid var(--ochre);border-radius:8px;box-shadow:0 8px 30px rgba(0,0,0,.45);padding:1.2rem 1.8rem;display:flex;align-items:center;gap:var(--space-md);max-width:min(90vw,700px);z-index:9000;opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out),transform .4s var(--ease-out)}.cookie-banner.visible{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}.cookie-banner p{font-size:.9rem;color:var(--stone-300);max-width:none;margin:0}.cookie-actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.cookie-close{background:none;border:none;color:var(--stone-500);font-family:var(--font-body);font-size:.8rem;cursor:pointer;text-decoration:underline;padding:0;white-space:nowrap}.cookie-close:hover{color:var(--stone-300)}@media (max-width:600px){.cookie-banner{flex-direction:column;text-align:center;bottom:0;left:0;right:0;border-radius:12px 12px 0 0;border-left:none;border-top:3px solid var(--ochre);max-width:100%;transform:translateY(20px)}.cookie-banner.visible{transform:translateY(0)}.cookie-actions{width:100%;justify-content:center}}