/* FeelEvent – wspólny styl: zaokrąglenia 12px (karty, kafelki, panele), przyciski jako pigułki.
   Ładowany na całym froncie przez mu-plugins/feelevent-layout-fixes.php. */

:root {
	--fe-radius: 12px;
	--fe-radius-sm: 8px;
	--fe-line: rgba(255, 255, 255, .14);
	--fe-accent: #7a5ab0;
}

/* Filtry kategorii na stronach miast: osobne zaokrąglone kafelki z odstępem. */
ul.row.list-unstyled > li:has(> a.filtry) {
	border: 0 !important;
	padding: 4px !important;
}
ul.row.list-unstyled > li > a.filtry {
	height: 100%;
	border: 1px solid var(--fe-line);
	border-radius: var(--fe-radius);
	transition: border-color .15s ease, background-color .15s ease;
}
ul.row.list-unstyled > li > a.filtry:hover,
ul.row.list-unstyled > li > a.filtry:focus-visible,
ul.row.list-unstyled > li > a.filtry.active {
	border-color: var(--fe-accent);
	background-color: rgba(var(--fe-accent-rgb, 122, 90, 176),  .15);
}

/* ---------- Telefony i tablety (menu zwijane) ---------- */
@media (max-width: 991.98px) {
	/* Nagłówek, menu mobilne i „Orły”: patrz css/fe-mobile-header.css */

}

@media (max-width: 575.98px) {
	/* Filtry kategorii: 4 w rzędzie na telefonie – mniejszy odstęp wewnętrzny, żeby nazwy mieściły się w kafelkach. */
	ul.row.list-unstyled > li > a.filtry {
		padding: 12px 2px !important;
		font-size: 12px;
		line-height: 1.25;
		overflow-wrap: anywhere;
	}
	ul.row.list-unstyled > li > a.filtry img {
		max-height: 22px;
		width: auto;
	}
}

/* Kafelki ofert (listy WooCommerce): odstęp i zaokrąglone rogi. */
.woocommerce ul.products li.product {
	padding: 6px;
}
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
	display: block;
	position: relative;
	overflow: hidden;
	border-radius: var(--fe-radius);
	isolation: isolate;
}
.woocommerce ul.products li.product .fe-badge--left-top { left: 18px; }
.woocommerce ul.products li.product .fe-badge--right-top { right: 18px; }
.woocommerce ul.products li.product .fe-badge { top: 18px; }
.woocommerce ul.products li.product .fe-badge.badge-diagonal,
.woocommerce ul.products li.product .fe-badge.badge-corner-triangle,
.woocommerce ul.products li.product .fe-badge.badge-bookmark { top: 6px; }
.woocommerce ul.products li.product .fe-badge.badge-diagonal.fe-badge--left-top,
.woocommerce ul.products li.product .fe-badge.badge-corner-triangle.fe-badge--left-top,
.woocommerce ul.products li.product .fe-badge.badge-ribbon.fe-badge--left-top { left: 6px; }
.woocommerce ul.products li.product .fe-badge.badge-diagonal.fe-badge--right-top,
.woocommerce ul.products li.product .fe-badge.badge-corner-triangle.fe-badge--right-top,
.woocommerce ul.products li.product .fe-badge.badge-ribbon.fe-badge--right-top { right: 6px; }
.woocommerce ul.products li.product .fe-badge.badge-diagonal,
.woocommerce ul.products li.product .fe-badge.badge-corner-triangle {
	border-top-left-radius: var(--fe-radius);
	border-top-right-radius: var(--fe-radius);
	overflow: hidden;
}

/* ======================================================================
   Poprawki graficzne – zgłoszenia ze zrzutów (25.10.2026)
   ====================================================================== */

/* Cień pod zdjęciem nagłówka: dekoracja, nie może przechwytywać kliknięć
   (leżał na przycisku „Zapytaj o dostępność”). Na tabletach/telefonach zasłaniał galerię i cenę. */
.shadow-bottom {
	pointer-events: none;
}
@media (max-width: 991.98px) {
	body.single-product .header-container-product .shadow-bottom {
		display: none;
	}
}

/* Kafelki ofert: lista cech po najechaniu w obrysie zaokrąglonego kafelka. */
#items li.product > .offer-list-box-description-more,
.woocommerce ul.products li.product > .offer-list-box-description-more {
	top: 6px;
	left: 6px;
	right: 6px;
	bottom: 6px;
	width: auto;
	border-radius: var(--fe-radius);
	overflow: hidden;
	background: rgba(14, 10, 19, .8);
	padding: 18px 18px !important;
}
#items li.product,
#items li.product:hover {
	background: transparent !important;
	box-shadow: none !important;
}
/* Gradient motywu przy najechaniu – w obrysie kafelka zamiast kwadratu na całym elemencie listy. */
.page-template-list #items li.product:hover::before {
	inset: 6px;
	border-radius: var(--fe-radius);
}
#items li.product:hover > .offer-list-box-description-more,
.woocommerce ul.products li.product:hover > .offer-list-box-description-more {
	display: flex !important;
	flex-direction: column;
	justify-content: center;
}

