/*
 * TASSEL Costume Rental 1.7 — one-page UX / Loopy's visual language.
 *
 * Założenia:
 * - statyczna treść pozostaje natywnymi blokami Gutenberg;
 * - szerokość strony pozostaje pod kontrolą motywu / Kadence;
 * - sekcje wypełniają tylko obszar treści wybrany w ustawieniach strony,
 *   a ich wnętrze ma jeden przewidywalny kontener;
 * - nagłówki na froncie dostają lekki efekt litera-po-literze bez biblioteki;
 * - brak layoutowego JS, ciężkich sliderów i zewnętrznych zależności.
 */

.tcr-pattern {
	--tcr-ink: #17253d;
	--tcr-navy: #172942;
	--tcr-navy-2: #214967;
	--tcr-blue: #29b8e8;
	--tcr-green: #55ba45;
	--tcr-yellow: #ffc21c;
	--tcr-orange: #ff7a1b;
	--tcr-red: #ef4027;
	--tcr-pink: #e958a4;
	--tcr-violet: #8c69dc;
	--tcr-muted: #667486;
	--tcr-line: rgba(23, 37, 61, .11);
	--tcr-wide: 1240px;
	--tcr-gutter: clamp(20px, 3.2vw, 46px);
	--tcr-radius-lg: 30px;
	--tcr-radius-md: 22px;
	position: relative;
	isolation: isolate;
	box-sizing: border-box;
	width: 100%;
	margin-block: 0 !important;
	padding-block: clamp(78px, 7.4vw, 118px);
	color: var(--tcr-ink);
}

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

/*
 * Nie wyłamujemy sekcji z kontenera motywu. W 1.7.0 wzorzec zapisywał
 * align=full i dodatkowo wymuszał 100vw; przez to ustawienia szerokości
 * strony w Kadence nie miały żadnego efektu, a przy części układów lewa
 * krawędź treści potrafiła wyjść poza viewport. Reguła poniżej jest też
 * zabezpieczeniem dla stron zapisanych jeszcze przez 1.7.0.
 */
body:not(.wp-admin) .tcr-pattern.alignfull {
	width: 100% !important;
	max-width: 100% !important;
	margin-inline: 0 !important;
	left: auto !important;
	right: auto !important;
}

.tcr-pattern + .tcr-pattern {
	margin-top: 0 !important;
}

/*
 * Jeden, rzeczywisty kontener treści dla każdej sekcji one-page.
 *
 * Core Group renderuje dzieci wewnątrz .wp-block-group__inner-container,
 * dlatego poprzedni selektor ".tcr-pattern > .alignwide" nie trafiał w
 * nagłówki/siatki na froncie Kadence. Efektem były elementy rozciągnięte do
 * 100% viewportu, podczas gdy sam katalog miał poprawną szerokość.
 *
 * Kontener jest teraz narzucony na pierwszą warstwę WEWNĄTRZ sekcji. Tło
 * sekcji pozostaje full-width, ale cała treść ma zawsze tę samą oś i gutter.
 */
body:not(.wp-admin) .tcr-pattern > .wp-block-group__inner-container {
	position: relative;
	z-index: 1;
	float: none !important;
	clear: both !important;
	width: min(var(--tcr-wide), calc(100% - (2 * var(--tcr-gutter)))) !important;
	max-width: none !important;
	margin-inline: auto !important;
	padding-inline: 0 !important;
	left: auto !important;
	right: auto !important;
}

/* Fallback dla rendererów bloków, które nie dodają inner-container. */
body:not(.wp-admin) .tcr-pattern > :where(
	.tcr-hero-layout,
	.tcr-section-heading,
	.tcr-occasion-grid,
	.tcr-occasion-foot,
	.tcr-showcase-block,
	.wp-block-tassel-costume-gallery,
	.tcr-steps-grid,
	.tcr-benefits-layout,
	.tcr-rules-layout,
	.tcr-faq-list,
	.tcr-contact-card
),
.tcr-pattern .tcr-showcase-block.alignwide,
.tcr-pattern .wp-block-tassel-costume-gallery.alignwide,
.tcr-pattern .wp-block-tassel-costume-showcase.alignwide,
.tcr-pattern .wp-block-tassel-location-map.alignwide {
	float: none !important;
	clear: both !important;
	width: min(var(--tcr-wide), calc(100% - (2 * var(--tcr-gutter)))) !important;
	max-width: none !important;
	margin-inline: auto !important;
	left: auto !important;
	right: auto !important;
}

/* W środku już zwężonej sekcji elementy alignwide mają zajmować cały shell,
 * a nie ponownie odejmować gutter. */
