@import url("_variables.css");@import url("page-specific.css");@import url("footer-enhanced.css");@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:wght@400;500;600;700&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--spacing-16);text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-background-warm);color:var(--color-text);display:flex;flex-direction:column;font-family:var(--font-family-body);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);min-height:100vh;overflow-x:hidden}:focus-visible{border-radius:var(--radius-sm);outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}:focus:not(:focus-visible){outline:none}.skip-link{background:var(--color-primary);border-radius:var(--radius-md);color:#fff;font-weight:var(--font-weight-semibold);left:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);position:absolute;text-decoration:none;top:calc(var(--spacing-16)*-1);transform:translateY(0);transition:transform var(--transition-fast);z-index:var(--z-index-toast)}.skip-link:focus{transform:translateY(var(--spacing-16))}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:50vh;padding:var(--spacing-8)}.loading-spinner{animation:spin 1s linear infinite;border:4px solid var(--color-gray-200);border-radius:50%;border-top-color:var(--color-primary);height:48px;width:48px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-container{margin:var(--spacing-16) auto;max-width:600px;padding:var(--spacing-8);text-align:center}.error-container h1{color:var(--color-error);margin-bottom:var(--spacing-4)}.error-container details{background:var(--color-gray-50);border-radius:var(--radius-md);margin-top:var(--spacing-6);padding:var(--spacing-4);text-align:left}.error-container summary{cursor:pointer;font-weight:var(--font-weight-semibold)}.error-container pre{background:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-top:var(--spacing-2);overflow-x:auto;padding:var(--spacing-3)}.error-container button{background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-top:var(--spacing-6);padding:var(--spacing-3) var(--spacing-6);transition:background-color var(--transition-fast)}.error-container button:hover{background:var(--color-primary-dark)}.placeholder-image{filter:grayscale(100%);opacity:.7}@media (prefers-contrast:high){:root{--color-border:#000;--shadow-base:none;--shadow-lg:none}}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-family:var(--font-family-headings);font-weight:var(--font-weight-bold);letter-spacing:-.025em;line-height:var(--line-height-tight);margin-bottom:var(--spacing-4)}h1{color:var(--color-primary-dark);font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold)}h2{color:var(--color-primary);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}h3{font-size:var(--font-size-2xl)}h3,h4{font-weight:var(--font-weight-semibold)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h5,h6{font-weight:var(--font-weight-medium)}h6{font-size:var(--font-size-base)}p{line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-4)}a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:all var(--transition-fast)}a:hover{color:var(--color-accent);text-decoration-thickness:2px}b,strong{font-weight:var(--font-weight-semibold)}em,i{font-style:italic}.container{margin:0 auto;max-width:var(--container-xl);padding:0 var(--spacing-4);width:100%}@media (min-width:640px){.container{padding:0 var(--spacing-6)}}@media (min-width:1024px){.container{padding:0 var(--spacing-8)}}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.container-lg{max-width:var(--container-lg)}.container-xl{max-width:var(--container-xl)}.container-2xl{max-width:var(--container-2xl)}.container-fluid{max-width:var(--container-fluid)}section{padding:var(--spacing-12) 0}@media (min-width:768px){section{padding:var(--spacing-16) 0}}@media (min-width:1024px){section{padding:var(--spacing-20) 0}}.btn{align-items:center;border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-family:var(--font-family-body);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-2);justify-content:center;line-height:1.5;padding:var(--spacing-3) var(--spacing-6);text-align:center;text-decoration:none;transition:all var(--transition-fast);user-select:none;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);box-shadow:none;color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:1px;text-transform:uppercase}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--color-background-light);border-color:var(--color-border);box-shadow:none;color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:1px;text-transform:uppercase}.btn-secondary:hover:not(:disabled){background:var(--color-background-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-accent{background:var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-sm);color:#fff}.btn-accent:hover:not(:disabled){background:#3a8bc0;border-color:#3a8bc0;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-sm{font-size:var(--font-size-sm);padding:var(--spacing-2) var(--spacing-4)}.btn-lg{font-size:var(--font-size-lg);padding:var(--spacing-4) var(--spacing-8)}.btn-xl{font-size:var(--font-size-xl);padding:var(--spacing-5) var(--spacing-10)}.card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-header{background:var(--color-background-light);border-bottom:1px solid var(--color-border)}.card-body,.card-header{padding:var(--spacing-6)}.card-footer{background:var(--color-background-light);border-top:1px solid var(--color-border);padding:var(--spacing-4) var(--spacing-6)}header{background:#fff;border-bottom:1px solid var(--color-border);padding:var(--spacing-4) 0;position:sticky;top:0;z-index:var(--z-index-sticky)}.navbar{padding:0}.navbar .container{align-items:center;display:flex;gap:var(--spacing-8);justify-content:space-between}.navbar-brand{gap:var(--spacing-3)}.logo-link,.navbar-brand{align-items:center;display:flex}.logo-link{color:var(--color-text);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);text-decoration:none}.logo-link img{height:40px;transition:transform var(--transition-base);width:auto}.logo-link:hover img{transform:scale(1.05)}.nav-links{display:none;gap:var(--spacing-8);list-style:none}@media (min-width:768px){.nav-links{display:flex}}.nav-links a{border-radius:var(--radius-md);color:var(--color-text);font-weight:var(--font-weight-medium);padding:var(--spacing-2) var(--spacing-3);position:relative;text-decoration:none;transition:all var(--transition-fast)}.nav-links a.active,.nav-links a:hover{background:rgba(44,95,141,.1);color:var(--color-primary)}.nav-links a.active:after{background:var(--color-primary);border-radius:var(--radius-full);bottom:-8px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);width:20px}.mobile-menu-toggle{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;height:18px;justify-content:space-between;padding:0;transition:all var(--transition-fast);width:24px}@media (min-width:768px){.mobile-menu-toggle{display:none}}.mobile-menu-toggle span{background:var(--color-text);border-radius:var(--radius-full);display:block;height:2px;transition:all var(--transition-fast);width:100%}.mobile-menu-toggle:hover span{background:var(--color-primary)}.mobile-menu-toggle[aria-expanded=true] span:first-child{transform:rotate(45deg) translate(5px,5px)}.mobile-menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.mobile-menu-toggle[aria-expanded=true] span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.mobile-menu-overlay{backdrop-filter:blur(4px);background:rgba(0,0,0,.8);bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:all var(--transition-base);visibility:hidden;z-index:var(--z-index-modal)}.mobile-menu-overlay.active{opacity:1;visibility:visible}.mobile-menu-content{background:#fff;box-shadow:var(--shadow-2xl);height:100vh;padding:var(--spacing-6);position:absolute;right:0;top:0;transform:translateX(100%);transition:transform var(--transition-base);width:280px}.mobile-menu-overlay.active .mobile-menu-content{transform:translateX(0)}.mobile-menu-close{align-items:center;background:none;border:none;border-radius:var(--radius-full);color:var(--color-text);cursor:pointer;display:flex;font-size:var(--font-size-2xl);height:32px;justify-content:center;position:absolute;right:var(--spacing-4);top:var(--spacing-4);transition:all var(--transition-fast);width:32px}.mobile-menu-close:hover{background:var(--color-background-light);color:var(--color-primary)}.mobile-nav{margin-top:var(--spacing-12)}.mobile-nav ul{list-style:none;margin:0;padding:0}.mobile-nav li{margin-bottom:var(--spacing-4)}.mobile-nav a{border-radius:var(--radius-lg);color:var(--color-text);display:block;font-weight:var(--font-weight-medium);padding:var(--spacing-4);text-decoration:none;transition:all var(--transition-fast)}.mobile-nav a.active,.mobile-nav a:hover{background:var(--color-primary);color:#fff}.hero,body.mobile-menu-open{overflow:hidden}.hero{align-items:center;background:var(--color-background-light);background-position:50%;background-repeat:no-repeat;background-size:cover;color:var(--color-text);display:flex;justify-content:center;min-height:45vh;padding:var(--spacing-10) 0;position:relative;text-align:center}.hero:before{background:linear-gradient(135deg,rgba(44,95,141,.85),rgba(74,159,216,.75));bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.hero .container{position:relative;z-index:2}.hero h1{font-size:var(--font-size-4xl);font-weight:400;line-height:1.2;margin-bottom:var(--spacing-6);max-width:800px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.hero h1,.hero p{color:#fff;margin-left:auto;margin-right:auto}.hero p{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-8);max-width:700px;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.hero-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-4);justify-content:center}@media (max-width:640px){.hero-buttons{align-items:center;flex-direction:column}.hero-buttons .btn{max-width:280px;width:100%}}.hero[style*=background-image]{background-blend-mode:overlay;background-position:50%;background-repeat:no-repeat;background-size:cover}.hero.customization-hero{background:linear-gradient(135deg,var(--color-accent) 0,var(--color-primary-light) 100%)}.hero.about-hero{background:linear-gradient(135deg,var(--color-primary-dark) 0,var(--color-primary) 100%)}.hero.portfolio-hero{background:linear-gradient(135deg,#1a4466 0,var(--color-primary-light) 100%)}.hero img{border-radius:var(--radius-lg)}.grid{gap:var(--spacing-6)}.grid-cols-1{grid-template-columns:var(--grid-cols-1)}.grid-cols-2{grid-template-columns:var(--grid-cols-2)}.grid-cols-3{grid-template-columns:var(--grid-cols-3)}.grid-cols-4{grid-template-columns:var(--grid-cols-4)}.categories-grid,.clients-grid,.products-grid{display:grid;gap:var(--spacing-6);grid-template-columns:1fr}@media (min-width:640px){.categories-grid,.clients-grid,.products-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.categories-grid,.clients-grid,.products-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.categories-grid,.clients-grid,.products-grid{grid-template-columns:repeat(4,1fr)}}.category-card,.product-card{background:#fff;border:none;border-radius:var(--radius-lg);box-shadow:0 2px 8px rgba(0,0,0,.08);overflow:hidden;position:relative;transition:all var(--transition-base)}.category-card:hover,.product-card:hover{box-shadow:0 8px 25px rgba(0,0,0,.15);transform:translateY(-2px)}.product-card img{height:250px}.category-card img,.product-card img{background:#f8f9fa;object-fit:contain;object-position:center;padding:10px;transition:transform var(--transition-base);width:100%}.category-card img{height:200px}.category-card:hover img,.product-card:hover img{transform:scale(1.05)}.category-card h3,.product-card h4{color:var(--color-text);margin-bottom:0;padding:var(--spacing-4)}.product-card .product-code{color:var(--color-text-light);font-family:var(--font-family-mono);font-size:var(--font-size-sm);margin-bottom:0;padding:0 var(--spacing-4) var(--spacing-4)}.category-card a{color:inherit;display:block;text-decoration:none}.category-card p{color:var(--color-text-light);font-size:var(--font-size-sm);margin-bottom:0;padding:0 var(--spacing-4) var(--spacing-4)}.logos-carousel{align-items:center;display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));justify-items:center}.logos-carousel img{filter:grayscale(100%);height:60px;max-width:100%;object-fit:contain;opacity:.7;transition:all var(--transition-base)}.logos-carousel img:hover{filter:grayscale(0);opacity:1;transform:scale(1.1)}.client-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-6);text-align:center;transition:all var(--transition-base)}.client-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.client-card img{height:80px;margin-bottom:var(--spacing-4);max-width:120px;object-fit:contain}.form-group{margin-bottom:var(--spacing-6)}label{color:var(--color-text);display:block;font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-2)}input,select,textarea{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-family-body);font-size:var(--font-size-base);line-height:1.5;padding:var(--spacing-3) var(--spacing-4);transition:all var(--transition-fast);width:100%}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(44,95,141,.1);outline:none}input:invalid,select:invalid,textarea:invalid{border-color:var(--color-error)}textarea{min-height:120px;resize:vertical}.product-gallery{margin:var(--spacing-10) 0}.product-gallery h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-6);text-align:center}.gallery-grid{display:grid;gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--spacing-10)}.gallery-item{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;transition:all var(--transition-base)}.gallery-item:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.gallery-item img{background:#f8f9fa;display:block;height:250px;object-fit:contain;object-position:center;padding:10px;width:100%}@media (max-width:768px){.gallery-grid{gap:var(--spacing-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.gallery-item img{height:180px}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.link-button,.link-reset{text-decoration:none!important;text-underline-offset:0!important}.link-button{align-items:center;display:inline-flex;justify-content:center;text-align:center}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-muted{color:var(--color-text-light)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.mb-0{margin-bottom:0}.mb-2{margin-bottom:var(--spacing-2)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.mt-0{margin-top:0}.mt-2{margin-top:var(--spacing-2)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.gap-2{gap:var(--spacing-2)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.rounded{border-radius:var(--radius-base)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow{box-shadow:var(--shadow-base)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateY(0)}40%,43%{transform:translateY(-30px)}70%{transform:translateY(-15px)}90%{transform:translateY(-4px)}}.animate-fade-in{animation:fadeIn .6s ease-out}.animate-fade-in-up{animation:fadeInUp .8s ease-out}.animate-slide-in-right{animation:slideInRight .6s ease-out}.animate-bounce{animation:var(--animate-bounce)}.loading{opacity:.6;pointer-events:none}.skeleton{animation:loading 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.hidden-mobile{display:none}@media (min-width:640px){.hidden-mobile{display:block}.hidden-desktop{display:none}}@media print{*,:after,:before{background:#fff!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}#back-to-top-btn,.btn,.mobile-menu-toggle,.newsletter-form,.skip-link{display:none!important}a[href^=http]:after{content:" (" attr(href) ")";font-size:var(--font-size-sm)}.container{max-width:none;padding:0}}