:root {
	--cb-font: "Battambang", sans-serif;
	--cb-font-inter: "Inter", system-ui, sans-serif;
	--cb-coral: #ef5a57;
	--cb-cream: #f8f4ec;
	--cb-text: #1f1f1f;
	--cb-max: 1240px;
	--cb-wave-height: clamp(46px, 9vw, 76px);
	/* Logo hero: szerokość tylko w CSS (desktop vs mobile niżej) */
	--cb-hero-logo-max: min(96vw, 1400px);
	/* Max szerokość samej grafiki SVG (Twoja wartość — nie mylić z szerokością <picture>) */
	--cb-hero-logo-art-max: 700px;
	/* Assety w misce: domyślna szerokość + mnożnik (na mobile zmieniasz oba = „jak logo” mniejsze wszystko) */
	--cb-floater-icon-default: clamp(22px, 3.1vw, 32px);
	--cb-floater-size-multiplier: 1;
	--cb-floater-lift-base: 52px;
	--cb-floater-lift-step: 14px;
	--cb-slider-panel-bg: #f7f4ef;
	--cb-slider-gap: 20px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body {
	margin: 0;
	font-family: var(--cb-font);
	color: var(--cb-text);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cb-container {
	width: min(100% - 2rem, var(--cb-max));
	margin-inline: auto;
}

.cb-wave-bottom::after,
.cb-wave-top::before {
	content: "";
	display: block;
	height: var(--cb-wave-height);
	background-repeat: repeat-x;
	background-position: center bottom;
	background-size: 140px 100%;
}

.cb-wave-bottom::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 56' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f4ec' d='M0 16 Q35 48 70 16 T140 16 L140 56 L0 56 Z'/%3E%3C/svg%3E");
}

.cb-wave-top::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 56' preserveAspectRatio='none'%3E%3Cpath fill='%23f8f4ec' d='M0 40 Q35 8 70 40 T140 40 L140 0 L0 0 Z'/%3E%3C/svg%3E");
}

/* Tło fal (bg.png) — to samo co w stopce; stopka: +180° na .cb-site-footer__bg */
.cb-hero,
.cb-site-footer__bg {
	background-image: var(--cb-theme-bg-img, url("../img/bg.svg"));
	background-repeat: no-repeat;
	background-position: center bottom;
}

.cb-hero {
	color: #fff;
	padding: 2.5rem 0 0;
	min-height: clamp(430px, 84vh, 820px);
	overflow: hidden;
}

.cb-hero.cb-wave-bottom::after {
	content: none;
}

/* Strony prawne (Imprint): ten sam hero co na głównej, bez floaterów, logo 150px */
.cb-hero.cb-hero--legal {
	min-height: 450px !important;
}

.cb-hero--legal .cb-logo-stack {
	max-width: 150px;
}

.cb-hero--legal .cb-logo {
	max-width: 150px;
}

.cb-hero-inner {
	min-height: inherit;
	display: flex;
	flex-direction: column;
}

.cb-nav {
	display: flex;
	justify-content: center;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
	font-size: 18px;
	font-family: var(--cb-font-inter);
}

.cb-nav .menu {
	padding: 0;
	margin: 0;
}

.cb-nav-list {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 24px;
	padding: 0;
	margin: 0;
	list-style: none;

}

@media (max-width: 767px) {
	.cb-nav-list {
		flex-direction: column;
	}

}

.cb-nav a {
	color: inherit;
	text-decoration: none;
}

/* Separator + wtyczka lang-switcher w jednym rzędzie z linkami */
.cb-nav-list .cb-nav-sep {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
}

@media (max-width: 767px) {
	.cb-nav-list .cb-nav-sep {
		display: none;
	}
}

.cb-nav-sep__bar {
	opacity: 0.9;
	font-weight: 400;
	user-select: none;
}

.cb-nav-list .cb-nav-lang {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
}

.cb-nav-lang .lang-popup-wrapper {
	position: relative;
}

.cb-nav-lang .lang-popup-trigger {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	font-family: inherit;
}

.cb-branding {
	padding: 5rem 0 5rem;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	flex: 1;
	width: 100%;
}

/*
 * Stos logo + floatery: pozycje %/px floaterów są względem tego boxa (wysokość = grafika logo),
 * a nie całego hero — zmiana wysokości menu nie przesuwa ikon względem miski.
 */
