* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	outline: unset;
}

:root {
	--txt: #231916;
	--yellow: #FFDA3E;
	--orange: #D8561D;
	--blue: #4C8FE0;
	
	--font-normal: "Poppins", sans-serif;
	--font-header: "itc-avant-garde-gothic-pro", "Poppins", sans-serif;
}

html,
body {
	margin: 0;
	padding: 0;
}

body {
	font-family: var(--font-normal);
	font-size: 16px;
	line-height: 1.5;
	color: var(--txt);
	background: #fff;
}

.fit {
	padding: 0 70px;
}

a {
	color: var(--txt);
	text-decoration: none;
	transition: all 0.25s ease;
}

a:hover {
	transition: all 0.25s ease;
}

.buttonBack {
	font-family: var(--font-header);
	padding: 12px 15px;
	border: 2px solid var(--yellow);
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-weight: 300;
	cursor: pointer;
}

	.buttonBack:hover {
		background: var(--yellow);
		color: var(--txt);
	}

.buttonBlue {
	font-family: var(--font-header);
	font-weight: 500;
	background: var(--blue);
	border: 2px solid var(--blue);
	display: inline-flex;
	padding: 12px 32px;
	align-items: center;
	color: #fff;
	font-size: 18px;
	gap: 12px;
	text-decoration: none;
	cursor: pointer;
	transition: all 0.25s ease;
}

	.buttonBlue:hover {
		background: #fff;
		color: var(--txt);
		transition: all 0.25s ease;
	}
	
.buttonOrange {
	font-family: var(--font-header);
	padding: 12px 50px;
	border: 2px solid var(--orange);
	background: var(--orange);
	color: #fff;
	display: inline-flex;
	align-items: center;
	gap: 20px;
	font-weight: 300;
	cursor: pointer;
}

	.buttonOrange:hover {
		background: #fff;
		color: var(--txt);
	}
	
	.buttonOrange:hover path {
		fill: var(--txt);
	}
	
header {
	background: var(--yellow);
	display: flex;
}

	header .logo {
		background: #fff;
		padding: 25px;
		box-sizing: border-box;
		border: 2px solid var(--yellow);
		box-sizing: border-box;
	}
	
		header .logo img {
			display:block;
			width: 110px;
			height: auto;
		}

	header .headerContent {
		flex-grow: 1;
		display: flex;
		gap: 25px;
		flex-direction: column;
		justify-content: center;
		padding: 10px 60px;
		font-family: var(--font-header);
	}
	
		header .headerContent .headerContent_top {
			font-weight: 300;
		}
		
		header .headerContent .headerContent_bottom {
			font-weight: 500;
		}
		
.back {
	margin: 30px auto;
}

.progressBar {
	width: 100%;
	display: flex;
	border: 2px solid var(--blue);
}

	.progressBar span {
		flex: 0 0 20%;
		color: #fff;
		background: var(--blue);
		text-align: center;
		
		padding: 2px 5px;
		font-size: 14px;
		font-weight: 300;
	}

.progressSteps {
	margin: 70px auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 0;
}

	.progressStepsItem {
		flex: 1 1 20%;
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.progressStepsItem:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 11px;
		left: calc(50% + 12px);
		width: calc(100% - 24px);
		height: 2px;
		background: #D9D9D9;
	}

	.progressStepsDot {
		width: 24px;
		height: 24px;
		border-radius: 50%;
		background: #D9D9D9;
		display: block;
		margin-bottom: 12px;
		position: relative;
		z-index: 1;
	}

	.progressStepsItem p {
		color: var(--txt);
		font-size: 16px;
		font-weight: 300;
		line-height: 1.3;
	}

	.progressSteps.is-step-1 .progressStepsItem:nth-child(1) p,
	.progressSteps.is-step-2 .progressStepsItem:nth-child(2) p,
	.progressSteps.is-step-3 .progressStepsItem:nth-child(3) p,
	.progressSteps.is-step-4 .progressStepsItem:nth-child(4) p,
	.progressSteps.is-step-5 .progressStepsItem:nth-child(5) p, 
	.progressSteps.is-step-6 .progressStepsItem:nth-child(6) p {
		font-weight: 500;
	}

	.progressSteps.is-step-1 .progressStepsItem:nth-child(-n+1) .progressStepsDot,
	.progressSteps.is-step-2 .progressStepsItem:nth-child(-n+2) .progressStepsDot,
	.progressSteps.is-step-3 .progressStepsItem:nth-child(-n+3) .progressStepsDot,
	.progressSteps.is-step-4 .progressStepsItem:nth-child(-n+4) .progressStepsDot,
	.progressSteps.is-step-5 .progressStepsItem:nth-child(-n+5) .progressStepsDot, 
	.progressSteps.is-step-6 .progressStepsItem:nth-child(-n+6) .progressStepsDot {
		background: var(--blue);
	}

	.progressSteps.is-step-2 .progressStepsItem:nth-child(-n+1)::after,
	.progressSteps.is-step-3 .progressStepsItem:nth-child(-n+2)::after,
	.progressSteps.is-step-4 .progressStepsItem:nth-child(-n+3)::after,
	.progressSteps.is-step-5 .progressStepsItem:nth-child(-n+4)::after,
	.progressSteps.is-step-6 .progressStepsItem:nth-child(-n+5)::after {
		background: var(--blue);
		height: 4px;
		top: 10px;
	}
	
/* STRONA 1/5 */
	
