/*
 * Styles are intentionally limited to elements created by WinterEvent Search.
 * Existing theme classes and layout rules are never overridden here.
 */

.wes-children-ages {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: 1rem;
	padding: 1rem;
}

/* Link prowadzący do zewnętrznej listy pokoi jest celowo wyłączony. */
.vds-hotel-detail__rooms-all-link {
	display: none !important;
}

.wes-children-ages[hidden] {
	display: none;
}

.wes-search-form--detail .wes-children-ages {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: .15rem 0 .35rem;
	padding: 0;
}

.wes-status {
	grid-column: 1 / -1;
	margin: 0;
	padding: .75rem 1rem;
	font-size: .85rem;
}

.wes-status:empty {
	display: none;
}

.wes-status[data-state="error"] {
	color: #8a1c1c;
	background: #fff2f2;
}

.wes-status[data-state="loading"] {
	color: #3f4b54;
	background: #f4f7f8;
}

.wes-field {
	display: grid;
	gap: .4rem;
}

.wes-label {
	font-size: .78rem;
	font-weight: 700;
}

.wes-input {
	width: 100%;
	min-height: 2.75rem;
}

.wes-native-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.wes-custom-select {
	position: relative;
	width: 100%;
	min-width: 0;
	font-family: Inter, sans-serif;
	font-weight: 400;
}

.wes-custom-select__button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	min-height: 3rem;
	margin: 0;
	padding: .7rem .85rem;
	border: 1px solid #cbd6e0;
	border-radius: 0;
	background: #fff;
	color: #092b56;
	font: inherit;
	font-size: .78rem;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.wes-custom-select__button:hover,
.wes-custom-select__button:focus-visible,
.wes-custom-select.is-open .wes-custom-select__button {
	outline: 0;
	border-color: #092b56;
	box-shadow: 0 0 0 2px rgba(9, 43, 86, .08);
}

.wes-custom-select__value {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wes-custom-select__arrow {
	display: block;
	flex: 0 0 auto;
	width: .45rem;
	height: .45rem;
	margin: -.2rem .15rem 0 0;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s ease;
}

.wes-custom-select.is-open .wes-custom-select__arrow {
	margin-top: .2rem;
	transform: rotate(225deg);
}

.wes-submit__arrow {
	position: relative;
	display: inline-block;
	flex: 0 0 auto;
	width: .9rem;
	height: .7rem;
	margin-left: .05rem;
	transition: transform .2s ease;
}

.wes-submit__arrow::before {
	position: absolute;
	top: 50%;
	left: 0;
	width: .68rem;
	height: 1px;
	background: currentColor;
	transform: translateY(-50%);
	content: "";
}

.wes-submit__arrow::after {
	position: absolute;
	top: 50%;
	right: .05rem;
	width: .3rem;
	height: .3rem;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
	content: "";
}

.wes-custom-select__list {
	position: absolute;
	z-index: 1000;
	top: calc(100% + .35rem);
	left: 0;
	display: none;
	width: 100%;
	max-height: 20rem;
	margin: 0;
	padding: .35rem;
	overflow-x: hidden;
	overflow-y: auto;
	border: 1px solid #cbd6e0;
	background: #fff;
	box-shadow: 0 1rem 2.5rem rgba(9, 43, 86, .14);
	scrollbar-width: thin;
	scrollbar-color: #aab8c6 #f3f6f8;
}

.wes-custom-select.is-open .wes-custom-select__list {
	display: grid;
}

.wes-custom-select__option {
	position: relative;
	display: block;
	width: 100%;
	min-height: 2.65rem;
	margin: 0;
	padding: .65rem .75rem;
	border: 0;
	border-bottom: 1px solid #edf1f4;
	border-radius: 0;
	background: #fff;
	color: #17395f;
	font: inherit;
	font-size: .76rem;
	font-weight: 400;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
}

.wes-custom-select__option:last-child {
	border-bottom: 0;
}

.wes-custom-select__option:hover,
.wes-custom-select__option:focus-visible {
	outline: 0;
	background: #f3f6f8;
	color: #092b56;
}

.wes-custom-select__option[aria-selected="true"] {
	padding-left: 1rem;
	background: #edf3f7;
	color: #092b56;
	font-weight: 700;
}

.wes-custom-select__option[aria-selected="true"]::before {
	position: absolute;
	top: .45rem;
	bottom: .45rem;
	left: .25rem;
	width: 2px;
	background: #ff3f58;
	content: "";
}

.wes-custom-select.is-disabled {
	opacity: .58;
}

.wes-custom-select.is-disabled .wes-custom-select__button {
	cursor: wait;
}

.wes-submit {
	cursor: pointer;
}

.wes-search-form {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	align-items: end;
	gap: 1rem;
	padding: 1.25rem;
	border: 1px solid rgba(24, 54, 91, .14);
	background: #fff;
	box-shadow: 0 .75rem 2rem rgba(24, 54, 91, .08);
}

.wes-search-form--archive {
	margin: 0 0 2rem;
}

.wes-search-form--detail {
	grid-template-columns: 1fr;
	margin: 1rem 0;
	padding: 0;
	border: 0;
	box-shadow: none;
}

.wes-search-form .wes-input {
	min-height: 3rem;
	padding: .65rem .75rem;
	border: 1px solid rgba(24, 54, 91, .25);
	border-radius: 0;
	background: #fff;
	color: #18365b;
}

.wes-search-form .wes-submit,
.wes-booking-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 3.35rem;
	padding: .85rem 1.25rem;
	border: 0;
	border-radius: 0;
	color: #fff;
	background: #ff3f58;
	font: inherit;
	font-size: .72rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .055em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.wes-search-form .wes-submit:hover,
.wes-search-form .wes-submit:focus-visible,
.wes-booking-action:hover,
.wes-booking-action:focus-visible {
	color: #fff;
	background: #d9233d;
	box-shadow: 0 .55rem 1.2rem rgba(217, 35, 61, .18);
}

.wes-search-form .wes-submit:hover .wes-submit__arrow,
.wes-search-form .wes-submit:focus-visible .wes-submit__arrow,
.wes-booking-action:hover .wes-submit__arrow,
.wes-booking-action:focus-visible .wes-submit__arrow {
	transform: translateX(.2rem);
}

.wes-search-form .wes-submit:focus-visible,
.wes-booking-action:focus-visible {
	outline: 2px solid #092b56;
	outline-offset: 3px;
}

.wes-booking-action[hidden] {
	display: none;
}

.wes-booking-action {
	width: 100%;
	margin: .35rem 0 1rem;
}

.wes-submit:disabled {
	cursor: wait;
	opacity: .62;
}

.wes-hotel-card-price {
	display: grid;
	gap: .1rem;
	color: #18365b;
}

.wes-hotel-card-price span {
	font-size: .7rem;
	line-height: 1.25;
}

.wes-hotel-card-price strong {
	font-size: 1.45rem;
	line-height: 1;
}

.wes-badge-host {
	position: relative;
}

.wes-hotel-badges {
	position: absolute;
	z-index: 4;
	right: .75rem;
	bottom: .75rem;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	max-width: calc(100% - 1.5rem);
	pointer-events: none;
}

.wes-hotel-badges[hidden] {
	display: none;
}

.wes-hotel-badge {
	display: inline-flex;
	align-items: center;
	min-height: 1.75rem;
	padding: .3rem .55rem;
	border-radius: .2rem;
	box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .2);
	font-size: .68rem;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: .025em;
	text-transform: uppercase;
}

.wes-hotel-badge--partner {
	color: #3b2a00;
	background: #f7c948;
}

.wes-dynamic-hotel-card {
	min-width: 0;
}

.wes-partner-card__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background:
		linear-gradient(135deg, rgba(24, 54, 91, .12), rgba(247, 201, 72, .35)),
		#eef2f5;
}

.wes-hotel-statuses {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: .55rem 0 .85rem;
}

.wes-hotel-statuses[hidden] {
	display: none;
}

.wes-hotel-status {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 1.7rem;
	padding: .3rem .65rem .3rem .4rem;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-size: .61rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: .045em;
	text-transform: uppercase;
}

.wes-hotel-status::before {
	display: inline-grid;
	flex: 0 0 .9rem;
	width: .9rem;
	height: .9rem;
	place-items: center;
	border-radius: 50%;
	font-size: .58rem;
	font-weight: 900;
	line-height: 1;
}

.wes-hotel-status--guaranteed {
	border-color: #add9c1;
	color: #17613f;
	background: #edf8f2;
}

.wes-hotel-status--guaranteed::before {
	color: #fff;
	background: #218255;
	content: "✓";
}

.wes-hotel-status--request {
	border-color: #e6c49f;
	color: #8a4b16;
	background: #fff8ef;
}

.wes-hotel-status--request::before {
	color: #fff;
	background: #b76725;
	content: "?";
	font-family: Arial, sans-serif;
	font-size: .7rem;
	font-weight: 700;
	line-height: .9rem;
}

.vds-hotel-card__heading + .wes-hotel-statuses {
	margin-top: .55rem;
	margin-bottom: 0;
}

.wes-hotel-stay-meta {
	display: flex !important;
	align-items: center;
	flex-wrap: wrap;
	gap: .4rem;
	margin-bottom: .35rem;
}

.wes-hotel-stay-meta__nights {
	color: #667087;
}

.wes-board-badge {
	display: inline-flex !important;
	align-items: center;
	width: max-content;
	min-height: 1.35rem;
	padding: .2rem .45rem;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: .58rem !important;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: .025em;
	text-transform: uppercase;
}

.wes-board-badge--none {
	border-color: #d7dfe7;
	color: #69768a !important;
	background: #f4f6f8;
}

.wes-board-badge--included {
	border-color: #b9d7cf;
	color: #245f53 !important;
	background: #edf7f4;
}

.vds-hotel-card__room-meta .wes-board-badge {
	padding: .25rem .5rem;
}

.wes-vacancy-price {
	color: #8a4b00 !important;
	font-weight: 800;
}

.wes-price-breakdown {
	margin-top: .45rem;
	padding-top: .4rem;
	border-top: 1px solid rgba(24, 54, 91, .12);
}

.wes-price-breakdown > summary {
	width: max-content;
	max-width: 100%;
	color: #36566f;
	font-size: .7rem;
	font-weight: 700;
	line-height: 1.35;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	cursor: pointer;
}

.wes-price-breakdown__body {
	display: grid;
	gap: .12rem;
	margin-top: .35rem;
	padding-left: .9rem;
	border-left: 2px solid rgba(24, 54, 91, .12);
}

.wes-price-breakdown__body > small {
	display: block;
	margin: 0;
}

.wes-skipass-breakdown__rows {
	display: grid;
	gap: .12rem;
}

.wes-skipass-breakdown__row {
	display: block;
	margin: 0;
	font-size: .68rem;
	font-weight: 500;
	line-height: 1.35;
	color: #4b5563;
}

.wes-detail-price {
	display: grid;
	gap: .2rem;
	margin: 1rem 0;
	padding: 1rem;
	background: #f2f6f8;
	color: #18365b;
}

.wes-detail-price > span:not(.wes-selected-apartment-name) {
	font-size: .75rem;
	font-weight: 700;
	text-transform: uppercase;
}

.wes-detail-price > strong {
	font-size: 2rem;
	line-height: 1.05;
}

.wes-apartments {
	box-sizing: border-box;
	width: min(100% - 2rem, 75rem);
	margin: 4rem auto;
	padding: 0;
}

.wes-apartments[hidden] {
	display: none;
}

.wes-apartments__title {
	margin: 0;
	font-size: clamp(1.8rem, 4vw, 3rem);
}

.wes-apartments__lead {
	margin: .75rem 0 0;
	color: #4b5563;
}

.wes-apartments__status {
	margin: 1.25rem 0;
	padding: .8rem 1rem;
	border-radius: .35rem;
	background: #f4f7f8;
}

.wes-apartments__status[data-state="success"] {
	color: #14532d;
	background: #f0fdf4;
}

.wes-apartments__status[data-state="error"] {
	color: #8a1c1c;
	background: #fff2f2;
}

.wes-apartments__status[data-state="notice"] {
	color: #713f12;
	background: #fffbeb;
}

.wes-apartments__status[data-state="selected"] {
	color: #123f51;
	background: #eaf7fb;
}

.wes-apartments__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: 1.25rem;
}

.wes-apartment-card {
	overflow: hidden;
	border: 1px solid #dde2e6;
	border-radius: .6rem;
	background: #fff;
	box-shadow: 0 .6rem 1.8rem rgba(31, 41, 55, .08);
}

