/* Card Layout */
.ibs-card{background:var(--ibs-card-bg,#ffffff);border-radius:16px;box-shadow:0 6px 18px rgba(2,6,23,.12);overflow:hidden;max-width:520px}
.ibs-media{position:relative;width:100%;height:var(--ibs-slider-h,260px)}
.ibs-slider{position:relative;overflow:hidden;height:100%;background:var(--ibs-slider-bg,transparent)}
.ibs-slide{display:none;height:100%}
.ibs-slide.is-active{display:block}
.ibs-slide img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.ibs-slider:hover .ibs-slide.is-active img{transform:scale(1.05)} /* Hover Zoom */

/* Badges */
.ibs-badges{position:absolute;left:10px;top:10px;display:flex;gap:8px;flex-wrap:wrap;z-index:3}
.ibs-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:var(--ibs-badge-bg,rgba(0,0,0,.5));font-size:var(--ibs-badge-font,14px);font-weight:700;color:var(--ibs-badge-text,rgba(17,17,17,1))}
.ibs-badge-icon{width:16px;height:16px;object-fit:contain;display:block}

/* Arrows */
.ibs-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.35);border:none;color:#fff;font-size:18px;width:32px;height:32px;border-radius:16px;cursor:pointer;z-index:2}
.ibs-prev{left:10px}
.ibs-next{right:10px}

/* No bullets */

/* Body */
.ibs-body{padding:18px 20px 20px}
.ibs-catline{display:flex;align-items:center;gap:8px;color:var(--ibs-text-color,rgba(55,65,81,1));font-size:14px}
.ibs-icon{width:18px;height:18px}
.ibs-title{margin:8px 0 4px 0;font-size:var(--ibs-title-size,24px);line-height:1.25;color:var(--ibs-title-color,rgba(31,41,55,1));font-weight:700}