.panels {
	width: 90%;
	max-width: 1400px;
	margin: 50px auto;
	padding: 0 5%;
	
	display: flex;
	flex-direction: column;
	gap: 15px;
}
	
	.panels .panel {
		width: 100%;
		border: 2px solid var(--yellow);
		font-weight: 300;
		transition: all 0.25s ease;
	}
	
		.panels .panel .panelTitle {
			display: flex;
			width: 100%;
			align-items: center;
			gap: 20px 30px;
			padding: 15px 25px;
			transition: all 0.25s ease;
		}
		
		.panels .panel .panelTitle .panelHeader {
			font-weight: 500;
			font-family: var(--font-header);
			font-size: 18px;
		}
		
		.panels .panel .panelIco {
			flex-basis: 50px;
		}
		
			.panels .panel .panelIco figure {
				display: flex;
				align-items: center;
				justify-content: center;
				width: 50px;
				height: 50px;
			}
		
				.panels .panel .panelIco figure svg {
					display: block;
					width: 50px;
					height: 50px;
					transition: all 0.25s ease;
				}
		
				.panels .panel .panelIco figure svg path {
					transition: all 0.25s ease;
				}
		
		.panels .panel .panelContent {
			flex-grow: 1;
		}
		
		.panels .panel .panelMore {
			margin-left: auto;
		}
			
			.panels .panel .panelMore figure {
				display: flex;
				align-items: center;
				justify-content: center;
				width: 50px;
				height: 50px;
				transition: all 0.25s ease;
			}
		
				.panels .panel .panelMore figure svg {
					display: block;
					width: 50px;
					height: 50px;
					transition: all 0.25s ease;
				}
		
				.panels .panel .panelMore figure svg path {
					transition: all 0.25s ease;
				}
		
	.panels .panel.active,
	.panels .panel:hover {
		cursor: pointer;
		transition: all 0.25s ease;
	}
	
		.panels .panel.active .panelTitle,
		.panels .panel:hover .panelTitle {
			background: var(--yellow);
			color: var(--txt);
			transition: all 0.25s ease;
		}
	
		.panels .panel.active:not(.filled) .panelIco figure svg path,
		.panels .panel:not(.filled):hover .panelIco figure svg path { 
			fill: #fff;
			transition: all 0.25s ease;
		}
	
		.panels .panel.active .panelMore figure {
			transform: rotate(180deg);
			transition: all 0.25s ease;
		}
		
		.panels .panel.active .panelMore figure svg path,
		.panels .panel:hover .panelMore figure svg path { 
			fill: #fff;
			transition: all 0.25s ease;
		}
			
	.panels .panel .panelBox {
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		padding: 0 35px;
		transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.25s ease;
	}
		
		.panels .panel.active .panelBox {
			opacity: 1;
			padding: 30px 35px;
			box-sizing: content-box;
		}
		
		.panels .panel .panelBox .panelBoxDesc {
			padding: 0 0 45px 62px;
		}
		
		.panels ul.options {
			list-style: none;
			
			display: flex;
			flex-direction: column;
			gap: 30px;
		}

		.panels ul.options li label {
			display: flex;
			align-items: center;
			gap: 30px;
			cursor: pointer;
		}

		.panels ul.options li label .optionHeader {
			display: block;
			font-weight: 500;
			font-family: var(--font-header);
		}

		.panels ul.options li label .optionTxt {
			display: block;
			font-weight: 300;
		}
			
			input[type="radio"],
			input[type="checkbox"] {
				appearance: none;
				-webkit-appearance: none;
				width: 32px;
				max-width: 32px;
				height: 32px;
				border: 2px solid var(--blue);
				background-color: #fff;
				display: inline-grid;
				place-content: center;
				cursor: pointer;
				flex: 0 0 40px;
			}

			input[type="radio"] {
				border-radius: 50%;
			}

			input[type="radio"]::before {
				content: "";
				width: 22px;
				height: 22px;
				border-radius: 50%;
				background: var(--blue);
				transform: scale(0);
				transition: transform 0.2s ease;
			}

			input[type="radio"]:checked::before {
				transform: scale(1);
			}

			input[type="checkbox"] {
				border-radius: 0;
			}

			input[type="checkbox"]:checked {
				background-image: url("data:image/svg+xml,%3Csvg width='27' height='20' viewBox='0 0 27 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.5225 19.2563L26.5419 2.23687L24.305 0L9.5225 14.7819L2.2375 7.51312L0 9.75L9.5225 19.2563Z' fill='%234C8FE0'/%3E%3C/svg%3E");
				background-repeat: no-repeat;
				background-position: center;
				background-size: 27px 20px;
			}
			
.rabaty {
	margin: 70px auto 0 auto;
	width: 70%;
	max-width: 900px;
}

	.rabaty .rabatyInner {
		width: 100%;
		padding: 20px 70px;
		border: 2px solid var(--blue);
	}
	
	.rabaty .rabatyHeader {
		font-family: var(--text-header);
		font-weight: 500;
		
		display: block;
		padding-bottom: 15px;
	}

.rabaty .rabatyHeaderRow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.rabaty .promoToggleInput {
	display: none;
}

.rabaty .promoToggleLabel {
	display: none;
}

.rabaty .rabatyCodeField {
	margin-top: 0;
}
	
	.rabaty input {
		width: 100%;
		padding: 15px 15px;
		border: 2px solid var(--blue);
		
		font-size: 16px;
		color: var(--txt);
	}
	
	.rabaty input::placeholder {
		font-size: 16px;
		color: var(--txt);
	}
	
	.rabaty .button {
		margin: 60px auto 30px auto;
		text-align: center;
	}
	
.rabaty .rabatCount {
	overflow: hidden;
	transition: all 0.25s ease;
}
	
