:root{--primary:#2E302F;--primary-rgb:46, 48, 47;--secondary:#5C5E5D;--secondary-rgb:92, 94, 93;--light-sage:#D6D5D0;--light-sage-rgb:214, 213, 208;--pale-sage:#EAE9E4;--accent:#2B7043;--accent-rgb:43, 112, 67;--accent-hover:#1F5331;--bg:#FAF9F6;--bg-alt:#F5F4F0;--bg-dark:#1A1B1A;--bg-dark-rgb:26, 27, 26;--text:#1F201F;--text-muted:#4A4C4B;--text-light:#FAF9F6;--text-light-muted:#EAE9E4;--font-headings:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body:'Source Sans 3', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--space-4xl:96px;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:9999px;--border-width:1px;--border-color:rgba(26, 26, 26, 0.1);--border-color-light:rgba(250, 250, 250, 0.15);--shadow-sm:0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 2px rgba(0, 0, 0, 0.1);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);--shadow-lg:0 10px 15px -3px rgba(26, 26, 26, 0.08), 0 4px 6px -2px rgba(26, 26, 26, 0.04);--shadow-xl:0 20px 25px -5px rgba(26, 26, 26, 0.12), 0 10px 10px -5px rgba(26, 26, 26, 0.06);--shadow-accent:0 4px 14px 0 rgba(43, 112, 67, 0.25);--transition-fast:0.15s cubic-bezier(0.4, 0, 0.2, 1);--transition-normal:0.3s cubic-bezier(0.4, 0, 0.2, 1);--transition-slow:0.5s cubic-bezier(0.4, 0, 0.2, 1);--max-width:1280px;--header-height:80px;}*, *::before, *::after{box-sizing:border-box;}*{margin:0;padding:0;}html{color-scheme:light;-webkit-text-size-adjust:100%;}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}img, picture, video, canvas, svg{display:block;max-width:100%;height:auto;}input, button, textarea, select{font:inherit;}p, h1, h2, h3, h4, h5, h6{overflow-wrap:break-word;}#root, #__next{isolation:isolate;}a{color:inherit;text-decoration:none;}button{cursor:pointer;background:none;border:none;}ul, ol{list-style:none;}body{font-family:var(--font-body);color:var(--text);background-color:var(--bg);font-size:1.125rem;font-weight:400;line-height:1.6;overflow-x:hidden;}h1, h2, h3, h4, h5, h6{font-family:var(--font-headings);color:var(--primary);font-weight:700;line-height:1.25;margin-bottom:var(--space-md);}h1{font-size:2.5rem;}h2{font-size:2rem;position:relative;padding-bottom:var(--space-sm);margin-bottom:var(--space-xl);}h2::after{content:'';position:absolute;left:0;bottom:0;width:60px;height:3px;background-color:var(--accent);}h3{font-size:1.5rem;}h4{font-size:1.25rem;}.container{width:100%;max-width:var(--max-width);margin-left:auto;margin-right:auto;padding-left:var(--space-lg);padding-right:var(--space-lg);}section{padding-top:var(--space-3xl);padding-bottom:var(--space-3xl);}.section-bg-alt{background-color:var(--bg-alt);}.section-bg-dark{background-color:var(--bg-dark);color:var(--text-light);background-image:linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px), linear-gradient(rgba(255, 255, 255, 0.01) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.01) 1px, transparent 1px);background-size:50px 50px, 50px 50px, 10px 10px, 10px 10px;background-position:center;}.section-bg-dark h2{color:var(--text-light);}.lead{font-size:1.25rem;color:var(--text-muted);font-weight:400;max-width:700px;margin-bottom:var(--space-xl);}.section-bg-dark .lead{color:var(--text-light-muted);}.text-center{text-align:center;}.text-center h2::after{left:50%;transform:translateX(-50%);}.text-accent{color:var(--accent);}strong{font-weight:600;}@media (min-width:768px){h1{font-size:3.5rem;}h2{font-size:2.5rem;}h3{font-size:1.75rem;}section{padding-top:var(--space-4xl);padding-bottom:var(--space-4xl);}}*:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;font-family:var(--font-headings);font-size:0.95rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;border-radius:var(--radius-sm);transition:all var(--transition-normal);cursor:pointer;position:relative;overflow:hidden;}.btn-primary{background-color:var(--accent);color:#FFFFFF;box-shadow:var(--shadow-sm);}.btn-primary:hover{background-color:var(--accent-hover);box-shadow:var(--shadow-accent);transform:translateY(-2px);}.btn-secondary{background-color:transparent;color:var(--primary);border:2px solid var(--primary);}.btn-secondary:hover{background-color:var(--primary);color:#FFFFFF;transform:translateY(-2px);}.btn-outline-white{background-color:transparent;color:#FFFFFF;border:2px solid #FFFFFF;}.btn-outline-white:hover{background-color:#FFFFFF;color:var(--primary);transform:translateY(-2px);}.btn-accent-outline{background-color:transparent;color:var(--accent);border:2px solid var(--accent);}.btn-accent-outline:hover{background-color:var(--accent);color:#FFFFFF;transform:translateY(-2px);}.btn-icon{margin-left:var(--space-xs);transition:transform var(--transition-fast);}.btn:hover .btn-icon{transform:translateX(4px);}.header{position:fixed;top:0;left:0;width:100%;z-index:1000;background-color:transparent;transition:background-color var(--transition-normal), box-shadow var(--transition-normal);}.header.scrolled{background-color:rgba(255, 255, 255, 0.98);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border-color);}.header-top-bar{height:40px;background-color:rgba(26, 40, 42, 0.35);border-bottom:1px solid rgba(250, 250, 250, 0.08);display:flex;align-items:center;font-family:var(--font-headings);font-size:0.8rem;color:var(--text-light-muted);transition:height var(--transition-normal), opacity var(--transition-normal);opacity:1;overflow:hidden;}.header.scrolled .header-top-bar{height:0;opacity:0;border-bottom:none;pointer-events:none;}.header-top-bar .container{display:flex;justify-content:space-between;align-items:center;width:100%;}.header-top-contacts{display:flex;gap:var(--space-lg);}.header-top-contacts a{color:var(--text-light-muted);transition:color var(--transition-fast);}.header-top-contacts a:hover{color:var(--accent);}.header-top-switcher{display:flex;align-items:center;gap:var(--space-xs);}.header-top-switcher span{opacity:0.7;}.switcher-link{color:var(--accent) !important;font-weight:700;letter-spacing:0.5px;transition:color var(--transition-fast) !important;}.switcher-link:hover{color:#FFFFFF !important;}.header-main-bar{height:110px;display:flex;align-items:center;transition:height var(--transition-normal);}.header.scrolled .header-main-bar{height:80px;}.header-main-bar .container{display:flex;align-items:center;justify-content:space-between;width:100%;}.logo{display:flex;align-items:center;transition:color var(--transition-normal);}.logo-icon{height:85px;width:auto;filter:brightness(0) invert(1) drop-shadow(0 4px 15px rgba(0, 0, 0, 0.6));transition:height var(--transition-normal);}.header.scrolled .logo-icon{height:60px;filter:none;}.nav-menu{display:flex;align-items:center;gap:var(--space-xl);}.nav-link{font-family:var(--font-headings);font-size:0.95rem;font-weight:500;letter-spacing:0.5px;color:rgba(250, 250, 250, 0.8);transition:color var(--transition-fast);position:relative;padding:6px 0;}.nav-link::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background-color:var(--accent);transition:width var(--transition-normal);}.nav-link:hover,.nav-link.active{color:#FFFFFF;}.nav-link:hover::after,.nav-link.active::after{width:100%;}.header.scrolled .nav-link{color:var(--primary);}.header.scrolled .nav-link:hover,.header.scrolled .nav-link.active{color:var(--accent);}.header-cta .btn{padding:8px 20px;font-size:0.85rem;}.nav-toggle{display:none;flex-direction:column;justify-content:space-between;width:44px;height:44px;padding:12px 7px;cursor:pointer;z-index:1100;}.nav-toggle span{display:block;height:2px;width:100%;background-color:#FFFFFF;transition:all var(--transition-normal);transform-origin:left center;}.header.scrolled .nav-toggle span{background-color:var(--primary);}.nav-toggle.open span{background-color:#FFFFFF !important;}@media (min-width:1101px) and (max-width:1240px){.nav-menu{gap:16px;}.nav-link{font-size:0.85rem;}.logo-icon{height:70px;}}@media (max-width:1100px){.header-top-bar{display:none;}.header-main-bar{height:80px;}.logo-icon{height:55px;}.nav-toggle{display:flex;}.nav-menu{position:fixed;top:0;right:-100%;width:300px;height:100vh;background-color:var(--bg-dark);box-shadow:var(--shadow-xl);flex-direction:column;align-items:flex-start;padding:100px var(--space-xl) var(--space-xl);gap:var(--space-lg);transition:right var(--transition-normal);}.nav-menu.open{right:0;}.nav-toggle.open span:nth-child(1){transform:rotate(45deg);position:relative;top:-2px;left:3px;}.nav-toggle.open span:nth-child(2){width:0%;opacity:0;}.nav-toggle.open span:nth-child(3){transform:rotate(-45deg);position:relative;top:2px;left:3px;}.header-cta{display:none;}}.nav-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0, 0, 0, 0.5);backdrop-filter:blur(4px);z-index:999;opacity:0;pointer-events:none;transition:opacity var(--transition-normal);}.nav-backdrop.open{opacity:1;pointer-events:auto;}.footer{background-color:var(--bg-dark);color:var(--text-light-muted);font-size:1rem;font-weight:300;border-top:4px solid var(--accent);}.footer-top{padding-top:var(--space-xl);padding-bottom:var(--space-lg);}.footer-grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl);}@media (min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr;}}.footer-brand .logo{color:#FFFFFF;margin-bottom:var(--space-sm);}.footer-brand .logo-icon{height:80px;}.footer-desc{max-width:400px;margin-bottom:var(--space-md);line-height:1.6;}.footer-h3{font-family:var(--font-headings);font-size:1.2rem;color:#FFFFFF;font-weight:600;margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:1px;}.footer-links{display:flex;flex-direction:column;gap:var(--space-xs);}.footer-link{color:var(--text-light-muted);transition:color var(--transition-fast), transform var(--transition-fast);display:inline-flex;align-items:center;}.footer-link:hover{color:var(--accent);transform:translateX(4px);}.footer-contact-item{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm);}.footer-contact-icon{color:var(--accent);margin-top:4px;flex-shrink:0;}.footer-contact-text a{transition:color var(--transition-fast);}.footer-contact-text a:hover{color:#FFFFFF;}.footer-bottom{padding:var(--space-md) 0;border-top:1px solid var(--border-color-light);font-size:0.9rem;}.footer-bottom .container{display:flex;flex-direction:column;gap:var(--space-md);align-items:center;text-align:center;}@media (min-width:768px){.footer-bottom .container{flex-direction:row;justify-content:space-between;text-align:left;}}.footer-copy{color:rgba(250, 250, 250, 0.4);}.footer-meta-links{display:flex;gap:var(--space-lg);}.footer-meta-link{color:rgba(250, 250, 250, 0.4);transition:color var(--transition-fast);}.footer-meta-link:hover{color:#FFFFFF;}@media (max-width:767.98px){.footer-top{padding-top:var(--space-lg);padding-bottom:var(--space-lg);}.footer-grid{gap:var(--space-md);}.footer-desc{display:none;}.footer-brand .logo{margin-bottom:var(--space-xs);}.footer-brand .logo-icon{height:65px;}.footer-h3{margin-bottom:var(--space-sm);}.footer-links{gap:var(--space-xs);}.footer-contact-item{margin-bottom:var(--space-xs);}}.grid-2{display:grid;grid-template-columns:1fr;gap:var(--space-xl);}.grid-3{display:grid;grid-template-columns:1fr;gap:var(--space-xl);}.grid-4{display:grid;grid-template-columns:1fr;gap:var(--space-xl);}@media (min-width:768px){.grid-2{grid-template-columns:repeat(2, 1fr);}.grid-3{grid-template-columns:repeat(2, 1fr);}.grid-4{grid-template-columns:repeat(2, 1fr);}}@media (min-width:992px){.grid-3{grid-template-columns:repeat(3, 1fr);}.grid-4{grid-template-columns:repeat(4, 1fr);}}.card{background-color:#FFFFFF;border-radius:var(--radius-md);border:1px solid var(--border-color);padding:var(--space-xl);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);}@media (max-width:575px){.card[style*="display:flex"], .card[style*="display:flex"]{flex-direction:column !important;gap:var(--space-md) !important;}}.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}.portfolio-card{background-color:#FFFFFF;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:transform var(--transition-normal), box-shadow var(--transition-normal);display:flex;flex-direction:column;height:100%;}.portfolio-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}.portfolio-img-wrapper{position:relative;width:100%;padding-top:66.67%;overflow:hidden;background-color:var(--primary);}.portfolio-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow);}.portfolio-card:hover .portfolio-img{transform:scale(1.05);}.portfolio-tag{position:absolute;top:var(--space-md);left:var(--space-md);background-color:var(--accent);color:#FFFFFF;font-family:var(--font-headings);font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;padding:4px 10px;border-radius:var(--radius-xs);z-index:10;}.portfolio-info{padding:var(--space-lg);flex-grow:1;display:flex;flex-direction:column;}.portfolio-title{font-size:1.25rem;font-weight:700;margin-bottom:var(--space-xs);color:var(--primary);}.portfolio-meta{font-size:0.9rem;color:var(--text-muted);margin-bottom:var(--space-md);display:flex;gap:var(--space-md);}.portfolio-desc{font-size:0.95rem;color:var(--text);margin-bottom:var(--space-lg);flex-grow:1;line-height:1.5;}.portfolio-link{font-family:var(--font-headings);font-weight:600;font-size:0.9rem;color:var(--primary);display:inline-flex;align-items:center;gap:var(--space-xs);transition:color var(--transition-fast);}.portfolio-link:hover{color:var(--accent);}.breadcrumbs{padding:var(--space-md) 0;background-color:var(--pale-sage);border-bottom:1px solid var(--border-color);font-size:0.9rem;}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:center;}.breadcrumb-item{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-muted);}.breadcrumb-item a{transition:color var(--transition-fast);}.breadcrumb-item a:hover{color:var(--primary);}.breadcrumb-item::after{content:'/';color:rgba(46, 48, 47, 0.3);}.breadcrumb-item:last-child{color:var(--primary);font-weight:500;}.breadcrumb-item:last-child::after{display:none;}.process-timeline{position:relative;max-width:800px;margin:0 auto;padding:var(--space-xl) 0;}.process-timeline::before{content:'';position:absolute;top:0;bottom:0;left:31px;width:2px;background-color:var(--light-sage);}.process-step{position:relative;margin-bottom:var(--space-2xl);padding-left:80px;}.process-step:last-child{margin-bottom:0;}.process-num{position:absolute;left:0;top:0;width:64px;height:64px;background-color:var(--primary);color:#FFFFFF;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-family:var(--font-headings);font-size:1.5rem;font-weight:700;border:4px solid var(--bg);box-shadow:var(--shadow-sm);transition:background-color var(--transition-normal);}.process-step:hover .process-num{background-color:var(--accent);}.process-content{background-color:#FFFFFF;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-xl);box-shadow:var(--shadow-sm);}.process-title{margin-bottom:var(--space-xs);}.hero-silo{position:relative;background-color:var(--primary);color:#FFFFFF;padding-top:190px;padding-bottom:var(--space-4xl);background-size:cover;background-position:center;overflow:hidden;}@media (max-width:767px){.hero-silo{padding-top:140px;padding-bottom:var(--space-3xl);}}.hero-silo::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg, rgba(46, 48, 47, 0.9) 0%, rgba(46, 48, 47, 0.7) 100%);z-index:1;}.hero-silo .container{position:relative;z-index:2;max-width:900px;}.hero-silo h1{color:#FFFFFF;margin-bottom:var(--space-lg);font-weight:800;letter-spacing:-0.5px;}.hero-silo .lead{color:var(--text-light-muted);font-size:1.35rem;line-height:1.6;}.faq-list{max-width:800px;margin:0 auto;}.faq-item{border-bottom:1px solid var(--border-color);padding:var(--space-lg) 0;}.faq-question{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;font-family:var(--font-headings);font-size:1.2rem;font-weight:600;color:var(--primary);background:none;border:none;cursor:pointer;padding:0;gap:var(--space-md);}.faq-question::after{content:'+';font-size:1.5rem;font-weight:300;color:var(--accent);transition:transform var(--transition-normal);flex-shrink:0;}.faq-item.active .faq-question::after{transform:rotate(45deg);}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-normal) ease-out;padding-top:0;}.faq-item.active .faq-answer{max-height:300px;padding-top:var(--space-md);}.faq-answer p{color:var(--text-muted);font-size:1rem;}.form-group{margin-bottom:var(--space-xl);}.form-label{display:block;font-family:var(--font-headings);font-size:0.95rem;font-weight:600;color:var(--primary);margin-bottom:var(--space-sm);}.form-label span.required{color:#c53030;margin-left:2px;}.form-control{width:100%;padding:14px var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:#FFFFFF;color:var(--text);font-size:1rem;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);}.form-control:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px rgba(92, 94, 93, 0.15);}textarea.form-control{min-height:180px;resize:vertical;}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);}@media (max-width:575.98px){.form-grid-2{grid-template-columns:1fr;gap:var(--space-xl);}}.mobile-sticky-cta{position:fixed;bottom:0;left:0;width:100%;background-color:rgba(255, 255, 255, 0.98);backdrop-filter:blur(10px);box-shadow:0 -4px 20px rgba(0, 0, 0, 0.08);border-top:1px solid var(--border-color);display:flex;padding:12px var(--space-md);gap:12px;z-index:999;}@media (min-width:768px){.mobile-sticky-cta{display:none;}}.mobile-cta-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;font-family:var(--font-headings);font-size:0.9rem;font-weight:600;border-radius:8px;text-decoration:none;transition:all var(--transition-fast);}.mobile-cta-phone{background-color:var(--primary);color:#ffffff;}.mobile-cta-phone:hover{background-color:var(--secondary);}.mobile-cta-action{background-color:var(--accent);color:#ffffff;}.mobile-cta-action:hover{background-color:var(--accent-hover);}.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);will-change:opacity, transform;}.reveal.revealed{opacity:1;transform:translateY(0);}.reveal-delay-1{transition-delay:0.1s;}.reveal-delay-2{transition-delay:0.2s;}.reveal-delay-3{transition-delay:0.3s;}.reveal-delay-4{transition-delay:0.4s;}.reveal-left{opacity:0;transform:translateX(-30px);transition:opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);}.reveal-left.revealed{opacity:1;transform:translateX(0);}.reveal-right{opacity:0;transform:translateX(30px);transition:opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);}.reveal-right.revealed{opacity:1;transform:translateX(0);}@keyframes goldPulse{0%{box-shadow:0 0 0 0 rgba(43, 112, 67, 0.4);}70%{box-shadow:0 0 0 10px rgba(43, 112, 67, 0);}100%{box-shadow:0 0 0 0 rgba(43, 112, 67, 0);}}.pulse-gold{animation:goldPulse 2s infinite;}.fade-in{animation:fadeIn 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}@keyframes shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}.shimmer-placeholder{background:linear-gradient(90deg, #f0f2f0 25%, #e0e4e0 50%, #f0f2f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;}

/* Contact Form & Form Field Mobile Optimizations */
.contact-form-card {
  background-color: #FFFFFF;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  box-shadow: var(--shadow-md);
}

.gdpr-group {
  display: flex;
  gap: var(--space-sm);
  align-items: flex-start;
  margin-top: var(--space-lg);
}

.gdpr-group .choice-input {
  margin-top: 4px;
  flex-shrink: 0;
}

.gdpr-label {
  font-size: 0.85rem;
  color: var(--text-muted);
  line-height: 1.4;
  cursor: pointer;
}

@media (max-width: 767.98px) {
  .contact-form-card {
    padding: var(--space-lg);
  }
  .form-group {
    margin-bottom: var(--space-lg);
  }
  .form-grid-2 {
    gap: var(--space-lg);
  }
}

@media (max-width: 479.98px) {
  .contact-form-card {
    padding: var(--space-md) var(--space-sm);
    border-radius: var(--radius-md);
  }
  .form-group {
    margin-bottom: var(--space-md);
  }
  .form-grid-2 {
    gap: var(--space-md);
  }
  .form-control {
    padding: 12px var(--space-sm);
  }
  textarea.form-control {
    min-height: 140px;
  }
  .gdpr-group {
    margin-top: var(--space-md);
  }
}

.header.header-solid{background-color:rgba(255, 255, 255, 0.98);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border-color);}.header.header-solid .logo-icon{filter:none !important;}.header.header-solid .nav-link{color:var(--primary);}.header.header-solid .nav-link:hover,.header.header-solid .nav-link.active{color:var(--accent);}.header.header-solid .nav-toggle span{background-color:var(--primary);}.header.header-solid .header-top-bar{background-color:var(--pale-sage);border-bottom:1px solid var(--border-color);color:var(--text-muted);}.header.header-solid .header-top-contacts a{color:var(--text-muted);}.header.header-solid .header-top-contacts a:hover{color:var(--accent);}.header.header-solid .header-top-switcher{color:var(--text-muted);}.header.header-solid .switcher-link:hover{color:var(--primary) !important;}