body:not(.wp-admin) .tcr-pattern > .wp-block-group__inner-container > .alignwide,
body:not(.wp-admin) .tcr-pattern > .wp-block-group__inner-container > .wp-block-tassel-costume-gallery,
body:not(.wp-admin) .tcr-pattern > .wp-block-group__inner-container > .wp-block-tassel-costume-showcase,
body:not(.wp-admin) .tcr-pattern > .wp-block-group__inner-container > .wp-block-tassel-location-map {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Stare wzorce 1.6 mogły mieć layout=constrained. Nie pozwalamy mu ściskać kart. */
.tcr-pattern :where(
	.tcr-occasion-card,
	.tcr-step,
	.tcr-benefit-card,
	.tcr-rule-card,
	.tcr-rule-highlight,
	.tcr-rules-intro,
	.tcr-contact-copy
) > * {
	width: auto !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.tcr-pattern[id],
#dojazd {
	scroll-margin-top: calc(var(--tcr-header-safe, 88px) + 22px);
}

.tcr-pattern a:focus-visible,
.tcr-pattern button:focus-visible {
	outline: 3px solid rgba(41, 184, 232, .44) !important;
	outline-offset: 4px;
}

.tcr-pattern h1,
.tcr-pattern h2,
.tcr-pattern h3,
.tcr-pattern p,
.tcr-pattern figure {
	margin-top: 0;
}

/* --------------------------------------------------------------------------
   TYPOGRAFIA / tytuły inspirowane Loopy's
   -------------------------------------------------------------------------- */

.tcr-pattern h1,
.tcr-pattern h2 {
	font-family: inherit !important;
	font-weight: 950 !important;
	letter-spacing: -.065em !important;
	text-wrap: balance;
}

.tcr-pattern h2 {
	margin-bottom: 0 !important;
	color: var(--tcr-navy) !important;
	font-size: clamp(42px, 4.35vw, 68px) !important;
	line-height: .95 !important;
	text-shadow: 0 2px 0 rgba(255, 255, 255, .64), 0 8px 22px rgba(23, 41, 66, .14);
}

/* JS rozbija tytuł na słowa i litery wyłącznie na froncie. */
.tcr-split-title {
	--tcr-char-step: 13ms;
}

.tcr-split-title .tcr-word {
	display: inline-block;
	white-space: nowrap;
}

.tcr-split-title .tcr-char {
	display: inline-block;
	position: relative;
	margin-left: -.022em;
	opacity: 0;
	transform: translate3d(0, .22em, 0) rotate(.8deg);
	transition:
		opacity .42s ease,
		transform .52s cubic-bezier(.2, .78, .24, 1);
	transition-delay: calc(var(--tcr-char-index, 0) * var(--tcr-char-step));
	will-change: transform, opacity;
}

.tcr-split-title.is-inview .tcr-char {
	opacity: 1;
	transform: translate3d(0, 0, 0) rotate(0);
}

.tcr-title-on-color,
.tcr-hero h1,
.tcr-occasions h2,
.tcr-steps h2,
.tcr-faq h2,
.tcr-video h2 {
	color: #fff !important;
	text-shadow:
		1px 2px 0 rgba(19, 35, 55, .42),
		1px 2px 8px rgba(0, 0, 0, .38),
		0 10px 24px rgba(23, 41, 66, .18) !important;
}

.tcr-eyebrow {
	margin: 0 0 14px !important;
	color: #a6ebff !important;
	font-size: 11px !important;
	font-weight: 950 !important;
	line-height: 1.35 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase;
}

.tcr-eyebrow-dark {
	color: #118ab3 !important;
}

.tcr-section-lead {
	margin-bottom: 0 !important;
	color: var(--tcr-muted) !important;
	font-size: 16px !important;
	line-height: 1.72 !important;
}

.tcr-section-heading {
	display: grid !important;
	grid-template-columns: minmax(0, 1.55fr) minmax(260px, .75fr);
	align-items: end !important;
	gap: clamp(32px, 5vw, 84px) !important;
	margin-bottom: clamp(34px, 4vw, 54px) !important;
}

.tcr-section-heading:not(.tcr-heading-split) {
	grid-template-columns: 1fr;
}

.tcr-heading-main,
.tcr-heading-aside {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-section-sidecopy {
	max-width: 430px !important;
	margin: 0 0 4px auto !important;
	color: #657485 !important;
	font-size: 14px !important;
	line-height: 1.72 !important;
}

.tcr-text-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #087da7 !important;
	font-weight: 900;
	text-decoration: none !important;
	transition: gap .2s ease, color .2s ease, transform .2s ease;
}

.tcr-text-link:hover {
	gap: 12px;
	color: #d93f83 !important;
	transform: translateY(-1px);
}

/* --------------------------------------------------------------------------
   HERO
   -------------------------------------------------------------------------- */

.tcr-hero {
	min-height: max(760px, 100svh);
	display: flex;
	align-items: center;
	overflow: clip;
	padding-top: calc(var(--tcr-header-safe, 88px) + clamp(44px, 5vw, 76px));
	padding-bottom: clamp(66px, 7vw, 96px);
	background:
		radial-gradient(circle at 73% 58%, rgba(233, 88, 164, .18), transparent 25%),
		radial-gradient(circle at 28% 28%, rgba(41, 184, 232, .16), transparent 26%),
		linear-gradient(126deg, #162a45 0%, #1d4664 55%, #17627a 100%);
	color: #fff;
}

.tcr-hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	right: -170px;
	top: -210px;
	width: 510px;
	height: 510px;
	border: 78px solid rgba(85, 186, 69, .08);
	border-radius: 50%;
	pointer-events: none;
}

.tcr-hero::after {
	content: "";
	position: absolute;
	left: 7%;
	top: 19%;
	width: 10px;
	height: 10px;
	border-radius: 3px;
	background: var(--tcr-pink);
	box-shadow:
		360px -86px 0 -1px var(--tcr-yellow),
		980px 125px 0 -1px var(--tcr-green),
		125px 470px 0 -2px var(--tcr-orange),
		840px 520px 0 -1px var(--tcr-blue),
		690px 165px 0 -2px var(--tcr-red);
	opacity: .9;
	pointer-events: none;
	animation: tcrFloat 6s ease-in-out infinite alternate;
}

.tcr-hero-layout {
	position: relative;
	z-index: 2;
	display: grid !important;
	grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
	align-items: center !important;
	gap: clamp(44px, 5vw, 82px) !important;
}

.tcr-hero-copy,
.tcr-hero-visual {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-hero-copy {
	padding-block: 10px;
}

.tcr-hero h1 {
	max-width: 11.2ch;
	margin: 0 !important;
	font-size: clamp(58px, 6.3vw, 94px) !important;
	line-height: .89 !important;
}

.tcr-hero-lead {
	max-width: 690px;
	margin: 28px 0 26px !important;
	color: #e1f1f7 !important;
	font-size: clamp(16px, 1.32vw, 18px) !important;
	line-height: 1.66 !important;
}

.tcr-hero-badges {
	display: flex !important;
	align-items: center;
	gap: 9px !important;
	margin-bottom: 30px !important;
}

.tcr-hero-badge {
	position: relative;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 9px 13px 9px 30px !important;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 999px;
	background: rgba(255, 255, 255, .075);
	box-shadow: inset 0 1px rgba(255, 255, 255, .08);
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 900 !important;
	line-height: 1.35 !important;
	backdrop-filter: blur(10px);
}

.tcr-hero-badge::before {
	content: "";
	position: absolute;
	left: 13px;
	top: 50%;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--tcr-green);
	box-shadow: 0 0 0 4px rgba(85, 186, 69, .13);
	transform: translateY(-50%);
}

.tcr-badge-yellow::before {
	background: var(--tcr-yellow);
	box-shadow: 0 0 0 4px rgba(255, 194, 28, .13);
}

.tcr-badge-pink::before {
	background: var(--tcr-pink);
	box-shadow: 0 0 0 4px rgba(233, 88, 164, .13);
}

.tcr-hero .wp-block-buttons {
	display: flex !important;
	gap: 11px !important;
}

.tcr-hero .wp-block-button__link {
	position: relative;
	overflow: hidden;
	min-height: 50px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 21px !important;
	border-radius: 14px !important;
	font-size: 13px !important;
	font-weight: 900 !important;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
}

.tcr-hero .wp-block-button__link:hover {
	transform: translateY(-3px);
}

.tcr-primary .wp-block-button__link {
	background: linear-gradient(115deg, #ffcf25, #ff8b1d 52%, #ee4a73) !important;
	box-shadow: 0 13px 30px rgba(255, 132, 27, .22);
	color: #17253d !important;
}

.tcr-primary .wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: -70% -30%;
	background: linear-gradient(100deg, transparent 35%, rgba(255, 255, 255, .45) 50%, transparent 65%);
	transform: translateX(-80%);
	transition: transform .52s ease;
}

.tcr-primary .wp-block-button__link:hover::after {
	transform: translateX(80%);
}

.tcr-secondary .wp-block-button__link {
	border: 1px solid rgba(255, 255, 255, .29) !important;
	background: rgba(255, 255, 255, .07) !important;
	color: #fff !important;
	backdrop-filter: blur(8px);
}

.tcr-secondary .wp-block-button__link:hover {
	background: rgba(255, 255, 255, .13) !important;
}

.tcr-hero-note {
	margin: 16px 0 0 !important;
	color: #afceda !important;
	font-size: 11px !important;
	line-height: 1.55 !important;
}

.tcr-hero-visual {
	position: relative;
	isolation: isolate;
	min-height: 540px;
	display: grid !important;
	place-items: center;
}

.tcr-hero-visual::before {
	content: "";
	position: absolute;
	inset: 2% -3% 1%;
	z-index: -2;
	border-radius: 42% 58% 54% 46% / 45% 42% 58% 55%;
	background: linear-gradient(145deg, rgba(41, 184, 232, .27), rgba(233, 88, 164, .19) 48%, rgba(255, 194, 28, .20));
	filter: drop-shadow(0 28px 56px rgba(6, 23, 38, .16));
	animation: tcrBlob 9s ease-in-out infinite alternate;
}

.tcr-hero-visual::after {
	content: "";
	position: absolute;
	inset: 10% 3% 4%;
	z-index: -1;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 50%;
	transform: rotate(-11deg);
}

.tcr-hero-image {
	width: 100% !important;
	margin: 0 !important;
	text-align: center;
}

.tcr-hero-image img {
	width: min(110%, 660px) !important;
	max-width: none !important;
	filter: drop-shadow(0 34px 44px rgba(4, 17, 29, .28));
	transition: transform .45s cubic-bezier(.2, .8, .2, 1);
}

.tcr-hero-visual:hover .tcr-hero-image img {
	transform: translateY(-8px) rotate(1deg) scale(1.01);
}

.tcr-hero-sticker {
	position: absolute;
	z-index: 3;
	margin: 0 !important;
	display: grid;
	place-items: center;
	text-align: center;
	border-radius: 50%;
	box-shadow: 0 14px 32px rgba(7, 24, 38, .24);
	font-weight: 950 !important;
	line-height: .94 !important;
	transition: transform .22s ease;
}

.tcr-hero-sticker strong,
.tcr-hero-sticker span {
	display: block;
}

.tcr-hero-sticker span {
	margin-top: 4px;
	font-size: 9px;
	font-weight: 900;
}

.tcr-sticker-one {
	right: -1%;
	bottom: 8%;
	width: 98px;
	height: 98px;
	background: var(--tcr-yellow);
	color: #17253d !important;
	font-size: 27px !important;
	transform: rotate(8deg);
}

.tcr-sticker-two {
	left: 1%;
	top: 9%;
	width: 62px;
	height: 62px;
	background: var(--tcr-pink);
	color: #fff !important;
	font-size: 26px !important;
	transform: rotate(-12deg);
}

.tcr-hero-visual:hover .tcr-sticker-one {
	transform: rotate(4deg) scale(1.06);
}

.tcr-hero-visual:hover .tcr-sticker-two {
	transform: rotate(-5deg) scale(1.08);
}

/* --------------------------------------------------------------------------
   OKAZJE — mocny, "Loopy's" żółty band
   -------------------------------------------------------------------------- */

.tcr-occasions {
	overflow: clip;
	background:
		radial-gradient(circle at 5% 90%, rgba(255, 255, 255, .20), transparent 18%),
		linear-gradient(128deg, #ffb735 0%, #ffc93d 52%, #ffb936 100%);
}

.tcr-occasions::before {
	content: "";
	position: absolute;
	left: -130px;
	bottom: -120px;
	width: 280px;
	height: 280px;
	border: 48px solid rgba(255, 255, 255, .17);
	border-radius: 50%;
	pointer-events: none;
}

.tcr-occasions .tcr-eyebrow,
.tcr-occasions .tcr-eyebrow-dark {
	color: #17304e !important;
}

.tcr-occasions .tcr-section-sidecopy {
	color: rgba(23, 37, 61, .78) !important;
	font-weight: 650;
}

.tcr-occasion-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 17px !important;
	margin-bottom: 17px !important;
}

.tcr-occasion-column {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-occasion-card {
	position: relative;
	min-height: 206px;
	display: grid !important;
	grid-template-columns: 74px minmax(0, 1fr);
	grid-template-rows: auto auto 1fr;
	column-gap: 18px;
	align-content: center;
	padding: 24px 23px;
	border: 1px solid rgba(23, 37, 61, .09);
	border-radius: 25px;
	background: rgba(255, 255, 255, .95);
	box-shadow: 0 15px 34px rgba(95, 63, 16, .11);
	overflow: hidden;
	transform: translateZ(0);
	transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s ease, border-color .25s ease;
}

/*
 * Core/Kadence potrafi opakować zawartość Group w dodatkowy
 * .wp-block-group__inner-container. Gdy taki wrapper staje się jedynym
 * elementem siatki, cała treść wpada do pierwszej kolumny. display:contents
 * usuwa wyłącznie jego geometrię — nagłówek, opis i CTA znów są realnymi
 * elementami siatki. W edytorze, gdzie wrappera czasem nie ma, układ działa
 * identycznie bez dodatkowych wyjątków.
 */
.tcr-occasion-card > .wp-block-group__inner-container {
	display: contents !important;
}

.tcr-occasion-card > .wp-block-group__inner-container > * {
	width: auto !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.tcr-occasion-card::after {
	content: "";
	position: absolute;
	right: -44px;
	bottom: -48px;
	width: 110px;
	height: 110px;
	border-radius: 50%;
	background: currentColor;
	opacity: .055;
	transition: transform .3s ease;
}

.tcr-occasion-card:hover {
	transform: translateY(-7px) rotate(-.2deg);
	border-color: rgba(23, 37, 61, .15);
	box-shadow: 0 23px 48px rgba(95, 63, 16, .18);
}

.tcr-occasion-card:hover::after {
	transform: scale(1.4);
}

.tcr-occasion-icon {
	grid-column: 1;
	grid-row: 1 / 4;
	align-self: start;
	width: 70px !important;
	margin: 0 !important;
}

.tcr-occasion-icon img {
	width: 68px !important;
	height: 68px !important;
	display: block;
	object-fit: contain;
	filter: drop-shadow(0 8px 13px rgba(23, 37, 61, .10));
	transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}

.tcr-occasion-card:hover .tcr-occasion-icon img {
	transform: translateY(-4px) rotate(-5deg) scale(1.07);
}

.tcr-occasion-card h3 {
	grid-column: 2;
	min-width: 0;
	margin: 0 0 7px !important;
	color: var(--tcr-ink) !important;
	font-size: 19px !important;
	font-weight: 900 !important;
	line-height: 1.18 !important;
	letter-spacing: -.025em !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	hyphens: none !important;
}

.tcr-occasion-copy {
	grid-column: 2;
	min-width: 0;
	margin: 0 !important;
	color: #657485 !important;
	font-size: 12.5px !important;
	line-height: 1.55 !important;
}

.tcr-occasion-action {
	grid-column: 2;
	align-self: end;
	margin: 14px 0 0 !important;
	font-size: 11.5px !important;
	font-weight: 900 !important;
}

.tcr-occasion-link {
	position: static;
	color: currentColor !important;
	text-decoration: none !important;
}

.tcr-occasion-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
}

.tcr-occasion-link span {
	display: inline-block;
	transition: transform .2s ease;
}

.tcr-occasion-card:hover .tcr-occasion-link span {
	transform: translateX(5px);
}

.tcr-tone-pink { color: #cf3d8c !important; }
.tcr-tone-orange { color: #df6913 !important; }
.tcr-tone-green { color: #439935 !important; }
.tcr-tone-yellow { color: #b88400 !important; }
.tcr-tone-blue { color: #168db5 !important; }
.tcr-tone-violet { color: #7755c5 !important; }

.tcr-tone-pink { background: linear-gradient(135deg, #fff 0%, #fff2f9 100%); }
.tcr-tone-orange { background: linear-gradient(135deg, #fff 0%, #fff2e8 100%); }
.tcr-tone-green { background: linear-gradient(135deg, #fff 0%, #effbea 100%); }
.tcr-tone-yellow { background: linear-gradient(135deg, #fff 0%, #fff9dc 100%); }
.tcr-tone-blue { background: linear-gradient(135deg, #fff 0%, #ebf9ff 100%); }
.tcr-tone-violet { background: linear-gradient(135deg, #fff 0%, #f5f0ff 100%); }

.tcr-occasion-foot {
	display: flex !important;
	justify-content: center;
	align-items: center;
	gap: 9px !important;
	margin-top: 28px !important;
	color: rgba(23, 37, 61, .74);
}

.tcr-occasion-foot p {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	font-size: 13px !important;
}

.tcr-occasion-foot a {
	color: #b72670 !important;
	font-weight: 950;
	text-decoration: none !important;
}

.tcr-occasion-foot a:hover {
	text-decoration: underline !important;
	text-underline-offset: 4px;
}

/* --------------------------------------------------------------------------
   INSPIRACJE — realne zdjęcia z katalogu
   -------------------------------------------------------------------------- */

.tcr-showcase {
	overflow: clip;
	background: linear-gradient(128deg, #e9f9ff 0%, #eff9ef 45%, #fff1e7 100%);
}

.tcr-showcase::before {
	content: "";
	position: absolute;
	right: -74px;
	top: 48px;
	width: 190px;
	height: 190px;
	border: 34px solid rgba(233, 88, 164, .10);
	border-radius: 50%;
}

.tcr-showcase .tcr-eyebrow {
	color: #138db6 !important;
}

.tcr-showcase-block {
	float: none !important;
	clear: both !important;
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

/*
 * Inspiracje: celowo regularna siatka zamiast mozaiki/masonry.
 * Wszystkie cztery stroje mają tę samą rangę, proporcję zdjęcia i linię
 * podpisu. Dzięki temu sekcja wygląda jak dopracowany fragment katalogu,
 * a nie przypadkowo poukładane bannery o różnych wysokościach.
 */
.tcr-showcase-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(14px, 1.35vw, 20px);
	align-items: stretch;
}

.tcr-showcase-card {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid rgba(23, 37, 61, .09);
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 15px 36px rgba(23, 37, 61, .08);
	color: var(--tcr-ink) !important;
	text-decoration: none !important;
	transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s ease, border-color .28s ease;
}

.tcr-showcase-card:hover {
	transform: translateY(-7px);
	border-color: rgba(23, 37, 61, .15);
	box-shadow: 0 24px 52px rgba(23, 37, 61, .14);
}

.tcr-showcase-image {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	min-height: 0;
	flex: 0 0 auto;
	overflow: hidden;
	background: #fff;
	border-bottom: 1px solid rgba(23, 37, 61, .07);
}

.tcr-showcase-image img {
	width: 100% !important;
	height: 100% !important;
	display: block;
	object-fit: contain;
	object-position: center;
	padding: 0;
	transition: transform .48s cubic-bezier(.2, .8, .2, 1);
}

.tcr-showcase-card:hover .tcr-showcase-image img {
	transform: scale(1.045) translateY(-3px);
}

.tcr-showcase-caption {
	position: relative;
	display: flex;
	min-height: 126px;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 17px 18px 18px;
	background: rgba(255, 255, 255, .985);
}

.tcr-showcase-caption small {
	display: block;
	margin-bottom: 4px;
	color: #70808d;
	font-size: 9.5px;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.tcr-showcase-caption strong {
	display: block;
	color: var(--tcr-navy);
	font-size: clamp(17px, 1.35vw, 21px);
	font-weight: 900;
	line-height: 1.12;
	letter-spacing: -.025em;
}

.tcr-showcase-caption em {
	display: inline-block;
	margin-top: auto;
	padding-top: 10px;
	color: #168db5;
	font-size: 10.5px;
	font-style: normal;
	font-weight: 900;
	transition: transform .2s ease;
}

.tcr-showcase-card:hover .tcr-showcase-caption em {
	transform: translateX(5px);
}

/* --------------------------------------------------------------------------
   KATALOG
   -------------------------------------------------------------------------- */

.tcr-catalog-section {
	display: flow-root;
	clear: both;
	background: #f2f7fb;
}

.tcr-catalog-section::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 6px;
	background: linear-gradient(90deg, var(--tcr-pink), var(--tcr-orange), var(--tcr-yellow), var(--tcr-green), var(--tcr-blue), var(--tcr-violet));
}

.tcr-catalog-section > .wp-block-tassel-costume-gallery,
.tcr-catalog-section .wp-block-tassel-costume-gallery {
	position: relative;
	z-index: 1;
	float: none !important;
	clear: both !important;
}

.tcr-catalog-section .tcr-gallery {
	position: relative;
	display: flow-root;
	width: 100%;
	min-height: 1px;
}

/* --------------------------------------------------------------------------
   WIDEO — pomarańczowy band z materiałem z wypożyczalni
   -------------------------------------------------------------------------- */

.tcr-video {
	overflow: clip;
	background:
		radial-gradient(circle at 5% 90%, rgba(255, 255, 255, .20), transparent 18%),
		linear-gradient(128deg, #EE7311 0%, #EE7311 52%, #ffb936 100%);
}

.tcr-video .tcr-eyebrow,
.tcr-video .tcr-eyebrow-dark {
	color: #fff !important;
}

/* Kolumna z filmem — dodaj klasę "tcr-video-visual" bezpośrednio na bloku
   Kolumna, który zawiera tylko blok Film. */

.tcr-video-visual {
	position: relative;
	isolation: isolate;
}

.tcr-video-visual::before {
	content: "";
	position: absolute;
	inset: -16%;
	z-index: -3;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(255, 255, 255, .35), rgba(255, 255, 255, 0) 70%);
}

.tcr-video-visual::after {
	content: "";
	position: absolute;
	inset: -8% -12%;
	z-index: -2;
	border-radius: 42% 58% 63% 37% / 46% 40% 60% 54%;
	background:
		radial-gradient(65% 65% at 22% 18%, rgba(233, 88, 164, .38), transparent 68%),
		radial-gradient(65% 65% at 82% 82%, rgba(41, 184, 232, .34), transparent 68%);
	filter: blur(10px);
	animation: tcrBlob 10s ease-in-out infinite alternate;
}

.tcr-video-visual .wp-block-video {
	position: relative;
	margin: 0 !important;
	border-radius: 22px;
	transform: rotate(-1.6deg);
	box-shadow:
		0 0 0 6px rgba(255, 255, 255, .90),
		0 34px 60px rgba(23, 41, 66, .30),
		0 10px 22px rgba(23, 41, 66, .18);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
}

.tcr-video-visual .wp-block-video::before {
	content: "";
	position: absolute;
	z-index: 3;
	top: -13px;
	left: -13px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--tcr-yellow);
	box-shadow:
		calc(100% + 26px) -8px 0 -1px var(--tcr-pink),
		-6px calc(100% + 20px) 0 -1px var(--tcr-blue),
		calc(100% + 20px) calc(100% + 24px) 0 -2px var(--tcr-green);
	pointer-events: none;
}

.tcr-video-visual .wp-block-video video {
	display: block;
	width: 100%;
	border-radius: 22px;
}

.tcr-video-visual:hover .wp-block-video {
	transform: rotate(-.6deg) translateY(-4px);
	box-shadow:
		0 0 0 6px rgba(255, 255, 255, .90),
		0 44px 76px rgba(23, 41, 66, .34),
		0 14px 28px rgba(23, 41, 66, .20);
}

.tcr-video-visual .wp-block-video::after {
	content: "▶  Zobacz, jak wygląda wizyta";
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 16px 30px;
	border-radius: 999px;
	background: rgba(23, 41, 66, .74);
	color: #fff;
	font-weight: 800;
	font-size: 15px;
	letter-spacing: .01em;
	white-space: nowrap;
	box-shadow: 0 16px 34px rgba(0, 0, 0, .28);
	cursor: pointer;
	transition: opacity .3s ease, transform .3s ease;
}

.tcr-video-visual .wp-block-video:hover::after {
	transform: translate(-50%, -50%) scale(1.04);
}

.tcr-video-visual .wp-block-video.is-playing::after {
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -50%) scale(.92);
}

/* --------------------------------------------------------------------------
   JAK TO DZIAŁA
   -------------------------------------------------------------------------- */

.tcr-steps {
	overflow: clip;
	background: #172942;
	color: #fff;
}

.tcr-steps::before {
	content: "";
	position: absolute;
	right: -260px;
	bottom: -320px;
	width: 560px;
	height: 560px;
	border: 90px solid rgba(41, 184, 232, .07);
	border-radius: 50%;
}

.tcr-steps .tcr-section-lead {
	max-width: 780px;
	margin-inline: auto !important;
	color: #bfd3df !important;
}

.tcr-steps-heading {
	display: block !important;
	max-width: 980px !important;
	margin: 0 auto 48px !important;
	text-align: center;
}

.tcr-steps-heading .tcr-eyebrow {
	margin-inline: auto !important;
}

.tcr-steps-grid {
	position: relative;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px !important;
}

.tcr-steps-grid::before {
	content: "";
	position: absolute;
	z-index: 0;
	left: 5%;
	right: 5%;
	top: 46px;
	border-top: 1px dashed rgba(255, 255, 255, .16);
}

.tcr-step-column {
	position: relative;
	z-index: 1;
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
	display: flex;
}

.tcr-step {
	position: relative;
	width: 100%;
	min-height: 238px;
	padding: 26px 23px 25px;
	border: 1px solid rgba(255, 255, 255, .11);
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .052), rgba(255, 255, 255, .027));
	overflow: hidden;
	transition: transform .23s ease, background .23s ease, border-color .23s ease, box-shadow .23s ease;
}

.tcr-step::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 4px;
	background: var(--tcr-blue);
}

.tcr-step-pink::before { background: var(--tcr-pink); }
.tcr-step-yellow::before { background: var(--tcr-yellow); }
.tcr-step-green::before { background: var(--tcr-green); }

.tcr-step:hover {
	transform: translateY(-6px);
	border-color: rgba(255, 255, 255, .18);
	background: rgba(255, 255, 255, .068);
	box-shadow: 0 18px 34px rgba(0, 0, 0, .12);
}

.tcr-step-number {
	position: relative;
	z-index: 2;
	width: 42px !important;
	height: 42px;
	display: grid;
	place-items: center;
	margin: 0 0 30px !important;
	border-radius: 50%;
	background: rgba(41, 184, 232, .16);
	box-shadow: 0 0 0 8px #172942;
	color: #8be3ff !important;
	font-size: 11px !important;
	font-weight: 950 !important;
	letter-spacing: .07em;
}

.tcr-step-pink .tcr-step-number { background: rgba(233, 88, 164, .16); color: #ff9bcf !important; }
.tcr-step-yellow .tcr-step-number { background: rgba(255, 194, 28, .16); color: #ffe177 !important; }
.tcr-step-green .tcr-step-number { background: rgba(85, 186, 69, .16); color: #a7e69d !important; }

.tcr-step h3 {
	margin: 0 0 10px !important;
	color: #fff !important;
	font-size: 18px !important;
	font-weight: 900 !important;
	line-height: 1.25 !important;
	letter-spacing: -.02em !important;
}

.tcr-step-copy {
	margin: 0 !important;
	color: #b7ccd8 !important;
	font-size: 13px !important;
	line-height: 1.65 !important;
}

/* --------------------------------------------------------------------------
   KORZYŚCI
   -------------------------------------------------------------------------- */

.tcr-benefits {
	overflow: clip;
	background:
		radial-gradient(circle at 0% 35%, rgba(255, 194, 28, .13), transparent 19%),
		linear-gradient(180deg, #fffdf3, #fff);
}

.tcr-benefits::after {
	content: "";
	position: absolute;
	left: -105px;
	top: 90px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: rgba(255, 194, 28, .10);
}

.tcr-benefits-layout {
	display: grid !important;
	grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
	align-items: center !important;
	gap: clamp(42px, 5vw, 76px) !important;
}

.tcr-benefits-intro,
.tcr-benefit-cards {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-benefits-intro h2 {
	max-width: 560px;
}

.tcr-benefits-intro .tcr-section-lead {
	max-width: 520px;
	margin-top: 23px !important;
}

.tcr-benefits-link {
	margin: 25px 0 0 !important;
}

.tcr-benefit-row {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px !important;
	margin-bottom: 15px !important;
}

.tcr-benefit-row:last-child {
	margin-bottom: 0 !important;
}

.tcr-benefit-row > .wp-block-column {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-benefit-card {
	position: relative;
	min-height: 196px;
	padding: 24px;
	border: 1px solid rgba(23, 37, 61, .09);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 10px 28px rgba(23, 37, 61, .05);
	overflow: hidden;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.tcr-benefit-card::after {
	content: "";
	position: absolute;
	right: -38px;
	bottom: -38px;
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background: var(--tcr-blue);
	opacity: .075;
	transition: transform .25s ease;
}

.tcr-benefit-row .wp-block-column:nth-child(2) .tcr-benefit-card::after { background: var(--tcr-pink); }
.tcr-benefit-row:nth-child(2) .wp-block-column:first-child .tcr-benefit-card::after { background: var(--tcr-yellow); }
.tcr-benefit-row:nth-child(2) .wp-block-column:nth-child(2) .tcr-benefit-card::after { background: var(--tcr-green); }

.tcr-benefit-card:hover {
	transform: translateY(-5px);
	border-color: rgba(23, 37, 61, .14);
	box-shadow: 0 19px 42px rgba(23, 37, 61, .10);
}

.tcr-benefit-card:hover::after {
	transform: scale(1.45);
}

.tcr-benefit-number {
	width: 34px !important;
	height: 34px;
	display: grid;
	place-items: center;
	margin: 0 0 29px !important;
	border-radius: 10px;
	background: #e9f9ff;
	color: #138db6 !important;
	font-size: 10px !important;
	font-weight: 950 !important;
}

.tcr-benefit-card h3 {
	margin: 0 0 8px !important;
	color: #20364a !important;
	font-size: 17px !important;
	font-weight: 900 !important;
	line-height: 1.25 !important;
	letter-spacing: -.02em !important;
}

.tcr-benefit-copy {
	margin: 0 !important;
	color: #6f7e8b !important;
	font-size: 12.5px !important;
	line-height: 1.62 !important;
}

/* --------------------------------------------------------------------------
   ZASADY
   -------------------------------------------------------------------------- */

.tcr-rules {
	overflow: clip;
	background: linear-gradient(135deg, #fff8e8 0%, #f7fbff 48%, #eef9f0 100%);
}

.tcr-rules::before {
	content: "";
	position: absolute;
	left: -150px;
	top: -120px;
	width: 300px;
	height: 300px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255, 194, 28, .20), rgba(255, 194, 28, 0) 68%);
}

.tcr-rules-layout {
	display: grid !important;
	grid-template-columns: minmax(300px, .82fr) minmax(0, 1.38fr);
	align-items: stretch !important;
	gap: 24px !important;
}

.tcr-rules-intro-column,
.tcr-rules-cards {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-rules-intro-column {
	display: flex;
}

.tcr-rules-intro {
	position: relative;
	width: 100%;
	padding: 38px;
	border-radius: 29px;
	background: linear-gradient(145deg, #172942 0%, #1d3b59 68%, #225673 100%);
	box-shadow: 0 28px 62px rgba(23, 41, 66, .20);
	color: #fff;
	overflow: hidden;
}

.tcr-rules-intro::before {
	content: "";
	position: absolute;
	left: 0;
	top: 39px;
	width: 7px;
	height: 76px;
	border-radius: 0 10px 10px 0;
	background: linear-gradient(180deg, var(--tcr-yellow), var(--tcr-pink));
}

.tcr-rules-intro::after {
	content: "";
	position: absolute;
	right: -88px;
	top: -90px;
	width: 224px;
	height: 224px;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 65%, rgba(41, 184, 232, .25), rgba(233, 88, 164, .13) 46%, transparent 66%);
}

.tcr-rules-intro h2 {
	position: relative;
	z-index: 1;
	color: #fff !important;
	font-size: clamp(38px, 3.8vw, 56px) !important;
	line-height: .96 !important;
	text-shadow: 1px 2px 8px rgba(0, 0, 0, .34) !important;
}

.tcr-rules-lead {
	position: relative;
	z-index: 1;
	max-width: 440px !important;
	margin: 20px 0 0 !important;
	color: #c8d9e4 !important;
	font-size: 13.5px !important;
	line-height: 1.7 !important;
}

.tcr-rule-stats {
	position: relative;
	z-index: 1;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 11px !important;
	margin-top: 31px !important;
}

.tcr-rule-stats > .wp-block-column {
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-rule-highlight {
	min-height: 100px;
	padding: 17px;
	border: 1px solid rgba(255, 255, 255, .13);
	border-radius: 18px;
	background: rgba(255, 255, 255, .07);
	backdrop-filter: blur(7px);
}

.tcr-rule-highlight h3 {
	margin: 0 !important;
	color: #fff !important;
	font-size: 27px !important;
	font-weight: 950 !important;
	line-height: 1 !important;
	letter-spacing: -.035em !important;
}

.tcr-rule-highlight p {
	margin: 8px 0 0 !important;
	color: #bfd2dc !important;
	font-size: 10.5px !important;
	line-height: 1.4 !important;
}

.tcr-rules-cards {
	display: flex !important;
	flex-direction: column;
}

.tcr-rule-row {
	flex: 1;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px !important;
	margin-bottom: 15px !important;
}

.tcr-rule-row:last-child {
	margin-bottom: 0 !important;
}

.tcr-rule-row > .wp-block-column {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-rule-card {
	position: relative;
	height: 100%;
	min-height: 204px;
	padding: 26px 25px 24px;
	border: 1px solid rgba(23, 37, 61, .09);
	border-radius: 23px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 14px 36px rgba(23, 37, 61, .075);
	overflow: hidden;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.tcr-rule-card::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 4px;
	background: var(--tcr-blue);
}

.tcr-rule-card-yellow::before { background: var(--tcr-yellow); }
.tcr-rule-card-green::before { background: var(--tcr-green); }
.tcr-rule-card-pink::before { background: var(--tcr-pink); }

.tcr-rule-card::after {
	content: "";
	position: absolute;
	right: -42px;
	bottom: -45px;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--tcr-blue);
	opacity: .07;
	transition: transform .25s ease;
}

.tcr-rule-card-yellow::after { background: var(--tcr-yellow); }
.tcr-rule-card-green::after { background: var(--tcr-green); }
.tcr-rule-card-pink::after { background: var(--tcr-pink); }

.tcr-rule-card:hover {
	transform: translateY(-5px);
	border-color: rgba(23, 37, 61, .14);
	box-shadow: 0 20px 44px rgba(23, 37, 61, .11);
}

.tcr-rule-card:hover::after {
	transform: scale(1.4);
}

.tcr-rule-icon {
	width: 37px !important;
	height: 37px;
	display: grid;
	place-items: center;
	margin: 0 0 29px !important;
	border-radius: 11px;
	background: #eaf9ff;
	color: #138db6 !important;
	font-size: 10px !important;
	font-weight: 950 !important;
	letter-spacing: .06em;
}

.tcr-rule-card-yellow .tcr-rule-icon { background: #fff7d7; color: #b78400 !important; }
.tcr-rule-card-green .tcr-rule-icon { background: #edf9ea; color: #438f37 !important; }
.tcr-rule-card-pink .tcr-rule-icon { background: #fff0f8; color: #c73d83 !important; }

.tcr-rule-card h3 {
	position: relative;
	z-index: 1;
	margin: 0 0 9px !important;
	color: var(--tcr-navy) !important;
	font-size: 17px !important;
	font-weight: 900 !important;
	line-height: 1.27 !important;
	letter-spacing: -.02em !important;
}

.tcr-rule-copy {
	position: relative;
	z-index: 1;
	margin: 0 !important;
	color: #667684 !important;
	font-size: 12.5px !important;
	line-height: 1.68 !important;
}

/* --------------------------------------------------------------------------
   FAQ — mocny zielony band + biała karta
   -------------------------------------------------------------------------- */

.tcr-faq {
	overflow: clip;
	background:
		radial-gradient(circle at 90% 8%, rgba(255, 255, 255, .17), transparent 18%),
		linear-gradient(128deg, #49ad3f 0%, #64c84f 100%);
}

.tcr-faq::before {
	content: "";
	position: absolute;
	left: -95px;
	top: 30px;
	width: 210px;
	height: 210px;
	border: 37px solid rgba(255, 255, 255, .12);
	border-radius: 50%;
}

.tcr-faq-heading {
	display: block !important;
	margin-bottom: 34px !important;
}

.tcr-faq .tcr-eyebrow,
.tcr-faq .tcr-eyebrow-dark {
	color: rgba(255, 255, 255, .84) !important;
}

.tcr-faq-list {
	max-width: 1000px !important;
	padding: 14px;
	border: 1px solid rgba(255, 255, 255, .34);
	border-radius: 28px;
	background: rgba(255, 255, 255, .95);
	box-shadow: 0 28px 64px rgba(20, 73, 33, .19);
	backdrop-filter: blur(10px);
}

.tcr-faq .wp-block-details {
	margin: 0 0 10px !important;
	border: 1px solid rgba(23, 37, 61, .10);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 5px 16px rgba(23, 37, 61, .035);
	overflow: hidden;
}

.tcr-faq .wp-block-details:last-child {
	margin-bottom: 0 !important;
}

.tcr-faq .wp-block-details summary {
	position: relative;
	padding: 20px 62px 20px 22px;
	color: var(--tcr-navy);
	font-size: 14px;
	font-weight: 900;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.tcr-faq .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.tcr-faq .wp-block-details summary::after {
	content: "" !important;
	position: absolute;
	right: 18px;
	top: 50%;
	width: 32px;
	height: 32px;
	border: 1px solid rgba(23, 37, 61, .08);
	border-radius: 10px;
	background:
		linear-gradient(currentColor, currentColor) center / 11px 1.6px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1.6px 11px no-repeat,
		#f2faf0 !important;
	color: #38a143;
	transform: translateY(-50%);
	transition: transform .2s ease, background .2s ease, color .2s ease;
}

.tcr-faq .wp-block-details[open] summary::after {
	background:
		linear-gradient(currentColor, currentColor) center / 11px 1.6px no-repeat,
		linear-gradient(currentColor, currentColor) center / 1.6px 11px no-repeat,
		#fff0f7 !important;
	color: #cf3d82;
	transform: translateY(-50%) rotate(45deg);
}

.tcr-faq .wp-block-details > p {
	margin: 0 !important;
	padding: 0 22px 21px;
	color: #667486 !important;
	font-size: 13px !important;
	line-height: 1.72 !important;
}

/* --------------------------------------------------------------------------
   KONTAKT / MAPA
   -------------------------------------------------------------------------- */

.tcr-contact {
	overflow: clip;
	background: linear-gradient(125deg, #e8f9ff 0%, #eef9ef 55%, #fff8df 100%);
}

.tcr-contact-card {
	min-height: 510px;
	display: grid !important;
	grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
	align-items: stretch !important;
	gap: 0 !important;
	border: 1px solid rgba(23, 37, 61, .08);
	border-radius: 31px;
	background: #fff;
	box-shadow: 0 26px 60px rgba(23, 37, 61, .11);
	overflow: hidden;
}

.tcr-contact-copy,
.tcr-contact-visual {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-contact-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(38px, 4.5vw, 60px);
}

.tcr-contact-copy h2 {
	font-size: clamp(40px, 4vw, 58px) !important;
}

.tcr-contact-copy > .tcr-section-lead {
	max-width: 610px !important;
	margin-top: 20px !important;
}

.tcr-contact-columns {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px !important;
	margin: 32px 0 30px !important;
}

.tcr-contact-columns > .wp-block-column {
	min-width: 0;
	width: auto !important;
	flex-basis: auto !important;
}

.tcr-contact-columns h3 {
	margin: 0 0 10px !important;
	color: #405c71 !important;
	font-size: 10px !important;
	font-weight: 950 !important;
	line-height: 1.4 !important;
	letter-spacing: .11em !important;
	text-transform: uppercase;
}

.tcr-contact-columns p {
	margin: 0 !important;
	color: #52677a !important;
	font-size: 12.5px !important;
	line-height: 1.85 !important;
}

.tcr-contact-columns a {
	color: #087da7 !important;
}

.tcr-contact-actions {
	display: flex !important;
	gap: 10px !important;
}

.tcr-contact-actions .wp-block-button__link {
	min-height: 47px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 18px !important;
	border-radius: 12px !important;
	font-size: 11.5px !important;
	font-weight: 900 !important;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
}

.tcr-contact-actions .wp-block-button__link:hover {
	transform: translateY(-3px);
}

.tcr-contact-call .wp-block-button__link {
	background: var(--tcr-navy) !important;
	color: #fff !important;
	box-shadow: 0 11px 24px rgba(23, 41, 66, .16);
}

.tcr-contact-route .wp-block-button__link {
	border: 1px solid rgba(23, 41, 66, .12) !important;
	background: #f3f8fa !important;
	color: var(--tcr-navy) !important;
}

.tcr-contact-visual {
	min-height: 510px;
	background: #deeff4;
}

.tcr-contact-visual > .wp-block-tassel-location-map,
.tcr-contact-visual > .tcr-map-block,
.tcr-map-block,
.tcr-map-preview {
	height: 100%;
}

.tcr-map-preview {
	position: relative;
	min-height: 510px;
	overflow: hidden;
	background:
		radial-gradient(circle at 78% 18%, rgba(255, 194, 28, .18), transparent 20%),
		radial-gradient(circle at 17% 82%, rgba(41, 184, 232, .18), transparent 24%),
		linear-gradient(145deg, #dff3f8 0%, #eaf7ef 100%);
	isolation: isolate;
}

.tcr-map-preview::before,
.tcr-map-preview::after {
	content: "";
	position: absolute;
	inset: -18%;
	z-index: 0;
	pointer-events: none;
}

.tcr-map-preview::before {
	background:
		repeating-linear-gradient(25deg, transparent 0 54px, rgba(255, 255, 255, .70) 55px 64px, transparent 65px 114px),
		repeating-linear-gradient(116deg, transparent 0 78px, rgba(255, 255, 255, .54) 79px 86px, transparent 87px 155px);
	transform: rotate(-4deg);
	opacity: .9;
}

.tcr-map-preview::after {
	inset: 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(23, 41, 66, .025));
}

.tcr-map-art {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.tcr-map-art span {
	position: absolute;
	height: 7px;
	border-radius: 99px;
	background: rgba(79, 121, 139, .18);
	transform-origin: left center;
}

.tcr-map-art span:nth-child(1) { width: 62%; left: 5%; top: 30%; transform: rotate(18deg); }
.tcr-map-art span:nth-child(2) { width: 55%; right: -8%; top: 57%; transform: rotate(-24deg); }
.tcr-map-art span:nth-child(3) { width: 50%; left: 17%; bottom: 26%; transform: rotate(-8deg); }
.tcr-map-art span:nth-child(4) { width: 42%; left: 44%; top: 14%; transform: rotate(76deg); }

.tcr-map-art i {
	position: absolute;
	left: 64%;
	top: 37%;
	width: 64px;
	height: 64px;
	border-radius: 50% 50% 50% 10px;
	background: linear-gradient(145deg, var(--tcr-pink), var(--tcr-orange));
	box-shadow: 0 18px 38px rgba(64, 66, 91, .20);
	transform: translate(-50%, -50%) rotate(-45deg);
}

.tcr-map-art i::after {
	content: "";
	position: absolute;
	inset: 18px;
	border-radius: 50%;
	background: #fff;
}

.tcr-map-info {
	position: absolute;
	z-index: 3;
	left: 25px;
	right: 25px;
	bottom: 25px;
	padding: 19px 20px;
	border: 1px solid rgba(255, 255, 255, .90);
	border-radius: 19px;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 19px 40px rgba(39, 76, 91, .15);
	backdrop-filter: blur(12px);
}

.tcr-map-kicker {
	display: block;
	margin-bottom: 5px;
	color: #168db5;
	font-size: 9.5px;
	font-weight: 950;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.tcr-map-info strong {
	display: block;
	color: #172942;
	font-size: 15px;
	font-weight: 900;
	line-height: 1.25;
}

.tcr-map-info small {
	display: block;
	margin-top: 5px;
	color: #6c7f8b;
	font-size: 11px;
	line-height: 1.45;
}

.tcr-map-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 14px;
}

.tcr-map-load {
	min-height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 16px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: #172942 !important;
	box-shadow: none !important;
	color: #fff !important;
	font-size: 10.5px !important;
	font-weight: 900 !important;
	cursor: pointer;
	transition: transform .18s ease, background .18s ease !important;
}

.tcr-map-load:hover {
	transform: translateY(-2px);
	background: #245171 !important;
}

.tcr-map-route {
	color: #168db5 !important;
	font-size: 10.5px !important;
	font-weight: 900 !important;
	text-decoration: none !important;
}

.tcr-map-route:hover {
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.tcr-map-preview.is-loaded {
	background: #e9f1f3;
}

.tcr-map-preview iframe {
	position: absolute;
	inset: 0;
	z-index: 5;
	width: 100%;
	height: 100%;
	min-height: 510px;
	border: 0;
	display: block;
}

/* --------------------------------------------------------------------------
   EDYTOR
   -------------------------------------------------------------------------- */

.editor-styles-wrapper .tcr-pattern.alignfull {
	width: 100% !important;
	margin-inline: 0 !important;
}

.editor-styles-wrapper .tcr-pattern > .wp-block-group__inner-container {
	width: min(var(--tcr-wide), calc(100% - (2 * var(--tcr-gutter)))) !important;
	max-width: none !important;
	margin-inline: auto !important;
	padding-inline: 0 !important;
}

.editor-styles-wrapper .tcr-pattern > .wp-block-group__inner-container > .alignwide {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

.editor-styles-wrapper .tcr-hero {
	min-height: 720px;
	padding-top: 82px;
}

.editor-styles-wrapper .tcr-showcase-block,
.editor-styles-wrapper .tcr-map-block {
	width: 100% !important;
}

.editor-styles-wrapper .tcr-map-load,
.editor-styles-wrapper .tcr-map-route,
.editor-styles-wrapper .tcr-showcase-card {
	pointer-events: none;
}

.editor-styles-wrapper .tcr-split-title .tcr-char {
	opacity: 1;
	transform: none;
}

/* --------------------------------------------------------------------------
   ANIMACJE
   -------------------------------------------------------------------------- */

@keyframes tcrBlob {
	from { transform: rotate(-3deg) scale(.98); }
	to { transform: rotate(3deg) scale(1.03); }
}

@keyframes tcrFloat {
	from { transform: translate3d(0, 0, 0) rotate(12deg); }
	to { transform: translate3d(0, -8px, 0) rotate(22deg); }
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 1120px) {
	.tcr-pattern {
		--tcr-gutter: clamp(20px, 3vw, 34px);
	}

	.tcr-hero-layout {
		grid-template-columns: minmax(0, 1fr) minmax(350px, .85fr);
		gap: 38px !important;
	}

	.tcr-hero-visual {
		min-height: 490px;
	}

	/* Na szerokich tabletach nadal utrzymujemy równy rząd czterech kart. */

	.tcr-steps-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tcr-steps-grid::before {
		display: none;
	}

	.tcr-contact-card {
		grid-template-columns: minmax(0, 1fr) minmax(370px, .86fr);
	}
}

@media (max-width: 900px) {
	.tcr-pattern {
		padding-block: 76px;
	}

	.tcr-section-heading {
		grid-template-columns: 1fr;
		gap: 0 !important;
	}

	.tcr-section-sidecopy {
		max-width: 690px !important;
		margin: 20px 0 0 !important;
	}

	.tcr-hero {
		min-height: auto;
	}

	.tcr-hero-layout {
		grid-template-columns: 1fr;
		gap: 34px !important;
	}

	.tcr-hero-copy {
		max-width: 760px;
	}

	.tcr-hero h1 {
		max-width: 10.5ch;
	}

	.tcr-hero-visual {
		min-height: 440px;
		max-width: 620px;
		width: 100% !important;
		margin-inline: auto;
	}

	.tcr-occasion-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tcr-showcase-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tcr-benefits-layout,
	.tcr-rules-layout,
	.tcr-contact-card {
		grid-template-columns: 1fr;
	}

	.tcr-rules-intro {
		min-height: 0;
	}

	.tcr-contact-visual,
	.tcr-map-preview,
	.tcr-map-preview iframe {
		min-height: 420px;
	}
}

@media (max-width: 640px) {
	.tcr-pattern {
		--tcr-gutter: 16px;
		padding-block: 64px;
	}

	body:not(.wp-admin) .tcr-pattern.alignfull {
		width: 100% !important;
		max-width: 100% !important;
		margin-inline: 0 !important;
	}

	.tcr-pattern h2 {
		font-size: clamp(38px, 12vw, 52px) !important;
	}

	.tcr-hero {
		padding-top: calc(var(--tcr-header-safe, 72px) + 36px);
		padding-bottom: 60px;
	}

	.tcr-hero h1 {
		font-size: clamp(50px, 14vw, 67px) !important;
	}

	.tcr-hero-lead {
		font-size: 15px !important;
	}

	.tcr-hero-badges {
		gap: 7px !important;
	}

	.tcr-hero-badge {
		font-size: 10px !important;
	}

	.tcr-hero .wp-block-buttons {
		display: grid !important;
		grid-template-columns: 1fr;
	}

	.tcr-hero .wp-block-button,
	.tcr-hero .wp-block-button__link {
		width: 100%;
	}

	.tcr-hero-visual {
		min-height: 350px;
	}

	.tcr-video-visual .wp-block-video {
		transform: rotate(-.8deg);
	}

	.tcr-video-visual .wp-block-video::after {
		padding: 12px 20px;
		font-size: 13px;
		gap: 8px;
	}

	.tcr-sticker-one {
		width: 80px;
		height: 80px;
		font-size: 22px !important;
	}

	.tcr-sticker-two {
		width: 52px;
		height: 52px;
	}

	.tcr-occasion-grid,
	.tcr-steps-grid,
	.tcr-benefit-row,
	.tcr-rule-row,
	.tcr-rule-stats {
		grid-template-columns: 1fr;
	}

	.tcr-occasion-card {
		min-height: 172px;
		grid-template-columns: 62px minmax(0, 1fr);
		padding: 20px 19px;
	}

	.tcr-occasion-icon,
	.tcr-occasion-icon img {
		width: 58px !important;
		height: 58px !important;
	}

	.tcr-occasion-foot {
		align-items: flex-start;
		justify-content: flex-start;
	}

	.tcr-showcase-grid {
		grid-template-columns: 1fr;
	}

	.tcr-showcase-image {
		aspect-ratio: 5 / 4;
	}

	.tcr-showcase-caption {
		min-height: 112px;
	}

	.tcr-step {
		min-height: auto;
	}

	.tcr-rules-intro {
		padding: 31px;
	}

	.tcr-faq-list {
		padding: 10px;
		border-radius: 22px;
	}

	.tcr-faq .wp-block-details summary {
		padding: 18px 56px 18px 17px;
		font-size: 13px;
	}

	.tcr-faq .wp-block-details > p {
		padding: 0 17px 18px;
	}

	.tcr-contact-copy {
		padding: 32px 26px;
	}

	.tcr-contact-columns {
		grid-template-columns: 1fr 1fr;
		gap: 22px !important;
	}

	.tcr-contact-actions {
		display: grid !important;
		grid-template-columns: 1fr;
	}

	.tcr-contact-actions .wp-block-button,
	.tcr-contact-actions .wp-block-button__link {
		width: 100%;
	}

	.tcr-contact-visual,
	.tcr-map-preview,
	.tcr-map-preview iframe {
		min-height: 360px;
	}

	.tcr-map-info {
		left: 15px;
		right: 15px;
		bottom: 15px;
	}

	.tcr-map-art i {
		left: 68%;
		top: 31%;
		width: 55px;
		height: 55px;
	}

	.tcr-map-art i::after {
		inset: 15px;
	}
}

@media (max-width: 440px) {
	.tcr-pattern {
		--tcr-gutter: 14px;
	}

	.tcr-contact-columns {
		grid-template-columns: 1fr;
	}

	.tcr-occasion-card {
		grid-template-columns: 54px minmax(0, 1fr);
		column-gap: 14px;
	}

	.tcr-occasion-icon,
	.tcr-occasion-icon img {
		width: 50px !important;
		height: 50px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tcr-pattern *,
	.tcr-pattern *::before,
	.tcr-pattern *::after {
		animation: none !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}

	.tcr-split-title .tcr-char {
		opacity: 1 !important;
		transform: none !important;
	}

	.tcr-hero-visual:hover .tcr-hero-image img,
	.tcr-showcase-card:hover,
	.tcr-occasion-card:hover,
	.tcr-step:hover,
	.tcr-benefit-card:hover,
	.tcr-rule-card:hover {
		transform: none !important;
	}
}