.rabaty .rabatCount.visible,
.rabaty .rabatCount.active {
	padding: 30px 0;
	transition: all 0.25s ease;
}
	
	.rabaty .rabatCountInner {
		background: var(--blue);
		color: #fff;
		padding: 0 60px;
		font-weight: 300;
		max-height: 0;
		opacity: 0;
		transition: max-height 0.35s ease, opacity 0.25s ease, padding 0.25s ease;
		
		display: flex;
		flex-direction: column;
		gap: 25px;
		box-sizing: content-box;
	}

	.rabaty .rabatCount.active .rabatCountInner {
		padding: 40px 60px 80px 60px;
		opacity: 1;
	}
	
	.rabaty .rabatCount.visible .rabatCountInner {
		padding: 40px 60px 80px 60px;
		max-height: unset !important;
		opacity: 1;
	}
	
		.rabaty .rabatCountInner .rabatCols {
			display: flex;
		}
		
			.rabaty .rabatCountInner .rabatCols .rabatColHeader {
				grid-column: span 2;
				width: 100%;
				padding: 0 0;
				text-align: center;
			}
			
			.rabaty .rabatCountInner .rabatCols .rabatColSeparator {
				grid-column: span 2;
				width: 100%;
				padding: 10px 0;
			}
			
				.rabaty .rabatCountInner .rabatCols .rabatColSeparator span {
					display: block;
					width: 100%;
					height: 1px;
					background: #fff;
				}
			
			.rabaty .rabatCountInner .rabatCols .fontHeader {
				font-family: var(--font-header);
				font-size: 20px;
				font-weight: 500;
			}
			
			.rabaty .rabatCountInner .rabatCols .fontSmall {
				font-size: 14px;
				font-weight: 300;
				text-decoration: underline;
			}
			
			.rabaty .rabatCountInner .rabatCols .rabatColLeft {
				flex: 0 1 50%;
				
				display: flex;
				align-items: center;
				gap: 15px;
			}
		
			.rabaty .rabatCountInner .rabatCols .rabatColRight {
				flex: 0 1 50%;
				text-align: right;
				
				display: flex;
				align-items: center;
				justify-content: flex-end;
				gap: 15px;
			}
	
	
	
/* STRONA 2/5 */
	
.daneRezerwujacego {
	width: 90%;
	max-width: 1400px;
	margin: 50px auto;
	padding: 0 5%;
	
	display: flex;
	flex-direction: column;
	gap: 15px;
}
	
	.daneRezerwujacegoHeader {
		font-family: var(--font-header);
		font-size: 30px;
		font-weight: 500;
	}
	
		.daneRezerwujacegoHeader span {
			display: inline-block;
			padding-bottom: 7px;
			border-bottom: 1px solid var(--yellow);
		}
	
.daneGrid {
	display: grid; 
	grid-auto-columns: 1fr; 
	grid-template-columns: 31% 31% 1fr; 
	gap: 10px 20px; 
	padding: 30px 0;
}
	
	.daneGrid .daneField {
		display: grid; 
		grid-auto-columns: 1fr; 
		grid-template-rows: 50px 55px 30px; 
		gap: 0px 0px; 
		gap: 10px;
	}
	
	.daneGrid .daneField.danePadding {
		padding-left: 35px;
	}
		
	.daneGrid .daneSeparatorPerson {
		grid-column: span 3;
		
		display: flex;
		gap: 10px;
		padding: 40px 0 10px 0;
	}
		
		.daneGrid .daneField.fieldFullWidth {
			grid-column: span 3;
		}
			
		.daneGrid .daneField .daneFieldHeader {
			font-family: var(--font-header);
			font-weight: 500;
			font-size: 18px;
			
			display: flex;
			align-items: center;
		}
			
			.daneGrid .daneField .daneFieldHeader span {
				display: inline-block;
				padding-bottom: 3px;
				border-bottom: 1px solid var(--yellow);
			}
						

			.daneGrid .daneField .daneFieldHeader a.copyData {
				margin-left: 100px;
				
				font-family: var(--font-normal);
				display: inline-block;
				font-size: 14px;
				color: var(--blue);
				text-decoration: underline;
				font-weight: 300;
				padding: 7px 12px;
				border: 1px solid var(--yellow);
			}
						
			.daneGrid .daneField .daneFieldHeader a.copyData:hover {
				background: var(--yellow);
				color: var(--txt);
			}
				
		.daneGrid .daneField .daneFieldInput {
			display: flex;
			align-items: center;
			gap: 10px;
		}

		.daneGrid .daneField input[type="text"],
		.daneGrid .daneField input[type="email"] {
			font-family: var(--txt-normal);
			display: block;
			width: 100%;
			font-size: 16px;
			padding: 10px 15px;
			border: 1px solid var(--blue);
			font-weight: 300;
			height: 47px;
		}
					
				.daneGrid .daneField input[type="text"]::placeholder,
				.daneGrid .daneField input[type="email"]::placeholder {
					color: var(--txt);
				}
					
			.daneGrid .daneField input[type="date"],
			.daneGrid .daneField input[type="tel"] {
				font-family: var(--txt-normal);
				display: block;
				width: 170px;
				font-size: 16px;
				height: 47px;
				padding: 10px 15px;
				border: 1px solid var(--blue);
				font-weight: 300;
			}
					
				.daneGrid .daneField input[type="tel"]::placeholder,
				.daneGrid .daneField input[type="email"]::placeholder {
					color: var(--txt);
				}
		
		.daneGrid .daneField .daneFieldMsg {
			padding-left: 40px;
			font-size: 12px;
		}
	
	

	
/* STRONA 3/5 */
	