/* Skeleton Loaders (Zadanie 5) */
.portfolio-card-skeleton {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: var(--radius-md, 8px);
  overflow: hidden;
  height: 480px;
  box-shadow: var(--shadow-sm);
}
.skeleton-img {
  width: 100%;
  height: 260px;
  background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
  background-size: 200% 100%;
  animation: shimmer 1.6s infinite linear;
}
.skeleton-info {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.skeleton-bar {
  height: 16px;
  background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
  background-size: 200% 100%;
  animation: shimmer 1.6s infinite linear;
  border-radius: 4px;
}
.skeleton-bar.title { height: 24px; width: 70%; margin-bottom: 8px; }
.skeleton-bar.meta { height: 14px; width: 40%; margin-bottom: 4px; }
.skeleton-bar.desc { height: 14px; width: 95%; }
.skeleton-bar.desc.short { width: 60%; }

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Style Oferty Harmonijkowej */
.offer-item {
  border-bottom: 1px solid var(--border-color);
  padding: var(--space-lg) 0;
}
.offer-question {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  width: 100%;
  text-align: left;
  font-family: var(--font-headings);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--primary);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  gap: var(--space-md);
}
.offer-title {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: 1.15rem;
}
.offer-icon {
  color: var(--accent);
  flex-shrink: 0;
}
.offer-question::after {
  content: '+';
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--accent);
  transition: transform var(--transition-normal);
  flex-shrink: 0;
}
.offer-item.active .offer-question::after {
  transform: rotate(45deg);
}
.offer-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition-normal) ease-out;
  padding-top: 0;
}
.offer-item.active .offer-answer {
  max-height: 500px;
  padding-top: var(--space-md);
}
.offer-price {
  background-color: var(--pale-sage);
  color: var(--primary);
  font-size: 0.9rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border-color);
  flex-shrink: 0;
  margin-left: auto;
}
.offer-item.active .offer-price {
  background-color: var(--accent);
  color: #FFFFFF;
  border-color: var(--accent);
}
.offer-content p {
  color: var(--text-muted);
  font-size: 1rem;
  margin-bottom: var(--space-sm);
  line-height: 1.6;
}
.offer-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}
.offer-list li {
  font-size: 0.95rem;
  color: var(--text-muted);
  line-height: 1.5;
  padding-left: 24px;
  position: relative;
}
.offer-list li::before {
  content: '✓';
  color: var(--accent);
  position: absolute;
  left: 0;
  font-weight: bold;
}
.offer-price-tag {
  color: var(--accent);
  font-weight: 700;
  display: inline-block;
  margin: 0 4px;
}
.offer-price-summary {
  margin-top: var(--space-md);
  padding-top: var(--space-sm);
  border-top: 1px dashed var(--border-color);
  font-size: 0.95rem;
  color: var(--text-muted);
}
.offer-price-summary strong {
  color: var(--accent);
  font-size: 1.1rem;
}
@media (min-width: 768px) {
  .promo-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 575.98px) {
  .offer-question {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-rows: auto auto !important;
    gap: var(--space-xs) 0 !important;
    align-items: center !important;
  }
  .offer-title {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    padding-right: var(--space-md);
  }
  .offer-question::after {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
    align-self: center;
    margin: 0 !important;
  }
  .offer-price {
    grid-column: 1 / 3;
    grid-row: 2 / 3;
    margin-left: 32px !important;
    align-self: start;
    width: fit-content;
  }
}