/* Locations under title */
.ibs-locations{margin:0 0 10px 0}
.ibs-link{font-size:var(--ibs-text-size,15px);color:#0ea5a6;text-decoration:none;font-weight:700}
.ibs-link:hover{text-decoration:underline}

/* Checklist */
.ibs-list{list-style:none;margin:0 0 10px 0;padding:0;border-top:1px solid #e5e7eb}
.ibs-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #e5e7eb;color:var(--ibs-text-color,rgba(55,65,81,1));line-height:var(--ibs-list-lh,1.5)}
.ibs-list li::before{content:"✓";font-weight:700;color:var(--ibs-aux-color,#3b5b9a)}

/* Footer */
.ibs-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.ibs-button{display:inline-block;padding:var(--ibs-btn-pad-y,12px) var(--ibs-btn-pad-x,18px);border-radius:12px;border:1px solid var(--ibs-btn-border,rgba(203,213,225,1));background:var(--ibs-btn-bg,rgba(255,255,255,1));color:var(--ibs-btn-color,rgba(17,17,17,1));text-decoration:none;font-weight:700;font-size:var(--ibs-btn-size,16px)}
.ibs-button:hover{background:var(--ibs-btn-hover-bg,inherit);color:var(--ibs-btn-hover-color,inherit)}

.ibs-price{display:flex;align-items:baseline;gap:6px}
.ibs-price-prefix{font-size:16px;color:var(--ibs-aux-color,#334155)}
.ibs-price-value{font-size:var(--ibs-price-size,24px);font-weight:800;color:var(--ibs-price-color,rgba(14,165,166,1))}
.ibs-price-suffix{font-size:16px;color:var(--ibs-aux-color,#334155)}

/* Diagonal bottom edge */
.ibs-media.ibs-diagonal .ibs-slider{clip-path: polygon(0 0,100% 0,100% calc(100% - var(--ibs-diag-h,20px)),0 100%);}
.ibs-sep{margin:0 6px;color:var(--ibs-aux-color,#334155);font-weight:700}

.ibs-icon-svg svg{width:18px;height:18px;display:block}
.ibs-badge-svg svg{width:16px;height:16px;display:block}


/* Hotfix 1.6.6.2: keep aux color, no underline */
.ibs-card .ibs-locations a.ibs-link,
.ibs-card .ibs-locations a.ibs-link:visited,
.ibs-card .ibs-locations a.ibs-link:hover,
.ibs-card .ibs-locations a.ibs-link:focus,
.ibs-card .ibs-locations a.ibs-link:active{
  color: var(--ibs-aux-color,#ffffff) !important;
  text-decoration: none !important;
}

/* Bullets integrated v1.8.2 (Flatsome-like) */
.ibs-slider{position:relative}
.ibs-bullets{position:absolute;left:50%;bottom:var(--ibs-bullet-offset,22px);transform:translateX(-50%);display:flex;gap:8px;z-index:4;pointer-events:auto}
.ibs-bullet{
  width:var(--ibs-bullet-size,10px);height:var(--ibs-bullet-size,10px);border-radius:50%;
  background:transparent;border:2px solid rgba(255,255,255, calc(var(--ibs-bullet-opacity,0.9)*0.75));
  box-shadow: 0 0 0 1px rgba(0,0,0,.08) inset;
  opacity:.9;transform:scale(1);
  transition:transform .2s ease, background-color .2s ease, border-color .2s ease;
}
.ibs-bullet.is-active{
  background: rgba(255,255,255, var(--ibs-bullet-opacity,0.9));
  border-color: rgba(255,255,255, var(--ibs-bullet-opacity,0.9));
  transform: scale(1.1);
}
/* Helle Karten -> dunklere Bullets */
.ibs-card[style*="--ibs-card-bg: rgba(255"] .ibs-bullet{
  border-color: rgba(0,0,0, calc(var(--ibs-bullet-opacity,0.9)*0.55));
  box-shadow: 0 0 0 1px rgba(0,0,0,.05) inset;
}
.ibs-card[style*="--ibs-card-bg: rgba(255"] .ibs-bullet.is-active{
  background: rgba(0,0,0, var(--ibs-bullet-opacity,0.9));
  border-color: rgba(0,0,0, var(--ibs-bullet-opacity,0.9));
}

/* v1.8.7: perfect centering for slider arrows */
.ibs-slider .ibs-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
}
.ibs-slider .ibs-arrow::before{
  position: static;
  margin:0;
  transform:none;
  line-height:1;
}

/* v1.8.8: SVG mask based arrows for perfect centering */
.ibs-nav{display:flex;align-items:center;justify-content:center}
.ibs-prev::before,
.ibs-next::before{
  content:"";
  display:block;
  width:40%;
  height:40%;
  background: var(--ibs-arrow-color, #ffffff);
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23000' d='M9.29 6.71a1 1 0 011.42 0L16 12l-5.29 5.29a1 1 0 11-1.42-1.42L13.17 12 9.29 8.12a1 1 0 010-1.41z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23000' d='M9.29 6.71a1 1 0 011.42 0L16 12l-5.29 5.29a1 1 0 11-1.42-1.42L13.17 12 9.29 8.12a1 1 0 010-1.41z'/></svg>");
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
  -webkit-mask-size:contain; mask-size:contain;
}
.ibs-prev::before{ transform: rotate(180deg); }

/* v1.8.8.2: Checklist wirklich linksbündig */
.ibs-card .ibs-list{margin:0;padding:0;list-style:none}
.ibs-card .ibs-list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:8px 0;
  border-bottom:1px solid #e5e7eb;
  line-height:var(--ibs-list-lh,1.5);
}
.ibs-card .ibs-list li::before{
  content:"✓";
  display:inline-block;
  width:16px;
  flex:0 0 16px;
  text-align:center;
  margin-top:2px;
  font-weight:700;
  color:var(--ibs-aux-color,#3b5b9a);
}

/* v1.8.8.4: Text der Checkliste exakt linksbuendig, Haken im linken Gutter */
.ibs-card .ibs-list{margin:0;padding:0;list-style:none}
.ibs-card .ibs-list li{
  position:relative;
  padding:8px 0;             /* kein linker Einzug */
  border-bottom:1px solid #e5e7eb;
  line-height:var(--ibs-list-lh,1.5);
}
.ibs-card .ibs-list li::before{
  content:"✓";
  position:absolute;
  left:-20px;                /* Haken in den linken Gutter schieben */
  top:50%;
  transform:translateY(-50%);
  width:16px;height:16px;line-height:16px;
  text-align:center;font-weight:700;
  color:var(--ibs-aux-color,#3b5b9a);
}
@media (max-width: 480px){
  .ibs-card .ibs-list li::before{ left:-18px; }
}

/* v1.8.8.5: gleicher Randabstand der Pfeile */
.ibs-slider{position:relative}
.ibs-slider .ibs-nav{position:absolute; top:0; left:0; right:0; bottom:0; pointer-events:none}
.ibs-slider .ibs-prev,
.ibs-slider .ibs-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  pointer-events:auto;
  margin:0;
}
.ibs-slider .ibs-prev{ left:12px; }
.ibs-slider .ibs-next{ right:12px; }

/* v1.8.8.6: Pfeile sauber links/rechts mit gleichem Abstand */
.ibs-slider{position:relative}
.ibs-slider .ibs-prev,
.ibs-slider .ibs-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  pointer-events:auto;
}
.ibs-slider .ibs-prev{ left:12px; }
.ibs-slider .ibs-next{ right:12px; }

/* v1.8.8.7: Pfeile normal links/rechts mit gleichem Abstand, erzwungen */
.ibs-slider{position:relative}
.ibs-slider .ibs-prev,
.ibs-slider .ibs-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  pointer-events:auto;
}
.ibs-slider .ibs-prev{
  left:12px !important;
  right:auto !important;
}
.ibs-slider .ibs-next{
  right:12px !important;
  left:auto !important;
}

/* v1.8.8.9 override: list font size from admin */
.ibs-card .ibs-list li{
  font-size: var(--ibs-list-size, var(--ibs-text-size, 15px)) !important;
}

/* v1.8.9.0 list size */
.ibs-card .ibs-list li{
  font-size: var(--ibs-list-size, var(--ibs-text-size, 15px)) !important;
}
/* Badge smooth ausblenden bei Videos */
.ibs-badges {
    transition: opacity 0.3s ease;
}

/* Badge sofort ausblenden wenn Video-Slide aktiv ist */
.ibs-slide.is-active:has(video) ~ .ibs-badges,
.ibs-media:has(.ibs-slide.is-active video) .ibs-badges {
    opacity: 0 !important;
    pointer-events: none !important;
}
/* === SMOOTH FADE TRANSITION FÜR SLIDER - MICHA 2025 === */
.ibs-card .ibs-slide{
    position:absolute !important;
    top:0;
    left:0;
    width:100%;
    height:100%;
    opacity:0 !important;
    transition:opacity 0.6s ease-in-out !important;
    pointer-events:none;
    display:block !important;
}
.ibs-card .ibs-slide.is-active{
    opacity:1 !important;
    pointer-events:auto;
    position:relative !important;
}
/* === ENDE SMOOTH FADE === */

/* === PAGINATION STYLING - MICHA 2025 === */
nav.ibs-grid-pagination ul li a,
nav.ibs-grid-pagination ul li span {
    background: #f3f4f6 !important;
    color: #111827 !important;
    font-weight: 600 !important;
    border: 1px solid #d1d5db !important;
}
nav.ibs-grid-pagination ul li a:hover {
    background: #e5e7eb !important;
    color: #000000 !important;
}
nav.ibs-grid-pagination ul li span.current {
    background: #0ea5a6 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    border-color: #0ea5a6 !important;
}
nav.ibs-grid-pagination ul li .prev,
nav.ibs-grid-pagination ul li .next {
    background: #0ea5a6 !important;
    color: #ffffff !important;
}
/* === ENDE PAGINATION === */

/* ========================================
   LIGHTBOX MIT BUTTON - MICHA 2025
   ======================================== */

.ibs-lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 999999;
    display: none;
}

.ibs-lightbox.is-open {
    display: block;
}

.ibs-lightbox-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.92);
    cursor: pointer;
}

.ibs-lightbox-content {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ibs-lightbox-img {
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
    position: relative;
    z-index: 2;
    box-shadow: 0 10px 50px rgba(0, 0, 0, 0.5);
}

/* Close Button */
.ibs-lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
    background: rgba(255, 255, 255, 0.95);
    border: none;
    border-radius: 50%;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
    z-index: 3;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1f2937;
}

.ibs-lightbox-close:hover {
    background: #fff;
    transform: rotate(90deg);
}

/* === LIGHTBOX NAVIGATION - CLEAN & SYMMETRISCH === */
.ibs-lightbox-prev,
.ibs-lightbox-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px !important;
    height: 50px !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border: none;
    border-radius: 50%;
    font-size: 32px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    z-index: 3;
    transition: all 0.3s ease;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #1f2937;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.ibs-lightbox-prev {
    left: 20px !important;
}

.ibs-lightbox-next {
    right: 20px !important;
}

.ibs-lightbox-prev:hover,
.ibs-lightbox-next:hover {
    background: #fff !important;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Shop Button - Rechts Unten AUF dem Bild */
.ibs-lightbox-button {
    position: absolute;
	bottom: 80px;
	right: 80px;
    padding: 16px 32px;
    background: rgba(44, 90, 160, 0.95);
    color: #ffffff;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 50px;
    z-index: 999999;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    pointer-events: auto;
	position: absolute !important;
}

.ibs-lightbox-button:hover {
    opacity: 1;
    transform: translateY(-2px);
    box-shadow: 0 6px 30px rgba(0, 0, 0, 0.4);
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .ibs-lightbox-img {
        max-width: 95%;
        max-height: 80vh;
    }
    
    .ibs-lightbox-close {
        top: 10px;
        right: 10px;
        width: 40px;
        height: 40px;
        font-size: 28px;
    }
    
	.ibs-lightbox-prev,
	.ibs-lightbox-next {
    width: 45px !important;
    height: 45px !important;
    font-size: 28px;
}

	.ibs-lightbox-prev {
    left: 10px !important;
}

	.ibs-lightbox-next {
    right: 10px !important;
}    }
    
.ibs-lightbox-button {
        position: fixed !important;
        bottom: 20px !important;
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
        padding: 14px 28px !important;
        font-size: 16px !important;
        width: auto !important;
        max-width: 85% !important;
        z-index: 999999 !important;
    }
}

/* === IBS Lightbox: Safari/Firefox Sichtbarkeit-Fix (Button, Ebenen) === */

/* Lightbox immer ganz oben und eigene Stacking-Kontexte */
.ibs-lightbox{
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483646 !important;      /* maximal */
  -webkit-transform: translateZ(0);     /* iOS Safari */
}

/* Overlay unter dem Content liegen lassen */
.ibs-lightbox-overlay{
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
}

/* Content über Overlay */
.ibs-lightbox-content{
  position: relative !important;
  z-index: 2 !important;
  -webkit-transform: translateZ(0);
}

/* Bildsebene bewusst niedriger als der Button */
.ibs-lightbox-img{
  position: relative;
  z-index: 2 !important;
}

/* Navigationspfeile unter dem Button, aber über dem Bild */
.ibs-lightbox-prev,
.ibs-lightbox-next{
  z-index: 3 !important;
}

/* Der Button selbst am höchsten innerhalb der Lightbox-Content-Ebene */
.ibs-lightbox-button{
  z-index: 5 !important;
  pointer-events: auto !important;
}

/* Mobile Platzierung zentriert – Button bleibt über allem */
@media (max-width: 768px){
  .ibs-lightbox-button{
    position: fixed !important;
    bottom: 20px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    z-index: 2147483647 !important;
  }
}
/* === NAVIGATION BUTTONS - BEIDE LIGHTBOXEN === */
/* Deine neue Lightbox */
.ibs-lightbox-prev,
.ibs-lightbox-next,
/* IBS-Extras Lightbox */
.ibs-lb-prev,
.ibs-lb-next,
#ibs-lb-overlay .ibs-lb-prev,
#ibs-lb-overlay .ibs-lb-next {
    position: absolute !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 999999 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
    cursor: pointer !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

/* Custom Pfeile */
.ibs-lightbox-prev::before,
.ibs-lightbox-next::before,
.ibs-lb-prev::after,
.ibs-lb-next::after {
    content: '' !important;
    display: block !important;
    width: 12px !important;
    height: 12px !important;
    border-left: 3px solid #1f2937 !important;
    border-bottom: 3px solid #1f2937 !important;
    margin: 0 !important;
}

.ibs-lightbox-prev::before,
.ibs-lb-prev::after {
    transform: rotate(45deg) !important;
    margin-right: -2px !important;
}

.ibs-lightbox-next::before,
.ibs-lb-next::after {
    transform: rotate(-135deg) !important;
    margin-left: -2px !important;
}

/* Position */
.ibs-lightbox-prev,
.ibs-lb-prev,
#ibs-lb-overlay .ibs-lb-prev {
    left: 15px !important;
    right: auto !important;
}

.ibs-lightbox-next,
.ibs-lb-next,
#ibs-lb-overlay .ibs-lb-next {
    right: 15px !important;
    left: auto !important;
}

/* Hover */
.ibs-lightbox-prev:hover,
.ibs-lightbox-next:hover,
.ibs-lb-prev:hover,
.ibs-lb-next:hover {
    background: #fff !important;
    transform: translateY(-50%) scale(1.08) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

/* Mobile */
@media (max-width: 768px) {
    .ibs-lightbox-prev,
    .ibs-lightbox-next,
    .ibs-lb-prev,
    .ibs-lb-next {
        width: 45px !important;
        height: 45px !important;
        min-width: 45px !important;
        min-height: 45px !important;
        max-width: 45px !important;
        max-height: 45px !important;
    }
    
    .ibs-lightbox-prev::before,
    .ibs-lightbox-next::before,
    .ibs-lb-prev::after,
    .ibs-lb-next::after {
        width: 10px !important;
        height: 10px !important;
        border-width: 2.5px !important;
    }
    
    .ibs-lightbox-prev,
	.ibs-lb-prev {
    left: 15px !important;
}

	.ibs-lightbox-next,
	.ibs-lb-next {
    right: 15px !important;
}