/* Karta oferty: opis i panel boczny jako zaokrąglone karty. */
body.single-product .offer-description {
	/* Prawy dolny róg też zaokrąglony – panel boczny zwykle jest krótszy od opisu. */
	border-radius: var(--fe-radius) 0 var(--fe-radius) var(--fe-radius);
	overflow: hidden;
}
body.single-product .main-container .side {
	/* Lewy dolny róg prosty – w tym miejscu panel styka się z kolumną opisu. */
	border-radius: 0 var(--fe-radius) var(--fe-radius) 0;
	align-self: flex-start;
}
@media (max-width: 767.98px) {
	body.single-product .offer-description,
	body.single-product .main-container .side {
		border-radius: var(--fe-radius);
		margin-bottom: 12px;
	}
}

/* Slider opinii: kropki pod tekstem, nie na podpisie. */
.opinion .tabs {
	position: static !important;
	gap: 8px;
	margin: 16px 0 0;
	padding: 0;
}
.opinion .tabs .tab-title,
body.single-product .main-container .row .offer-right .opinion ul.tabs li.tab-title {
	width: 10px;
	height: 10px;
	margin: 0 !important;
	background: rgba(255, 255, 255, .28);
	transition: background-color .15s ease, width .15s ease;
}
.opinion .tabs .tab-title.active,
body.single-product .main-container .row .offer-right .opinion ul.tabs li.tab-title.active {
	width: 24px;
	background: var(--fe-accent);
}
.opinion .tabs .tab-title a {
	display: block;
	width: 100%;
	height: 100%;
}
.opinion .tabs-content > .content {
	border-radius: var(--fe-radius);
}

/* Przyciski miast „Sprawdź ofertę” – pigułki. */
#miasta a.miasto {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin: 6px;
	padding: 10px 26px;
	border-radius: 999px;
	text-decoration: none;
	transition: filter .15s ease, transform .1s ease;
}
#miasta a.miasto:hover,
#miasta a.miasto:focus-visible {
	filter: brightness(1.12);
	color: #fff;
}
#miasta a.miasto:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 2px;
}

/* Dolne bloki stron (oferta specjalna, mapa, opinie, pytania, blog) – karty z odstępem.
   Przezroczysta ramka + background-clip daje odstęp 6 px bez zmiany siatki Bootstrap. */
.bottom-page .promotion-footer,
.bottom-page .reviews-footer,
.bottom-page .questions-footer,
.bottom-page .idea-footer,
.bottom-page .reviews-footer > .row > .offer-box-homepage,
.bottom-page .questions-footer > .row > .offer-box-homepage,
.bottom-page .idea-footer > .row > .offer-box-homepage,
.bottom-page > .row > .offer-box-homepage {
	border: 6px solid transparent;
	border-radius: calc(var(--fe-radius) + 6px);
	background-clip: padding-box !important;
	background-origin: padding-box !important;
}