/* Style Pasków Promocyjnych (Wersja 2) */
.promo-row {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-md);
  background-color: var(--bg-alt);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
  transition: border-color var(--transition-normal), box-shadow var(--transition-normal);
}
.promo-row:hover {
  border-color: var(--accent);
  box-shadow: var(--shadow-sm);
}
.promo-row-badge {
  background-color: var(--accent);
  color: #FFFFFF;
  font-family: var(--font-headings);
  font-size: 1.1rem;
  font-weight: 800;
  width: 64px;
  height: 64px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: var(--shadow-accent);
}
.promo-row-content {
  font-size: 0.95rem;
  color: var(--text-muted);
  line-height: 1.5;
}
.promo-row-content strong {
  color: var(--primary);
  display: block;
  margin-bottom: 2px;
  font-size: 1rem;
}
@media (max-width: 479.98px) {
  .promo-row {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-sm);
    padding: var(--space-lg);
  }
  .promo-row-badge {
    width: 52px;
    height: 52px;
    font-size: 1rem;
  }
}

/* ==========================================
   OFFER PAGES - IMAGE GRID & BADGES (B2B)
   ========================================== */
.offer-image-container {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--border-color);
  aspect-ratio: 4/3;
  width: 100%;
}

.offer-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.offer-image-container:hover .offer-image {
  transform: scale(1.03);
}