.uslugiDodatkowe {
	width: 90%;
	max-width: 1400px;
	margin: 100px auto;
	padding: 0 5%;
	
	display: flex;
	flex-direction: column;
	gap: 15px;
}
	
	.uslugiDodatkoweHeader {
		font-family: var(--font-header);
		font-size: 30px;
		font-weight: 500;
	}
	
		.uslugiDodatkoweHeader span {
			display: inline-block;
			padding-bottom: 7px;
			border-bottom: 1px solid var(--yellow);
		}
	
	.uslugiSubHeader {
		font-family: var(--font-header);
		font-size: 18px;
		font-weight: 500;
		margin: 50px 0 20px 0;
	}
	
		.uslugiSubHeader span {
			display: inline-block;
			padding-bottom: 4px;
			border-bottom: 1px solid var(--yellow);
		}
	
	.uslugiList {
		display: flex;
		flex-direction: column;
		gap: 20px;
		
		list-style: none;
	}
	
		.uslugiList li {
			padding: 20px 25px;
			border: 1px solid var(--blue);
			
			display: flex;
			align-items: center;
			gap: 20px;
		}
	
			.uslugiList li figure {
				width: 50%;
				max-width: 40px;
				height: 40px;
			}
	
				.uslugiList li figure svg {
					display: block;
					width: 100%;
					height: 100%;
					object-fit: contain;
				}
		
			.uslugiList li .uslugaTitle {
				flex-grow: 1;
				font-weight: 300;
			}
	
			.uslugiList li .uslugaPrice {
				font-family: var(--font-header);
				font-size: 18px;
				font-weight: 500;
			}

			.textareaBox {
				
			}
			
			.textareaBox textarea {
				font-family: var(--txt-normal);
				display: block;
				width: 100%;
				max-width: 600px;
				resize: unset;
				font-size: 16px;
				padding: 15px 20px;
				border: 1px solid var(--blue);
				font-weight: 300;
			}
					
				.textareaBox textarea::placeholder {
					color: var(--txt);
					font-weight: 300;
				}
		
	.metodyList {
		display: flex;
		flex-direction: column;
		gap: 20px;
		
		list-style: none;
	}
	
		.metodyList li {
		}
	
		.metodyList li label {
			padding: 20px 25px;
			border: 1px solid var(--blue);
			
			display: flex;
			align-items: center;
			gap: 20px;
			
			font-weight: 300;
		}
	

	
/* STRONA 4/5 */
	
.metodyPlatnosci {
	width: 90%;
	max-width: 1400px;
	margin: 100px auto 40px auto;
	padding: 0 5%;
	
	display: flex;
	flex-direction: column;
	gap: 15px;
}
	
	.metodyPlatnosciHeader {
		font-family: var(--font-header);
		font-size: 30px;
		font-weight: 500;
	}
	
		.metodyPlatnosciHeader span {
			display: inline-block;
			padding-bottom: 7px;
			border-bottom: 1px solid var(--yellow);
		}
	
	.metodySubHeader {
		font-family: var(--font-header);
		font-size: 18px;
		font-weight: 500;
		margin: 50px 0 20px 0;
	}
	
		.metodySubHeader span {
			display: inline-block;
			padding-bottom: 4px;
			border-bottom: 1px solid var(--yellow);
		}
		
/* STRONA 5/5 */
	
	
.podsumowanie {
	width: 90%;
	max-width: 1400px;
	margin: 100px auto 40px auto;
	padding: 0 5%;
	
	display: flex;
	flex-direction: column;
	gap: 15px;
}
	
	.podsumowanieHeader {
		font-family: var(--font-header);
		font-size: 30px;
		font-weight: 500;
	}
	
		.podsumowanieHeader span {
			display: inline-block;
			padding-bottom: 7px;
			border-bottom: 1px solid var(--yellow);
		}
	
	.podsumowanieSubHeader {
		font-family: var(--font-header);
		font-size: 18px;
		font-weight: 500;
		margin: 50px 0 20px 0;
	}
	
		.podsumowanieSubHeader span {
			display: inline-block;
			padding-bottom: 4px;
			border-bottom: 1px solid var(--yellow);
		}
		
	.podsumowanieDesc {
		font-size: 14px;
		margin: 15px 0;
	}
		
.next {
	text-align: center;
	margin: 50px auto 80px auto;
}



footer {
	background: #231916;
	padding: 50px 0;
	box-sizing: border-box;
}

	.stFooterColumns {
		display: flex;
		flex-direction: column;
		gap: 50px;
	}

	.stFooterColumns figure {
		text-align: center;
	}

	.stFooterColumnLogoMain {
		width: 100%;
		padding-bottom: 50px;
		border-bottom: 1px solid rgba(255, 255, 255, 0.5);
	}
	
		.stFooterColumnLogoMain img {
			width: 400px;
			height: auto;
		}
	
	.stFooterColumnNav {
		margin-bottom: 100px;
	}

	.stFooterColumnContact,
	.stFooterColumnSocial {
		padding: 0 15%;
		box-sizing: border-box;
		color: #fff;
		align-items: center;
	}

	.stFooterColumnContact p,
	.stFooterColumnSocial p {
		margin: 10px 0;
		font-weight: 300;
		font-size: 16px;
	}

	.stFooterBadge {
		margin-bottom: 80px;
	}

	.stFooterBadge img {
		width: 150px;
		height: auto;
	}

	.stFooterCenter {
		text-align: center;
	}

	.st-contact-link {
		display: inline-block;
		margin: 15px 0;
		font-size: 16px;
		font-weight: 300;
		color: #fff;
	}

	.st-contact-link.st-tel,
	.st-contact-link.st-mail {
		font-family: var(--font-header);
		padding-left: 30px;
		background-size: 15px auto;
		background-repeat: no-repeat;
		background-position: 0 50%;
	}

	.st-contact-link.st-tel {
		margin-top: 70px;
		background-image: url("graf/icoTel.svg");
	}

	.st-contact-link.st-mail {
		margin-top: 0;
		background-image: url("graf/icoMail.svg");
	}

	.st-contact-link:hover {
		color: var(--orange);
	}

	.stFooterColumnSocial {
		display: flex;
		flex-wrap: wrap;
		gap: 0 6%;
		padding: 50px 15%;
		justify-content: center;
	}

	.stFooterColumnSocial a {
		display: inline-block;
	}

	.stFooterColumnSocial a:hover {
		transform: scale(1.1);
	}

	.stFooterNav {
		color: #fff;
		padding: 30px 5%;
		box-sizing: border-box;
	}

	.stFooterNavList {
		display: flex;
		flex-direction: row;
		width: 100%;
		list-style: none;
	}

	.stFooterNavItem {
		flex-grow: 1;
		margin: 4px 0;
		display: block;
	}

	.stFooterNavLink {
		font-weight: 500;
		font-family: var(--font-header);
		color: #fff;
	}

	.stFooterSubmenu {
		padding-top: 10px;
		width: 100%;
		list-style: none;
	}

	.stFooterSubmenuLink {
		display: block;
		color: #fff;
		font-size: 16px;
		font-weight: 200;
	}

	.stFooterNav a:hover {
		color: var(--orange);
	}

	.stFooterCopyright {
		color: #fff;
		text-align: left;
		font-size: 14px;
		padding: 20px 15%;
		box-sizing: border-box;
		border-top: 1px solid rgba(255, 255, 255, 0.5);
		margin: 80px 0 0;
	}

	.stFooterCopyrightInner {
		padding-top: 20px;
		display: flex;
		justify-content: center;
	}
	
	
	