/* Sklep / lista wszystkich atrakcji (archiwa WooCommerce): karty w stylu strony. */
body.woocommerce-shop ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin: 0 0 32px !important;
	padding: 0 !important;
}
body.woocommerce-shop ul.products::before,
body.woocommerce-shop ul.products::after,
body.tax-product_cat ul.products::before,
body.tax-product_cat ul.products::after,
body.tax-product_tag ul.products::before,
body.tax-product_tag ul.products::after {
	display: none !important;
}
body.woocommerce-shop ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
	display: flex;
	flex-direction: column;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 0 16px !important;
	background: #161616;
	border: 1px solid var(--fe-line);
	border-radius: var(--fe-radius);
	overflow: hidden;
	transition: border-color .15s ease, transform .15s ease;
}
body.woocommerce-shop ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.tax-product_tag ul.products li.product:hover {
	border-color: var(--fe-accent);
}
body.woocommerce-shop ul.products li.product > a.woocommerce-LoopProduct-link,
body.tax-product_cat ul.products li.product > a.woocommerce-LoopProduct-link,
body.tax-product_tag ul.products li.product > a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	border-radius: 0;
	color: #fff;
	text-decoration: none;
}
body.woocommerce-shop ul.products li.product img,
body.tax-product_cat ul.products li.product img,
body.tax-product_tag ul.products li.product img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: 0 0 12px !important;
	border-radius: 0 !important;
	background: #222 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3e%3cpath fill='%23555' d='M21 19V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2zM8.5 13.5l2.5 3 3.5-4.5 4.5 6H5l3.5-4.5z'/%3e%3c/svg%3e") center / 48px no-repeat;
	color: transparent; /* ukrywa tekst „Symbol zastępczy”, gdy brakuje pliku obrazka */
	font-size: 0;
}
body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
	margin: 0 16px 6px;
	padding: 0;
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}
body.woocommerce-shop ul.products li.product .price,
body.tax-product_cat ul.products li.product .price,
body.tax-product_tag ul.products li.product .price {
	margin: 0 16px 14px;
	color: var(--fe-accent-light, #c9b2ee) !important;
	font-size: 15px;
	font-weight: 700;
}
body.woocommerce-shop ul.products li.product .btn,
body.tax-product_cat ul.products li.product .btn,
body.tax-product_tag ul.products li.product .btn {
	align-self: flex-start;
	margin: auto 16px 0 !important;
	padding: 10px 20px !important;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	border: 0;
	border-radius: 999px !important;
	background: var(--fe-accent) !important;
	color: #fff !important;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .03em;
}
body.woocommerce-shop ul.products li.product .btn:hover,
body.tax-product_cat ul.products li.product .btn:hover,
body.tax-product_tag ul.products li.product .btn:hover {
	filter: brightness(1.12);
}
.woocommerce-ordering select.orderby {
	min-height: 44px;
	padding: 0 40px 0 14px;
	border: 1px solid var(--fe-line);
	border-radius: var(--fe-radius);
	background-color: #1b1b1b;
	color: #fff;
	color-scheme: dark;
}
.woocommerce-result-count {
	color: #b9b0c8;
}
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
	border: 0 !important;
}
.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 8px;
	border: 1px solid var(--fe-line);
	border-radius: 999px;
	background: #161616;
	color: #fff;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--fe-accent);
	border-color: var(--fe-accent);
	color: #fff;
}
@media (max-width: 1199.98px) {
	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 767.98px) {
	body.woocommerce-shop ul.products,
	body.tax-product_cat ul.products,
	body.tax-product_tag ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
	body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title,
	body.tax-product_cat ul.products li.product .woocommerce-loop-product__title,
	body.tax-product_tag ul.products li.product .woocommerce-loop-product__title {
		margin: 0 12px 4px;
		font-size: 15px;
	}
	body.woocommerce-shop ul.products li.product .price,
	body.woocommerce-shop ul.products li.product .btn {
		margin-left: 12px !important;
		margin-right: 12px !important;
	}
}

/* Stopka: ikona i opis obok siebie (wcześniej tekst zawijał się pod ikonę). */
.icon-bottom > [class*="col-"] {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 14px;
	text-align: left;
}
.icon-bottom > [class*="col-"] > img {
	flex: none;
	width: 56px;
	height: auto;
}
.icon-bottom > [class*="col-"] > span br {
	display: none;
}
@media (max-width: 991.98px) {
	.icon-bottom > [class*="col-"] > span br {
		display: inline;
	}
}

/* Brak pliku obrazka zastępczego WooCommerce: zamiast „zepsutego obrazka” – grafika z logo Feel Event (images/fe-placeholder.svg). */
img.woocommerce-placeholder {
	content: url("../images/fe-placeholder.svg");
	object-fit: cover;
	background: #18141c;
	border: 0 !important;
}

/* Blok „Działamy na terenie całego kraju”: stałe proporcje ucinały listę miast (np. „Łódź”). */
.bottom-page .map-footer {
	aspect-ratio: auto;
	min-height: 320px;
}

/* Karta oferty: pusty blok „Opinie klientów” (produkt bez opinii) – sam nagłówek bez treści. */
body.single-product .offer-right .opinion:not(:has(.tabs-content)) {
	display: none;
}

/* ---------- Strona kontaktu ---------- */
.page-template-contact .container-top > .row {
	align-items: stretch;
}
.page-template-contact .container-top .side {
	display: flex;
}
.page-template-contact .container-top .side > .row {
	flex: 1;
	margin: 0;
}
.page-template-contact .container-top .left-navigation {
	height: 100%;
	margin-bottom: 0;
	border-radius: var(--fe-radius) 0 0 var(--fe-radius);
}
.page-template-contact .container-top .cf-div {
	border-radius: 0 var(--fe-radius) var(--fe-radius) 0;
	padding-bottom: 24px;
}
@media (max-width: 767.98px) {
	.page-template-contact .container-top .left-navigation,
	.page-template-contact .container-top .cf-div {
		border-radius: var(--fe-radius);
	}
	.page-template-contact .container-top .side {
		margin-bottom: 12px;
	}
}