.cb-logo-stack {
	position: relative;
	width: 100%;
	max-width: var(--cb-hero-logo-max);
	margin-inline: auto;
}

.cb-logo-stack picture {
	display: flex;
	justify-content: center;
	width: 100%;
}

.cb-logo {
	width: 100%;
	height: auto;
	max-width: var(--cb-hero-logo-art-max);
	position: relative;
	z-index: 3;
	display: block;
	margin-inline: auto;
}

.cb-logo-floaters {
	position: absolute;
	left: 50%;
	top: 13%;
	transform: translateX(-50%);
	width: min(290px, 56vw);
	height: 180px;
	pointer-events: none;
	z-index: 2;
}

.cb-floater {
	position: absolute;
	left: var(--cb-floater-left, 50%);
	bottom: var(--cb-floater-bottom, 20%);
	opacity: 1;
	/* Tylko ruch w górę przy scrollu — bez scale, ten sam obrót cały czas */
	transform: translate3d(
			var(--cb-floater-shift-x, 0),
			calc(
				-1 * var(--cb-hero-progress, 0) *
					(var(--cb-floater-lift-base, 52px) + var(--cb-floater-index) * var(--cb-floater-lift-step, 14px))
			),
			0
		)
		rotate(var(--cb-floater-rot, 0deg));
	transition: transform 120ms linear;
	will-change: transform;
}

/* Szerokość = (rozmiar z bloku [data-floater-index] lub domyśl) × mnożnik. Mobile: osobny domyśl + mnożnik + opcjonalnie --cb-floater-size-mobile */
.cb-floater img {
	width: calc(
		var(--cb-floater-size, var(--cb-floater-icon-default)) * var(--cb-floater-size-multiplier)
	);
	height: auto;
	display: block;
}

/*
 * Desktop: --cb-floater-left, --cb-floater-bottom, --cb-floater-shift-x, --cb-floater-size (+ opcj. --cb-floater-rot)
 * Mobile: te same nazwy z sufiksem -mobile w sekcji @media (max-width: 767px) niżej — osobne % i px rozmiaru
 */
.cb-floater[data-floater-index="0"] {
	--cb-floater-left: 42%;
	--cb-floater-bottom: 45%;
	--cb-floater-size: 100px;
}

.cb-floater[data-floater-index="1"] {
	--cb-floater-left: 28%;
	--cb-floater-bottom: 90%;
	--cb-floater-shift-x: -2px;
	--cb-floater-size: 95px;
}

.cb-floater[data-floater-index="2"] {
	--cb-floater-left: 26%;
	--cb-floater-bottom: 90%;
	--cb-floater-shift-x: 2px;
	--cb-floater-size: 35px;
}

.cb-floater[data-floater-index="3"] {
	--cb-floater-left: 16%;
	--cb-floater-bottom: 80%;
	--cb-floater-shift-x: 1px;
	--cb-floater-size: 35px;
}

.cb-floater[data-floater-index="4"] {
	--cb-floater-left: 12%;
	--cb-floater-bottom: 100%;
	--cb-floater-shift-x: 4px;
	--cb-floater-size: 35px;
}

.cb-floater[data-floater-index="5"] {
	--cb-floater-left: -15%;
	--cb-floater-bottom: 60%;
	--cb-floater-shift-x: 6px;
	--cb-floater-size: 95px;
}

.cb-floater[data-floater-index="6"] {
	--cb-floater-left: 85%;
	--cb-floater-bottom: 53%;
	--cb-floater-shift-x: -1px;
	--cb-floater-size: 60px;
}

.cb-floater[data-floater-index="7"] {
	--cb-floater-left: 60%;
	--cb-floater-bottom: 92%;
	--cb-floater-size: 70px;
}

.cb-floater[data-floater-index="8"] {
	--cb-floater-left: 22%;
	--cb-floater-bottom: 50%;
	--cb-floater-shift-x: 3px;
	--cb-floater-size: 67px;
}

.cb-logo-fallback {
	margin: 0;
	font-size: clamp(2rem, 8vw, 5rem);
}

.cb-intro {
	padding: 3rem 0;
	text-align: center;
	font-size: 32px;
	line-height: 1.2;
	display: flex;
	justify-content: center;
	
}

.cb-intro .cb-container {
	display: flex;
	justify-content: center;
}

.cb-intro p,
.cb-intro__text {
	max-width: 900px;
}

.cb-intro__text p {
	margin: 0.5em 0 0;
}

