/* Labootik Hero Slider 0.9.0 */
.lbhs-slider{--lbhs-image-width:64%;--lbhs-mobile-image-height:390px;position:relative;width:100%;max-width:1500px;margin:0 auto;overflow:visible;font-family:inherit;color:#171310}
.lbhs-slider.lbhs-full-bleed{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.lbhs-viewport{position:relative;width:100%;overflow:hidden;background:#fff}
.lbhs-track{display:flex;width:100%;transform:translate3d(0,0,0);transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}
.lbhs-slide{flex:0 0 100%;min-width:100%;background:var(--lbhs-bg,#f7f4f1);color:var(--lbhs-text,#171310)}
.lbhs-slide-inner{display:flex;min-height:var(--lbhs-desktop-height,560px);width:100%;background:var(--lbhs-bg,#f7f4f1)}
.lbhs-image-wrap{flex:0 0 var(--lbhs-image-width);width:var(--lbhs-image-width);min-width:0;position:relative;overflow:hidden;background:var(--lbhs-image-bg,#eee8e2)}
.lbhs-image-right .lbhs-image-wrap{order:2}.lbhs-image-right .lbhs-content{order:1}
.lbhs-image-wrap picture,.lbhs-image-wrap img{display:block;width:100%;height:100%}
.lbhs-image-wrap img{object-fit:var(--lbhs-image-fit,cover);object-position:var(--lbhs-image-position,center center)}
.lbhs-image-placeholder{width:100%;height:100%;min-height:var(--lbhs-desktop-height,560px);background:radial-gradient(circle at 28% 35%,rgba(217,155,91,.24),transparent 30%),linear-gradient(135deg,#f0e6dc,#d8c8ba)}
.lbhs-content{flex:1 1 auto;min-width:0;display:flex;align-items:center;background:var(--lbhs-bg,#f7f4f1);padding:44px 52px}
.lbhs-content-inner{width:min(100%,520px);margin:0 auto}
.lbhs-badge{display:inline-flex;align-items:center;min-height:26px;padding:5px 10px 4px;margin:0 0 20px;background:var(--lbhs-accent,#d99b5b);color:#fff;font-size:12px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.02em}
.lbhs-offer{margin:0 0 8px;color:var(--lbhs-accent,#d99b5b);font-size:84px;line-height:.9;font-weight:700;letter-spacing:-.045em}
.lbhs-title{margin:0 0 13px;color:var(--lbhs-text,#171310);font-size:32px;line-height:1.05;font-weight:800;letter-spacing:-.025em;text-transform:uppercase}
.lbhs-accent{color:var(--lbhs-accent,#d99b5b)}
.lbhs-description{margin:0;color:var(--lbhs-text,#171310);font-size:21px;line-height:1.33;font-weight:400}
.lbhs-actions{display:flex;align-items:center;gap:14px;margin-top:42px}
.lbhs-button{display:flex;align-items:center;justify-content:center;width:min(100%,360px);min-height:48px;padding:12px 26px;border-radius:999px;background:var(--lbhs-btn-bg,#111);color:var(--lbhs-btn-text,#fff)!important;font-size:14px;line-height:1;font-weight:800;text-decoration:none!important;text-transform:uppercase;transition:transform .18s ease,opacity .18s ease,background-color .18s ease}
.lbhs-button:hover{color:var(--lbhs-btn-text,#fff)!important;transform:translateY(-1px);opacity:.9}
.lbhs-info{display:flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;border:1px solid rgba(0,0,0,.14);border-radius:50%;background:#fff;color:#111!important;font:700 18px/1 Georgia,serif;text-decoration:none!important}
.lbhs-arrow{position:absolute;z-index:8;top:50%;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid rgba(0,0,0,.10);border-radius:50%;background:rgba(255,255,255,.94);color:#111;box-shadow:0 2px 12px rgba(0,0,0,.05);transform:translateY(-50%);cursor:pointer;transition:transform .18s ease,background-color .18s ease}
.lbhs-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.04)}
.lbhs-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lbhs-prev{left:22px}.lbhs-next{right:22px}
.lbhs-progress{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:18px clamp(24px,6vw,92px) 20px;background:#fff}
.lbhs-progress-button{position:relative;flex:1 1 0;max-width:190px;height:4px;padding:0;border:0;border-radius:0;background:#dedede;overflow:hidden;cursor:pointer}
.lbhs-progress-fill{position:absolute;inset:0;display:block;background:#111;transform:scaleX(0);transform-origin:left center;transition-property:transform;transition-timing-function:linear}
.lbhs-progress-button.is-active{cursor:default}

@media(max-width:767px){
	.lbhs-slider,.lbhs-slider.lbhs-full-bleed{width:100%;max-width:none;margin-left:0;margin-right:0}
	.lbhs-slide-inner{flex-direction:column!important;min-height:0}
	.lbhs-image-wrap,.lbhs-image-right .lbhs-image-wrap{order:1;flex:0 0 auto;width:100%;height:var(--lbhs-mobile-image-height,390px)}
	.lbhs-image-wrap img{object-fit:var(--lbhs-mobile-image-fit,cover);object-position:var(--lbhs-mobile-image-position,center center)}
	.lbhs-image-placeholder{min-height:var(--lbhs-mobile-image-height,390px)}
	.lbhs-content,.lbhs-image-right .lbhs-content{order:2;width:100%;min-height:330px;align-items:center;padding:42px 28px 40px}
	.lbhs-content-inner{width:100%;max-width:none}
	.lbhs-badge{margin-bottom:18px;font-size:11px}
	.lbhs-offer{font-size:66px}
	.lbhs-title{font-size:29px;line-height:1.06}
	.lbhs-description{font-size:18px;line-height:1.38}
	.lbhs-actions{margin-top:32px;gap:12px}
	.lbhs-button{flex:1 1 auto;width:auto;max-width:none;min-height:56px;font-size:15px}
	.lbhs-info{flex-basis:56px;width:56px;height:56px}
	.lbhs-arrow{display:none;top:calc(var(--lbhs-mobile-image-height,390px)/2);width:42px;height:42px}
	.lbhs-arrows-mobile .lbhs-arrow{display:flex}
	.lbhs-prev{left:12px}.lbhs-next{right:12px}
	.lbhs-progress{gap:8px;padding:18px 28px 22px}
	.lbhs-progress-button{max-width:none;height:4px}
}
@media(max-width:420px){.lbhs-content{padding-left:22px;padding-right:22px}.lbhs-progress{padding-left:22px;padding-right:22px}}


/* =========================================================
   0.9.2 — wysokość slidera dopasowana do grafiki
   ========================================================= */

/* Domyślny tryb: obraz wyznacza wysokość slajdu.
   Nie rozciągamy go do arbitralnych 560px. */
.lbhs-height-image .lbhs-slide-inner{
	min-height:0!important;
	align-items:stretch;
}

.lbhs-height-image .lbhs-image-wrap{
	height:auto!important;
	min-height:0!important;
}

.lbhs-height-image .lbhs-image-wrap picture{
	display:block;
	width:100%;
	height:auto!important;
}

.lbhs-height-image .lbhs-image-wrap img{
	display:block;
	width:100%;
	height:auto!important;
	max-width:100%;
	object-fit:contain!important;
}

/* Treść po prawej rozciąga się dokładnie do wysokości wynikającej z grafiki. */
.lbhs-height-image .lbhs-content{
	align-self:stretch;
}

/* Tryb stały zachowuje dotychczasową logikę. */
.lbhs-height-fixed .lbhs-slide-inner{
	min-height:var(--lbhs-desktop-height,560px);
}

.lbhs-height-fixed .lbhs-image-wrap picture,
.lbhs-height-fixed .lbhs-image-wrap img{
	height:100%;
}

.lbhs-height-fixed .lbhs-image-wrap img{
	object-fit:var(--lbhs-image-fit,cover);
}

@media(max-width:767px){
	.lbhs-height-image .lbhs-image-wrap,
	.lbhs-height-image .lbhs-image-right .lbhs-image-wrap{
		height:auto!important;
	}

	.lbhs-height-image .lbhs-image-wrap picture,
	.lbhs-height-image .lbhs-image-wrap img{
		height:auto!important;
	}

	.lbhs-height-image .lbhs-image-wrap img{
		object-fit:contain!important;
	}

	.lbhs-height-image .lbhs-image-placeholder{
		min-height:260px;
	}

	.lbhs-height-fixed .lbhs-image-wrap,
	.lbhs-height-fixed .lbhs-image-right .lbhs-image-wrap{
		height:var(--lbhs-mobile-image-height,390px);
	}

	.lbhs-height-fixed .lbhs-image-wrap img{
		height:100%;
		object-fit:var(--lbhs-mobile-image-fit,cover);
	}
}


/* =========================================================
   0.9.3 — poprawna logika: grafika dopasowuje się do slidera
   ========================================================= */

/* Desktop — slider ma własną wysokość, a obraz siedzi w środku. */
.lbhs-height-fixed .lbhs-slide-inner{
	height:var(--lbhs-desktop-height,560px)!important;
	min-height:0!important;
}

.lbhs-height-fixed .lbhs-image-wrap{
	height:100%!important;
	min-height:0!important;
	background:var(--lbhs-image-bg,#fff)!important;
}

.lbhs-height-fixed .lbhs-image-wrap picture{
	display:block!important;
	width:100%!important;
	height:100%!important;
}

.lbhs-height-fixed .lbhs-image-wrap img{
	display:block!important;
	width:100%!important;
	height:100%!important;
	max-width:100%!important;
	object-fit:var(--lbhs-image-fit,contain)!important;
	object-position:var(--lbhs-image-position,center center)!important;
}

/* Prawa część ma dokładnie tę samą wysokość. */
.lbhs-height-fixed .lbhs-content{
	height:100%!important;
	min-height:0!important;
	overflow:hidden;
}

/* Tryb naturalnych proporcji zostaje jako opcja dodatkowa, nie domyślna. */
.lbhs-height-image .lbhs-slide-inner{
	height:auto!important;
	min-height:0!important;
}

@media(max-width:767px){
	/* Na mobile cała karta jest naturalna, ale sama grafika ma zadany box.
	   To obraz dopasowuje się do boxa, a nie odwrotnie. */
	.lbhs-height-fixed .lbhs-slide-inner{
		height:auto!important;
	}

	.lbhs-height-fixed .lbhs-image-wrap,
	.lbhs-height-fixed .lbhs-image-right .lbhs-image-wrap{
		height:var(--lbhs-mobile-image-height,390px)!important;
	}

	.lbhs-height-fixed .lbhs-image-wrap picture,
	.lbhs-height-fixed .lbhs-image-wrap img{
		height:100%!important;
	}

	.lbhs-height-fixed .lbhs-image-wrap img{
		object-fit:var(--lbhs-mobile-image-fit,contain)!important;
		object-position:var(--lbhs-mobile-image-position,center center)!important;
	}

	.lbhs-height-fixed .lbhs-content{
		height:auto!important;
		overflow:visible;
	}
}


/* =========================================================
   0.9.5 — skala bannera jak Hebe
   ========================================================= */

/* Domyślnie banner ma ograniczony kontener. Przy zoom-out nie rozszerza się
   do całego nowego 100vw, tylko zachowuje maksymalną szerokość i wizualnie maleje. */
.lbhs-slider.lbhs-boxed{
	width:calc(100% - (var(--lbhs-desktop-gutter,20px) * 2))!important;
	max-width:var(--lbhs-max-width,1420px)!important;
	margin-left:auto!important;
	margin-right:auto!important;
}

.lbhs-height-responsive .lbhs-slide-inner{
	height:auto!important;
	min-height:0!important;
	aspect-ratio:var(--lbhs-desktop-ratio,2.55) / 1!important;
}

.lbhs-height-responsive .lbhs-image-wrap,
.lbhs-height-responsive .lbhs-content{
	height:100%!important;
	min-height:0!important;
}

.lbhs-height-responsive .lbhs-image-wrap picture,
.lbhs-height-responsive .lbhs-image-wrap img{
	height:100%!important;
}

.lbhs-height-responsive .lbhs-image-wrap img{
	object-fit:var(--lbhs-image-fit,contain)!important;
	object-position:var(--lbhs-image-position,center center)!important;
}

.lbhs-height-responsive .lbhs-content{
	overflow:hidden!important;
}

@media(max-width:767px){
	.lbhs-slider.lbhs-boxed{
		width:100%!important;
		max-width:none!important;
	}

	.lbhs-height-responsive .lbhs-slide-inner{
		aspect-ratio:auto!important;
		height:auto!important;
	}

	.lbhs-height-responsive .lbhs-image-wrap{
		height:var(--lbhs-mobile-image-height,390px)!important;
	}

	.lbhs-height-responsive .lbhs-image-wrap picture,
	.lbhs-height-responsive .lbhs-image-wrap img{
		height:100%!important;
	}

	.lbhs-height-responsive .lbhs-image-wrap img{
		object-fit:var(--lbhs-mobile-image-fit,contain)!important;
		object-position:var(--lbhs-mobile-image-position,center center)!important;
	}

	.lbhs-height-responsive .lbhs-content{
		height:auto!important;
		overflow:visible!important;
	}
}


/* =========================================================
   0.9.6 — fluid typography dla proporcjonalnego bannera
   ========================================================= */

/* Gdy szerokość bannera spada, sama geometria slidera już się skaluje.
   Teraz razem z nią skaluje się też prawa kolumna, zamiast zachowywać
   desktopowe 84px / 32px aż do ostatniej chwili. */
@media(min-width:768px){
    .lbhs-height-responsive.lbhs-fluid-type .lbhs-content{
        padding:
            clamp(18px,3.1vw,44px)
            clamp(20px,3.7vw,52px)!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-badge{
        min-height:clamp(20px,1.8vw,26px)!important;
        padding:
            clamp(3px,.45vw,5px)
            clamp(7px,.7vw,10px)!important;
        margin-bottom:clamp(10px,1.4vw,20px)!important;
        font-size:clamp(9px,.84vw,12px)!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-offer{
        margin-bottom:clamp(4px,.55vw,8px)!important;
        font-size:clamp(42px,5.9vw,84px)!important;
        line-height:.88!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-title{
        margin-bottom:clamp(7px,.9vw,13px)!important;
        font-size:clamp(19px,2.25vw,32px)!important;
        line-height:1.02!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-description{
        font-size:clamp(13px,1.48vw,21px)!important;
        line-height:1.28!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-actions{
        gap:clamp(8px,1vw,14px)!important;
        margin-top:clamp(16px,2.95vw,42px)!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-button{
        min-height:clamp(36px,3.4vw,48px)!important;
        padding:
            clamp(9px,.85vw,12px)
            clamp(16px,1.85vw,26px)!important;
        font-size:clamp(10px,.99vw,14px)!important;
        line-height:1!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-info{
        flex-basis:clamp(36px,3.25vw,46px)!important;
        width:clamp(36px,3.25vw,46px)!important;
        height:clamp(36px,3.25vw,46px)!important;
        font-size:clamp(14px,1.25vw,18px)!important;
    }
}

/* Ostatni zakres przed mobile: prawa kolumna jest już dość wąska.
   Dodatkowe ograniczenie zabezpiecza button i opis przed wyjściem poza banner. */
@media(min-width:768px) and (max-width:1050px){
    .lbhs-height-responsive.lbhs-fluid-type .lbhs-content{
        padding:16px 22px!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-offer{
        font-size:clamp(40px,5.2vw,55px)!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-title{
        font-size:clamp(18px,2.15vw,23px)!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-description{
        font-size:clamp(13px,1.45vw,16px)!important;
    }

    .lbhs-height-responsive.lbhs-fluid-type .lbhs-actions{
        margin-top:14px!important;
    }
}


/* =========================================================
   0.9.7 — MOBILE HERO: krótszy obraz, kontekst od razu widoczny
   ========================================================= */

@media(max-width:767px){

    /* Obraz ma krótszy, kontrolowany box.
       Domyślnie 255px zamiast 390px, więc tekst zaczyna się znacznie wyżej. */
    .lbhs-slider .lbhs-image-wrap,
    .lbhs-slider .lbhs-image-right .lbhs-image-wrap{
        height:var(--lbhs-mobile-image-height,255px)!important;
        min-height:0!important;
    }

    .lbhs-slider .lbhs-image-wrap picture,
    .lbhs-slider .lbhs-image-wrap img{
        display:block!important;
        width:100%!important;
        height:100%!important;
    }

    .lbhs-slider .lbhs-image-wrap img{
        object-fit:var(--lbhs-mobile-image-fit,cover)!important;
        object-position:var(--lbhs-mobile-image-position,center center)!important;
    }

    /* Część tekstowa ma być pełnoprawną częścią bannera, ale nie może być
       tak wysoka, żeby CTA ginęło pod dolną nawigacją. */
    .lbhs-slider .lbhs-content,
    .lbhs-slider .lbhs-image-right .lbhs-content{
        min-height:var(--lbhs-mobile-content-min-height,245px)!important;
        padding:28px 24px 24px!important;
        align-items:center!important;
    }

    .lbhs-slider .lbhs-content-inner{
        width:100%!important;
    }

    .lbhs-slider .lbhs-badge{
        margin-bottom:12px!important;
        font-size:10px!important;
        min-height:22px!important;
        padding:4px 8px!important;
    }

    .lbhs-slider .lbhs-offer{
        margin-bottom:6px!important;
        font-size:52px!important;
        line-height:.9!important;
    }

    .lbhs-slider .lbhs-title{
        margin-bottom:8px!important;
        font-size:24px!important;
        line-height:1.05!important;
    }

    .lbhs-slider .lbhs-description{
        font-size:16px!important;
        line-height:1.32!important;
    }

    .lbhs-slider .lbhs-actions{
        margin-top:20px!important;
        gap:10px!important;
    }

    .lbhs-slider .lbhs-button{
        min-height:48px!important;
        padding:11px 18px!important;
        font-size:13px!important;
    }

    .lbhs-slider .lbhs-info{
        flex-basis:48px!important;
        width:48px!important;
        height:48px!important;
    }

    .lbhs-slider .lbhs-progress{
        padding:14px 24px 18px!important;
    }
}

/* Na bardzo małych telefonach jeszcze odrobinę ciaśniej. */
@media(max-width:390px){
    .lbhs-slider{
        --lbhs-mobile-image-height:235px;
        --lbhs-mobile-content-min-height:230px;
    }

    .lbhs-slider .lbhs-content,
    .lbhs-slider .lbhs-image-right .lbhs-content{
        padding:24px 20px 20px!important;
    }

    .lbhs-slider .lbhs-offer{font-size:46px!important}
    .lbhs-slider .lbhs-title{font-size:22px!important}
    .lbhs-slider .lbhs-description{font-size:15px!important}
}


/* =========================================================
   0.11.0 — TYPOGRAFIA PER SLIDE
   ========================================================= */

/*
 * Jeśli konkretny slajd ma tryb "Własne rozmiary", jego wartości mają
 * pierwszeństwo nad:
 * - globalnymi suwakami Typografia,
 * - automatycznym fluid typography,
 * - breakpointem ochronnym 768–1050.
 */
@media(min-width:768px){
    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-badge{
        font-size:var(--lbhs-slide-badge-desktop,12px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-offer{
        font-size:var(--lbhs-slide-offer-desktop,72px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-title{
        font-size:var(--lbhs-slide-title-desktop,28px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-description{
        font-size:var(--lbhs-slide-description-desktop,18px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-button{
        font-size:var(--lbhs-slide-button-desktop,13px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-actions{
        margin-top:var(--lbhs-slide-actions-desktop,22px)!important;
    }
}

@media(max-width:767px){
    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-badge{
        font-size:var(--lbhs-slide-badge-mobile,10px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-offer{
        font-size:var(--lbhs-slide-offer-mobile,48px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-title{
        font-size:var(--lbhs-slide-title-mobile,22px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-description{
        font-size:var(--lbhs-slide-description-mobile,15px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-button{
        font-size:var(--lbhs-slide-button-mobile,13px)!important;
    }

    .lbhs-slider .lbhs-slide.lbhs-custom-type .lbhs-actions{
        margin-top:var(--lbhs-slide-actions-mobile,18px)!important;
    }
}