/* Pola formularza kontaktowego – jak w formularzu zamówienia. */
.page-template-contact .wpcf7 input[type=text],
.page-template-contact .wpcf7 input[type=email],
.page-template-contact .wpcf7 input[type=tel],
.page-template-contact .wpcf7 textarea {
	min-height: 48px;
	margin-bottom: 4px;
	padding: 12px 14px;
	border: 1px solid #737a7e;
	border-radius: var(--fe-radius);
	background: #1b1b1b;
	color: #fff;
	font-size: 16px;
	color-scheme: dark;
}
.page-template-contact .wpcf7 textarea {
	min-height: 140px;
}
.page-template-contact .wpcf7 input::placeholder,
.page-template-contact .wpcf7 textarea::placeholder {
	color: #9ba1a5;
}
.page-template-contact .wpcf7 input[type=text]:focus,
.page-template-contact .wpcf7 input[type=email]:focus,
.page-template-contact .wpcf7 input[type=tel]:focus,
.page-template-contact .wpcf7 textarea:focus {
	border-color: var(--fe-accent);
	background: #1b1b1b;
	color: #fff;
	box-shadow: 0 0 0 3px rgba(var(--fe-accent-rgb, 122, 90, 176),  .35);
}
.page-template-contact .wpcf7 .wpcf7-acceptance input[type=checkbox] {
	width: 22px;
	height: 22px;
	margin-right: 10px;
	vertical-align: middle;
	accent-color: var(--fe-accent);
}
.page-template-contact .wpcf7 .wpcf7-list-item-label {
	color: #b9bdc0;
	font-size: 14px;
}
.page-template-contact .wpcf7 input.wpcf7-submit {
	display: inline-flex;
	width: auto;
	min-height: 52px;
	margin-top: 12px;
	padding: 14px 36px;
	border: 0;
	border-radius: 999px;
	background: var(--fe-accent);
	color: #fff;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(var(--fe-accent-rgb, 122, 90, 176),  .35);
}
.page-template-contact .wpcf7 input.wpcf7-submit:hover,
.page-template-contact .wpcf7 input.wpcf7-submit:focus-visible {
	filter: brightness(1.12);
	outline: 3px solid var(--fe-accent-light, #c9b2ee);
	outline-offset: 2px;
}

/* Mapy z adresami */
.page-template-contact .container-bottom {
	border-radius: var(--fe-radius);
	padding: 32px 20px 24px;
}
.page-template-contact .container-bottom iframe {
	display: block;
	border-radius: var(--fe-radius);
	overflow: hidden;
}

/* Slider opinii – mocniejsze selektory (motyw nadpisywał rozmiar kropek i odstęp od dymka). */
.offer-box-homepage.opinion ul.tabs {
	position: static !important;
	display: flex !important;
	gap: 8px;
	margin: 18px 0 0 !important;
	padding: 0 !important;
}
.offer-box-homepage.opinion ul.tabs li.tab-title {
	width: 10px !important;
	height: 10px !important;
	margin: 0 !important;
	border-radius: 999px;
	background: rgba(255, 255, 255, .28);
}
.offer-box-homepage.opinion ul.tabs li.tab-title.active {
	width: 24px !important;
	background: var(--fe-accent);
}

/* Formularz kontaktowy – wymuszenie (motyw ma silniejsze selektory dla pól i przycisku). */
.page-template-contact .cf-div .wpcf7 input[type=text],
.page-template-contact .cf-div .wpcf7 input[type=email],
.page-template-contact .cf-div .wpcf7 input[type=tel],
.page-template-contact .cf-div .wpcf7 textarea {
	min-height: 48px !important;
	padding: 12px 14px !important;
	border: 1px solid #737a7e !important;
	border-radius: var(--fe-radius) !important;
	background: #1b1b1b !important;
	color: #fff !important;
	font-size: 16px !important;
}
.page-template-contact .cf-div .wpcf7 textarea {
	min-height: 160px !important;
}
.page-template-contact .cf-div .wpcf7 input:focus,
.page-template-contact .cf-div .wpcf7 textarea:focus {
	border-color: var(--fe-accent) !important;
	box-shadow: 0 0 0 3px rgba(var(--fe-accent-rgb, 122, 90, 176),  .35) !important;
}
.page-template-contact .cf-div .wpcf7 p {
	margin-bottom: 14px;
}
.page-template-contact .cf-div .wpcf7 input.wpcf7-submit {
	display: inline-flex !important;
	width: auto !important;
	min-height: 52px !important;
	padding: 14px 36px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--fe-accent) !important;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	box-shadow: 0 8px 22px rgba(var(--fe-accent-rgb, 122, 90, 176),  .35) !important;
}
.page-template-contact .cf-div .wpcf7 .wpcf7-acceptance input[type=checkbox] {
	width: 22px !important;
	height: 22px !important;
	-webkit-appearance: auto !important;
	appearance: auto !important;
	accent-color: var(--fe-accent);
}