.cb-intro__text p:first-child {
	margin-top: 0;
}

@media (max-width: 767px) {
	.cb-intro p,
	.cb-intro__text {
		font-size: 20px;
		padding-left: 40px;
		padding-right: 40px;
	}
}

.cb-slider,
.cb-reviews {
	padding: 2rem 0 3rem;
}

/* Reviews: dokładnie 3 karty w rzędzie (desktop), przewijanie poziome */
.cb-reviews .cb-carousel {
	position: relative;
	width: 100%;
	overflow: hidden;
	container-type: inline-size;
	container-name: reviews-carousel;
}

.cb-reviews-carousel {
	padding-left: 20px;
	padding-right: 20px;
}

.cb-reviews .cb-carousel-track {
	--cb-reviews-gap: 12px;
	/* Szerokość karty — ta sama co przy .cb-review-card (do spacerów wyśrodkowania) */
	--cb-review-card-w: calc((100cqw - 2 * var(--cb-reviews-gap)) / 3);
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: var(--cb-reviews-gap);
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

/*
 * Prawy spacer: wyśrodkowanie ostatniej karty.
 * Lewy tylko gdy nie ma klona (JS): <3 opinii lub mobile — inaczej pierwszej karty nie da się wyśrodkować.
 * Gdy jest klon ostatniej karty, lewy spacer zastępuje on (tylko desktop, 3+ opinii).
 */
.cb-reviews .cb-carousel-track:not(:has(.cb-review-card--clone))::before {
	content: "";
	flex: 0 0 calc((100cqw - var(--cb-review-card-w)) / 2 - var(--cb-reviews-gap));
	min-width: 0;
	align-self: stretch;
	pointer-events: none;
}

.cb-reviews .cb-carousel-track::after {
	content: "";
	flex: 0 0 calc((100cqw - var(--cb-review-card-w)) / 2 - var(--cb-reviews-gap));
	min-width: 0;
	align-self: stretch;
	pointer-events: none;
}

.cb-reviews .cb-carousel-track .cb-review-card--clone {
	scroll-snap-align: start;
	user-select: none;
}

.cb-reviews .cb-carousel-track::-webkit-scrollbar {
	display: none;
}

.cb-reviews .cb-carousel-track .cb-review-card {
	flex: 0 0 calc((100cqw - 2 * var(--cb-reviews-gap)) / 3);
	width: calc((100cqw - 2 * var(--cb-reviews-gap)) / 3);
	min-width: 0;
	max-width: none;
	margin: 0;
	scroll-snap-align: center;
	scroll-snap-stop: normal;
}

@supports not (width: 1cqw) {
	.cb-reviews .cb-carousel-track {
		--cb-review-card-w: calc(33.333% - 8px);
	}

	.cb-reviews .cb-carousel-track:not(:has(.cb-review-card--clone))::before,
	.cb-reviews .cb-carousel-track::after {
		flex-basis: calc((100% - var(--cb-review-card-w)) / 2 - var(--cb-reviews-gap));
	}

	.cb-reviews .cb-carousel-track .cb-review-card {
		flex: 0 0 calc(33.333% - 8px);
		width: calc(33.333% - 8px);
	}
}

.cb-reviews-dots {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 1.25rem 0 0;
	padding: 0;
}

.cb-reviews-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: #c4c4c4;
	cursor: pointer;
	transition: background 0.15s ease;
}

.cb-reviews-dot.is-active {
	background: #1a1a1a;
}

.cb-reviews-dot:focus-visible {
	outline: 2px solid var(--cb-coral);
	outline-offset: 3px;
}

/* Product slider: desktop ~80% | 20px | ~20%; tło #F7F4EF tylko panele; szczelina = biel strony */
.cb-slider {
	background: transparent;
}

.cb-product-carousel {
	position: relative;
	width: 100%;
	overflow: hidden;
}

/* Strzałki poza trackiem — nie przewijają się ze slajdami */
.cb-product-carousel-nav-wrap {
	position: absolute;
	z-index: 2;
	top: clamp(0.75rem, 2vw, 1rem);
	left: calc((100% - var(--cb-slider-gap)) * 0.8 + var(--cb-slider-gap));
	right: 0;
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
	gap: 0.5rem;
	padding-right: clamp(0.75rem, 2vw, 1rem);
	pointer-events: none;
}

.cb-product-carousel-nav-wrap .cb-carousel-nav-btn {
	pointer-events: auto;
}