.wes-apartment-card--selected {
	border-color: #16738f;
	box-shadow: 0 0 0 3px rgba(22, 115, 143, .18), 0 .6rem 1.8rem rgba(31, 41, 55, .1);
}

.wes-apartment-card__image {
	display: block;
	width: 100%;
	height: 13rem;
	object-fit: cover;
}

.wes-apartment-card__body {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: .9rem;
	height: calc(100% - 13rem);
	padding: 1.25rem;
}

.wes-apartment-card:not(:has(.wes-apartment-card__image)) .wes-apartment-card__body {
	height: 100%;
}

.wes-apartment-card__title,
.wes-apartment-card__meta,
.wes-apartment-card__skipass,
.wes-apartment-card__price {
	margin: 0;
}

.wes-apartment-card__title {
	font-size: 1.2rem;
}

.wes-apartment-card__meta {
	font-size: .9rem;
	color: #4b5563;
}

.wes-apartment-card__skipass {
	font-size: .88rem;
	font-weight: 700;
	color: #1f4f69;
}

.wes-skipass-rates {
	display: flex;
	flex-wrap: wrap;
	gap: .15rem .4rem;
	margin: 0;
	padding: 0;
	color: #4b5563;
	font-size: .7rem;
	line-height: 1.35;
	list-style: none;
}

.wes-skipass-rates li {
	padding: 0;
	font: inherit;
}

.wes-skipass-choice {
	display: grid;
	gap: .35rem;
	margin-top: .65rem;
	padding-top: .65rem;
	border-top: 1px solid rgba(24, 54, 91, .14);
	text-align: left;
}

.wes-skipass-choice__field {
	display: grid;
	gap: .3rem;
	margin: 0;
}

.wes-skipass-choice__field > span {
	font-size: .72rem;
	font-weight: 700;
	line-height: 1.3;
	color: #374151;
}

.wes-skipass-choice__select {
	width: 100%;
	min-height: 2.25rem;
	margin: 0;
	padding: .4rem 1.8rem .4rem .55rem;
	border: 1px solid rgba(24, 54, 91, .2);
	border-radius: .25rem;
	background-color: #fff;
	color: #18365b;
	font: inherit;
	font-size: .75rem;
}

.wes-skipass-choice .wes-custom-select__button {
	align-items: center;
	min-height: 3.15rem;
	padding: .65rem .8rem;
	font-size: .72rem;
	line-height: 1.35;
}

.wes-skipass-choice .wes-custom-select__value {
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
}

.wes-skipass-choice .wes-custom-select__list {
	max-height: 17rem;
	padding: .25rem;
}

.wes-skipass-choice .wes-custom-select__option {
	min-height: 0;
	padding: .7rem .75rem;
	font-size: .7rem;
	line-height: 1.4;
	white-space: normal;
}

.wes-skipass-choice .wes-custom-select__option[aria-selected="true"] {
	padding-left: 1rem;
}

.wes-skipass-choice__note {
	display: block;
	font-size: .65rem;
	font-weight: 500;
	line-height: 1.35;
	color: #6b7280;
}

.wes-skipass-choice__total {
	display: block;
	font-size: .76rem;
	font-weight: 700;
	line-height: 1.35;
	color: #18365b;
}

.wes-skipass-choice__rate {
	display: block;
	font-size: .64rem;
	font-weight: 500;
	line-height: 1.35;
	color: #566273;
}

.wes-skipass-choice__total[hidden],
.wes-skipass-choice__rate[hidden],
.wes-skipass-breakdown[hidden] {
	display: none;
}

.wes-skipass-catalog {
	box-sizing: border-box;
	grid-column: 1;
	width: 100%;
	max-width: 100%;
	margin: 3.5rem 0 1.5rem;
	padding: 0 0 2.5rem;
	border: 0;
	color: #092b56;
	font-family: Inter, sans-serif;
}

.wes-skipass-catalog[hidden] {
	display: none;
}

.wes-skipass-catalog__title {
	margin: 0;
	color: #092b56;
	font-size: clamp(2rem, 3.1vw, 2.7rem);
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: -.04em;
}

.wes-skipass-catalog__lead {
	max-width: 48rem;
	margin: .65rem 0 1.35rem;
	color: #28486d;
	font-size: .875rem;
	font-weight: 400;
	line-height: 1.55;
}

.wes-skipass-catalog__table-wrap {
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	border: 1px solid #d7e0e7;
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	-webkit-overflow-scrolling: touch;
}

.wes-skipass-catalog__table {
	width: 100%;
	min-width: 44rem;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-spacing: 0;
	background: #fff;
	color: #092b56;
	font-family: Inter, sans-serif;
	font-size: .78rem;
	line-height: 1.35;
}

.wes-skipass-catalog__table th,
.wes-skipass-catalog__table td {
	box-sizing: border-box;
	padding: .82rem .75rem;
	border: 0;
	border-bottom: 1px solid #e1e7ed;
	background: #fff;
	color: #092b56;
	text-align: left;
	vertical-align: middle;
}

.wes-skipass-catalog__table thead th {
	padding-top: .8rem;
	padding-bottom: .8rem;
	border-color: #d7e0e7;
	background: #f0f4f6;
	color: #092b56;
	font-size: .66rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .025em;
	text-transform: uppercase;
}

.wes-skipass-catalog__table tbody th {
	width: 34%;
	font-size: .78rem;
	font-weight: 700;
	line-height: 1.4;
}

.wes-skipass-catalog__table th:first-child,
.wes-skipass-catalog__table td:first-child {
	padding-left: .8rem;
}

.wes-skipass-catalog__table thead th:nth-child(2) {
	width: 17%;
}

.wes-skipass-catalog__table thead th:nth-child(n + 3) {
	width: 16.333%;
}

.wes-skipass-catalog__table tbody tr:last-child th,
.wes-skipass-catalog__table tbody tr:last-child td {
	border-bottom: 0;
}

.wes-skipass-catalog__table tbody tr:hover th,
.wes-skipass-catalog__table tbody tr:hover td {
	background: #f8fafb;
}

.wes-skipass-catalog__table tbody td:nth-child(2) {
	color: #395774;
	font-weight: 600;
}

.wes-skipass-catalog__table td strong,
.wes-skipass-catalog__table td small {
	display: block;
	white-space: nowrap;
}

.wes-skipass-catalog__table td strong {
	color: #092b56;
	font-size: .84rem;
	font-weight: 800;
	line-height: 1.2;
}

.wes-skipass-catalog__table td small {
	margin-top: .3rem;
	color: #738096;
	font-size: .61rem;
	font-weight: 400;
	line-height: 1.2;
}

.wes-skipass-catalog__rate,
.wes-skipass-catalog__note {
	margin: 1.15rem 0 0;
	color: #52657c;
	font-size: .68rem;
	font-weight: 400;
	line-height: 1.45;
}

.wes-skipass-catalog__note {
	margin-top: .35rem;
}

.wes-academy-search {
	box-sizing: border-box;
	grid-column: 1 / -1;
    width: calc(100% - 2rem);
    max-width: 90rem;
	min-width: 0;
	margin: 4rem auto 0;
	padding: clamp(2rem, 3.2vw, 3rem);
	border: 1px solid #dbe3e9;
	background: #fff;
	box-shadow: 0 1.25rem 3.5rem rgba(24, 54, 91, .07);
	color: #18365b;
	scroll-margin-top: 6rem;
}

.wes-academy-search__heading {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .75fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 5rem);
	margin-bottom: 2rem;
}

.wes-academy-search__eyebrow {
	margin: 0;
	color: #ff3f58;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.wes-academy-search__heading h2 {
	margin: .45rem 0 0;
	font-size: clamp(2.25rem, 4vw, 3.75rem);
	font-weight: 300;
	line-height: 1.02;
	letter-spacing: -.04em;
}

.wes-academy-search__heading > p {
	max-width: 35rem;
	margin: 0;
	padding: .7rem 0 .7rem 1.75rem;
	border-left: 1px solid rgba(24, 54, 91, .2);
	color: #536579;
	font-size: .88rem;
	line-height: 1.7;
}

.wes-academy-search__panel {
	display: grid;
	grid-template-columns: 1.35fr 1fr .8fr 1.05fr;
	margin: 0;
	border: 1px solid #d5dfe7;
	background: #fff;
	box-shadow: none;
}

.wes-academy-search__panel label {
	display: flex;
	min-width: 0;
	min-height: 5.1rem;
	box-sizing: border-box;
	padding: 1.1rem 1.3rem .85rem;
	flex-direction: column;
	gap: .55rem;
	border-right: 1px solid #dfe6eb;
	background: #fafcfd;
}

.wes-academy-search__panel label > span:first-child {
	color: #68778a;
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.wes-academy-search__panel .wes-custom-select__button {
	min-height: 1.8rem;
	padding: .1rem 0;
	border: 0;
	background: transparent;
	font-size: .82rem;
	font-weight: 700;
}

.wes-academy-search__panel .wes-custom-select__button:hover,
.wes-academy-search__panel .wes-custom-select__button:focus-visible,
.wes-academy-search__panel .wes-custom-select.is-open .wes-custom-select__button {
	box-shadow: none;
}

.wes-academy-search__panel .wes-custom-select__list {
	min-width: 100%;
	max-height: 17rem;
	padding: .3rem;
	border-color: #cbd6e0;
	background: #fff;
	box-shadow: 0 1rem 2.5rem rgba(9, 43, 86, .14);
}

.wes-academy-search__panel select {
	width: 100%;
	min-height: 1.8rem;
	padding: .1rem 1.75rem .1rem 0;
	border: 0;
	outline-offset: .25rem;
	background-color: transparent;
	color: #18365b;
	font: inherit;
	font-size: .82rem;
	font-weight: 700;
	cursor: pointer;
}

.wes-academy-search__panel > button[type="submit"] {
	display: flex;
	min-height: 5.1rem;
	padding: 0 1.7rem;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	border: 0;
	background: #ff3f58;
	color: #fff;
	font: inherit;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	cursor: pointer;
}

.wes-academy-search__panel > button[type="submit"]:hover,
.wes-academy-search__panel > button[type="submit"]:focus-visible {
	background: #d9233d;
}

.wes-academy-search__panel > button[type="submit"]:disabled {
	cursor: wait;
	filter: grayscale(.45);
	opacity: .7;
}

.wes-academy-search__status {
	min-height: 0;
	margin: .8rem 0 0;
	padding-left: .1rem;
	color: #68778a;
	font-size: .72rem;
}

.wes-academy-search__status[data-state="error"],
.wes-academy-search__status[data-state="empty"] {
	color: #8a1c1c;
}

.wes-academy-search__status[data-state="success"] {
	color: #19704f;
}

.wes-academy-results {
	margin-top: 2.25rem;
	border: 1px solid rgba(24, 54, 91, .18);
	background: #fff;
}

.wes-academy-results[hidden] {
	display: none;
}

.wes-academy-results__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.35rem 1.75rem;
	border-bottom: 1px solid rgba(24, 54, 91, .14);
}

.wes-academy-results__meta span {
	font-size: 1.15rem;
	font-weight: 600;
}

.wes-academy-results__meta strong {
	color: #d9233d;
	font-size: .65rem;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.wes-academy-results__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
}

.wes-academy-results__grid article {
	display: flex;
	min-width: 0;
	min-height: 13.75rem;
	box-sizing: border-box;
	padding: 1.7rem 1.5rem;
	flex-direction: column;
	border-right: 1px solid rgba(24, 54, 91, .14);
	border-bottom: 1px solid rgba(24, 54, 91, .14);
}

.wes-academy-results__level span {
	color: #d9233d;
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .12em;
}

.wes-academy-results__level h3 {
	margin: .5rem 0 0;
	font-size: 1.65rem;
	font-weight: 500;
	line-height: 1.1;
}

.wes-academy-results__seats {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 1.55rem 0;
	color: #68778a;
	font-size: .68rem;
}

.wes-academy-results__seats i {
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
	background: #a5aaa7;
}

.wes-academy-results__seats i.is-available {
	background: #2b9b71;
	box-shadow: 0 0 0 .25rem rgba(43, 155, 113, .11);
}

.wes-academy-results__price {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: baseline;
	gap: .2rem .5rem;
	margin-top: auto;
}

.wes-academy-results__price del {
	color: #8a918f;
	font-size: .72rem;
}