/* Blok treści na stronach typu wydarzenia (Wieczory kawalerskie / panieńskie) – zaokrąglona karta. */
.category-description {
	border-radius: var(--fe-radius);
	overflow: hidden;
	margin-bottom: 6px;
}

/* Karta oferty: zdjęcie nagłówka wystaje ~40 px w dół i przykrywało górę panelu z ceną
   (galeria jest pozycjonowana, panel nie) – obie kolumny nad zdjęciem. */
body.single-product .main-container .offer-description,
body.single-product .main-container .offer-right {
	position: relative;
	z-index: 3;
}

/* Stopka: linki i adresy wyśrodkowane (na telefonach i tabletach rozjeżdżały się do lewej). */
@media (max-width: 991.98px) {
	#wrapper-footer,
	#wrapper-footer .row,
	#wrapper-footer [class*="col-"] {
		text-align: center;
	}
	#wrapper-footer ul,
	#wrapper-footer .menu {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 6px 14px;
		padding: 0;
		margin-left: auto;
		margin-right: auto;
	}
	.icon-bottom {
		justify-content: center;
	}
	.icon-bottom > [class*="col-"] {
		max-width: 340px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* Filmy YouTube w opisach ofert/wpisów: duża, wyśrodkowana karta 16:9 zamiast ramki 320×180. */
.entry-content iframe[src*="youtube.com/embed"],
.offer-description iframe[src*="youtube.com/embed"],
.woocommerce-product-details__short-description iframe[src*="youtube.com/embed"],
#tab-description iframe[src*="youtube.com/embed"] {
	display: block;
	width: 100% !important;
	max-width: 760px;
	height: auto !important;
	aspect-ratio: 16 / 9;
	margin: 28px auto !important;
	border: 0;
	border-radius: var(--fe-radius);
	background: #000;
	box-shadow: 0 0 0 1px rgba(var(--fe-accent-rgb, 122, 90, 176), .45), 0 14px 40px rgba(0, 0, 0, .55), 0 0 36px rgba(var(--fe-accent-rgb, 122, 90, 176), .25);
}

/* Galeria na karcie oferty: skrypt Bootstrap 4 + style Bootstrap 5 nazywają kroki przejścia inaczej,
   więc nowy slajd nie był wsuwany (pusta ramka). Płynne przenikanie zamiast przesuwania, stała proporcja. */
#carouselExampleControls .carousel-inner {
	position: relative;
	aspect-ratio: 3 / 2;
	background: #111;
	overflow: hidden;
}
#carouselExampleControls .carousel-item {
	display: block !important;
	position: absolute;
	inset: 0;
	float: none;
	margin: 0;
	opacity: 0;
	z-index: 0;
	transform: none !important;
	transition: opacity .6s ease !important;
	backface-visibility: hidden;
}
#carouselExampleControls .carousel-item.active,
#carouselExampleControls .carousel-item-next.carousel-item-left,
#carouselExampleControls .carousel-item-prev.carousel-item-right,
#carouselExampleControls .carousel-item-next.carousel-item-start,
#carouselExampleControls .carousel-item-prev.carousel-item-end {
	opacity: 1;
	z-index: 1;
}
#carouselExampleControls .active.carousel-item-left,
#carouselExampleControls .active.carousel-item-right,
#carouselExampleControls .active.carousel-item-start,
#carouselExampleControls .active.carousel-item-end {
	opacity: 0;
	z-index: 0;
}
#carouselExampleControls .carousel-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#carouselExampleControls .carousel-control-prev,
#carouselExampleControls .carousel-control-next {
	z-index: 2;
}
@media (prefers-reduced-motion: reduce) {
	#carouselExampleControls .carousel-item {
		transition: none !important;
	}
}