.offer-badge-card {
  position: absolute;
  bottom: var(--space-md);
  right: var(--space-md);
  left: var(--space-md);
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  background-color: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.4);
  padding: var(--space-md) var(--space-lg);
  border-radius: var(--radius-md);
  box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
  transition: transform var(--transition-normal);
}

.offer-image-container:hover .offer-badge-card {
  transform: translateY(-4px);
}

.offer-badge-card .badge-title {
  color: var(--primary);
  margin-top: 0;
  margin-bottom: var(--space-3xs);
  font-size: 1.05rem;
  font-weight: 700;
}

.offer-badge-card .badge-desc {
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--text-muted);
  margin: 0;
}

@media (max-width: 768px) {
  .offer-badge-card {
    position: relative;
    bottom: auto;
    left: auto;
    right: auto;
    margin: var(--space-md);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background-color: var(--bg-alt);
    border-color: var(--border-color);
  }
  .offer-image-container {
    aspect-ratio: 16/10;
    overflow: visible;
  }
}

/* Centering helper when there is only a single item in a grid container */
.grid-single-centered {
  display: flex !important;
  justify-content: center;
}
.grid-single-centered > .portfolio-card {
  max-width: 550px;
  width: 100%;
}

/* Shimmer sweep animation for coming-soon cards */
@keyframes shimmer-sweep {
  0% {
    transform: translateX(-150%) skewX(-25deg);
  }
  30% {
    transform: translateX(150%) skewX(-25deg);
  }
  100% {
    transform: translateX(150%) skewX(-25deg);
  }
}