.wes-academy-results__price strong {
	grid-column: 1 / -1;
	font-size: 1.45rem;
	font-weight: 700;
}

.wes-academy-results__price small {
	grid-column: 1 / -1;
	color: #818886;
	font-size: .62rem;
	text-transform: uppercase;
}

.wes-academy-results__footer {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 2.5rem;
	padding: 1.6rem 1.75rem;
	background: #18365b;
	color: #fff;
}

.wes-academy-results__footer p {
	max-width: 45rem;
	margin: 0;
	color: #c4cfda;
	font-size: .7rem;
	line-height: 1.65;
}

.wes-academy-results__footer p strong {
	color: #fff;
}

.wes-academy-results__footer a {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	color: #fff;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-decoration: none;
	text-transform: uppercase;
}

.wes-academy-results__footer a:hover,
.wes-academy-results__footer a:focus-visible {
	color: #ff91a0;
}

.wes-academy-results__footer a span {
	font-size: 1.2rem;
}

.wes-apartment-card__facilities {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.wes-apartment-card__facilities li {
	padding: .35rem .55rem;
	border-radius: 999px;
	font-size: .78rem;
	background: #f3f4f6;
}

.wes-apartment-card__footer {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding-top: .3rem;
}

.wes-apartment-card__price {
	display: grid;
	gap: .15rem;
}

.wes-apartment-card__price span {
	font-size: .75rem;
	color: #4b5563;
}

.wes-apartment-card__price strong {
	font-size: 1.65rem;
	line-height: 1.05;
}

.wes-apartment-card__price small,
.wes-unit-offer__price small,
.wes-selected-apartment-person-price {
	display: block;
	margin-top: .2rem;
	font-size: .72rem;
	font-weight: 500;
	line-height: 1.35;
	color: #4b5563;
}

.wes-apartment-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.8rem;
	padding: .65rem 1rem;
	border-radius: .35rem;
	color: #fff;
	background: #c5252b;
	font-weight: 700;
	text-decoration: none;
	border: 0;
	cursor: pointer;
}

.wes-apartment-card__button:hover,
.wes-apartment-card__button:focus-visible {
	color: #fff;
	background: #951b20;
}

.wes-apartment-card__button[aria-pressed="true"] {
	background: #16738f;
}

.wes-selected-apartment-name {
	display: block;
	font-weight: 700;
}

.hotel-detail__price .wes-selected-apartment-total-price {
	display: block;
	font-size: 2rem;
	line-height: 1.05;
}

.wes-unit-offer {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid rgba(24, 54, 91, .16);
}

.wes-unit-offer__price {
	display: grid;
	gap: .15rem;
	margin: 0;
}

.wes-unit-offer__price span {
	font-size: .7rem;
	font-weight: 700;
	line-height: 1.25;
	text-transform: uppercase;
}

.wes-unit-offer__price strong {
	font-size: 1.65rem;
	line-height: 1;
}

.wes-unit-offer__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.6rem;
	padding: .6rem 1rem;
	border: 0;
	border-radius: 0;
	color: #fff;
	background: #ff3f58;
	font: inherit;
	font-size: .78rem;
	font-weight: 800;
	text-transform: uppercase;
	cursor: pointer;
}

.wes-unit-offer__button:hover,
.wes-unit-offer__button:focus-visible {
	color: #fff;
	background: #d9233d;
}

.wes-unit-offer__button[aria-pressed="true"] {
	background: #16738f;
}

.wes-unit-offer__unavailable {
	margin: 0;
	font-size: .78rem;
	font-weight: 700;
	color: #7f1d1d;
}

.wes-unit--selected {
	box-shadow: 0 0 0 3px rgba(22, 115, 143, .28);
}

.vds-room-card__copy .wes-unit-offer {
	margin-top: 1rem;
}

/* Szczegóły ceny na kartach pokoi nie zmieniają wysokości całego gridu. */
.vds-hotel-detail__rooms .vds-room-card {
	position: relative;
	overflow: visible;
}

.vds-hotel-detail__rooms .vds-room-card:has(.wes-price-breakdown[open]) {
	z-index: 20;
}

.vds-hotel-detail__rooms .vds-room-card__media {
	overflow: hidden;
}

.vds-hotel-detail__rooms .vds-room-card__copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	width: 100%;
}

.vds-hotel-detail__rooms .wes-unit-offer {
	position: relative;
	width: 100%;
}

.vds-hotel-detail__rooms .wes-price-breakdown {
	position: relative;
}

.vds-hotel-detail__rooms .wes-price-breakdown__body {
	position: absolute;
	z-index: 30;
	top: calc(100% + .45rem);
	left: 0;
	box-sizing: border-box;
	width: max-content;
	min-width: 16rem;
	max-width: min(22rem, calc(100vw - 3rem));
	margin: 0;
	padding: .85rem 1rem;
	border: 1px solid #d7e0e7;
	background: #fff;
	box-shadow: 0 .9rem 2.2rem rgba(9, 43, 86, .14);
}

.vds-hotel-detail__rooms .wes-price-breakdown__body small {
	white-space: normal;
}

.wes-archive-room-status {
	margin: .75rem 0;
	font-size: .82rem;
	line-height: 1.4;
	color: #4b5563;
}

.wes-archive-room-status:empty {
	display: none;
}

.wes-archive-room-status[data-state="error"] {
	color: #8a1c1c;
}

.wes-archive-room-status[data-state="empty"] {
	color: #713f12;
}

.wes-archive-room {
	align-items: center;
}

.wes-archive-room-price {
	display: grid;
	gap: .12rem;
	margin: 0;
}

.wes-archive-room-price > span,
.wes-archive-room-price > small {
	font-size: .7rem;
	line-height: 1.3;
	color: #4b5563;
}

.wes-archive-room-price > strong {
	font-size: 1.25rem;
	line-height: 1.05;
}

/* Archive cards intentionally show only the payable total. This also hides
 * stale breakdown markup left by an older cached frontend script. */
[data-hotel-archive] .wes-archive-room-price > small,
[data-hotel-archive] .wes-archive-room-price .wes-child-price-tier,
[data-hotel-archive] .wes-archive-room-price .wes-vacancy-price,
[data-hotel-archive] .wes-archive-room-price .wes-price-breakdown,
[data-hotel-archive] .wes-archive-room-price .wes-skipass-rates,
[data-hotel-archive] .wes-archive-room-price .wes-skipass-choice {
	display: none !important;
}

.wes-room-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: .85rem;
	padding: .55rem .8rem;
	border: 1px solid rgba(24, 54, 91, .25);
	background: transparent;
	color: #18365b;
	font: inherit;
	font-size: .75rem;
	font-weight: 800;
	cursor: pointer;
}

.wes-room-toggle:hover,
.wes-room-toggle:focus-visible {
	border-color: #18365b;
	background: rgba(24, 54, 91, .06);
}

.wes-archive-room__button {
	white-space: nowrap;
}