/* Slider opinii – układ (wspólny dla stron miast, ofert i dolnych bloków). */
.opinion .tabs-content > section.content {
	margin: 0;
	padding: 22px 24px 30px;
	line-height: 1.5;
}
.opinion .tabs-content > section.content p {
	margin: 0 0 12px;
}
.opinion .tabs-content > section.content p:last-child {
	margin: 0;
	font-weight: 700;
	opacity: .9;
}
.fe-op-ready .tabs-content > section.content.active {
	animation: fe-op-in .45s ease;
}
@keyframes fe-op-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}
.offer-box-homepage.opinion ul.tabs,
.opinion ul.tabs {
	position: static !important;
	display: flex !important;
	align-items: center;
	gap: 8px;
	margin: 22px 0 4px !important;
	padding: 0 !important;
	list-style: none;
}
.offer-box-homepage.opinion ul.tabs li.tab-title,
.opinion ul.tabs li.tab-title,
body.single-product .main-container .row .offer-right .opinion ul.tabs li.tab-title {
	flex: none;
	width: 10px !important;
	height: 10px !important;
	margin: 0 !important;
	padding: 0;
	float: none !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .3) !important;
	cursor: pointer;
	transition: width .25s ease, background-color .25s ease;
}
.offer-box-homepage.opinion ul.tabs li.tab-title.active,
.opinion ul.tabs li.tab-title.active,
body.single-product .main-container .row .offer-right .opinion ul.tabs li.tab-title.active {
	width: 26px !important;
	background: var(--fe-accent, #7a5ab0) !important;
}
.opinion ul.tabs li.tab-title a {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
}
/* Większy obszar dotyku przy małych kropkach. */
.opinion ul.tabs li.tab-title a::after {
	content: "";
	position: absolute;
	inset: -10px -4px;
}
@media (prefers-reduced-motion: reduce) {
	.fe-op-ready .tabs-content > section.content.active {
		animation: none;
	}
}
/* Dolne karty (opinie, pytania, oferta specjalna, blog): motyw ma stałe proporcje 1.2:1 – na telefonie dłuższa
   opinia lub adres wychodziły poza kartę, a kropki slidera nachodziły na kolejny blok. Wysokość wg treści. */
@media (max-width: 767.98px) {
	.bottom-page .promotion-footer,
	.bottom-page .reviews-footer,
	.bottom-page .questions-footer,
	.bottom-page .idea-footer {
		aspect-ratio: auto !important;
		height: auto !important;
		min-height: 280px;
	}
}
.opinion {
	display: flow-root;
}
.offer-box-homepage.opinion ul.tabs,
.opinion ul.tabs {
	float: none !important;
	clear: both;
}

/* Tytuł bloku treści stron wydarzeń: motyw ma wysokość wiersza mniejszą niż rozmiar czcionki –
   przy zawinięciu na telefonie linie nachodziły na siebie. Tekst i znacznik H1 bez zmian. */
.category-description .title h1 {
	line-height: 1.2 !important;
	overflow-wrap: anywhere;
}
@media (max-width: 767.98px) {
	.category-description .title h1 {
		font-size: clamp(1.5rem, 6.4vw, 2rem) !important;
	}
}

/* Koszyk: przycisk „Zobacz koszyk” w komunikacie prowadzi na tę samą stronę i rozbijał układ komunikatu. */
.woocommerce-cart .woocommerce-message .button.wc-forward {
	display: none !important;
}
.woocommerce-message .button.wc-forward {
	float: none !important;
	display: inline-flex;
	margin: 10px 0 0 !important;
	order: 2;
}
/* Pole ilości: bez systemowych strzałek Safari (zmiana ilości zostaje – klawiatura numeryczna). */
.woocommerce .quantity input.qty::-webkit-inner-spin-button,
.woocommerce .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.woocommerce .quantity input.qty {
	-moz-appearance: textfield;
	appearance: textfield;
}

/* Dymek opinii: motyw ma stałą wysokość 240 px – dłuższy tekst nachodził na kropki. */
.opinion .tabs-content > section.content {
	height: auto !important;
	min-height: 200px;
}

/* Plakietka „Orły” – co kilka sekund (losowo) przelatuje po niej złoty refleks.
   Refleks przycięty maską do kształtu grafiki, więc błyszczy tylko złoto. Skrypt: feelevent-layout-fixes.php */
.fe-orly-wrap {
	position: absolute;
	display: inline-block;
	line-height: 0;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
.fe-orly-wrap > #orlyrozrywki {
	position: static !important;
	display: block;
}
.fe-orly-wrap::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(105deg, transparent 35%, rgba(255, 240, 190, .15) 42%, rgba(255, 250, 225, .95) 50%, rgba(255, 228, 150, .25) 58%, transparent 65%);
	background-size: 250% 100%;
	background-position: 130% 0;
	mix-blend-mode: screen;
	opacity: 0;
}
.fe-orly-wrap.fe-orly-masked.fe-shine::after {
	animation: fe-orly-shine 1.3s ease-in-out;
}
.fe-orly-wrap.fe-shine > #orlyrozrywki {
	animation: fe-orly-glow 1.3s ease-in-out;
}
@keyframes fe-orly-shine {
	0% { opacity: 1; background-position: 130% 0; }
	100% { opacity: 1; background-position: -30% 0; }
}
@keyframes fe-orly-glow {
	0%, 100% { filter: none; }
	50% { filter: brightness(1.35) drop-shadow(0 0 6px rgba(255, 210, 110, .45)); }
}
@media (prefers-reduced-motion: reduce) {
	.fe-orly-wrap.fe-shine::after,
	.fe-orly-wrap.fe-shine > #orlyrozrywki {
		animation: none;
	}
}

