/* Shared final overrides: header, footer, quick contact and mobile menu */

/* Header/menu restyled closer to demo.html */

@media (max-width: 1040px) {
      .site-header .nav {
        gap: 18px !important;
      }

      .site-header .nav-links {
        gap: 20px !important;
      }

      .site-header .btn.primary {
        padding: 14px 20px !important;
        letter-spacing: 1.5px !important;
      }
    }

@media (max-width: 780px) {
      .site-header {
        padding: 18px 0 !important;
        background: rgba(245, 244, 240, .92) !important;
        backdrop-filter: blur(18px) !important;
        border-bottom: 1px solid rgba(47, 93, 44, .08) !important;
      }

      body.menu-open .site-header {
        height: 100dvh !important;
        background: transparent !important;
        border-bottom: 0 !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
      }

      .site-header .nav-links {
        position: fixed !important;
        inset: 0 !important;
        z-index: 1100 !important;
        width: 100vw !important;
        height: 100dvh !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 34px !important;
        padding: 110px 24px 46px !important;
        background: rgba(245, 244, 240, .98) !important;
        backdrop-filter: blur(20px) !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateX(100%) !important;
        transition: opacity .45s ease, visibility .45s ease, transform .45s ease !important;
      }

      body.menu-open .site-header .nav-links {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateX(0) !important;
      }

      .site-header .nav-links::before,
      .site-header .nav-links::after {
        display: none !important;
      }

      .site-header .nav-links a {
        width: fit-content !important;
        min-height: auto !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
        color: var(--text) !important;
        font-size: 17px !important;
        letter-spacing: 2.5px !important;
      }

      .site-header .nav-links a::after {
        display: block !important;
      }

      .site-header .nav-links a:hover {
        background: transparent !important;
        color: var(--accent) !important;
      }

      .site-header .nav-links a:hover::after {
        width: 100% !important;
      }

      .site-header .menu-btn {
        position: relative !important;
        z-index: 1300 !important;
        display: flex !important;
        width: 42px !important;
        height: 42px !important;
        flex-direction: column !important;
        justify-content: center !important;
        gap: 6px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
      }

      .site-header .menu-btn span {
        width: 100% !important;
        height: 2px !important;
        margin: 0 !important;
        background: var(--text) !important;
        transition: .4s ease !important;
      }

      body.menu-open .site-header .menu-btn span:nth-child(1) {
        transform: rotate(45deg) translateY(11px) !important;
      }

      body.menu-open .site-header .menu-btn span:nth-child(2) {
        opacity: 0 !important;
      }

      body.menu-open .site-header .menu-btn span:nth-child(3) {
        transform: rotate(-45deg) translateY(-11px) !important;
      }

      .hero {
        padding-top: 128px !important;
      }
    }

/* Mobile layout polish: full-width actions, no cramped columns */

@media (max-width: 780px) {
      .container {
        width: min(100% - 28px, var(--container)) !important;
      }

      .site-header .nav {
        gap: 14px !important;
      }

      .site-header .nav-links {
        align-items: stretch !important;
        gap: 14px !important;
        padding: 112px 24px 42px !important;
      }

      .site-header .nav-links a {
        width: 100% !important;
        min-height: 58px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 16px 18px !important;
        border: 1px solid rgba(47, 93, 44, 0.10) !important;
        border-radius: 18px !important;
        background: rgba(255, 255, 255, 0.72) !important;
        box-shadow: 0 14px 34px rgba(47, 93, 44, 0.06) !important;
        text-align: center !important;
      }

      .site-header .nav-links a::after {
        display: none !important;
      }

      .btn,
      .hero-actions .btn,
      .final-cta .btn,
      .section .btn,
      .service-body a.btn,
      .realizations-more .btn,
      .all-reviews-link,
      .review-card a,
      .fb-review-button {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 54px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
      }

      .hero-actions,
      .final-cta .hero-actions,
      .review-actions,
      .reviews-links,
      .realizations-more,
      .footer-legal {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
      }

      .hero-highlights,
      .about-company-grid,
      .offer-abstract .services-offer-grid,
      .services-offer-grid,
      .wspolpraca-grid,
      .reviews-track,
      .footer-row,
      .footer-inner {
        grid-template-columns: 1fr !important;
      }

      .hero-highlights {
        display: grid !important;
      }

      .about-company-tags,
      .about-company-tags--dark {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
      }

      .about-company-tags span,
      .about-company-tags--dark span {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
      }

      .realizations-slider .realization-card,
      .service-card,
      .review-card {
        width: 100% !important;
      }

      .section-header {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        align-items: start !important;
      }

      .footer-row {
        display: grid !important;
        justify-items: center !important;
        text-align: center !important;
      }

      .footer-socials {
        width: 100% !important;
        justify-content: center !important;
      }
    }

@media (max-width: 560px) {
      h1 {
        font-size: clamp(40px, 12vw, 58px) !important;
      }

      .hero-spacious {
        padding-top: 118px !important;
      }

      .hero-media,
      .hero-image {
        min-height: 360px !important;
      }

      .floating-card {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        width: 100% !important;
        margin-top: 14px !important;
      }

      .stats-row {
        grid-template-columns: 1fr !important;
      }
    }