.cb-product-carousel-track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.cb-product-carousel-track::-webkit-scrollbar {
	display: none;
}

.cb-product-slide {
	min-width: 100%;
	scroll-snap-align: start;
	background: #fff;
}

.cb-product-slide-inner {
	display: grid;
	grid-template-columns: 8fr 2fr;
	column-gap: var(--cb-slider-gap);
	align-items: stretch;
	min-height: min(70vw, 520px);
	max-width: 100%;
}

.cb-product-slide-main {
	grid-column: 1;
	background: var(--cb-slider-panel-bg);
	padding: clamp(1rem, 3vw, 2rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 1rem;
	min-width: 0;
}

.cb-product-slide-title {
	margin: 0;
	font-family: var(--cb-font-inter);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.25;
	max-width: 100%;
}

.cb-product-slide-title-wrap {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 5px;
}

.cb-product-slide-media {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex: 1;
	min-height: 0;
}

.cb-product-slide-img {
	width: min(72vw, 500px);
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 50%;
	display: block;
}

.cb-product-slide-media--empty {
	width: min(72vw, 420px);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: #e4ddd1;
}

.cb-product-slide-placeholder {
	margin: 0;
	text-align: center;
	width: 100%;
}

.cb-product-slide-side-bg {
	grid-column: 2;
	grid-row: 1;
	background: var(--cb-slider-panel-bg);
	min-height: 100%;
	min-width: 0;
}

.cb-carousel-nav-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	line-height: 0;
}

.cb-carousel-nav-btn:focus-visible {
	outline: 2px solid var(--cb-coral);
	outline-offset: 3px;
}

.cb-carousel-nav-icon {
	width: clamp(40px, 8vw, 52px);
	height: auto;
	display: block;
}

.cb-carousel-nav-prev .cb-carousel-nav-icon {
	transform: scaleX(-1);
}

.cb-carousel-nav-btn.is-disabled {
	opacity: 0.2;
	pointer-events: none;
}

@media (max-width: 767px) {
	/* Slider produktów: kolumna — tytuł → zdjęcie → strzałki (track przed nav w HTML) */
	.cb-slider {
		background: #f9f5f0;
	}

	.cb-product-carousel {
		display: flex;
		flex-direction: column;
	}

	.cb-product-carousel-track {
		width: 100%;
		order: 0;
	}

	.cb-product-carousel-nav-wrap {
		position: static;
		left: auto;
		right: auto;
		top: auto;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0.75rem;
		padding: 1.25rem 1rem 2rem;
		pointer-events: auto;
		order: 1;
	}

	.cb-product-slide {
		background: transparent;
	}

	.cb-product-slide-inner {
		grid-template-columns: 1fr;
		column-gap: 0;
		min-height: 0;
	}

	.cb-product-slide-main {
		align-items: center;
		text-align: center;
		padding: clamp(1.25rem, 4vw, 1.75rem) clamp(1rem, 4vw, 1.25rem) 0.25rem;
		background: transparent;
		gap: 2rem;
	}

	.cb-product-slide-title {
		font-weight: 400;
		font-size: 18px;
		width: 100%;
		text-align: center;
		font-family: var(--cb-font-inter), system-ui, sans-serif;
	}
	.cb-product-slide-title-wrap {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 5px;
	}

	.cb-product-slide-media {
		width: 100%;
		justify-content: center;
	}

	.cb-product-slide-side-bg {
		display: none;
	}

	.cb-product-slide-img {
		width: min(88vw, 400px);
		max-width: 100%;
	}
}

/* Wideo nad galerią (pełna szerokość, nie jest częścią bento) */
.cb-gallery-video-wrap {
	width: 100%;
	line-height: 0;
	padding-left: 40px;
	padding-right: 40px;
}

@media (max-width: 767px) {
	.cb-gallery-video-wrap {
		margin-top: 10px;
		padding-left: 10px;
		padding-right: 10px;
	}
}

.cb-gallery-video {
	width: 100%;
	height: auto;
	max-height: min(70vh, 720px);
	display: block;
	object-fit: cover;
	/* Bez kontrolek — tło wizualne */
	pointer-events: none;
}