/* Strony miast: opis + „Opinie klientów” – zaokrąglone rogi zewnętrzne, prosty róg w miejscu styku
   (jak na karcie oferty). Na węższych ekranach bloki stoją pod sobą – wszystkie rogi zaokrąglone. */
.listtemplate > .subpage.full {
	border-radius: var(--fe-radius) 0 var(--fe-radius) var(--fe-radius);
}
.listtemplate > .opinion {
	border-radius: 0 var(--fe-radius) var(--fe-radius) 0;
	align-self: flex-start;
}
@media (max-width: 991.98px) {
	.listtemplate > .subpage.full,
	.listtemplate > .opinion {
		border-radius: var(--fe-radius);
	}
	.listtemplate > .opinion {
		margin-top: 12px;
	}
}

/* Podmenu miast (komputery): pływająca karta pod pozycją menu zamiast półprzezroczystego pasa na całą szerokość. */
@media (min-width: 992px) {
	#main-menu > li.dropdown {
		position: relative;
	}
	#main-menu > li .dropdown-menu {
		left: 50% !important;
		right: auto !important;
		top: calc(100% + 10px) !important;
		width: auto !important;
		min-width: 0;
		transform: translateX(-50%) !important;
		padding: 8px !important;
		gap: 6px;
		background: #16101d !important;
		border: 1px solid rgba(var(--fe-accent-rgb, 122, 90, 176), .45) !important;
		border-radius: var(--fe-radius) !important;
		box-shadow: 0 16px 40px rgba(0, 0, 0, .55);
		white-space: nowrap;
		z-index: 1050;
	}
	#main-menu > li .dropdown-menu.show {
		animation: fe-submenu-in .18s ease;
	}
	/* Mostek, żeby kursor nie gubił menu w szczelinie nad kartą. */
	#main-menu > li .dropdown-menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -12px;
		height: 12px;
	}
	#main-menu > li .dropdown-menu > li::before,
	#main-menu > li .dropdown-menu > li::after {
		content: none !important;
	}
	#main-menu > li .dropdown-menu a {
		display: block;
		height: auto !important;
		padding: 9px 16px !important;
		border-radius: 999px;
		color: #fff;
		font-size: 14px !important;
		font-weight: 700 !important;
		line-height: 1.2 !important;
		text-transform: none;
		transition: background-color .15s ease;
	}
	#main-menu > li .dropdown-menu a:hover,
	#main-menu > li .dropdown-menu a:focus-visible,
	#main-menu > li .dropdown-menu .current-menu-item > a {
		background: var(--fe-accent, #7a5ab0) !important;
		text-decoration: none !important;
	}
}
@keyframes fe-submenu-in {
	from { opacity: 0; transform: translate(-50%, -4px); }
	to { opacity: 1; transform: translate(-50%, 0); }
}
@media (prefers-reduced-motion: reduce) {
	#main-menu > li .dropdown-menu.show {
		animation: none;
	}
}

/* Zdjęcia nagłówków stron (koszyk, kontakt, FAQ, karta oferty, miasta, typy wydarzeń):
   płynne wygaszenie u dołu w czarne tło zamiast ostrej krawędzi. */
.header-picture > img,
.header-container .header-picture > img,
.header-container-product .header-picture > img,
.slider .img-container > img {
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 55%, rgba(0, 0, 0, .55) 78%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 0%, #000 55%, rgba(0, 0, 0, .55) 78%, transparent 100%);
}
/* Cień pod nagłówkiem: grafika motywu kończyła się szarym pasem – gradient do czerni tła strony. */
.header-picture .shadow-bottom,
.header-container-product .shadow-bottom,
.slider .img-container .shadow-bottom {
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 55%, #000 100%) !important;
}

/* Media zewnętrzne (mapy Google, YouTube, Vimeo) – placeholder „Załaduj …” zamiast iframe (wtyczka
   feelevent-consent, FE_CONSENT_EXTERNAL_MEDIA / FE_PERF_MAP_FACADE). Kolor akcentu wg płci (--fe-accent z header.php). */
