/* v0.3.36 — fix frontend multi-page row stretch: pages no longer stretch to the tallest sibling, and grid rows stay packed at the top. */
/* v0.3.18 — all visual rules are scoped to the native Divi 5 module wrapper to prevent collisions with legacy v2.x carousel CSS. */
/* Regenerativ Projektkarrusel D5 — clean baseline */
.rpk_d5_project_carousel_module .et_pb_module_inner{overflow:visible}
.rpk_d5_project_carousel_module .rpk-carousel{--rpk-gap:var(--rpk-gap-desktop,40px);--rpk-image-height:var(--rpk-image-height-desktop,260px);--rpk-edge-gutter:max(16px,5vw);width:100%;position:relative;overflow:visible}
.rpk_d5_project_carousel_module .rpk-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}
:where(.rpk_d5_project_carousel_module) .rpk-heading{margin:0;padding:0;font-family:Bitter,Georgia,serif;color:#10602f}
.rpk_d5_project_carousel_module .rpk-nav{display:flex;gap:8px;flex:0 0 auto}.rpk_d5_project_carousel_module .rpk-nav[hidden]{display:none!important}
.rpk_d5_project_carousel_module .rpk-arrow{appearance:none!important;-webkit-appearance:none!important;border:0!important;border-radius:0!important;width:48px;height:48px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;background-color:#10602f!important;color:#fff!important;cursor:pointer;opacity:1!important;box-shadow:none!important;line-height:1!important}
.rpk_d5_project_carousel_module .rpk-arrow-icon{display:block;width:15px;height:15px;border:solid currentColor!important;border-width:0 2px 2px 0!important;box-sizing:border-box;pointer-events:none;flex:0 0 auto}
.rpk_d5_project_carousel_module .rpk-next .rpk-arrow-icon{transform:rotate(-45deg);margin:0!important}
.rpk_d5_project_carousel_module .rpk-prev .rpk-arrow-icon{transform:rotate(135deg);margin:0!important}
.rpk_d5_project_carousel_module .rpk-arrow:disabled,
.rpk_d5_project_carousel_module .rpk-arrow.is-disabled,
.rpk_d5_project_carousel_module .rpk-arrow[aria-disabled="true"]{background-color:#dbe8df!important;color:#7fa38a!important;cursor:default!important;opacity:1!important}
.rpk_d5_project_carousel_module .rpk-arrow:not(:disabled):not(.is-disabled):hover .rpk-arrow-icon{color:#f7bf35!important}
.rpk_d5_project_carousel_module .rpk-viewport{overflow:hidden;width:100%;touch-action:pan-y}.rpk_d5_project_carousel_module .rpk-track{display:flex;align-items:flex-start;transition:transform .4s cubic-bezier(.22,.61,.36,1);will-change:transform}.rpk_d5_project_carousel_module .rpk-page{display:grid;grid-template-columns:repeat(var(--rpk-cols),minmax(0,1fr));grid-template-rows:repeat(var(--rpk-rows),auto);gap:var(--rpk-gap);flex:0 0 100%;min-width:100%;align-items:stretch;align-content:start}.rpk_d5_project_carousel_module .rpk-card{min-width:0;margin:0}.rpk_d5_project_carousel_module .rpk-card-link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}.rpk_d5_project_carousel_module .rpk-card-link:hover{text-decoration:none}.rpk_d5_project_carousel_module .rpk-image-wrap{height:var(--rpk-image-height,260px);min-height:var(--rpk-image-height,260px);max-height:var(--rpk-image-height,260px);position:relative;overflow:hidden;background:#fff;flex:0 0 var(--rpk-image-height,260px)}.rpk_d5_project_carousel_module .rpk-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;opacity:1;transition:opacity .25s ease}.rpk_d5_project_carousel_module .rpk-card-link:hover .rpk-image:not(.rpk-placeholder){opacity:.82}.rpk_d5_project_carousel_module .rpk-pos-center{object-position:center}.rpk_d5_project_carousel_module .rpk-pos-top{object-position:center top}.rpk_d5_project_carousel_module .rpk-pos-bottom{object-position:center bottom}.rpk_d5_project_carousel_module .rpk-placeholder{background:#f2f2ee}
.rpk_d5_project_carousel_module .rpk-card-body{padding-top:16px;display:flex;flex-direction:column;flex:1}:where(.rpk_d5_project_carousel_module) .rpk-card-category{font-size:12px;line-height:1.3;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin:0 0 8px;color:#f7bf35}:where(.rpk_d5_project_carousel_module) .rpk-card-title{margin:0 0 4px;padding:0;font-family:Bitter,Georgia,serif;color:#10602f;font-size:22px;line-height:1.2}:where(.rpk_d5_project_carousel_module) .rpk-card-subtitle{margin:0;color:#929389;font-size:14px;line-height:1.45}.rpk_d5_project_carousel_module .rpk-equal-cards .rpk-card,
.rpk_d5_project_carousel_module .rpk-equal-cards .rpk-card-link{height:100%}.rpk_d5_project_carousel_module .rpk-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.rpk_d5_project_carousel_module .rpk-empty{padding:20px 0}.rpk_d5_project_carousel_module .rpk-dragging .rpk-track{transition:none}.rpk_d5_project_carousel_module .rpk-dragging .rpk-card-link{pointer-events:none}
@media (max-width:980px){.rpk_d5_project_carousel_module .rpk-carousel{--rpk-gap:var(--rpk-gap-tablet,28px);--rpk-image-height:var(--rpk-image-height-tablet,var(--rpk-image-height-desktop,260px))}}
@media (max-width:767px){.rpk_d5_project_carousel_module .rpk-carousel{--rpk-gap:var(--rpk-gap-mobile,26px);--rpk-image-height:var(--rpk-image-height-mobile,var(--rpk-image-height-tablet,var(--rpk-image-height-desktop,260px)))}.rpk_d5_project_carousel_module .rpk-arrow{width:42px;height:42px}}
@media (prefers-reduced-motion:reduce){.rpk_d5_project_carousel_module .rpk-track,
.rpk_d5_project_carousel_module .rpk-image{transition:none!important}}
.rpk_d5_project_carousel_module .rpk-d5-debug-error{padding:18px;border:1px solid #d7ddd8;background:#fff;color:#333;line-height:1.45}
.rpk_d5_project_carousel_module .rpk-d5-debug-error strong{display:block;color:#10602f;margin-bottom:4px}


/* v0.2.5 — force the carousel/grid to consume the full module width in Divi VB */
.rpk_d5_project_carousel_module,
.rpk_d5_project_carousel_module > .et_pb_module_inner,
.rpk_d5_project_carousel_module .et_pb_module_inner,
.rpk_d5_project_carousel_module .rpk-carousel,
.rpk_d5_project_carousel_module .rpk-viewport,
.rpk_d5_project_carousel_module .rpk-track,
.rpk_d5_project_carousel_module .rpk-page{
  box-sizing:border-box;
  width:100%!important;
  max-width:none!important;
}
.rpk_d5_project_carousel_module .rpk-track{display:flex!important;min-width:100%!important;}
.rpk_d5_project_carousel_module .rpk-page{display:grid!important;flex:0 0 100%!important;min-width:100%!important;}
.rpk_d5_project_carousel_module .rpk-page>.rpk-card,
.rpk_d5_project_carousel_module .rpk-page .rpk-card,
.rpk_d5_project_carousel_module .rpk-page .rpk-card-link{width:100%!important;max-width:none!important;min-width:0!important;}

/* v0.2.6 — child modules are data-only; parent owns every visual card */
.rpk_d5_project_carousel_module .rpk-page>.rpk-card{min-width:0;width:100%;max-width:none;margin:0}

/* v0.3.2 — keep preview navigation interactive inside the Divi 5 Visual Builder */
.rpk_d5_project_carousel_module .rpk-vb-nav{position:relative!important;z-index:2147483000!important;pointer-events:auto!important}
.rpk_d5_project_carousel_module .rpk-vb-nav .rpk-arrow,
.rpk_d5_project_carousel_module .rpk-vb-nav .rpk-arrow-icon{pointer-events:auto!important}


/* v0.3.14 — coherent native peek/full-bleed implementation for tablet + phone.
   At <=980px the browser owns horizontal touch scrolling and scroll-snap.
   The scrollport reaches both physical screen edges, while real leading/trailing
   spacers preserve the normal Divi content inset only at the first/last page. */
@media (max-width:980px){
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-viewport{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    touch-action:auto!important;
    scroll-snap-type:x mandatory!important;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    width:100vw!important;
    max-width:none!important;
    margin-left:calc(0px - var(--rpk-edge-gutter))!important;
    margin-right:calc(var(--rpk-edge-gutter) + 100% - 100vw)!important;
    box-sizing:border-box!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-viewport::-webkit-scrollbar{display:none}
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-track{
    transform:none!important;
    transition:none!important;
    width:100%!important;
    min-width:100%!important;
    justify-content:flex-start!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-page{
    scroll-snap-stop:always;
    scroll-snap-align:center!important;
    scroll-margin-inline:0;
  }
  .rpk_d5_project_carousel_module,
.rpk_d5_project_carousel_module > .et_pb_module_inner,
.rpk_d5_project_carousel_module .et_pb_module_inner,
.rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"]{overflow:visible!important}

  /* Real edge space rather than margins on flex pages. The negative margin
     cancels the inter-page flex gap, leaving exactly --rpk-edge-gutter. */
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-track::before,
.rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-track::after{
    content:"";
    display:block;
    flex:0 0 var(--rpk-edge-gutter);
    width:var(--rpk-edge-gutter);
    min-width:var(--rpk-edge-gutter);
    height:1px;
    pointer-events:none;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-track::before{margin-inline-end:calc(0px - var(--rpk-peek-page-gap))}
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-track::after{margin-inline-start:calc(0px - var(--rpk-peek-page-gap))}

  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-page:first-child{
    scroll-snap-align:start!important;
    scroll-margin-inline-start:var(--rpk-edge-gutter)!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-page:last-child{
    scroll-snap-align:end!important;
    scroll-margin-inline-end:var(--rpk-edge-gutter)!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-page:first-child:last-child{
    scroll-snap-align:start!important;
    scroll-margin-inline-start:var(--rpk-edge-gutter)!important;
    scroll-margin-inline-end:0!important;
  }
}

/* Tablet: the complete active page remains 80% wide. On middle positions,
   previous and next pages can now reach the physical left/right screen edges.
   Navigation stays aligned in the normal header/content column. */
@media (min-width:768px) and (max-width:980px){
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"]{--rpk-peek-page-gap:16px}
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-track{gap:var(--rpk-peek-page-gap)!important}
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-page{
    flex:0 0 80%!important;
    width:80%!important;
    min-width:80%!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-nav:not([hidden]){display:flex!important}
}

/* Phone: same full-bleed edge model, slightly narrower active page and no arrows. */
@media (max-width:767px){
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"]{--rpk-peek-page-gap:12px}
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-nav{display:none!important}
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-track{gap:var(--rpk-peek-page-gap)!important}
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"] .rpk-page{
    flex:0 0 78%!important;
    width:78%!important;
    min-width:78%!important;
  }
}


/* v0.3.16 — restore the original CSS chevron while preserving v0.3.15 breakpoint/state fixes.
   Active: dark green + white chevron. Passive: pale green + muted green chevron. */
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow{background-color:#10602f!important;color:#fff!important;opacity:1!important}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:disabled,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow.is-disabled,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow[aria-disabled="true"]{background-color:#dbe8df!important;color:#7fa38a!important;opacity:1!important}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:not(:disabled):not(.is-disabled):hover .rpk-arrow-icon{color:#f7bf35!important}

/* v0.3.17 — Divi 5-safe arrow states.
   Lock both the button background and the chevron border itself so Divi's
   button/hover rules cannot recolour a passive navigation arrow. */
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow{
  background:#10602f!important;
  background-color:#10602f!important;
  color:#fff!important;
  opacity:1!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow .rpk-arrow-icon{
  color:#fff!important;
  border-color:#fff!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:not(:disabled):not(.is-disabled):not([aria-disabled="true"]):hover{
  background:#10602f!important;
  background-color:#10602f!important;
  color:#fff!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:not(:disabled):not(.is-disabled):not([aria-disabled="true"]):hover .rpk-arrow-icon{
  color:#f7bf35!important;
  border-color:#fff!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:disabled,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow.is-disabled,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow[aria-disabled="true"],
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:disabled:hover,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow.is-disabled:hover,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow[aria-disabled="true"]:hover{
  background:#dbe8df!important;
  background-color:#dbe8df!important;
  color:#7fa38a!important;
  opacity:1!important;
  cursor:default!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:disabled .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow.is-disabled .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow[aria-disabled="true"] .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:disabled:hover .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow.is-disabled:hover .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow[aria-disabled="true"]:hover .rpk-arrow-icon{
  color:#7fa38a!important;
  border-color:#7fa38a!important;
}

/* v0.3.19 — compact, reference-style chevrons with true geometric centering. */
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow{display:inline-flex!important;align-items:center!important;justify-content:center!important}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow .rpk-arrow-icon{width:15px!important;height:15px!important;border-width:0 2px 2px 0!important;margin:0!important;transform-origin:50% 50%!important;flex:0 0 auto!important}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-next .rpk-arrow-icon{transform:rotate(-45deg)!important}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-prev .rpk-arrow-icon{transform:rotate(135deg)!important}

/* v0.3.22 — compact chevron geometry restored from the earlier reference.
   9x9px, 2px stroke, true flex centering; only direction differs. */
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow .rpk-arrow-icon{
  display:block!important;
  position:static!important;
  width:9px!important;
  height:9px!important;
  border:solid currentColor!important;
  border-width:0 2px 2px 0!important;
  box-sizing:border-box!important;
  margin:0!important;
  flex:0 0 9px!important;
  transform-origin:50% 50%!important;
  pointer-events:none!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow .rpk-arrow-icon::before,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow .rpk-arrow-icon::after{
  content:none!important;
  display:none!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-next .rpk-arrow-icon{transform:rotate(-45deg)!important}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-prev .rpk-arrow-icon{transform:rotate(135deg)!important}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:not(:disabled):not(.is-disabled):not([aria-disabled="true"]):hover{
  background:#073E24!important;
  background-color:#073E24!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:not(:disabled):not(.is-disabled):not([aria-disabled="true"]):hover .rpk-arrow-icon{
  color:#f7bf35!important;
  border-color:#f7bf35!important;
}
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:disabled .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow.is-disabled .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow[aria-disabled="true"] .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow:disabled:hover .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow.is-disabled:hover .rpk-arrow-icon,
.rpk_d5_project_carousel_module .rpk-nav button.rpk-arrow[aria-disabled="true"]:hover .rpk-arrow-icon{
  color:#7fa38a!important;
  border-color:#7fa38a!important;
}


/* v0.3.24 — Divi 5 design controls own typography.
   Defaults deliberately use :where() so generated module-specific font styles
   from Divi 5 have higher specificity and can update live/responsively. */


/* v0.3.27 — no reserved peek space when every card fits on one page.
   JS adds .rpk-no-overflow from the active responsive cols × rows capacity. */
@media (max-width:980px){
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-viewport{
    overflow:hidden!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    scroll-snap-type:none!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-track{
    width:100%!important;
    min-width:100%!important;
    gap:0!important;
    transform:none!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-track::before,
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-track::after{
    content:none!important;
    display:none!important;
  }
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-page,
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-page:first-child,
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-page:last-child,
  .rpk_d5_project_carousel_module .rpk-carousel[data-peek-mobile="1"].rpk-no-overflow .rpk-page:first-child:last-child{
    flex:0 0 100%!important;
    width:100%!important;
    min-width:100%!important;
    max-width:100%!important;
    scroll-snap-align:none!important;
    scroll-margin-inline:0!important;
  }
}