/* Bento: stała wysokość sekcji ~750px; zdjęcia cover bez rozciągania */
.cb-gallery-bento {
	--cb-gallery-gap: 10px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--cb-gallery-gap);
	padding: 0.75rem 0 3rem;
	height: min(850px, 88vh);
	min-height: 0;
	align-items: stretch;
	box-sizing: border-box;
	padding-left: 40px;
	padding-right: 40px;
}

.cb-gallery-col {
	display: grid;
	grid-template-rows: minmax(0, 13fr) minmax(0, 7fr);
	gap: var(--cb-gallery-gap);
	min-height: 0;
	height: 100%;
	align-content: stretch;
}

.cb-gallery-col--flip {
	grid-template-rows: minmax(0, 7fr) minmax(0, 13fr);
}

.cb-gallery-cell {
	margin: 0;
	min-height: 0;
	overflow: hidden;
	position: relative;
	height: 100%;
}

/* Obcinanie jak w „cover” — brak rozciągania proporcji zdjęcia */
.cb-gallery-cell img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.cb-gallery-placeholder {
	position: absolute;
	inset: 0;
	background: #e4ddd1;
}

@media (max-width: 767px) {
	/* Bento: 2 kolumny, „posuwany” układ jak na makiecie (wysokie / niskie naprzemiennie) */
	.cb-gallery-bento {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: minmax(120px, 1.15fr) minmax(100px, 0.95fr) minmax(100px, 0.95fr) minmax(100px, 0.95fr);
		gap: var(--cb-gallery-gap);
		height: auto;
		max-height: none;
		min-height: 0;
		padding-left: 10px;
		padding-right: 10px;
		padding-bottom: 2rem;
		align-items: stretch;
	}

	.cb-gallery-col {
		display: contents;
	}

	.cb-gallery-cell {
		position: relative;
		min-height: 0;
		width: 100%;
		height: 100%;
		overflow: hidden;
		aspect-ratio: unset;
	}

	.cb-gallery-cell[data-bento-index="0"] {
		grid-column: 1;
		grid-row: 1 / span 2;
		min-height: clamp(200px, 42vw, 280px);
	}

	.cb-gallery-cell[data-bento-index="1"] {
		grid-column: 2;
		grid-row: 1;
		min-height: clamp(100px, 28vw, 160px);
	}

	.cb-gallery-cell[data-bento-index="4"] {
		grid-column: 2;
		grid-row: 2 / span 2;
		min-height: clamp(180px, 38vw, 260px);
	}

	.cb-gallery-cell[data-bento-index="3"] {
		grid-column: 1;
		grid-row: 3;
		min-height: clamp(100px, 28vw, 160px);
	}

	.cb-gallery-cell[data-bento-index="2"] {
		grid-column: 1;
		grid-row: 4;
		min-height: clamp(100px, 28vw, 160px);
	}

	.cb-gallery-cell[data-bento-index="5"] {
		grid-column: 2;
		grid-row: 4;
		min-height: clamp(100px, 28vw, 160px);
	}

	.cb-gallery-cell img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}

	.cb-gallery-placeholder {
		position: absolute;
		inset: 0;
		min-height: 0;
		aspect-ratio: unset;
	}
}

.cb-reviews-title {
	text-align: center;
	margin: 0 0 1.5rem;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 400;
	font-family: var(--cb-font), system-ui, sans-serif;
}

.cb-review-card {
	background: #d9d9d9;
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	box-sizing: border-box;
}

.cb-review-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	flex-wrap: wrap;
}

.cb-review-name {
	font-weight: 700;
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	font-size: 1rem;
	color: var(--cb-text);
}

.cb-review-date {
	font-size: 0.875rem;
	color: #6b6b6b;
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	white-space: nowrap;
}

.cb-review-stars {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	align-items: center;
	margin: 0;
	padding: 0;
}

.cb-review-star-icon {
	width: 22px;
	height: 22px;
	display: block;
	flex-shrink: 0;
}

.cb-review-text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--cb-text);
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	flex: 1;
}

.cb-review-empty {
	margin: 0;
	text-align: center;
	color: #6b6b6b;
	font-size: 0.9375rem;
}

/*
 * Stopka: to samo tło co .cb-hero (bg.png, cover, center bottom), obrót 180° względem hero — warstwa HTML, bez ::before.
 */
.cb-site-footer {
	position: relative;
	margin-top: 150px;
	padding-top: 100px;
	padding-left: 20px;
	padding-right: 20px;
	color: #fff;
	background: #EC5657;
}