@media screen and (max-width: 1000px) {
	main {
		position: relative;
		display: flex;
		flex-direction: column;
	}
	
	.buttonOrange {
		padding: 5px 25px;
	}
	
	.next {
		padding: 0 40px;
	}
	
	header .logo {
		padding: 15px;
	}
	
	header .logo img {
		width: 65px;
		height: 65px;
	}
	
	header .headerContent {
		gap: 10px;
		padding: 10px 30px;
	}
	
	.back {
		margin: 5px 0;
		padding: 0 40px;
	}
			
		.back a {
			padding: 0 0;
			border: 0;
			font-size: 14px;
		}
			
			.back a svg {
				width: 8px;
				height: 14px;
			}
	
	.progressBar {
		position: relative;
		order: -1;
		margin: 15px 0;
	}
	
	.progressSteps  {
		display: none;
	}
	
	.panels {
		width: 100%;
		padding: 0 0;
		margin: 15px 0;
	}
	
	.panels .panel .panelIco {
		flex-basis: 38px;
	}
	
	.panels .panel .panelIco figure {
		width: 38px;
		height: 38px;
	}
	
	.panels .panel .panelIco figure svg {
		width: 38px;
		height: 38px;
	}
	
	.panels .panel .panelTitle {
		padding: 12px 25px;
		gap: 15px 10px;
		
		font-size: 14px;
	}
	
	.panels .panel .panelTitle .panelHeader {
		font-size: 16px;
	}
	
	.panels .panel .panelMore figure {
		width: 35px;
		height: 35px;
	}
	
	.panels .panel .panelMore figure svg {
		width: 35px;
		height: 35px;
	}
	
	.panels ul.options {
		gap: 15px;
	}
	
	.panels ul.options li label {
		gap: 15px;
		font-size: 14px;
		
		display: flex;
		justify-content: space-between;
	}
	
	.panels ul.options li label .optionLabel {
		text-align: right;
	}
	
	input[type="radio"], 
	input[type="checkbox"] {
		width: 22px;
		height: 22px;
		max-width: 22px;
	}
	
	input[type="radio"]::before {
		width: 14px;
		height: 14px;
	}
	
	.panels .panel .panelBox .panelBoxDesc {
		text-align: right;
		padding: 0 0 20px 0;
		font-size: 14px;
	}
	
	.rabaty {
		margin: 50px 0 0 0;
		width: 100%;
	}

	.rabaty .rabatyInner {
		padding: 20px 25px;
		border-width: 1px;
	}

	.rabaty .rabatyHeader {
		padding-bottom: 0;
		text-transform: lowercase;
	}

	.rabaty .promoToggleInput {
		position: absolute;
		opacity: 0;
		pointer-events: none;
		display: block;
	}
	
	.rabaty input {
		border-width: 1px;
	}
	.rabaty .promoToggleLabel {
		display: inline-flex;
		align-items: center;
		gap: 12px;
		cursor: pointer;
		user-select: none;
	}

	.rabaty .promoToggleState::before {
		content: "nie";
		font-size: 14px;
		font-weight: 500;
		color: var(--txt);
		text-transform: lowercase;
	}

	.rabaty .promoToggleInput:checked + .promoToggleLabel .promoToggleState::before {
		content: "tak";
	}

	.rabaty .promoToggleSwitch {
		width: 56px;
		height: 30px;
		border-radius: 50px;
		border: 1px solid #D9D9D9;
		padding: 3px;
		display: inline-flex;
		align-items: center;
		transition: border-color 0.25s ease;
	}

	.rabaty .promoToggleKnob {
		width: 22px;
		height: 22px;
		border-radius: 50%;
		background: #D9D9D9;
		transition: transform 0.25s ease, background-color 0.25s ease;
	}

	.rabaty .promoToggleInput:checked + .promoToggleLabel .promoToggleSwitch {
		border-color: #4C8FE0;
	}

	.rabaty .promoToggleInput:checked + .promoToggleLabel .promoToggleKnob {
		background: #4C8FE0;
		transform: translateX(26px);
	}

	.rabaty .rabatyCodeField {
		max-height: 0;
		opacity: 0;
		transform: translateY(-6px);
		overflow: hidden;
		margin-top: 0;
		transition: max-height 0.3s ease, opacity 0.25s ease, transform 0.25s ease, margin-top 0.25s ease;
	}

	.rabaty .rabatyCodeField.is-visible {
		max-height: 90px;
		opacity: 1;
		transform: translateY(0);
		margin-top: 12px;
	}
	
	.rabaty .button {
		margin: 30px auto 0 auto;
	}
	
	.daneRezerwujacego {
		padding: 0 40px;
		width: 100%;
		margin: 25px auto 0 auto;
		gap: 5px;
	}
	
	.daneRezerwujacegoHeader {
		font-size: 20px;
	}
	
	.daneGrid {
		display: flex;
		flex-direction: column;
		padding: 10px 0;
	}
	
	.daneGrid .daneSeparatorPerson {
		grid-column: unset;
	}
	
	.daneGrid .daneField {
		display: flex;
		flex-direction: column;
		gap: 0;
		margin: 5px 0;
	}
	
	.daneGrid .daneField .daneFieldHeader {
		font-size: 14px;
		margin-top: 20px;
		margin-bottom: 30px;
	}
	
	.daneGrid .daneField .daneFieldHeader:empty {
		margin-bottom: 0;
		margin-top: 0;
	}
	
	.daneGrid .daneField.danePadding {
		padding-left: 0;
	}
	
	.daneGrid .daneField .daneFieldHeader a.copyData {
		margin-left: auto;
		font-size: 13px;
	}
	
	.daneGrid .daneSeparatorPerson .daneFieldHeader  {
		margin-bottom: 0;
	}
	
	.daneGrid .daneSeparatorPerson .daneFieldHeader  span {
		font-size: 18px;
	}
	
	.daneGrid .daneField .daneFieldMsg {
		padding-top: 10px;
	}
	
	.uslugiDodatkowe {
		padding: 0 40px;
		width: 100%;
		margin: 25px auto 0 auto;
		gap: 5px;
	}
	
	.uslugiDodatkoweHeader span {
		font-size: 20px;
	}
	
	.uslugiSubHeader {
		font-size: 14px;
		margin-top: 35px;
	}
	
	.uslugiList li {
		padding: 15px 15px;
		gap: 12px;
		font-size: 14px;
	}
	
	.uslugiList li figure {
		width: 18px;
		height: 18px;
	}
	
	.uslugiList li .uslugaPrice {
		font-size: 14px;
		white-space: nowrap;
	}
	
	.textareaBox textarea {
		font-size: 14px;
		padding: 15px;
	}
		
	.metodyPlatnosci {
		padding: 0 40px;
		width: 100%;
		margin: 25px auto 0 auto;
		gap: 5px;
	}
	
	.metodyPlatnosciHeader span {
		font-size: 20px;
	}
	
	.metodySubHeader {
		font-size: 14px;
		margin-top: 35px;
	}
	
	.metodyList li label {
		padding: 15px;
		font-size: 14px;
		gap: 12px;
	}
	
	.metodyList li label .img {
		margin-left: auto;
	}
	
	.metodyPlatnosci .rabaty {
		width: calc(100% + 80px);
		position: relative;
		left: -40px;
		margin: 0 0;
		
		font-size: 14px;
	}
	
		.metodyPlatnosci .rabaty .rabatCount  {
			padding: 0 0;
		}
		
		.rabaty .rabatCount.visible .rabatCountInner {
			padding: 20px 25px 30px 25px;
			gap: 15px;
		}
	
		.rabaty .rabatCountInner .rabatCols .rabatColRight {
			font-size: 16px;
		}
	
		.rabaty .rabatCountInner .rabatCols .fontHeader {
			font-size: 16px;
		}
	
		.rabaty .rabatCountInner .rabatCols .rabatColLeft {
			flex-basis: auto;
			flex-grow: 1;
		}
		
		.rabaty .rabatCountInner .rabatCols .rabatColRight {
			flex-basis: auto;
			min-width: 110px;
		}
	
	.podsumowanie {
		padding: 0 40px;
		width: 100%;
		margin: 25px auto 0 auto;
		gap: 5px;
	}
	
	.podsumowanieHeader span {
		font-size: 20px;
	}
	
	.podsumowanieSubHeader {
		font-size: 16px;
		margin: 25px 0;
	}
	
	.podsumowanieDesc {
		margin: 5px 0;
	}
	
	.podsumowanie .rabaty {
		margin: 0 0;
		width: calc(100% + 80px);
		position: relative;
		left: -40px;
		font-size: 14px;
	}
		
		.podsumowanie .rabaty .rabatCount {
			padding-bottom: 0;
		}
		
		.rabaty .rabatCountInner .rabatCols .fontHeader {
			font-size: 14px;
		}
	
		.podsumowanie .rabaty .rabatCols.colSumUp > * {
			font-size: 20px;
		}
	
	
	footer {
		padding: 30px 0;
	}
	
	.stFooterColumns  {
		gap: 25px;
	}
	
	.stFooterColumnLogoMain {
		padding-bottom: 30px;
	}
	
	.stFooterColumnLogoMain img {
		width: 100%;
		max-width: 300px;
		height: auto;
	}
	
	.stFooterColumnNav {
		margin-bottom: 30px;
	}
		
	.stFooterNav {
		padding: 25px 40px;
	}		
		
		.stFooterNavList {
			flex-direction: column;
		}
	
	.stFooterBadge {
		margin-bottom: 30px;
	}
		
		.stFooterBadge img {
			width: 120px;
		}
		
	.st-contact-link.st-tel {
		margin-top: 20px;
	}
	
	.stFooterColumnSocial {
		padding: 10px 40px;
		gap: 0 4%;
	}
	
	.stFooterCopyright {
		margin: 30px 0 0 0;
		padding: 40px 40px;
	}
	
	.stFooterCopyrightInner {
		padding: 0 0;
	}

	.daneGrid .participantFields {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

		.daneGrid .participantFields .daneFieldInput input[type="date"],
		.daneGrid .participantFields .daneFieldInput input[type="tel"] {
			width: 100%;
		}
}

/**
* Proxy
*/

/* DODATKI WYŁĄCZNIE DLA DYNAMICZNEGO KONFIGURATORA START */

.panelIco .reservationStatusIconCheck {
	display: none !important;
}

.panel.filled .panelIco .reservationStatusIconQuestion {
	display: none !important;
}

.panel.filled .panelIco .reservationStatusIconCheck {
	display: flex !important;
}

.reservationAlert,
.reservationValidationSummary {
	margin-top: 20px;
	margin-bottom: 20px;
}

.reservationAlert {
	padding: 16px 20px;
}

.reservationAlertError,
.validation-summary-errors {
	border: 2px solid var(--orange);
	background: #fff4ef;
	color: var(--txt);
}

.validation-summary-errors {
	padding: 16px 20px;
}

.validation-summary-valid {
	display: none;
}

.field-validation-error,
.reservationInlineError {
	display: block;
	color: var(--orange);
	margin-top: 15px;
}

.reservationOptionUnavailable {
	opacity: .45;
}

.participantCounters {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.participantCounterRow {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: 20px 0;
	border-bottom: 1px solid #d9d9d9;
}

	.participantCounterRow:last-child {
		border-bottom: 0;
	}

.participantCounterLabel {
	display: flex;
	flex-direction: column;
}

.participantCounterTitle {
	font-family: var(--font-header);
	font-size: 19px;
	font-weight: 500;
}

.participantCounterDescription {
	font-size: 14px;
	font-weight: 300;
}

.participantCounterControls,
.roomOccupantControls {
	display: flex;
	align-items: center;
	gap: 18px;
}

.participantCounterButton {
	width: 42px;
	height: 42px;
	border: 2px solid var(--blue);
	background: #fff;
	color: var(--blue);
	font-size: 27px;
	line-height: 1;
	cursor: pointer;
}

	.participantCounterButton:hover:not(:disabled) {
		background: var(--blue);
		color: #fff;
	}

	.participantCounterButton:disabled,
	.reservationAddRoomButton:disabled,
	.buttonOrange:disabled {
		opacity: .45;
		cursor: not-allowed;
	}

.participantCounterValue {
	min-width: 34px;
	text-align: center;
	font-family: var(--font-header);
	font-size: 22px;
	font-weight: 500;
}

.roomAllocationSummary {
	display: flex;
	flex-wrap: wrap;
	gap: 15px 35px;
	margin-bottom: 25px;
	font-family: var(--font-header);
}

.selectedRooms {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-bottom: 25px;
}

.selectedRoomCard {
	border: 2px solid var(--blue);
	padding: 20px;
	cursor: default;
}

.selectedRoomHeader {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	margin-bottom: 18px;
	font-family: var(--font-header);
}

.selectedRoomRemove {
	border: 0;
	background: transparent;
	color: var(--orange);
	text-decoration: underline;
	cursor: pointer;
}

.selectedRoomGrid {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) auto;
	gap: 25px;
	align-items: end;
}

.selectedRoomColumn {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.selectedRoomLabel {
	font-size: 13px;
	font-weight: 500;
}

.reservationRoomTypeSelect {
	min-height: 46px;
	border: 2px solid var(--blue);
	background: #fff;
	padding: 8px 12px;
	font-family: var(--font-normal);
	font-size: 15px;
}

.selectedRoomDetails {
	margin-top: 15px;
	font-size: 13px;
	font-weight: 300;
}

.reservationAddRoomButton {
	margin-top: 5px;
}

.reservationSurchargeLine {
	opacity: .8;
}

.rabatColLeft svg {
	flex: 0 0 auto;
}

@media (max-width: 700px) {
	.participantCounterRow {
		align-items: flex-start;
	}

	.selectedRoomGrid {
		grid-template-columns: 1fr;
	}

	.roomAllocationSummary {
		flex-direction: column;
		gap: 6px;
	}
}

/* PREBOOK */
body.reservationPreBookBusy {
	overflow: hidden;
}

.reservationPreBookOverlay {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(255, 255, 255, 0.62);
	-webkit-backdrop-filter: blur(9px);
	backdrop-filter: blur(9px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 180ms ease, visibility 180ms ease;
}

	.reservationPreBookOverlay.isVisible {
		opacity: 1;
		visibility: visible;
		pointer-events: all;
	}

.reservationPreBookOverlayContent {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 22px;
	text-align: center;
}

.reservationPreBookOverlayLogo {
	display: flex;
	align-items: center;
	justify-content: center;
}

	.reservationPreBookOverlayLogo img {
		display: block;
		width: auto;
		max-width: 120px;
		max-height: 90px;
		transform-origin: center;
		animation: reservationLogoBreathing 1600ms ease-in-out infinite;
		will-change: transform, opacity;
	}

.reservationPreBookOverlayText {
	margin: 0;
	color: #231916;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	animation: reservationTextBreathing 1600ms ease-in-out infinite;
}

@keyframes reservationLogoBreathing {
	0%, 100% {
		transform: scale(0.94);
		opacity: 0.7;
	}

	50% {
		transform: scale(1.06);
		opacity: 1;
	}
}

@keyframes reservationTextBreathing {
	0%, 100% {
		opacity: 0.55;
	}

	50% {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.reservationPreBookOverlayLogo img,
	.reservationPreBookOverlayText {
		animation: none;
	}

	.reservationPreBookOverlay {
		transition: none;
	}
}

/**
* Dane rezerwacji
*/

.daneGrid .participantFields {
	grid-column: span 3;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 20px;
}

	.daneGrid .participantFields .daneFieldInput input[type="date"],
	.daneGrid .participantFields .daneFieldInput input[type="tel"] {
		width: 100%;
		min-width: 0;
	}

	.daneGrid .participantFields .daneFieldInput input {
		flex: 1;
		min-width: 0;
	}

	.daneGrid .participantFields .daneFieldMsg {
		padding-left: 40px;
	}

/**
	Waldacja
*/
.reservationInlineError {
	display: block;
	min-height: 18px;
	margin-top: 6px;
	color: #d33a2c;
	font-size: 13px;
	line-height: 1.35;
}

.field-validation-valid {
	display: none;
}

.field-validation-error {
	display: block;
}

.daneFieldInput input.input-validation-error {
	border-color: #d33a2c !important;
	background-color: rgba(211, 58, 44, 0.04);
}

	.daneFieldInput input.input-validation-error:focus {
		outline: 2px solid rgba(211, 58, 44, 0.18);
		outline-offset: 1px;
	}

.reservationClientValidationSummary {
	margin: 20px 0;
	padding: 16px 20px;
	border: 1px solid #d33a2c;
	background: rgba(211, 58, 44, 0.05);
	color: #8f241a;
	font-size: 14px;
}

	.reservationClientValidationSummary[hidden] {
		display: none;
	}

	.reservationClientValidationSummary strong {
		display: block;
		margin-bottom: 8px;
	}

	.reservationClientValidationSummary ul {
		margin: 0;
		padding-left: 20px;
	}

	.reservationClientValidationSummary li + li {
		margin-top: 4px;
	}


/*
	estras
*/

.uslugiList {
	list-style: none;
	margin: 0;
	padding: 0;
}

.reservationExtraItem {
	position: relative;
}

.reservationExtraOption {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr) auto 26px;
	align-items: center;
	gap: 16px;
	width: 100%;
	cursor: pointer;
}

.reservationExtraCheckbox {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.uslugaContent {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.uslugaDescription,
.uslugaPricingMode {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	font-weight: 300;
	line-height: 1.4;
}

.uslugaDescription {
	color: rgba(35, 25, 22, 0.75);
}

.uslugaPricingMode {
	color: #4c8fe0;
}

.reservationExtraCheck {
	width: 22px;
	height: 22px;
	border: 2px solid #4c8fe0;
	border-radius: 50%;
	position: relative;
}

.reservationExtraItem.isSelected .reservationExtraCheck::after {
	content: "";
	position: absolute;
	inset: 4px;
	border-radius: 50%;
	background: #4c8fe0;
}

.reservationExtraItem.isSelected {
	background: rgba(76, 143, 224, 0.08);
}

.reservationExtraItem:focus-within {
	outline: 2px solid rgba(76, 143, 224, 0.25);
	outline-offset: 2px;
}

.textareaBox {
	position: relative;
}

	.textareaBox textarea {
		width: 100%;
		resize: vertical;
	}

.reservationNotesCounter {
	margin-top: 6px;
	text-align: right;
	color: rgba(35, 25, 22, 0.65);
	font-size: 12px;
}

.reservationExtrasPriceSummary {
	margin-top: 30px;
	padding-top: 18px;
	border-top: 1px solid rgba(35, 25, 22, 0.18);
}

	.reservationExtrasPriceSummary > div {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 20px;
		margin-top: 8px;
	}

.reservationExtrasPriceTotal {
	padding-top: 12px;
	font-size: 18px;
}

@media screen and (max-width: 700px) {
	.reservationExtraOption {
		grid-template-columns: 34px minmax(0, 1fr) 22px;
	}

		.reservationExtraOption .uslugaPrice {
			grid-column: 2;
			margin-top: 4px;
		}

	.reservationExtraCheck {
		grid-column: 3;
		grid-row: 1 / span 2;
	}
}

/*
	summary
*/

.podsumowanie .rabatCountInner {
	overflow: hidden;
}

.podsumowanie .rabatCols {
	align-items: flex-start;
}

.podsumowanie .rabatColLeft,
.podsumowanie .rabatColRight {
	min-width: 0;
}

.podsumowanie .rabatColRight {
	text-align: right;
	overflow-wrap: anywhere;
}

.reservationSummaryTopRow {
	padding-bottom: 18px;
}

.reservationSummarySectionHeader {
	padding-top: 4px;
	padding-bottom: 10px;
}

	.reservationSummarySectionHeader .rabatColLeft {
		text-transform: lowercase;
	}

.reservationSummarySecondary,
.podsumowanie .rabatCols small {
	display: block;
	margin-top: 3px;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.45;
	opacity: .7;
}

.reservationSummaryParticipantRow .rabatColLeft {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.reservationSummaryParticipantNumber {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 50%;
	font-size: 11px;
	line-height: 1;
}

.reservationSummaryNotesRow .rabatColRight {
	max-width: 65%;
	line-height: 1.6;
	white-space: pre-line;
}

@media (max-width: 700px) {
	.podsumowanie .rabatCols {
		gap: 18px;
	}

	.podsumowanie .rabatColLeft,
	.podsumowanie .rabatColRight {
		width: 50%;
	}

	.reservationSummaryNotesRow {
		flex-direction: column;
		gap: 8px;
	}

		.reservationSummaryNotesRow .rabatColLeft,
		.reservationSummaryNotesRow .rabatColRight {
			width: 100%;
			max-width: none;
			text-align: left;
		}
}