.fe-media {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	max-width: 100%;
	min-height: 200px;
	margin: 0 auto 12px;
	padding: 16px;
	box-sizing: border-box;
	border-radius: var(--fe-radius, 12px);
	border: 1px solid var(--fe-line, rgba(255, 255, 255, .14));
	background: #15121c radial-gradient(circle at 50% 35%, rgba(var(--fe-accent-rgb, 122, 90, 176), .35), transparent 65%);
	color: #fff;
	text-align: center;
	line-height: 1.4;
}
.fe-media--youtube,
.fe-media--vimeo {
	max-width: 640px;
}
.fe-media__icon {
	font-size: 32px;
	line-height: 1;
}
.fe-media__label {
	font-weight: 600;
	font-size: 14px;
	max-width: 90%;
}
.fe-media__btn {
	min-height: 44px;
	padding: 8px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--fe-accent, #7a5ab0);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.fe-media__btn:hover,
.fe-media__btn:focus-visible {
	box-shadow: 0 6px 18px rgba(var(--fe-accent-rgb, 122, 90, 176), .55);
	outline: 2px solid #fff;
	outline-offset: 2px;
}
.fe-media__note {
	font-size: 12px;
	opacity: .8;
	max-width: 92%;
}
.fe-media__link {
	padding: 0;
	border: 0;
	background: none;
	color: var(--fe-accent-light, #c9b2ee);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}
.fe-media__open {
	font-size: 12px;
	color: rgba(255, 255, 255, .75);
	text-decoration: underline;
}
.fe-media__open:hover {
	color: #fff;
}
iframe.fe-media-frame {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0 auto 12px;
	border: 0;
	border-radius: var(--fe-radius, 12px);
}
iframe.fe-media-frame--youtube,
iframe.fe-media-frame--vimeo {
	max-width: 640px;
}

/* „Podobne oferty” pod kartą oferty (SEO-04, L4 – teraz na wszystkich ofertach ze stroną miasta):
   kafelki w stylu strony; na telefonie przewijane w poziomie zamiast trzech pełnych ekranów. */
.right-list-container {
	margin-top: 32px;
}
.right-list-container .fe-related-title {
	margin-top: 16px;
}
.right-list-container .fe-related-title span {
	font-size: clamp(1.5rem, 5vw, 2rem);
}
.right-list-container .fe-related-title hr {
	margin: 12px 0 20px;
	border-color: rgba(255, 255, 255, .15);
	opacity: 1;
}
.right-list-container .offer-list-box > a {
	display: block;
	overflow: hidden;
	border-radius: var(--fe-radius, 12px);
	background: #17191a;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease;
}
.right-list-container .offer-list-box > a:hover,
.right-list-container .offer-list-box > a:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .45), 0 0 0 1px rgba(var(--fe-accent-rgb, 122, 90, 176), .55);
}
.right-list-container .offer-list-box > a > img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
}
.right-list-container .offer-list-box .shadow-bottom {
	position: static;
	padding: 14px 16px 16px;
	background: none;
}
.right-list-container .offer-list-box .product-price-tickr {
	margin: 0;
}
@media (max-width: 767.98px) {
	.right-list-container .row.offer-list {
		flex-wrap: nowrap;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 8px;
		scrollbar-width: none;
	}
	.right-list-container .row.offer-list::-webkit-scrollbar {
		display: none;
	}
	.right-list-container .offer-list-box {
		flex: 0 0 78%;
		max-width: 78%;
		scroll-snap-align: start;
	}
}

/* Link „w górę” do strony miasta pod „Podobne oferty” (LINKS-01): jedna linia jak tekst opisu oferty. */
.right-list-container .fe-city-link {
	margin: 16px 0 0;
	font-size: .875rem;
	line-height: 1.6;
	color: rgb(178, 178, 178);
}

/* Stopka: 8 linków (SEO-04, L6) – zawijanie w rzędy zamiast wychodzenia poza ekran. */
.copyright ul.fe-footer-links {
	flex-wrap: wrap;
	gap: 4px 0;
}
@media (max-width: 991.98px) {
	.copyright ul.fe-footer-links {
		justify-content: center;
	}
}

/* Listy w treści stron (np. „Jak zarezerwować” na stronach miast): jak akapity motywu – były białe i większe. */
.container.subpage-info .subpage article ol li,
.container.subpage-info .subpage article ul:not(.tabs):not(.products) li {
	font-size: .9rem;
	color: #b2b2b2;
	line-height: 1.6;
	margin-bottom: .35rem;
}