.cb-site-footer__bg {
	position: absolute;
	inset: 0;
	top: -50px;
	z-index: 0;
	pointer-events: none;
	transform: rotate(180deg);
	transform-origin: center center;
}

.cb-site-footer__body {
	position: relative;
	z-index: 1;
	padding-bottom: clamp(2rem, 5vw, 3rem);
	background: transparent;
}

.cb-footer-inner {
	text-align: center;
	padding-top: clamp(0.75rem, 2.5vw, 1.5rem);
}

.cb-footer-blocks {
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 4vw, 2rem);
	margin-bottom: clamp(1.5rem, 4vw, 2.25rem);
}

.cb-footer-block {
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	font-size: 20px;
	line-height: 32px;
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
}

.cb-footer-block p {
	margin: 0.4rem 0 0;
}

.cb-footer-block p:first-child {
	margin-top: 0;
}

.cb-footer-block strong,
.cb-footer-block b {
	font-weight: 700;
}

.cb-footer-block em,
.cb-footer-block i {
	font-style: italic;
}

.cb-footer-block a {
	color: #fff;
	text-decoration: underline;
}

@media (max-width: 767px) {
	.cb-site-footer {
		margin-top: 100px;
		padding-top: 50px;
		padding-left: 10px;
		padding-right: 10px;
	}
	.cb-footer-block {
		font-size: 16px;
	}
}

.cb-footer-logo-wrap {
	margin: 0.25rem auto 4rem;
}

.cb-footer-logo {
	display: block;
	margin: 0 auto;
	max-width: min(200px, 55vw);
	height: auto;
}

.cb-footer-social {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
}

.cb-footer-social-link,
.cb-footer-social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.cb-footer-social-link {
	text-decoration: none;
	opacity: 1;
	transition: opacity 0.15s ease;
}

.cb-footer-social-link:hover,
.cb-footer-social-link:focus-visible {
	opacity: 0.85;
}

.cb-footer-social-link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.cb-footer-social-link img,
.cb-footer-social-icon img {
	display: block;
	width: 31px;
	height: auto;
}

.cb-footer-links {
	margin: 0 0 0.85rem;
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	font-size: 0.8125rem;
}

.cb-site-footer .cb-footer-links a {
	color: #fff;
	text-decoration: underline;
}

.cb-footer-links-sep {
	display: inline-block;
	width: 1.25rem;
}

.cb-footer-copyright {
	margin: 0;
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	font-size: 0.75rem;
	line-height: 1.4;
	opacity: 0.95;
}

.cb-content.cb-legal {
	padding: 3rem 0 4rem;
	background: #fff;
	color: var(--cb-text);
	text-align: center;
}

.cb-content.cb-legal .cb-container {
	max-width: min(100% - 2rem, 42rem);
	margin-inline: auto;
}

.cb-legal-title {
	margin-top: 0;
	margin-bottom: 1.5rem;
	font-family: var(--cb-font);
	font-weight: 400;
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	color: var(--cb-text);
}

.cb-content.cb-legal .cb-legal-entry {
	text-align: center;
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	font-size: 20px;
	line-height: 2;
}

.cb-content.cb-legal .cb-legal-entry > *:first-child {
	margin-top: 0;
}

/* Zwykła strona (page.php), gdy nie jest layoutem „home” */
.cb-content.cb-page-simple {
	padding: 3rem 0 4rem;
	background: #fff;
	color: var(--cb-text);
}

.cb-page-title {
	margin-top: 0;
	margin-bottom: 1rem;
	font-family: var(--cb-font);
	font-weight: 400;
	font-size: clamp(1.75rem, 4vw, 2.25rem);
	color: var(--cb-text);
}

.cb-page-entry {
	font-family: var(--cb-font-inter), system-ui, sans-serif;
	font-size: 0.9375rem;
	line-height: 1.6;
}