.blog-image-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-sm);
  margin-bottom: var(--space-md);
  background-color: var(--primary);
}

.blog-image-wrapper::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.4) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: translateX(-150%) skewX(-25deg);
  animation: shimmer-sweep 3s infinite ease-in-out;
  pointer-events: none;
}

/* Badge for coming soon items */
.badge-coming-soon {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  background-color: rgba(43, 112, 67, 0.95);
  color: #FFFFFF;
  font-family: var(--font-headings);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 4px 12px;
  border-radius: var(--radius-full);
  z-index: 10;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: var(--shadow-sm);
}

.pulse-dot {
  width: 6px;
  height: 6px;
  background-color: #52fa7c;
  border-radius: 50%;
  display: inline-block;
  animation: dot-pulse-green 1.5s infinite;
}

@keyframes dot-pulse-green {
  0% {
    transform: scale(0.8);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.2);
    opacity: 1;
    box-shadow: 0 0 8px #52fa7c;
  }
  100% {
    transform: scale(0.8);
    opacity: 0.5;
  }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Force high contrast text colors inside dark mobile navigation dropdown */
@media (max-width: 1100px) {
  .nav-menu .nav-link,
  .header.scrolled .nav-menu .nav-link {
    color: rgba(250, 250, 250, 0.85) !important;
  }
  .nav-menu .nav-link:hover,
  .nav-menu .nav-link.active,
  .header.scrolled .nav-menu .nav-link:hover,
  .header.scrolled .nav-menu .nav-link.active {
    color: #FFFFFF !important;
  }
}

