/* Compact mobile navigation and consistent page gutters. */
.bart-mobile-toggle { display: none; }
@media (max-width: 991px) {
  html { scroll-padding-top: 84px; }
  .navbar-wrapper, .navbar-wrapper.is-referenz {
    position: fixed; top: 8px; left: 12px; right: 12px; bottom: auto;
    width: auto; height: 56px; min-height: 0; margin: 0; z-index: 1000;
  }
  .navbar_component.is-mobile {
    width: 100%; height: 56px; min-height: 0; padding: 0; margin: 0;
    border-radius: 10px; background: #fffaf5; overflow: visible;
    box-shadow: 0 2px 12px #0002;
  }
  .navbar_container.is-mobile {
    height: 56px; padding: 0 10px 0 12px; gap: 16px;
    display: flex; justify-content: space-between; position: relative;
  }
  .navbar-wrapper .navigation-items.is-mobile,
  .navbar-wrapper .navigation-items.is-mobile.w--current {
    display: flex; align-items: center; justify-content: flex-start;
    position: static; width: 160px; height: 40px; padding: 0; margin: 0; flex: 0 1 160px;
  }
  .navbar-wrapper .navigation-items .image-2 { display: block; position: static; inset: auto; margin: 0; width: 160px; max-width: 100%; height: auto; }
  .navbar-wrapper .navigation-items .w-embed { display: none; }
  .navbar_button-wrapper { position: static; height: 44px; width: 44px; margin: 0; flex: 0 0 44px; }
  .bart-mobile-toggle {
    display: flex; align-items: center; justify-content: center; width: 44px; height: 44px;
    border: 0; padding: 10px; border-radius: 8px; color: #17291f; background: transparent; cursor: pointer;
  }
  .bart-mobile-toggle svg { width: 24px; height: 24px; }
  .bart-mobile-toggle .bart-close-icon { display: none; }
  .bart-mobile-toggle[aria-expanded="true"] .bart-menu-icon { display: none; }
  .bart-mobile-toggle[aria-expanded="true"] .bart-close-icon { display: block; }
  .bart-mobile-toggle:focus-visible { outline: 2px solid #287347; outline-offset: 1px; }
  .navbar_menu.is-page-height-tablet {
    display: none; position: absolute; top: 64px; left: 0; right: 0; bottom: auto;
    width: auto; height: auto; min-height: 0; max-height: calc(100dvh - 88px);
    margin: 0; padding: 10px; border: 1px solid #dde3db; border-radius: 10px;
    background: #fffaf5; box-shadow: 0 10px 24px #0003; transform: none; overflow-y: auto;
  }
  .navbar_menu.bart-menu-open { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .navbar_menu .navbar_link { width: 100%; margin: 0; min-height: 44px; padding: 11px 14px; font-size: 18px; line-height: 24px; text-align: left; border-color: transparent; }
  .navbar_menu .bart-nav-contact { margin-top: 4px; }
  .padding-global, .padding-global-2, .padding-global-3, .bart-contact { padding-left: 12px; padding-right: 12px; }
  #leistungen, #ueber-uns, #referenzen, #kontakt { scroll-margin-top: 84px; }
  .bart-service-gallery { touch-action: pan-y pinch-zoom; }
  .home_testimonial_component { touch-action: pan-y pinch-zoom; }
  .home_testimonial_content .heading-style-h6 { font-size: 16px; line-height: 1.5; font-weight: 500; }
  .bart-portfolio-dialog { width: calc(100vw - 24px); padding: 12px; }
  .bart-service-gallery img { user-select: none; -webkit-user-drag: none; }
  .section_home_hero-header { position: relative; height: auto; transform: none !important; opacity: 1 !important; }
  .home_hero-header_component.is-tablet { height: auto; min-height: 0; grid-template-columns: minmax(0,1fr); padding-top: 96px; padding-bottom: 24px; gap: 32px; }
  .home_hero-header_content-left { width: 100%; min-width: 0; height: auto; max-width: 640px; margin: 0 auto; padding: 0 12px; }
  .home_hero-header_content-right { min-width: 0; height: 380px; padding: 0 12px; }
  .section_home_header { margin-top: 0; }
  .home-anchor { height: 0; margin: 0; }
  .footer_legal-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 20px; }
  .home_hero-header_content-left .bart-hero-actions { display: flex; flex-wrap: nowrap; width: 100%; gap: 8px; justify-content: center; }
  .home_hero-header_content-left .bart-hero-actions .button { width: 144px; min-width: 0; flex: 0 1 144px; padding: 12px 6px; font-size: 15px; }
  .bart-about, .bart-service-group, .bart-service-row, .bart-about-layout { min-width: 0; }
  .bart-reference-mosaic { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: none; grid-auto-rows: minmax(440px,auto); }
  .bart-reference-mosaic .bart-reference-tile[id] { grid-area: auto !important; min-width: 0; }
}
@media (max-width: 600px) {
  .bart-reference-mosaic { grid-template-columns: minmax(0,1fr); }
  .bart-portfolio-dialog[open] { grid-template-rows: 80px minmax(0,1fr) 64px 72px; }
}
@media (max-width: 479px) {
  .home_hero-header_content-left .heading, .home_hero-header_content-left .text { font-size: clamp(28px, 8.4vw, 36px); line-height: 1.18; }
  .home_hero-header_content-left .div-block { min-height: 44px; }
  .home_hero-header_content-left .text-size-medium { line-height: 1.5; }
  .home_hero-header_content-left > .margin-top { margin-top: 24px; }
  .home_hero-header_content-right { height: 300px; }
  .bart-service-item { padding-left: 16px; }
  .bart-service-item h4 { font-size: 23px; overflow-wrap: break-word; hyphens: auto; }
  .bart-service-item p, .bart-about-copy > p:not(.bart-about-label) { font-size: 17px; line-height: 1.55; }
  .bart-about-copy h2 { font-size: 30px; }
  .bart-reference-mosaic .home_portfolio-hover { padding: 20px; }
  .bart-contact-details h4 { overflow-wrap: break-word; hyphens: auto; }
  .footer_link-list { column-gap: 20px; }
}

.bart-hero-gallery { display: none; }
@media (max-width: 991px) {
  .home_hero-header_content-right .hero-header_images-layout { display: none; }
  .bart-hero-gallery { display: block; height: 100%; position: relative; border-radius: 8px; overflow: hidden; }
  .bart-hero-track { display: flex; height: 100%; gap: 12px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y pinch-zoom; }
  .bart-hero-track::-webkit-scrollbar { display: none; }
  .bart-hero-slide { flex: 0 0 calc((100% - 12px) / 2); height: 100%; min-width: 0; scroll-snap-align: start; border-radius: 8px; overflow: hidden; }
  .bart-hero-slide img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
  .bart-hero-gallery .bart-hero-gallery-arrow { position: absolute; top: auto; bottom: 12px; right: 12px; left: auto; padding: 0; margin: 0; z-index: 2; }
  .bart-hero-gallery .left-arrow-2 { right: 76px; }
  .bart-service-gallery, .home_testimonial_component, [data-portfolio-stage] { touch-action: pan-y pinch-zoom; }
}

/* On narrow screens, service cards flow normally and remain fully readable. */
@media (max-width: 991px) {
  .section_home_offers .home_offers_component {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .section_home_offers .home_offers_content-left {
    position: static;
    top: auto;
    bottom: auto;
    min-width: 0;
    padding-bottom: 0;
  }
  .section_home_offers .home_offers_content-right {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    min-width: 0;
    margin: 0;
  }
  .section_home_offers .offers_content-item {
    position: relative;
    inset: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    margin: 0;
    padding: 24px;
    overflow: visible;
  }
  .section_home_offers .offers_content-item .paragraph {
    margin-bottom: 0;
    font-size: 16px;
    line-height: 1.5;
    overflow-wrap: break-word;
    hyphens: auto;
  }
}
@media (max-width: 479px) {
  .section_home_offers .offers_content-item { padding: 20px; }
  .section_home_offers .offers_content-item .heading-3 { font-size: 24px; line-height: 1.2; }
}

/* Mobile footer: one readable navigation column and natural page height. */
@media (max-width: 991px) {
  .footer_component { position: relative; inset: auto; height: auto; margin: 0; }
  .section_footer-spacer { display: none; }
  .footer_component .padding-global.is-footer { height: auto; }
  .footer_component .padding-vertical.padding-xxlarge.is-footer { padding-top: 40px; padding-bottom: 80px; }
  .footer_component .padding-bottom.padding-xxlarge { padding-bottom: 24px; }
  .footer_component .footer_top-wrapper { align-items: center; }
  .footer_component .footer_logo-link { width: min(240px,100%); height: auto; margin: 0 0 24px; }
  .footer_component .footer_logo-link .logo-image { position: static; width: 100%; height: auto; }
  .footer_component .footer_logo-link svg { display: block; width: 100%; height: auto; }
  .footer_component .footer_link-list {
    display: flex; flex-direction: column; align-items: stretch;
    width: 100%; max-width: 320px; gap: 4px; margin: 0;
  }
  .footer_component .footer_link {
    display: flex; align-items: center; justify-content: center;
    width: 100%; min-height: 44px; padding: 10px 12px;
    font-size: 18px; line-height: 24px; font-weight: 500;
  }
  .footer_component .footer_link:focus-visible { outline: 2px solid #5cc66f; outline-offset: -2px; }
  .footer_component .footer_bottom-wrapper { gap: 12px; padding: 0; }
  .footer_component .footer_credit-text { width: 100%; margin: 0; font-size: 14px; line-height: 1.5; text-align: center; }
  .footer_component .footer_legal-list { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 20px; }
  .footer_component .footer_legal-link:not(.is-hidden) { display: inline-flex; align-items: center; min-height: 44px; }
}