@media (max-width: 60rem) {
	.wes-search-form--archive {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wes-academy-search__panel {
		grid-template-columns: 1.3fr 1fr 1fr;
	}

	.wes-academy-search__panel > button[type="submit"] {
		grid-column: 1 / -1;
		min-height: 4.4rem;
	}

	.wes-academy-results__footer {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.wes-skipass-catalog {
		margin-top: 3rem;
	}
}

@media (max-width: 32rem) {
	.wes-search-form {
		grid-template-columns: 1fr;
	}

	.wes-apartment-card__footer {
		align-items: stretch;
		flex-direction: column;
	}

	.wes-apartment-card__button {
		width: 100%;
	}

	.wes-unit-offer {
		align-items: stretch;
		flex-direction: column;
	}

	.wes-unit-offer__button {
		width: 100%;
	}

	.wes-archive-room {
		align-items: stretch;
	}

	.wes-archive-room__button {
		width: 100%;
	}

	.wes-academy-search {
		margin-top: 2.5rem;
		padding: 1.75rem 1.25rem;
	}

	.wes-academy-search__heading {
		grid-template-columns: 1fr;
		gap: 1.4rem;
		margin-bottom: 2rem;
	}

	.wes-academy-search__heading > p {
		padding: 1rem 0 0;
		border-top: 1px solid rgba(24, 54, 91, .2);
		border-left: 0;
	}

	.wes-academy-search__panel {
		display: flex;
		flex-direction: column;
	}

	.wes-academy-search__panel label {
		min-height: 4.75rem;
		padding: .95rem 1rem;
		border-right: 0;
		border-bottom: 1px solid rgba(24, 54, 91, .14);
	}

	.wes-academy-results__meta {
		align-items: flex-start;
		flex-direction: column;
		gap: .5rem;
		padding: 1.25rem;
	}

	.wes-academy-results__grid {
		grid-template-columns: 1fr;
	}

	.wes-academy-results__grid article {
		min-height: 0;
		padding: 1.4rem 1.25rem;
		border-right: 0;
	}

	.wes-academy-results__seats {
		margin: 1rem 0;
	}

	.wes-academy-results__footer {
		padding: 1.5rem 1.25rem;
	}

	.wes-skipass-catalog {
		margin-top: 2.5rem;
		padding-bottom: 2rem;
	}

	.wes-skipass-catalog__title {
		font-size: 2rem;
	}

	.wes-skipass-catalog__lead {
		margin-bottom: 1.1rem;
		font-size: .8rem;
	}

	.wes-skipass-catalog__table-wrap {
		overflow: visible;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.wes-skipass-catalog__table {
		min-width: 0;
		background: transparent;
	}

	.wes-skipass-catalog__table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.wes-skipass-catalog__table tbody {
		display: grid;
		gap: .9rem;
	}

	.wes-skipass-catalog__table tbody tr {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		overflow: hidden;
		border: 1px solid #d8e0e8;
		border-radius: 0;
		background: #fff;
		box-shadow: none;
	}

	.wes-skipass-catalog__table th,
	.wes-skipass-catalog__table td {
		display: grid;
		gap: .25rem;
		padding: .8rem 1rem;
		border: 0;
		border-bottom: 1px solid #e3e9ee;
		background: #fff !important;
	}

	.wes-skipass-catalog__table tbody th {
		grid-column: 1 / -1;
		width: auto;
		padding: 1rem;
		background: #f0f4f6 !important;
		color: #092b56;
		font-size: .88rem;
	}

	.wes-skipass-catalog__table tbody td:nth-child(2) {
		grid-column: 1 / -1;
		display: flex;
		align-items: center;
		justify-content: space-between;
		color: #395774;
	}

	.wes-skipass-catalog__table tbody td:nth-child(2)::before {
		content: "Ważność";
	}

	.wes-skipass-catalog__table tbody td:nth-child(3)::before {
		content: "Dorosły";
	}

	.wes-skipass-catalog__table tbody td:nth-child(4)::before {
		content: "Junior";
	}

	.wes-skipass-catalog__table tbody td:nth-child(5)::before {
		content: "Dziecko";
	}

	.wes-skipass-catalog__table tbody td::before {
		color: #6d7f91;
		font-size: .61rem;
		font-weight: 800;
		letter-spacing: .045em;
		text-transform: uppercase;
	}

	.wes-skipass-catalog__table tbody td:last-child {
		grid-column: 1 / -1;
		border-bottom: 0;
	}
}
/* ------------------------------------------------------------------
 * 0.3.0 — Price calendar
 * ------------------------------------------------------------------ */

.wes-price-calendar {
	grid-column: 1 / -1;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
	margin: 1.5rem 0 2rem;
	color: #18365b;
}

.wes-price-calendar__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: .9rem;
}

.wes-price-calendar__heading {
	min-width: 0;
}

.wes-price-calendar__title {
	margin: 0 0 .3rem;
	color: #18365b;
	font-size: 1.25rem;
	line-height: 1.2;
}

.wes-price-calendar__lead {
	margin: 0;
	color: #536579;
	font-size: .82rem;
	line-height: 1.45;
}

.wes-price-calendar__nav {
	display: flex;
	flex: 0 0 auto;
	gap: .4rem;
}

.wes-price-calendar__arrow {
	width: 2.4rem;
	height: 2.4rem;
	padding: 0;
	border: 1px solid rgba(24, 54, 91, .25);
	border-radius: 50%;
	background: #fff;
	color: #18365b;
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
}

.wes-price-calendar__arrow:hover:not(:disabled) {
	border-color: #18365b;
}

.wes-price-calendar__arrow:disabled {
	opacity: .35;
	cursor: default;
}

.wes-price-calendar__track {
	position: relative;
	display: grid;
	grid-auto-columns: minmax(9.25rem, 1fr);
	grid-auto-flow: column;
	gap: .6rem;
	padding: 1.4rem .15rem .6rem;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.wes-price-calendar__cell {
	position: relative;
	min-width: 0;
	scroll-snap-align: start;
}

.wes-price-calendar__month {
	position: absolute;
	top: -1.25rem;
	left: .1rem;
	color: #68778a;
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
}

.wes-price-calendar__day {
	position: relative;
	display: grid;
	gap: .25rem;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	padding: .8rem .8rem .75rem;
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: .35rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.wes-price-calendar__day:hover {
	border-color: #18365b;
	box-shadow: 0 6px 18px rgba(24, 54, 91, .12);
	transform: translateY(-1px);
}

.wes-price-calendar__day:focus-visible {
	outline: 2px solid #d9233d;
	outline-offset: 2px;
}

.wes-price-calendar__day.is-selected {
	border-color: #18365b;
	background: #18365b;
	color: #fff;
}

.wes-price-calendar__dates {
	font-size: .74rem;
	font-weight: 700;
	white-space: nowrap;
}

.wes-price-calendar__nights {
	color: #68778a;
	font-size: .7rem;
}

.wes-price-calendar__price {
	margin-top: .3rem;
	font-size: 1.05rem;
	line-height: 1.1;
	white-space: nowrap;
}

.wes-price-calendar__day.is-empty .wes-price-calendar__price {
	color: #68778a;
	font-size: .85rem;
	font-weight: 700;
}

.wes-price-calendar__bar {
	display: block;
	height: .25rem;
	margin-top: .35rem;
	border-radius: 1rem;
	background: rgba(24, 54, 91, .08);
	overflow: hidden;
}

.wes-price-calendar__bar i {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: #18365b;
	opacity: .45;
}

.wes-price-calendar__day.is-cheapest .wes-price-calendar__bar i {
	background: #167348;
	opacity: 1;
}

.wes-price-calendar__day.is-cheapest .wes-price-calendar__price {
	color: #167348;
}

.wes-price-calendar__badge {
	position: absolute;
	top: -.55rem;
	right: .6rem;
	padding: .2rem .45rem;
	border-radius: .2rem;
	background: #167348;
	color: #fff;
	font-size: .6rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.wes-price-calendar__day.is-selected .wes-price-calendar__nights,
.wes-price-calendar__day.is-selected .wes-price-calendar__price {
	color: #fff;
}

.wes-price-calendar__day.is-selected .wes-price-calendar__bar {
	background: rgba(255, 255, 255, .2);
}

.wes-price-calendar__day.is-selected .wes-price-calendar__bar i {
	background: #fff;
	opacity: .85;
}

.wes-price-calendar__note {
	margin: .5rem 0 0;
	color: #68778a;
	font-size: .7rem;
	line-height: 1.45;
}

/* Hotel page: full calendar in the main content column, under skipasses.
 * Typography matches the "Ceny skipassów" section above it. */
.wes-price-calendar--detail {
	grid-column: 1;
	width: 100%;
	margin: 2rem 0 1rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid rgba(24, 54, 91, .16);
}

.wes-price-calendar--detail .wes-price-calendar__title {
	margin: 0;
	font-size: clamp(1.7rem, 3vw, 2.5rem);
	font-weight: 500;
	line-height: 1.1;
}

.wes-price-calendar--detail .wes-price-calendar__lead {
	margin: .65rem 0 0;
	font-size: .9rem;
}

/* ------------------------------------------------------------------
 * 0.3.0 — Availability badges
 * ------------------------------------------------------------------ */

.wes-availability {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	width: fit-content;
	margin: .35rem 0;
	padding: .22rem .5rem;
	border-radius: .2rem;
	font-size: .68rem;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .02em;
	white-space: nowrap;
	vertical-align: middle;
}

.wes-availability--low {
	color: #9b1c2e;
	background: #fdecef;
}

.wes-availability--low::before {
	content: "";
	width: .45rem;
	height: .45rem;
	border-radius: 50%;
	background: #d9233d;
	animation: wes-pulse 1.8s ease-in-out infinite;
}

.wes-availability--request {
	color: #7a3300;
	background: #fff1e6;
}

.vds-hotel-card__room-name .wes-availability {
	display: flex;
	margin: .3rem 0 0;
}

.wes-unit-offer > .wes-availability {
	align-self: flex-start;
}

@keyframes wes-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: .35; }
}

@media (prefers-reduced-motion: reduce) {
	.wes-availability--low::before {
		animation: none;
	}

	.wes-price-calendar__day {
		transition: none;
	}
}

/* ------------------------------------------------------------------
 * 0.3.0 — Trip cost summary
 * ------------------------------------------------------------------ */

.wes-trip-summary {
	margin-top: 1rem;
	padding: .9rem 1rem;
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: .35rem;
	background: #f2f4f3;
	color: #18365b;
}

.wes-trip-summary:empty {
	display: none;
}

.wes-trip-summary__title {
	margin: 0 0 .55rem;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.wes-trip-summary__list {
	display: grid;
	gap: .35rem;
	margin: 0;
}

.wes-trip-summary__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .75rem;
	font-size: .82rem;
}

.wes-trip-summary__row dt {
	min-width: 0;
	margin: 0;
	font-weight: 400;
}

.wes-trip-summary__row dd {
	display: inline-flex;
	align-items: baseline;
	gap: .4rem;
	margin: 0;
	font-weight: 700;
	white-space: nowrap;
}

.wes-trip-summary__row dd > span {
	display: inline-flex;
	align-items: baseline;
	gap: .5rem;
}

.wes-trip-summary__row--muted dt,
.wes-trip-summary__row--muted dd {
	color: #68778a;
	font-weight: 400;
}

.wes-trip-summary__row--total {
	margin-top: .3rem;
	padding-top: .55rem;
	border-top: 1px solid rgba(24, 54, 91, .2);
	font-size: .95rem;
}

.wes-trip-summary__row--total dt,
.wes-trip-summary__row--total dd {
	font-weight: 800;
}

.wes-trip-summary__add {
	color: #d9233d;
	font-weight: 700;
	text-decoration: none;
}

.wes-trip-summary__add:hover {
	text-decoration: underline;
}

.wes-trip-summary__remove {
	padding: 0;
	border: 0;
	background: none;
	color: #68778a;
	font: inherit;
	font-size: .7rem;
	font-weight: 400;
	text-decoration: underline;
	cursor: pointer;
}

.wes-trip-summary__note {
	display: block;
	margin-top: .55rem;
	color: #68778a;
	font-size: .68rem;
	line-height: 1.4;
}

/* ------------------------------------------------------------------
 * 0.3.0 — Add course to trip
 * ------------------------------------------------------------------ */

.wes-academy-add {
	display: flex;
	align-items: flex-end;
	gap: .5rem;
	margin-top: auto;
	padding-top: 1rem;
}

.wes-academy-add__count {
	display: grid;
	gap: .2rem;
	color: #68778a;
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.wes-academy-add__count select {
	min-width: 3.6rem;
	min-height: 2.4rem;
	padding: 0 .4rem;
	border: 1px solid rgba(24, 54, 91, .25);
	border-radius: .2rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .85rem;
}

.wes-academy-add__button {
	flex: 1 1 auto;
	min-height: 2.4rem;
	padding: 0 .75rem;
	border: 1px solid #18365b;
	border-radius: .2rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .78rem;
	font-weight: 800;
	cursor: pointer;
}

.wes-academy-add__button:hover,
.is-in-trip .wes-academy-add__button {
	background: #18365b;
	color: #fff;
}

.wes-academy-results__grid article.is-in-trip {
	box-shadow: inset 0 0 0 2px #18365b;
}

@media (max-width: 32rem) {
	.wes-price-calendar__header {
		align-items: flex-start;
	}

	.wes-price-calendar__nav {
		display: none;
	}

	.wes-price-calendar__track {
		grid-auto-columns: minmax(8.4rem, 8.4rem);
	}
}

/* Longer date labels (with "from" prices) must never widen the form. */
select[name="winterevent_stay"] {
	max-width: 100%;
	min-width: 0;
	text-overflow: ellipsis;
}

/* ==================================================================
 * Val di Sole — wygląd elementów dodanych w wersji 0.3.1
 * ================================================================== */

.wes-price-calendar {
	margin: 2.25rem 0;
	padding: 2rem;
	border: 1px solid #dbe3e9;
	border-radius: 0;
	background: #fff;
	box-shadow: 0 1rem 2.8rem rgba(9, 43, 86, .07);
	font-family: Inter, sans-serif;
}

.wes-price-calendar--detail {
	margin: 2.5rem 0 1.5rem;
	padding: 2rem;
	border: 1px solid #dbe3e9;
}

.wes-price-calendar__header {
	align-items: center;
	margin-bottom: 1.5rem;
}

.wes-price-calendar__title,
.wes-price-calendar--detail .wes-price-calendar__title {
	margin: 0;
	color: #092b56;
	font-size: clamp(1.65rem, 2.8vw, 2.4rem);
	font-weight: 300;
	line-height: 1.05;
	letter-spacing: -.04em;
}

.wes-price-calendar__lead,
.wes-price-calendar--detail .wes-price-calendar__lead {
	max-width: 48rem;
	margin: .7rem 0 0;
	color: #617287;
	font-size: .8rem;
	line-height: 1.6;
}

.wes-price-calendar__nav {
	gap: .55rem;
}

.wes-price-calendar__arrow {
	position: relative;
	display: grid;
	width: 2.65rem;
	height: 2.65rem;
	place-items: center;
	border: 1px solid #b9c7d3;
	border-radius: 0;
	background: #fff;
	color: #092b56;
	font-family: Inter, sans-serif;
	font-size: 1rem;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.wes-price-calendar__arrow:hover:not(:disabled),
.wes-price-calendar__arrow:focus-visible:not(:disabled) {
	border-color: #092b56;
	background: #092b56;
	color: #fff;
}

.wes-price-calendar__track {
	gap: .75rem;
	padding: 1.5rem .1rem .9rem;
	scrollbar-color: #9dafbd #eef2f5;
}

.wes-price-calendar__day {
	gap: .35rem;
	min-height: 8.4rem;
	padding: 1rem;
	border: 1px solid #d7e0e7;
	border-radius: 0;
	background: #fff;
	color: #092b56;
	box-shadow: none;
	font-family: Inter, sans-serif;
}

.wes-price-calendar__day:hover {
	border-color: #092b56;
	box-shadow: 0 .8rem 1.8rem rgba(9, 43, 86, .1);
	transform: translateY(-2px);
}

.wes-price-calendar__day.is-selected {
	border-color: #092b56;
	background: #092b56;
	color: #fff;
}

.wes-price-calendar__dates {
	font-size: .71rem;
	font-weight: 600;
}

.wes-price-calendar__nights {
	color: #718194;
	font-size: .66rem;
}

.wes-price-calendar__price {
	margin-top: auto;
	font-size: 1.05rem;
	font-weight: 600;
}

.wes-price-calendar__bar {
	height: 2px;
	border-radius: 0;
	background: #e6ebef;
}

.wes-price-calendar__bar i {
	border-radius: 0;
	background: #092b56;
}

.wes-price-calendar__day.is-cheapest {
	border-color: #ff3f58;
}

.wes-price-calendar__day.is-cheapest .wes-price-calendar__price {
	color: #d9233d;
}

.wes-price-calendar__day.is-cheapest .wes-price-calendar__bar i,
.wes-price-calendar__badge {
	background: #ff3f58;
}

.wes-price-calendar__badge {
	top: -.65rem;
	right: .55rem;
	padding: .25rem .5rem;
	border-radius: 0;
	font-size: .55rem;
	letter-spacing: .08em;
}

.wes-price-calendar__month {
	color: #68798b;
	font-size: .6rem;
	font-weight: 700;
	letter-spacing: .12em;
}

.wes-price-calendar__note {
	margin-top: .7rem;
	color: #718194;
	font-size: .66rem;
}

.wes-availability {
	gap: .42rem;
	min-height: 1.7rem;
	margin: .45rem 0 0;
	padding: .3rem .6rem;
	border: 1px solid currentColor;
	border-radius: 999px;
	background: transparent;
	font-family: Inter, sans-serif;
	font-size: .58rem;
	font-weight: 700;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.wes-availability--low {
	color: #c5263e;
	background: #fff5f6;
}

.wes-availability--low::before {
	width: .42rem;
	height: .42rem;
	background: #ff3f58;
}

.wes-availability--request {
	color: #9a5b12;
	background: #fff9ef;
}

.wes-availability--request::before {
	display: inline-grid;
	flex: 0 0 .85rem;
	width: .85rem;
	height: .85rem;
	place-items: center;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: .58rem;
	font-weight: 800;
	line-height: 1;
	content: "?";
}

.wes-trip-summary {
	margin-top: 1.25rem;
	padding: 1.25rem;
	border: 1px solid #d7e0e7;
	border-radius: 0;
	background: #f5f8fa;
	color: #092b56;
	font-family: Inter, sans-serif;
}

.wes-trip-summary__title {
	margin-bottom: .9rem;
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .12em;
}

.wes-trip-summary__list {
	gap: .55rem;
}

.wes-trip-summary__row {
	gap: 1rem;
	font-size: .76rem;
	line-height: 1.4;
}

.wes-trip-summary__row dt {
	color: #536579;
}

.wes-trip-summary__row dd {
	color: #092b56;
	font-weight: 600;
}

.wes-trip-summary__row--total {
	margin-top: .55rem;
	padding-top: .85rem;
	border-top-color: #bfcbd5;
	font-size: .92rem;
}

.wes-trip-summary__row--total dt,
.wes-trip-summary__row--total dd {
	color: #092b56;
	font-weight: 700;
}

.wes-trip-summary__add {
	color: #e52f49;
	font-weight: 600;
}

.wes-trip-summary__remove {
	color: #718194;
	font-size: .64rem;
}

.wes-trip-summary__note {
	margin-top: .8rem;
	color: #718194;
	font-size: .64rem;
}

.wes-academy-add {
	display: grid;
	grid-template-columns: minmax(4.5rem, .35fr) minmax(8rem, 1fr);
	align-items: end;
	gap: .65rem;
	padding-top: 1.1rem;
	border-top: 1px solid #e1e7ec;
}

.wes-academy-add__count {
	gap: .35rem;
	color: #65768a;
	font-size: .56rem;
	font-weight: 700;
	letter-spacing: .1em;
}

.wes-academy-add__count select {
	width: 100%;
	min-height: 2.65rem;
	padding: 0 .65rem;
	border: 1px solid #c8d3dc;
	border-radius: 0;
	background: #fff;
	color: #092b56;
	font-family: Inter, sans-serif;
}

.wes-academy-add__button {
	min-height: 2.65rem;
	padding: .65rem .8rem;
	border: 1px solid #ff3f58;
	border-radius: 0;
	background: #fff;
	color: #e52f49;
	font-family: Inter, sans-serif;
	font-size: .64rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: color .2s ease, background-color .2s ease;
}

.wes-academy-add__button:hover,
.wes-academy-add__button:focus-visible,
.is-in-trip .wes-academy-add__button {
	border-color: #ff3f58;
	background: #ff3f58;
	color: #fff;
}

.wes-academy-results__grid article.is-in-trip {
	box-shadow: inset 0 0 0 2px #ff3f58;
}

@media (max-width: 48rem) {
	.wes-price-calendar {
		padding: 1.35rem;
	}

	.wes-price-calendar__header {
		align-items: flex-start;
	}

	.wes-price-calendar__day {
		min-height: 7.7rem;
	}
}

@media (max-width: 32rem) {
	.wes-price-calendar {
		margin-block: 1.5rem;
		padding: 1.1rem;
	}

	.wes-price-calendar__title,
	.wes-price-calendar--detail .wes-price-calendar__title {
		font-size: 1.65rem;
	}

	.wes-price-calendar__lead,
	.wes-price-calendar--detail .wes-price-calendar__lead {
		font-size: .73rem;
	}

	.wes-trip-summary__row {
		align-items: flex-start;
		font-size: .72rem;
	}

	.wes-academy-add {
		grid-template-columns: 1fr;
	}
}
.wes-academy-results__grid > [hidden] {
	display: none !important;
}

.wes-academy-results__grid article {
	min-height: 0;
	padding: 1.15rem 1.2rem;
}

.wes-academy-results__grid article h3,
.wes-academy-results__grid article h4 {
	margin-bottom: .65rem;
	font-size: 1.35rem;
	line-height: 1;
}

.wes-academy-results__grid .wes-academy-results__seats {
	margin: .55rem 0;
}

.wes-academy-results__grid .wes-academy-add {
	padding-top: .7rem;
}

.wes-academy-results__toggle-wrap {
	display: flex;
	justify-content: center;
	padding: 1rem 1.25rem;
	border-top: 1px solid rgba(24, 54, 91, .12);
	background: #f7f8f9;
}

.wes-academy-results__toggle-wrap[hidden] {
	display: none !important;
}

.wes-academy-results__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	max-width: 100%;
	padding: .75rem 1.6rem;
	border: 1px solid #ff3f58;
	border-radius: 0;
	background: #ff3f58;
	color: #fff;
	font: inherit;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .055em;
	text-align: center;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s, border-color .2s;
}

.wes-academy-results__toggle:hover {
	border-color: #d9233d;
	background: #d9233d;
	color: #fff;
}

.wes-academy-results__toggle:focus-visible {
	outline: 2px solid #d9233d;
	outline-offset: 4px;
}

@media (max-width: 600px) {
	.wes-academy-results__toggle { width: 100%; }
}

/* Zwarty widok pierwszego szkolenia */
.wes-academy-results__meta {
	position: relative;
	padding-left: 1.65rem;
	background: linear-gradient(90deg, #f5f8fa 0%, #fff 72%);
}

.wes-academy-results__meta::before {
	content: "";
	position: absolute;
	top: 1rem;
	bottom: 1rem;
	left: 0;
	width: 3px;
	background: #ff3f58;
}

.wes-academy-results__meta-heading {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: .45rem;
}

.wes-academy-results__meta-heading > span {
	color: #092b56;
	font-size: 1.18rem;
	font-weight: 500;
	letter-spacing: -.025em;
}

.wes-academy-results__variant {
	display: inline-flex;
	align-items: center;
	min-height: 1.45rem;
	padding: .22rem .5rem;
	background: #ff3f58;
	color: #fff;
	font-size: .58rem;
	font-weight: 800;
	letter-spacing: .1em;
	line-height: 1;
	text-transform: uppercase;
}

.wes-academy-results__meta-copy > small {
	display: block;
	margin-top: .38rem;
	color: #65768a;
	font-size: .68rem;
	line-height: 1.45;
}

.wes-academy-results__group:first-child .wes-academy-results__meta {
	padding: 1.2rem 1.45rem;
	padding-left: 1.65rem;
	background: linear-gradient(90deg, #f7f9fb 0%, #fff 72%);
}

.wes-academy-results__group:first-child .wes-academy-results__meta-heading {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: .35rem;
}

.wes-academy-results__group:first-child .wes-academy-results__meta small {
	display: block;
	margin-top: .3rem;
	color: #64758a;
	font-size: .72rem;
	line-height: 1.45;
}

.wes-academy-results__grid article:only-child {
	display: grid;
	grid-template-columns: minmax(11rem, .75fr) minmax(9rem, .55fr) minmax(20rem, 1.45fr);
	grid-template-areas:
		"level price action"
		"seats price action";
	align-items: center;
	gap: .35rem 2rem;
	min-height: 0;
	padding: 1.25rem 1.45rem;
	border-right: 0;
}

.wes-academy-results__grid article:only-child .wes-academy-results__level {
	grid-area: level;
}

.wes-academy-results__grid article:only-child .wes-academy-results__level h3 {
	margin: .28rem 0 0;
}

.wes-academy-results__grid article:only-child .wes-academy-results__seats {
	grid-area: seats;
	margin: .2rem 0 0;
}

.wes-academy-results__grid article:only-child .wes-academy-results__price {
	grid-area: price;
	margin: 0;
	padding-left: 1.5rem;
	border-left: 1px solid #e1e7ec;
}

.wes-academy-results__grid article:only-child .wes-academy-add {
	grid-area: action;
	grid-template-columns: 6.5rem minmax(12rem, 1fr);
	margin: 0;
	padding: 0 0 0 1.5rem;
	border-top: 0;
	border-left: 1px solid #e1e7ec;
}

.wes-academy-results__toggle-wrap {
	position: relative;
	padding: 1.1rem 1.25rem;
	background: #f4f7f9;
}

.wes-academy-results__toggle {
	gap: .7rem;
	min-width: 17rem;
	box-shadow: 0 .45rem 1.2rem rgba(229, 47, 73, .16);
}

.wes-academy-results__toggle::after {
	content: "↓";
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
}

@media (max-width: 56rem) {
	.wes-academy-results__grid article:only-child {
		grid-template-columns: minmax(10rem, 1fr) minmax(9rem, .7fr);
		grid-template-areas:
			"level price"
			"seats price"
			"action action";
	}

	.wes-academy-results__grid article:only-child .wes-academy-add {
		margin-top: .7rem;
		padding: .85rem 0 0;
		border-top: 1px solid #e1e7ec;
		border-left: 0;
	}
}

@media (max-width: 36rem) {
	.wes-academy-results__group:first-child .wes-academy-results__meta {
		align-items: flex-start;
		padding: 1.05rem;
	}

	.wes-academy-results__grid article:only-child {
		display: flex;
		padding: 1.1rem;
	}

	.wes-academy-results__grid article:only-child .wes-academy-results__price {
		width: 100%;
		margin-top: .55rem;
		padding: .75rem 0 0;
		border-top: 1px solid #e1e7ec;
		border-left: 0;
	}

	.wes-academy-results__grid article:only-child .wes-academy-add {
		width: 100%;
		grid-template-columns: 5.5rem 1fr;
	}

	.wes-academy-results__toggle {
		min-width: 0;
	}
}

/* Jednolity układ kafelków szkoleniowych */
.wes-academy-results__group:first-child .wes-academy-results__meta,
.wes-academy-results__meta {
	background: linear-gradient(90deg, #f5f8fa 0%, #fff 72%);
}

.wes-academy-results__grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.wes-academy-results__grid article:only-child {
	display: flex;
	min-height: 0;
	padding: 1.15rem 1.2rem;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	border-right: 1px solid rgba(24, 54, 91, .14);
}

.wes-academy-results__grid article:only-child .wes-academy-results__price {
	width: auto;
	margin-top: auto;
	padding: 0;
	border: 0;
}

.wes-academy-results__grid article:only-child .wes-academy-add {
	width: auto;
	grid-template-columns: minmax(4.5rem, .35fr) minmax(8rem, 1fr);
	margin: 0;
	padding: .7rem 0 0;
	border-top: 1px solid #e1e7ec;
	border-left: 0;
}

@media (max-width: 68rem) {
	.wes-academy-results__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 42rem) {
	.wes-academy-results__grid {
		grid-template-columns: 1fr;
	}

	.wes-academy-results__grid article:only-child {
		border-right: 0;
	}
}

/* Mobilne zabezpieczenie szerokości: rezerwacja, skipassy i kalendarz */
@media (max-width: 48rem) {
	.hotel-detail__booking,
	.vds-hotel-booking {
		position: static !important;
		inset: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		transform: none !important;
	}

	.hotel-detail__booking *,
	.vds-hotel-booking *,
	.wes-skipass-catalog *,
	.wes-price-calendar * {
		box-sizing: border-box;
		min-width: 0;
	}

	.wes-search-form--detail,
	.wes-detail-price,
	.wes-trip-summary,
	.wes-skipass-choice,
	.wes-booking-action {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.wes-search-form--detail {
		gap: .85rem;
		margin: .85rem 0;
	}

	.wes-search-form--detail .wes-children-ages {
		grid-template-columns: 1fr;
		gap: .75rem;
	}

	.wes-selected-apartment-name,
	.wes-detail-price > span,
	.wes-skipass-choice__total,
	.wes-skipass-choice__rate,
	.wes-skipass-choice__note,
	.wes-status {
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.wes-trip-summary {
		padding: .9rem;
		overflow: hidden;
	}

	.wes-trip-summary__row {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: start;
		gap: .35rem .75rem;
		font-size: .75rem;
	}

	.wes-trip-summary__row dt,
	.wes-trip-summary__row dd,
	.wes-trip-summary__row dd > span {
		max-width: 100%;
		white-space: normal;
		overflow-wrap: anywhere;
	}

	.wes-trip-summary__row dd {
		justify-content: flex-end;
		text-align: right;
	}

	.wes-skipass-choice .wes-custom-select__button,
	.wes-skipass-choice__select {
		width: 100%;
		max-width: 100%;
	}

	.wes-skipass-choice .wes-custom-select__value {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		line-clamp: 3;
		white-space: normal;
	}

	.wes-skipass-catalog {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow: hidden;
	}

	.wes-skipass-catalog__title,
	.wes-skipass-catalog__lead,
	.wes-skipass-catalog__rate,
	.wes-skipass-catalog__note {
		max-width: 100%;
		overflow-wrap: anywhere;
	}

	.wes-skipass-catalog__table-wrap,
	.wes-skipass-catalog__table,
	.wes-skipass-catalog__table tbody,
	.wes-skipass-catalog__table tbody tr {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	.wes-skipass-catalog__table tbody th {
		overflow-wrap: anywhere;
		word-break: normal;
		white-space: normal;
	}

	.wes-skipass-catalog__table td strong,
	.wes-skipass-catalog__table td small {
		white-space: normal;
	}

	.wes-price-calendar,
	.wes-price-calendar--detail {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		margin: 1.75rem 0 1rem;
		padding: 1.1rem;
		overflow: hidden;
	}

	.wes-price-calendar__header {
		align-items: flex-start;
		margin-bottom: 1rem;
	}

	.wes-price-calendar__heading,
	.wes-price-calendar__title,
	.wes-price-calendar__lead,
	.wes-price-calendar__note {
		max-width: 100%;
		overflow-wrap: anywhere;
	}

	.wes-price-calendar__track {
		width: 100%;
		max-width: 100%;
		grid-auto-columns: calc(100% - .75rem);
		gap: .75rem;
		padding: 1.5rem 0 .75rem;
		overflow-x: auto;
		overflow-y: visible;
		overscroll-behavior-inline: contain;
		scroll-snap-type: x mandatory;
	}

	.wes-price-calendar__cell {
		width: 100%;
		max-width: 100%;
		scroll-snap-align: start;
	}

	.wes-price-calendar__day {
		min-height: 7.5rem;
	}
}

@media (max-width: 32rem) {
	.wes-skipass-catalog__table tbody tr {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wes-skipass-catalog__table th,
	.wes-skipass-catalog__table td {
		padding: .75rem .8rem;
	}

	.wes-price-calendar__title,
	.wes-price-calendar--detail .wes-price-calendar__title {
		font-size: 1.6rem;
	}
}



/* ------------------------------------------------------------------
 * 0.4.0 — Total / per person
 * ------------------------------------------------------------------ */

.wes-price-dual .wes-price-person {
	display: none;
}

.wes-price-mode-person .wes-price-dual .wes-price-total {
	display: none;
}

.wes-price-mode-person .wes-price-dual .wes-price-person {
	display: inline;
}

.wes-price-mode {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	margin: .75rem 0;
	padding: .2rem;
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: 2rem;
	background: #fff;
	color: #18365b;
	font-size: .75rem;
}

.wes-price-mode__label {
	padding: 0 .35rem 0 .5rem;
	color: #68778a;
	font-weight: 700;
}

.wes-price-mode button {
	min-height: 2rem;
	padding: 0 .8rem;
	border: 0;
	border-radius: 2rem;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.wes-price-mode button.is-active {
	background: #18365b;
	color: #fff;
}

/* ------------------------------------------------------------------
 * 0.4.0 — Cheaper neighbouring date
 * ------------------------------------------------------------------ */

.wes-cheaper-hint {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: .2rem 1rem;
	margin: .75rem 0;
	padding: .8rem 1rem;
	border: 1px solid rgba(22, 115, 72, .35);
	border-left: 4px solid #167348;
	border-radius: .35rem;
	background: #eef8f2;
	color: #18365b;
}

.wes-cheaper-hint[hidden] {
	display: none;
}

.wes-cheaper-hint p {
	margin: 0;
	font-size: .85rem;
	line-height: 1.4;
}

.wes-cheaper-hint strong {
	color: #135f3c;
}

.wes-cheaper-hint small {
	grid-column: 1;
	color: #536579;
	font-size: .7rem;
}

.wes-cheaper-hint__button {
	grid-row: 1 / span 2;
	grid-column: 2;
	min-height: 2.4rem;
	padding: 0 1rem;
	border: 1px solid #167348;
	border-radius: .25rem;
	background: #167348;
	color: #fff;
	font: inherit;
	font-size: .8rem;
	font-weight: 800;
	white-space: nowrap;
	cursor: pointer;
}

.wes-cheaper-hint__button:hover {
	background: #135f3c;
}

/* Compact variant in the booking panel, so "Zarezerwuj" stays close. */
.hotel-detail__booking .wes-cheaper-hint,
.vds-hotel-booking .wes-cheaper-hint {
	display: block;
	margin: .5rem 0;
	padding: .5rem .7rem;
	border-left-width: 3px;
	font-size: .78rem;
	line-height: 1.35;
}

.hotel-detail__booking .wes-cheaper-hint p,
.vds-hotel-booking .wes-cheaper-hint p {
	display: inline;
	font-size: inherit;
}

.hotel-detail__booking .wes-cheaper-hint small,
.vds-hotel-booking .wes-cheaper-hint small {
	display: none;
}

.hotel-detail__booking .wes-cheaper-hint__button,
.vds-hotel-booking .wes-cheaper-hint__button {
	display: inline;
	min-height: 0;
	margin-left: .25rem;
	padding: 0;
	border: 0;
	background: none;
	color: #167348;
	font-size: inherit;
	text-decoration: underline;
}

.hotel-detail__booking .wes-cheaper-hint__button:hover,
.vds-hotel-booking .wes-cheaper-hint__button:hover {
	background: none;
	color: #135f3c;
}

/* ------------------------------------------------------------------
 * 0.4.0 — Sticky booking bar (mobile)
 * ------------------------------------------------------------------ */

.wes-sticky-bar {
	display: none;
}

@media (max-width: 60rem) {
	body.wes-has-sticky-bar {
		padding-bottom: calc(4.6rem + env(safe-area-inset-bottom, 0px));
	}

	.wes-sticky-bar {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 9990;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: .75rem;
		box-sizing: border-box;
		min-height: 4.4rem;
		padding: .6rem 1rem calc(.6rem + env(safe-area-inset-bottom, 0px));
		border-top: 1px solid rgba(24, 54, 91, .16);
		background: #fff;
		box-shadow: 0 -8px 24px rgba(24, 54, 91, .12);
		color: #18365b;
		transition: transform .2s ease;
	}

	.wes-sticky-bar.is-hidden {
		transform: translateY(110%);
	}
}

.wes-sticky-bar__info {
	display: grid;
	min-width: 0;
}

.wes-sticky-bar__label {
	overflow: hidden;
	color: #68778a;
	font-size: .7rem;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.wes-sticky-bar__price {
	font-size: 1.1rem;
	line-height: 1.2;
	white-space: nowrap;
}

.wes-sticky-bar[data-state="check"] .wes-sticky-bar__price {
	font-size: .85rem;
}

.wes-sticky-bar__button {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	min-height: 2.9rem;
	padding: 0 1.25rem;
	border-radius: .25rem;
	background: #d9233d;
	color: #fff !important;
	font-size: .9rem;
	font-weight: 800;
	text-decoration: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.wes-sticky-bar {
		transition: none;
	}
}

/* ------------------------------------------------------------------
 * 0.4.0 — Share
 * ------------------------------------------------------------------ */

.wes-share {
	margin-top: .8rem;
}

.wes-share__button {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	width: 100%;
	justify-content: center;
	min-height: 2.4rem;
	border: 1px solid rgba(24, 54, 91, .3);
	border-radius: .25rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .8rem;
	font-weight: 800;
	cursor: pointer;
}

.wes-share__button::before {
	content: "";
	width: .9rem;
	height: .9rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 16a3 3 0 0 0-2.4 1.2l-6.7-3.4a3 3 0 0 0 0-1.6l6.7-3.4A3 3 0 1 0 15 7a3 3 0 0 0 .1.8L8.4 11.2a3 3 0 1 0 0 3.6l6.7 3.4A3 3 0 1 0 18 16z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18 16a3 3 0 0 0-2.4 1.2l-6.7-3.4a3 3 0 0 0 0-1.6l6.7-3.4A3 3 0 1 0 15 7a3 3 0 0 0 .1.8L8.4 11.2a3 3 0 1 0 0 3.6l6.7 3.4A3 3 0 1 0 18 16z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wes-share__button:hover {
	border-color: #18365b;
}

.wes-share__menu {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .4rem;
	margin-top: .4rem;
}

.wes-share__menu[hidden] {
	display: none;
}

.wes-share__menu a,
.wes-share__menu button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 2.2rem;
	padding: 0 .4rem;
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: .25rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .72rem;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

/* ------------------------------------------------------------------
 * 0.4.0 — Continue planning
 * ------------------------------------------------------------------ */

/* Own light panel: readable on any theme background (e.g. a dark hero). */
.wes-recent {
	box-sizing: border-box;
	width: 100%;
	max-width: 80rem;
	margin: 1.25rem auto;
	padding: 1rem 1.1rem .9rem;
	border-radius: .5rem;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 10px 30px rgba(24, 54, 91, .14);
	color: #18365b;
	text-align: left;
}

.wes-recent__header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: .75rem;
}

.wes-recent__title {
	margin: 0;
	color: #18365b;
	font-size: 1.15rem;
}

.wes-recent__clear {
	padding: 0;
	border: 0;
	background: none;
	color: #68778a;
	font: inherit;
	font-size: .75rem;
	text-decoration: underline;
	cursor: pointer;
}

.wes-recent__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: .75rem;
}

.wes-recent__search,
.wes-recent__hotel {
	display: grid;
	min-width: 0;
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: .4rem;
	background: #fff;
	color: #18365b;
	text-decoration: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.wes-recent__search:hover,
.wes-recent__hotel:hover {
	border-color: #18365b;
	box-shadow: 0 6px 18px rgba(24, 54, 91, .12);
}

.wes-recent__search {
	align-content: start;
	gap: .2rem;
	padding: .9rem 1rem;
	background: #18365b;
	color: #fff;
}

.wes-recent__search strong {
	font-size: .95rem;
}

.wes-recent__search span {
	font-size: .8rem;
}

.wes-recent__eyebrow {
	opacity: .75;
	font-size: .62rem !important;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.wes-recent__cta {
	margin-top: .35rem;
	font-weight: 800;
}

.wes-recent__hotel {
	grid-template-columns: 5.5rem minmax(0, 1fr);
	overflow: hidden;
}

.wes-recent__hotel img,
.wes-recent__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 5.5rem;
	object-fit: cover;
	background: linear-gradient(135deg, #c7d4e2, #eef2f6);
}

.wes-recent__body {
	display: grid;
	align-content: center;
	gap: .15rem;
	min-width: 0;
	padding: .6rem .8rem;
}

.wes-recent__body strong {
	overflow: hidden;
	font-size: .85rem;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.wes-recent__body small {
	color: #68778a;
	font-size: .7rem;
}

.wes-recent__price {
	color: #167348;
	font-size: .78rem;
	font-weight: 800;
}

.wes-recent__note {
	margin: .6rem 0 0;
	color: #68778a;
	font-size: .68rem;
}

@media (max-width: 32rem) {
	.wes-cheaper-hint {
		grid-template-columns: 1fr;
	}

	.wes-cheaper-hint__button {
		grid-row: auto;
		grid-column: 1;
		margin-top: .4rem;
	}

	.wes-price-mode {
		display: flex;
		width: fit-content;
	}
}

/* ------------------------------------------------------------------
 * 0.5.0 — Multi-room proposals
 * ------------------------------------------------------------------ */

.wes-apartments__grid.wes-split {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.wes-apartments[id="wes-split"] {
	scroll-margin-top: 6rem;
}

.wes-split-option {
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: .45rem;
	background: #fff;
	color: #18365b;
	overflow: hidden;
}

.wes-split-option.is-selected {
	border-color: #18365b;
	box-shadow: 0 0 0 1px #18365b;
}

.wes-split-option__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.2rem;
	background: #f2f4f3;
}

.wes-split-option__header h3 {
	margin: .1rem 0 0;
	color: #18365b;
	font-size: 1.1rem;
}

.wes-split-option__eyebrow {
	display: inline-block;
	padding: .15rem .45rem;
	border-radius: .2rem;
	background: #167348;
	color: #fff;
	font-size: .6rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.wes-split-option__total {
	display: grid;
	justify-items: end;
	text-align: right;
}

.wes-split-option__total small {
	color: #68778a;
	font-size: .7rem;
}

.wes-split-option__total strong {
	font-size: 1.4rem;
	line-height: 1.15;
	white-space: nowrap;
}

.wes-split-option__rooms {
	margin: 0;
	padding: 0;
	list-style: none;
}

.wes-split-option__rooms li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: .5rem 1rem;
	padding: .85rem 1.2rem;
	border-top: 1px solid rgba(24, 54, 91, .1);
}

.wes-split-option__room {
	display: grid;
	gap: .15rem;
	min-width: 0;
}

.wes-split-option__room strong {
	font-size: .9rem;
}

.wes-split-option__room > span:not(.wes-availability) {
	color: #536579;
	font-size: .78rem;
}

.wes-split-option__room .wes-availability {
	margin: .2rem 0 0;
}

.wes-split-option__price {
	font-size: 1rem;
	white-space: nowrap;
}

.wes-split-option__book {
	display: inline-flex;
	align-items: center;
	min-height: 2.4rem;
	padding: 0 .9rem;
	border-radius: .25rem;
	background: #d9233d;
	color: #fff !important;
	font-size: .8rem;
	font-weight: 800;
	text-decoration: none !important;
	white-space: nowrap;
}

.wes-split-option__book:hover {
	background: #b51b31;
}

.wes-split-option__choose {
	display: block;
	width: calc(100% - 2.4rem);
	margin: 0 1.2rem 1rem;
	min-height: 2.3rem;
	border: 1px solid rgba(24, 54, 91, .3);
	border-radius: .25rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .8rem;
	font-weight: 700;
	cursor: pointer;
}

.wes-split-option.is-selected .wes-split-option__choose {
	display: none;
}

.wes-split__note {
	margin: 0;
	padding: .8rem 1rem;
	border-left: 3px solid #18365b;
	background: #f2f4f3;
	color: #18365b;
	font-size: .8rem;
	line-height: 1.45;
}

.wes-split__jump {
	display: inline-block;
	margin-top: .35rem;
	color: #d9233d;
	font-size: .8rem;
	font-weight: 800;
}

.wes-split-badge {
	display: inline-block;
	width: fit-content;
	margin-bottom: .2rem;
	padding: .15rem .45rem;
	border-radius: .2rem;
	background: #18365b;
	color: #fff;
	font-size: .62rem;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.wes-archive-room-status[data-state="split"] {
	color: #18365b;
	font-weight: 700;
}

@media (max-width: 40rem) {
	.wes-split-option__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.wes-split-option__total {
		justify-items: start;
		text-align: left;
	}

	.wes-split-option__rooms li {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.wes-split-option__book {
		grid-column: 1 / -1;
		justify-content: center;
	}
}

/* ------------------------------------------------------------------
 * 0.5.1 — Split price details & room builder
 * ------------------------------------------------------------------ */

.wes-split-breakdown__room {
	display: block;
	margin-top: .45rem;
	color: #18365b;
	font-weight: 800;
}

.wes-split-breakdown__room:first-child {
	margin-top: 0;
}

.wes-split-option__eyebrow--custom {
	background: #18365b;
}

.wes-split-option__choose--primary {
	border-color: #18365b;
	background: #18365b;
	color: #fff;
}

/* Same width and alignment as the "Dostępne apartamenty" section. */
.wes-builder {
	box-sizing: border-box;
	width: min(100% - 2rem, 75rem);
	margin: 2rem auto 4rem;
	padding: 0;
	color: #18365b;
}

/* Directly under the visible apartments section: close the 4rem gap. */
.wes-apartments:not([hidden]) + .wes-builder {
	margin-top: -2rem;
}

.wes-builder[hidden] {
	display: none;
}

.wes-builder__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	min-height: 3rem;
	padding: .7rem 1rem;
	border: 1px dashed rgba(24, 54, 91, .45);
	border-radius: .4rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .9rem;
	font-weight: 800;
	text-align: left;
	cursor: pointer;
}

.wes-builder__toggle::after {
	content: "+";
	flex: 0 0 auto;
	font-size: 1.3rem;
	line-height: 1;
}

.wes-builder__toggle[aria-expanded="true"]::after {
	content: "−";
}

.wes-builder__toggle:hover {
	border-style: solid;
}

.wes-builder__body {
	margin-top: .75rem;
	padding: 1rem;
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: .4rem;
	background: #f2f4f3;
}

.wes-builder__body[hidden] {
	display: none;
}

.wes-builder__intro {
	margin: 0 0 .8rem;
	color: #536579;
	font-size: .82rem;
}

.wes-builder__rooms {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
	gap: .75rem;
}

.wes-builder__room {
	display: grid;
	gap: .55rem;
	padding: .8rem;
	border: 1px solid rgba(24, 54, 91, .16);
	border-radius: .35rem;
	background: #fff;
}

.wes-builder__room.is-over {
	border-color: #d9233d;
	box-shadow: 0 0 0 1px #d9233d;
}

.wes-builder__room-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.wes-builder__remove {
	padding: 0;
	border: 0;
	background: none;
	color: #68778a;
	font: inherit;
	font-size: .75rem;
	text-decoration: underline;
	cursor: pointer;
}

.wes-builder__field {
	display: grid;
	gap: .2rem;
	font-size: .72rem;
	font-weight: 700;
}

.wes-builder__field select {
	width: 100%;
	min-height: 2.4rem;
	padding: 0 .4rem;
	border: 1px solid rgba(24, 54, 91, .25);
	border-radius: .2rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .82rem;
	font-weight: 400;
}

.wes-builder__occupancy {
	color: #68778a;
	font-size: .72rem;
}

.wes-builder__room.is-over .wes-builder__occupancy {
	color: #9b1c2e;
	font-weight: 800;
}

.wes-builder__children {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	align-items: end;
	gap: .5rem .75rem;
	margin-top: .9rem;
	padding: .8rem;
	border-radius: .35rem;
	background: #fff;
}

.wes-builder__children > strong {
	grid-column: 1 / -1;
	font-size: .85rem;
}

.wes-builder__add {
	margin-top: .8rem;
	min-height: 2.4rem;
	padding: 0 1rem;
	border: 1px solid #18365b;
	border-radius: .25rem;
	background: #fff;
	color: #18365b;
	font: inherit;
	font-size: .82rem;
	font-weight: 800;
	cursor: pointer;
}

.wes-builder__add:disabled {
	opacity: .45;
	cursor: not-allowed;
}

.wes-builder__check {
	margin-top: .8rem;
	padding: .6rem .8rem;
	border-radius: .25rem;
	font-size: .8rem;
}

.wes-builder__check ul {
	margin: 0;
	padding-left: 1.1rem;
}

.wes-builder__check[data-state="error"] {
	color: #8a1c1c;
	background: #fff2f2;
}

.wes-builder__check[data-state="loading"] {
	color: #3f4b54;
	background: #fff;
}

.wes-builder__check[data-state="success"] {
	color: #135f3c;
	background: #eef8f2;
}

.wes-builder__result {
	margin-top: .8rem;
}

.wes-builder__result:empty {
	display: none;
}

.wes-builder__result .wes-split-option__choose {
	display: block;
}

/* 0.5.3 — hotel "two adults" pricing note */
.wes-two-adults-note {
	display: block;
	margin-top: .45rem;
	padding: .45rem .6rem;
	border-left: 3px solid #18365b;
	background: #f2f4f3;
	color: #18365b !important;
	font-size: .7rem;
	line-height: 1.4;
}

/* ------------------------------------------------------------------
 * 0.5.4 — Horizontal trip summary
 * ------------------------------------------------------------------ */

.wes-trip-panel {
	box-sizing: border-box;
	width: min(100% - 2rem, 75rem);
	margin: 3rem auto 0;
	padding: 1.5rem;
	border: 1px solid rgba(24, 54, 91, .14);
	border-radius: .5rem;
	background: #fff;
	color: #18365b;
}

.wes-trip-panel[hidden] {
	display: none;
}

.wes-trip-panel + .wes-apartments {
	margin-top: 2.5rem;
}

.wes-trip-panel__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .25rem 1.5rem;
	margin-bottom: 1rem;
}

.wes-trip-panel__title {
	margin: 0;
	font-size: clamp(1.35rem, 2.5vw, 1.75rem);
	line-height: 1.15;
}

.wes-trip-panel__meta {
	margin: 0;
	color: #4b5563;
	font-size: .9rem;
}

.wes-trip-summary.wes-trip-summary--tiles {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}

.wes-trip-summary--tiles .wes-trip-summary__list {
	grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
	gap: .75rem;
}

.wes-trip-summary--tiles .wes-trip-summary__row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: .2rem;
	min-width: 0;
	margin: 0;
	padding: .85rem 1rem;
	border: 0;
	border-radius: .4rem;
	background: #f2f4f3;
	font-size: .85rem;
}

.wes-trip-summary--tiles .wes-trip-summary__row dt {
	color: #4b5563;
	font-size: .8rem;
}

.wes-trip-summary--tiles .wes-trip-summary__row dd {
	flex-wrap: wrap;
	font-size: 1.3rem;
	line-height: 1.2;
	white-space: normal;
}

.wes-trip-summary--tiles .wes-trip-summary__row--muted dd {
	font-size: 1rem;
	font-weight: 700;
}

.wes-trip-summary--tiles .wes-trip-summary__row--total {
	background: #18365b;
	color: #fff;
}

.wes-trip-summary--tiles .wes-trip-summary__row--total dt,
.wes-trip-summary--tiles .wes-trip-summary__row--total dd {
	color: #fff;
}

.wes-trip-summary--tiles .wes-trip-summary__row--total dd {
	font-size: 1.5rem;
}

.wes-trip-summary__sub {
	color: #68778a;
	font-size: .72rem;
	line-height: 1.35;
}

.wes-trip-panel__body {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
	gap: 1.5rem;
	margin-top: 1.25rem;
}

.wes-trip-panel--no-skipass .wes-trip-panel__body {
	grid-template-columns: minmax(0, 1fr);
}

.wes-trip-panel__skipass[hidden] {
	display: none;
}

.wes-trip-panel__skipass .wes-skipass-choice {
	margin-top: 0;
}

.wes-room-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .85rem;
}

.wes-room-table th {
	padding: .45rem .6rem;
	border-bottom: 1px solid rgba(24, 54, 91, .2);
	color: #68778a;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-align: left;
	text-transform: uppercase;
}

.wes-room-table td {
	padding: .65rem .6rem;
	border-bottom: 1px solid rgba(24, 54, 91, .1);
	vertical-align: top;
}

.wes-room-table__room strong {
	display: block;
}

.wes-room-table__room small {
	display: block;
	color: #68778a;
	font-size: .75rem;
}

.wes-room-table__room .wes-availability {
	margin-top: .3rem;
}

.wes-room-table__child {
	display: block;
}

.wes-room-table__child em {
	color: #68778a;
	font-size: .75rem;
	font-style: normal;
}

.wes-room-table td .wes-vacancy-price {
	display: block;
	margin-top: .2rem;
	color: #68778a;
	font-size: .72rem;
}

.wes-room-table .wes-room-table__price {
	font-weight: 800;
	text-align: right;
	white-space: nowrap;
}

.wes-room-table__note {
	display: block;
	margin-top: .5rem;
	color: #68778a;
	font-size: .72rem;
}

.wes-trip-panel__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(24, 54, 91, .12);
}

.wes-trip-panel__notes {
	flex: 1 1 22rem;
	min-width: 0;
}

.wes-trip-panel__notes .wes-two-adults-note {
	margin: 0 0 .35rem;
}

.wes-trip-panel__notes .wes-trip-summary__note {
	margin: 0;
}

.wes-trip-panel__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem;
}

.wes-trip-panel__actions .wes-share {
	margin: 0;
}

.wes-trip-panel__book {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: .6rem 1.4rem;
	border-radius: .35rem;
	background: #d9233d;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
}

.wes-trip-panel__book:hover,
.wes-trip-panel__book:focus-visible {
	background: #b81c32;
	color: #fff;
}

.wes-trip-panel__jump {
	display: inline-block;
	margin-top: .5rem;
	color: #d9233d;
	font-size: .85rem;
	font-weight: 700;
	text-decoration: underline;
}

@media (max-width: 60rem) {
	.wes-trip-panel__body {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 40rem) {
	.wes-trip-panel {
		width: min(100% - 1.5rem, 75rem);
		margin-top: 2rem;
		padding: 1rem;
	}

	.wes-trip-summary--tiles .wes-trip-summary__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .5rem;
	}

	.wes-trip-summary--tiles .wes-trip-summary__row dd {
		font-size: 1.1rem;
	}

	.wes-room-table thead {
		display: none;
	}

	.wes-room-table,
	.wes-room-table tbody,
	.wes-room-table tr,
	.wes-room-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	.wes-room-table tr {
		margin-bottom: .75rem;
		padding: .75rem;
		border: 1px solid rgba(24, 54, 91, .14);
		border-radius: .4rem;
	}

	.wes-room-table td {
		display: flex;
		justify-content: space-between;
		gap: .75rem;
		padding: .3rem 0;
		border: 0;
		text-align: right;
	}

	.wes-room-table td::before {
		content: attr(data-label);
		color: #68778a;
		font-size: .75rem;
		text-align: left;
	}

	.wes-room-table td.wes-room-table__room {
		display: block;
		padding-bottom: .5rem;
		text-align: left;
	}

	.wes-room-table td.wes-room-table__room::before {
		content: none;
	}

	.wes-room-table td > span,
	.wes-room-table td > small {
		text-align: right;
	}

	.wes-room-table td.wes-room-table__room > small {
		text-align: left;
	}

	.wes-room-table td[data-label="Dzieci"] {
		flex-wrap: wrap;
	}

	.wes-room-table td[data-label="Dzieci"] > * {
		margin-left: auto;
	}

	.wes-room-table td.wes-room-table__price {
		margin-top: .25rem;
		padding-top: .5rem;
		border-top: 1px solid rgba(24, 54, 91, .1);
	}

	.wes-trip-panel__actions,
	.wes-trip-panel__book {
		width: 100%;
	}
}
.wes-builder,
.wes-trip-panel {
	font-family: var(--vds-font-family, Inter, Arial, sans-serif);
}

/* Val di Sole — kreator pokoi i poziome podsumowanie 0.5.4 */
.wes-price-calendar.wes-price-calendar--detail.wes-price-calendar--wide {
	grid-column: 1 / -1 !important;
	width: calc(100% - 2rem) !important;
	max-width: 90rem !important;
	min-width: 0;
	margin: clamp(2rem, 4vw, 4rem) auto !important;
}
.wes-price-calendar.wes-price-calendar--detail.wes-price-calendar--inside-container {
	width: 100% !important;
}
.wes-price-calendar--detail.wes-price-calendar--full-row {
	grid-column: 1 / -1;
	grid-row: auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	align-self: start;
	margin: 1.5rem 0 0;
}

.wes-builder__field .wes-native-select {
	min-height: 0;
}
.wes-builder__field .wes-custom-select__button {
	min-height: 3rem;
	font-size: .78rem;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
}
.wes-builder__field .wes-custom-select__value {
	white-space: normal;
	overflow-wrap: anywhere;
}
.wes-builder__field .wes-custom-select__list {
	max-height: 18rem;
	font-weight: 400;
}
.wes-builder__field .wes-custom-select__option {
	white-space: normal;
	overflow-wrap: anywhere;
	font-size: .75rem;
	line-height: 1.5;
}
.wes-builder__room:has(.wes-custom-select.is-open) {
	position: relative;
	z-index: 10;
}
.vds-hotel-detail .wes-trip-panel,
.vds-hotel-detail .wes-builder {
	width: min(calc(100% - clamp(2rem, 7vw, 8rem)), var(--detail-container, 88rem));
	max-width: none;
	margin-inline: auto;
}

.wes-builder *, .wes-trip-panel * { box-sizing: border-box; min-width: 0; }
.wes-builder { color: #092b56; }
.wes-builder__toggle {
	min-height: 4rem; padding: 1.15rem 1.4rem;
	border: 1px solid #d3dde6; border-radius: 0;
	background: #f5f8fa; color: #092b56;
	font-size: .85rem; font-weight: 600; line-height: 1.5;
}
.wes-builder__toggle::after { display: grid; flex: 0 0 1.8rem; width: 1.8rem; height: 1.8rem; place-items: center; color: #ff3f58; }
.wes-builder__toggle:hover, .wes-builder__toggle[aria-expanded="true"] { border-color: #092b56; background: #eef3f7; }
.wes-builder__body { margin-top: .75rem; padding: clamp(1rem, 2.5vw, 2rem); border: 1px solid #dbe3e9; border-radius: 0; background: #f5f8fa; }
.wes-builder__intro { max-width: 55rem; margin-bottom: 1.2rem; color: #607187; font-size: .8rem; line-height: 1.65; }
.wes-builder__rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.wes-builder__room { padding: 1.4rem; gap: .9rem; border-color: #dbe3e9; border-radius: 0; box-shadow: 0 .4rem 1.2rem rgba(9,43,86,.035); }
.wes-builder__room-head { gap: 1rem; padding-bottom: .85rem; border-bottom: 1px solid #e3e9ee; }
.wes-builder__room-head > strong { font-size: 1.15rem; font-weight: 500; letter-spacing: -.03em; }
.wes-builder__remove { color: #7b5260; font-size: .67rem; text-underline-offset: .2em; }
.wes-builder__remove:hover { color: #d9233d; }
.wes-builder__field { gap: .45rem; color: #607187; font-size: .64rem; font-weight: 600; }
.wes-builder__field select { min-height: 3rem; padding: .6rem .75rem; border-color: #cbd6e0; border-radius: 0; color: #092b56; font-family: inherit; font-size: .78rem; }
.wes-builder__occupancy { color: #718194; font-size: .65rem; }
.wes-builder__children { gap: 1rem; padding: 1.2rem; border: 1px solid #dbe3e9; border-radius: 0; }
.wes-builder__add { min-height: 2.8rem; margin-top: 1rem; padding: .7rem 1.2rem; border-color: #092b56; border-radius: 0; font-size: .68rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.wes-builder__add:hover:not(:disabled) { background: #092b56; color: #fff; }
.wes-builder__check { margin-top: 1rem; padding: .85rem 1rem; border-radius: 0; font-size: .74rem; line-height: 1.5; }
.wes-builder__result { margin-top: 1.2rem; }
.wes-split-option { border-color: #d3dde6; border-radius: 0; color: #092b56; }
.wes-split-option__header { gap: 1.25rem; padding: 1.4rem; background: #edf3f7; }
.wes-split-option__header h3 { margin-top: .5rem; font-family: inherit; font-size: 1.45rem; font-weight: 300; letter-spacing: -.04em; line-height: 1.1; }
.wes-split-option__eyebrow { padding: .3rem .5rem; border-radius: 0; font-size: .56rem; font-weight: 700; letter-spacing: .08em; }
.wes-split-option__eyebrow--custom { background: #092b56; }
.wes-split-option__total small { margin-bottom: .35rem; font-size: .65rem; }
.wes-split-option__total strong { font-size: 1.6rem; font-weight: 600; }
.wes-split-option__rooms li { gap: 1rem; padding: 1.2rem 1.4rem; }
.wes-split-option__room strong { font-size: .83rem; font-weight: 600; }
.wes-split-option__room > span:not(.wes-availability) { margin-top: .2rem; font-size: .7rem; color: #718194; }
.wes-split-option__price { font-size: 1.05rem; font-weight: 600; }
.wes-split-option__book, .wes-trip-panel__book { min-height: 3rem; justify-content: center; padding: .8rem 1.2rem; border: 0; border-radius: 0; background: #ff3f58; font-family: inherit; font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.wes-split-option__book:hover, .wes-trip-panel__book:hover, .wes-trip-panel__book:focus-visible { background: #d9233d; }
.wes-split-option__choose { min-height: 3rem; margin-block: .3rem 1.2rem; border-radius: 0; font-size: .68rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.wes-split-option__choose--primary { background: #092b56; border-color: #092b56; }
.wes-split-option__choose:hover { background: #183e69; color: #fff; }
.wes-trip-panel { padding: clamp(1.25rem, 2.5vw, 2.5rem); border-color: #dbe3e9; border-radius: 0; box-shadow: 0 1rem 2.8rem rgba(9,43,86,.06); color: #092b56; }
.wes-trip-panel__head { align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.wes-trip-panel__title { color: #092b56; font-family: inherit; font-size: clamp(2rem,3vw,3rem); font-weight: 300; letter-spacing: -.04em; line-height: 1.05; }
.wes-trip-panel__meta { max-width: 34rem; color: #65768a; font-size: .75rem; line-height: 1.6; }
.wes-trip-summary--tiles .wes-trip-summary__list { grid-template-columns: repeat(4,minmax(0,1fr)); gap: .85rem; }
.wes-trip-summary--tiles .wes-trip-summary__row { min-height: 7.6rem; padding: 1.2rem; border: 1px solid #e0e7ed; border-radius: 0; background: #f5f8fa; }
.wes-trip-summary--tiles .wes-trip-summary__row dt { margin-bottom: .35rem; color: #65768a; font-size: .68rem; }
.wes-trip-summary--tiles .wes-trip-summary__row dd { margin: 0; color: #092b56; font-size: clamp(1.1rem,1.6vw,1.55rem); font-weight: 600; text-align: left; justify-content: flex-start; }
.wes-trip-summary--tiles .wes-trip-summary__row--muted dd { font-size: .82rem; }
.wes-trip-summary--tiles .wes-trip-summary__row--total { border-color: #092b56; background: #092b56; }
.wes-trip-summary--tiles .wes-trip-summary__row--total dt { color: #c8d6e5; }
.wes-trip-summary--tiles .wes-trip-summary__row--total dd { color: #fff; font-size: clamp(1.3rem,1.8vw,1.8rem); }
.wes-trip-summary__sub { margin-top: .45rem; color: #718194; font-size: .64rem; line-height: 1.5; overflow-wrap: anywhere; }
.wes-trip-panel__body { gap: 1.5rem; margin-top: 1.5rem; }
.wes-room-table { font-family: inherit; font-size: .75rem; }
.wes-room-table th { padding: .8rem .65rem; background: #f5f8fa; color: #718194; font-family: inherit; font-size: .59rem; font-weight: 600; }
.wes-room-table td { padding: 1rem .65rem; color: #092b56; }
.wes-room-table__room strong { font-weight: 600; }
.wes-room-table__room small { margin-top: .3rem; font-size: .65rem; }
.wes-trip-panel__skipass { padding: 1.1rem; border: 1px solid #e0e7ed; background: #fafcfd; }
.wes-trip-panel__skipass .wes-skipass-choice { padding-top: 0; border-top: 0; }
.wes-trip-panel__skipass .wes-skipass-choice__field > span { margin-bottom: .25rem; color: #65768a; font-size: .66rem; }
.wes-trip-panel__foot { gap: 1rem; margin-top: 1.5rem; padding-top: 1.2rem; border-color: #e0e7ed; }
.wes-trip-panel__actions .wes-share { min-height: 3rem; padding: .7rem 1rem; border-color: #cbd6e0; border-radius: 0; font-family: inherit; font-size: .66rem; font-weight: 600; }
.wes-builder button:focus-visible, .wes-builder a:focus-visible, .wes-builder select:focus-visible, .wes-trip-panel a:focus-visible, .wes-trip-panel button:focus-visible { outline: 2px solid #ff3f58; outline-offset: 3px; }
@media (max-width: 60rem) {
	.wes-trip-summary--tiles .wes-trip-summary__list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 40rem) {
	.wes-builder__rooms { grid-template-columns: 1fr; }
	.wes-builder__toggle { padding: 1rem; font-size: .78rem; }
	.wes-builder__room, .wes-split-option__header { padding: 1rem; }
	.wes-split-option__rooms li { padding: 1rem; }
	.wes-split-option__room strong { overflow-wrap: anywhere; }
	.wes-trip-panel__meta { font-size: .7rem; }
	.wes-trip-summary--tiles .wes-trip-summary__row { min-height: 6.5rem; padding: .85rem; }
	.wes-trip-summary--tiles .wes-trip-summary__row dd { font-size: 1.1rem; }
	.wes-trip-summary--tiles .wes-trip-summary__row--total dd { font-size: 1.3rem; }
	.wes-trip-panel__skipass { padding: .9rem; }
	.wes-trip-panel__actions { display: grid; grid-template-columns: 1fr; width: 100%; }
	.wes-trip-panel__actions .wes-share, .wes-trip-panel__book { width: 100%; }
}
@media (max-width: 24rem) {
	.wes-trip-summary--tiles .wes-trip-summary__list { grid-template-columns: 1fr; }
}