/* ==========================================
   MOBILE LAYOUT FIXES (PORTFOLIO, OFFERS, START CARDS)
   ========================================== */
@media (max-width: 767.98px) {
  /* Portfolio metryka and flagship padding fixes */
  .flagship-section {
    padding-top: var(--space-xl) !important;
    padding-bottom: var(--space-xl) !important;
  }
  .flagship-section .grid-2 {
    gap: var(--space-lg) !important;
    margin-bottom: var(--space-xl) !important;
  }
  .flagship-section div[style*="padding: var(--space-2xl)"] {
    padding: var(--space-md) !important;
  }
  .flagship-section table tr td {
    padding: 8px 0 !important;
    font-size: 0.9rem;
  }
  
  /* B2B Alternating rows order fix */
  #retail.grid-2,
  #warsztatowe.grid-2 {
    display: flex !important;
    flex-direction: column-reverse !important;
  }
}

@media (max-width: 575.98px) {
  /* Portfolio start card buttons stack */
  .portfolio-info > div[style*="display: flex"] {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--space-sm) !important;
    text-align: center;
  }
  .portfolio-info > div[style*="display: flex"] .btn {
    width: 100% !important;
    justify-content: center !important;
  }
  .portfolio-info > div[style*="display: flex"] span {
    margin-top: var(--space-xs);
    font-size: 1.1rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--space-lg);
  background-color: var(--accent);
  color: #fff;
  padding: 10px 20px;
  z-index: 10000;
  text-transform: uppercase;
  font-weight: 700;
  font-family: var(--font-headings);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  transition: top var(--transition-fast);
}
.skip-link:focus-visible {
  top: 0;
  outline: 3px solid var(--primary);
}
.form-control:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}
@media (max-width: 767.98px) {
  .mobile-sticky-cta {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    transform: translate3d(0, 0, 0) !important;
    -webkit-transform: translate3d(0, 0, 0) !important;
    padding-bottom: calc(12px + env(safe-area-inset-bottom)) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }
}