/* v29 fixes: footer top button shape + swipe-friendly realizations slider */

@media (max-width: 780px) {
      .footer-actions {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 12px !important;
        width: auto !important;
      }

      .footer-socials {
        width: auto !important;
      }

      .footer-actions .footer-top-link {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        max-width: 42px !important;
        flex: 0 0 42px !important;
        border-radius: 50% !important;
      }
    }

/* v35: no-slogan SVG logo in header */

@media (max-width: 780px) {
      .site-header .logo.logo-svg {
        width: 176px !important;
        height: 60px !important;
      }

      .site-header.scrolled .logo.logo-svg {
        width: 160px !important;
        height: 54px !important;
      }
    }

/* Stabilizacja strony: bez błysku i szarpnięcia przy pierwszym ładowaniu */

/* Backup 03: wspólny header + link polityki prywatności */

/* Backup 04: footer 2 rows / 2 columns */

@media (max-width: 720px) {
      .footer-top-row {
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        text-align: center !important;
      }

      .footer-row--two-lines .footer-privacy,
      .footer-row--two-lines .footer-actions {
        justify-self: center !important;
      }
    }

/* backup-05: interactive links, quick contact, mobile menu polish */

@media (max-width: 780px) {
  .nav-links .mobile-menu-logo {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 auto 18px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .nav-links .mobile-menu-logo img {
    display: block !important;
    width: min(260px, 74vw) !important;
    height: auto !important;
    max-height: 92px !important;
    object-fit: contain !important;
  }

  .nav-links .mobile-menu-socials {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 18px auto 0 !important;
  }

  .nav-links .mobile-menu-social {
    display: inline-grid !important;
    place-items: center !important;
    width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    border: 1px solid rgba(47, 93, 44, .16) !important;
    background: rgba(255,255,255,.88) !important;
    color: var(--accent, #2f5d2c) !important;
    box-shadow: 0 14px 34px rgba(0,0,0,.07) !important;
  }

  .nav-links .mobile-menu-social::after {
    display: none !important;
    content: none !important;
  }

  .nav-links .mobile-menu-social svg {
    width: 21px !important;
    height: 21px !important;
    fill: currentColor !important;
  }
}

/* backup-06: quick contact + mobile menu visibility fix */

@media (max-width: 780px) {
  body.menu-open .nav-links .mobile-menu-logo {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 auto 18px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.menu-open .nav-links .mobile-menu-logo img {
    display: block !important;
    width: min(260px, 74vw) !important;
    height: auto !important;
    max-height: 92px !important;
    object-fit: contain !important;
  }

  body.menu-open .nav-links .mobile-menu-socials {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 18px auto 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
}

/* Final fix: mobile menu extras must be hidden on desktop */

@media (min-width: 781px) {
  .site-header .nav-links > .mobile-menu-logo,
  .site-header .nav-links > .mobile-menu-socials,
  .nav-links > .mobile-menu-logo,
  .nav-links > .mobile-menu-socials {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    box-shadow: none !important;
  }
}

@media (max-width: 780px) {
  .site-header .nav-links > .mobile-menu-logo,
  .site-header .nav-links > .mobile-menu-socials,
  .nav-links > .mobile-menu-logo,
  .nav-links > .mobile-menu-socials {
    display: none !important;
  }

  body.menu-open .site-header .nav-links > .mobile-menu-logo,
  body.menu-open .site-header .nav-links > .mobile-menu-socials,
  body.menu-open .nav-links > .mobile-menu-logo,
  body.menu-open .nav-links > .mobile-menu-socials {
    display: flex !important;
  }
}

/* Mobile menu final fixes */

@media (max-width: 780px) {
  body.menu-open .site-header > .container.nav > .logo.logo-svg {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .site-header .nav-links > .mobile-menu-logo {
    display: flex !important;
  }

  .site-header .nav-links > .mobile-menu-socials {
    display: flex !important;
  }

  .site-header .nav-links > .mobile-menu-cta {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 62px !important;
    margin-top: 4px !important;
    padding: 18px 22px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--green, #2f5d2c) !important;
    color: #fff !important;
    box-shadow: 0 18px 42px rgba(47, 93, 44, 0.22) !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
  }

  .site-header .nav-links > .mobile-menu-cta::after {
    display: none !important;
  }
}

/* Unified burger style across all pages */

@media (max-width: 780px) {
      .site-header .menu-btn {
        position: relative !important;
        z-index: 1300 !important;
        display: flex !important;
        width: 42px !important;
        height: 42px !important;
        flex-direction: column !important;
        justify-content: center !important;
        gap: 6px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
      }

      .site-header .menu-btn span {
        display: block !important;
        width: 100% !important;
        height: 2px !important;
        margin: 0 !important;
        border-radius: 999px !important;
        background: var(--text) !important;
        transition: .4s ease !important;
      }

      body.menu-open .site-header .menu-btn span:nth-child(1) {
        transform: rotate(45deg) translateY(11px) !important;
      }

      body.menu-open .site-header .menu-btn span:nth-child(2) {
        opacity: 0 !important;
      }

      body.menu-open .site-header .menu-btn span:nth-child(3) {
        transform: rotate(-45deg) translateY(-11px) !important;
      }
    }