@media (max-width: 767px) {
	/* Jedna opinia na ekran — pełna szerokość tracku (bez „podglądu” kolejnej) */
	.cb-reviews .cb-carousel {
		container-type: normal;
	}

	.cb-reviews .cb-carousel-track {
		--cb-reviews-gap: 16px;
		--cb-review-card-w: 100%;
		gap: var(--cb-reviews-gap);
		width: 100%;
		scroll-snap-type: x mandatory;
		scroll-padding: 0;
	}

	.cb-reviews .cb-carousel-track::before,
	.cb-reviews .cb-carousel-track::after {
		display: none !important;
	}

	.cb-reviews .cb-carousel-track .cb-review-card {
		flex: 0 0 100%;
		width: 100%;
		min-width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
}

@media (max-width: 767px) {
	:root {
		--cb-hero-logo-max: min(92vw, 250px);
		--cb-hero-logo-art-max: min(92vw, 250px);
		--cb-floater-icon-default: clamp(14px, 2.8vw, 22px);
		--cb-floater-size-multiplier: 0.68;
		--cb-floater-lift-base: 40px;
		--cb-floater-lift-step: 12px;
	}

	.cb-hero {
		min-height: clamp(420px, 80vh, 560px);
	}

	.cb-branding {
		padding-top: 1.75rem;
		padding-bottom: 4rem;
	}

	.cb-logo-floaters {
		top: var(--cb-floaters-wrap-top-mobile, 10%);
		width: var(--cb-floaters-wrap-width-mobile, min(235px, 62vw));
		height: var(--cb-floaters-wrap-height-mobile, 150px);
	}

	.cb-floater {
		left: var(--cb-floater-left-mobile, var(--cb-floater-left, 50%));
		bottom: var(--cb-floater-bottom-mobile, var(--cb-floater-bottom, 20%));
		transform: translate3d(
				var(--cb-floater-shift-x-mobile, var(--cb-floater-shift-x, 0)),
				calc(
					-1 * var(--cb-hero-progress, 0) *
						(var(--cb-floater-lift-base, 52px) + var(--cb-floater-index) * var(--cb-floater-lift-step, 14px))
				),
				0
			)
			rotate(var(--cb-floater-rot-mobile, var(--cb-floater-rot, 0deg)));
	}

	/* Jeśli jest --cb-floater-size-mobile = końcowa szerokość (px). Bez = desktop × mnożnik */
	.cb-floater img {
		width: var(
			--cb-floater-size-mobile,
			calc(var(--cb-floater-size, var(--cb-floater-icon-default)) * var(--cb-floater-size-multiplier))
		);
	}

	/* Mobile: osobne położenie i rozmiar per indeks (edytuj tutaj) */
	.cb-floater[data-floater-index="0"] {
		--cb-floater-left-mobile: 45%;
		--cb-floater-bottom-mobile: 55%;
		--cb-floater-shift-x-mobile: -4px;
		--cb-floater-size-mobile: 61px;
	}

	.cb-floater[data-floater-index="1"] {
		--cb-floater-left-mobile: 35%;
		--cb-floater-bottom-mobile: 85%;
		--cb-floater-shift-x-mobile: -2px;
		--cb-floater-size-mobile: 50px;
	}

	.cb-floater[data-floater-index="2"] {
		--cb-floater-left-mobile: 32%;
		--cb-floater-bottom-mobile: 90%;
		--cb-floater-size-mobile: 19px;
	}

	.cb-floater[data-floater-index="3"] {
		--cb-floater-left-mobile: 26%;
		--cb-floater-bottom-mobile: 80%;
		--cb-floater-shift-x-mobile: 1px;
		--cb-floater-size-mobile: 19px;
	}

	.cb-floater[data-floater-index="4"] {
		--cb-floater-left-mobile: 24%;
		--cb-floater-bottom-mobile: 95%;
		--cb-floater-shift-x-mobile: 2px;
		--cb-floater-size-mobile: 19px;
	}

	.cb-floater[data-floater-index="5"] {
		--cb-floater-left-mobile: 5%;
		--cb-floater-bottom-mobile: 70%;
		--cb-floater-shift-x-mobile: 6px;
		--cb-floater-size-mobile: 44px;
	}

	.cb-floater[data-floater-index="6"] {
		--cb-floater-left-mobile: 75%;
		--cb-floater-bottom-mobile: 60%;
		--cb-floater-shift-x-mobile: -1px;
		--cb-floater-size-mobile: 38px;
	}

	.cb-floater[data-floater-index="7"] {
		--cb-floater-left-mobile: 54%;
		--cb-floater-bottom-mobile: 90%;
		--cb-floater-shift-x-mobile: 3px;
		--cb-floater-size-mobile: 43px;
	}

	.cb-floater[data-floater-index="8"] {
		--cb-floater-left-mobile: 27%;
		--cb-floater-bottom-mobile: 53%;
		--cb-floater-shift-x-mobile: 3px;
		--cb-floater-size-mobile: 41px;
	}
}
