/*
 \* 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;
}

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

.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-submit {
    cursor: pointer;
}

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

.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 {
    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-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);
}

/* Czytelny panel ceny w prawym dolnym rogu pokoju/apartamentu. */
.wes-unit-offer,
.wes-apartment-card__footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 7rem;
    gap: .85rem;
    align-items: end;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgb(20 37 79 / 14%);
}

.wes-unit-offer__price,
.wes-apartment-card__price {
    display: grid;
    gap: .35rem;
    min-width: 0;
    margin: 0;
}

.wes-offer-price__label {
    display: block;
    color: #53627a;
    font-size: .625rem !important;
    font-weight: 800 !important;
    letter-spacing: .08em;
    line-height: 1.25;
    text-transform: uppercase;
}

.wes-offer-price__total {
    display: block;
    margin: 0;
    color: var(--color-navy-950, #14254f);
    font-family: var(--font-body, Arial, sans-serif);
    font-size: clamp(1.55rem, 2.1vw, 1.85rem);
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.08;
}

.wes-offer-price__breakdown {
    display: grid;
    grid-template-columns: 1fr;
    gap: .2rem;
    max-width: 12rem;
    margin-top: .3rem;
}

.wes-offer-price__row {
    display: flex;
    gap: .65rem;
    align-items: baseline;
    justify-content: space-between;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.wes-offer-price__row small {
    display: block;
    margin: 0;
    color: #66758b;
    font-size: .62rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
}

.wes-offer-price__row b {
    display: block;
    color: var(--color-navy-950, #14254f);
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.25;
    white-space: nowrap;
}

.wes-unit-offer__button,
.wes-apartment-card__button {
    width: 7rem;
    min-width: 0;
    min-height: 3.35rem;
    padding: .75rem 1rem;
    border: 1px solid var(--color-accent, #ff4058);
    border-radius: 0;
    background: var(--color-accent, #ff4058);
    box-shadow: 0 .65rem 1.4rem rgb(255 64 88 / 18%);
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.wes-unit-offer__button:hover,
.wes-unit-offer__button:focus-visible,
.wes-apartment-card__button:hover,
.wes-apartment-card__button:focus-visible {
    border-color: var(--color-navy-950, #14254f);
    background: var(--color-navy-950, #14254f);
    box-shadow: 0 .75rem 1.6rem rgb(20 37 79 / 22%);
    color: #fff;
    transform: translateY(-2px);
}

.wes-unit-offer__button[aria-pressed="true"],
.wes-apartment-card__button[aria-pressed="true"] {
    border-color: var(--color-navy-950, #14254f);
    background: var(--color-navy-950, #14254f);
    box-shadow: none;
}

.wes-unit--selected {
    position: relative;
    z-index: 1;
    box-shadow:
        0 0 0 1px rgb(20 37 79 / 26%),
        0 1.25rem 2.75rem rgb(20 37 79 / 17%);
}

.wes-unit--selected .wes-unit-offer {
    border-top-color: var(--color-navy-950, #14254f);
}

.wes-unit--selected .hotel-detail__unit-content {
    background: linear-gradient(180deg, transparent 0%, rgb(20 37 79 / 3.5%) 100%);
}

.hotel-detail__unit {
    transition: box-shadow 200ms ease, transform 200ms ease;
}

@media (max-width: 32rem) {
    .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%;
    }
}

@media (max-width: 42rem) {
    .wes-unit-offer,
    .wes-apartment-card__footer {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

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

/* ==========================================================
 \* Ponte di Legno–Tonale UI
 \* Wspólny wygląd wyszukiwarki i panelu rezerwacji hotelu.
 \* ========================================================== */
[data-wes-context] {
    --wes-navy: var(--color-navy-950, #14254f);
    --wes-accent: var(--color-accent, #ff4058);
    --wes-border: var(--color-border, #d9e2ea);
    --wes-light: #edf5fa;
    position: relative;
}

.wes-field { position: relative; display: grid; gap: .65rem; min-width: 0; }

.wes-label {
    display: block;
    margin: 0;
    color: var(--wes-accent);
    font: 800 .625rem/1.2 var(--font-body, sans-serif);
    letter-spacing: .14em;
    text-transform: uppercase;
}

.wes-input {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 2.8rem;
    padding: 0;
    border: 0;
    border-bottom: 2px solid #dce4ec;
    border-radius: 0;
    outline: 0;
    background: transparent;
    box-shadow: none;
    color: var(--wes-navy);
    font: 800 .9375rem/1.3 var(--font-body, sans-serif);
}

/* Główna wyszukiwarka i wyszukiwarka nad listą hoteli. */
[data-wes-context="block"],
[data-wes-context="archive"] {
    display: grid;
    grid-template-columns: minmax(16rem, 1.55fr) minmax(7.5rem, .62fr) minmax(7.5rem, .62fr) minmax(16rem, auto);
    align-items: stretch;
    min-width: 0;
    overflow: visible;
    border: 1px solid rgb(20 37 79 / 12%);
    background: #fff;
    box-shadow: 0 1.5rem 3.75rem rgb(8 21 48 / 18%);
}

[data-wes-context="block"] { border: 0 !important; outline: 0; }

[data-wes-context="block"]::before,
[data-wes-context="archive"]::before {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
    grid-column: 1 / 4;
    grid-row: 1;
    height: 3px;
    content: "";
    pointer-events: none;
    background: var(--wes-accent);
}

[data-wes-context="block"] > .wes-field,
[data-wes-context="archive"] > .wes-field {
    min-height: 7rem;
    align-content: center;
    padding: 1.35rem 1.6rem 1.25rem;
    border-right: 1px solid var(--wes-border);
    background: #fff;
}

[data-wes-context="block"] > .wes-field:nth-child(1),
[data-wes-context="archive"] > .wes-field:nth-child(1) { grid-column: 1; grid-row: 1; }

[data-wes-context="block"] > .wes-field:nth-child(2),
[data-wes-context="archive"] > .wes-field:nth-child(2) { grid-column: 2; grid-row: 1; }

[data-wes-context="block"] > .wes-field:nth-child(3),
[data-wes-context="archive"] > .wes-field:nth-child(3) { grid-column: 3; grid-row: 1; }

/* CTA formularza. */
.wes-submit {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-width: 14rem;
    min-height: 7rem;
    padding: 1rem 1.35rem 1rem 1.55rem;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: var(--wes-accent);
    color: #fff !important;
    -webkit-text-fill-color: #fff;
    font: 800 .6875rem/1.35 var(--font-body, sans-serif);
    letter-spacing: .09em;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 180ms ease;
}

.wes-submit > span { position: relative; z-index: 1; }

.wes-submit > span:last-child {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 2.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 .4rem 1rem rgb(8 21 48 / 16%);
    color: var(--wes-navy);
    -webkit-text-fill-color: var(--wes-navy);
    font-size: 1.1rem;
    transition: color 180ms ease, transform 180ms ease;
}

.wes-submit:hover,
.wes-submit:focus-visible { background: var(--wes-navy); }

.wes-submit:hover > span:last-child,
.wes-submit:focus-visible > span:last-child { color: var(--wes-accent); -webkit-text-fill-color: var(--wes-accent); transform: translateX(.2rem); }

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

[data-wes-context="block"] > .wes-submit,
[data-wes-context="archive"] > .wes-submit {
    z-index: 3;
    grid-column: 4;
    grid-row: 1;
    width: 100%;
    min-height: 7rem;
    margin: 0;
}

/* Dzieci i komunikaty. */
.wes-children-ages {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 1rem;
    width: 100%;
    padding: 1.25rem 1.5rem 1.4rem;
    border-top: 1px solid var(--wes-border);
    background: var(--wes-light);
}

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

.wes-age-field { min-height: 0 !important; padding: .9rem 1rem !important; border: 1px solid #dbe5ed !important; background: #fff !important; }

.wes-status {
    grid-column: 1 / -1;
    margin: 0;
    padding: .8rem 1rem;
    border-left: 3px solid var(--wes-accent);
    font: 700 .78rem/1.5 var(--font-body, sans-serif);
}

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

[data-wes-context="block"] > .wes-status {
    position: absolute;
    top: calc(100% + .65rem);
    left: 0;
    z-index: 210;
    width: min(100%, 32rem);
    background: #fff;
    box-shadow: 0 .75rem 2rem rgb(8 21 48 / 14%);
}

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

.wes-status[data-state="loading"] { color: var(--wes-navy); background: #eef5fb; }

.wes-status[data-state="empty"] { color: #745400; background: #fff9e8; }

.wes-status[data-state="success"] { color: #176b39; background: #effaf3; }

/* Własne dropdowny. */
.wes-native-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0;
    pointer-events: none;
}

.wes-select { position: relative; min-width: 0; }

.wes-select__trigger {
    display: flex;
    width: 100%;
    min-height: 2.8rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0;
    border: 0;
    border-bottom: 2px solid #dce4ec;
    border-radius: 0;
    background: transparent;
    color: var(--wes-navy);
    font: 800 .9375rem/1.3 var(--font-body, sans-serif);
    text-align: left;
    cursor: pointer;
}

.wes-select__trigger:focus-visible,
.wes-select.is-open .wes-select__trigger { outline: 0; border-bottom-color: var(--wes-accent); }

.wes-select__trigger:disabled { cursor: wait; opacity: .55; }

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

.wes-select__arrow {
    display: inline-flex;
    width: 1.8rem;
    height: 1.8rem;
    flex: 0 0 1.8rem;
    align-items: center;
    justify-content: center;
    border: 1px solid #dce4ec;
    background: #f5f8fb;
    transition: transform 180ms ease;
}

.wes-select__arrow::before {
    width: .42rem;
    height: .42rem;
    content: "";
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-.12rem) rotate(45deg);
}

.wes-select.is-open .wes-select__arrow { border-color: var(--wes-accent); background: #fff4f6; transform: rotate(180deg); }

.wes-select__menu {
    position: absolute;
    top: calc(100% + .55rem);
    left: -.75rem;
    z-index: 250;
    width: max-content;
    min-width: calc(100% + 1.5rem);
    max-width: min(27rem, calc(100vw - 2.5rem));
    max-height: 19rem;
    padding: .45rem;
    overflow-y: auto;
    border: 1px solid rgb(20 37 79 / 14%);
    background: #fff;
    box-shadow: 0 1.4rem 3.5rem rgb(8 21 48 / 22%);
}

.wes-select__menu[hidden] { display: none !important; }

.wes-select__option {
    display: flex;
    width: 100%;
    min-height: 2.65rem;
    align-items: center;
    padding: .65rem .8rem;
    border: 0;
    background: transparent;
    color: var(--wes-navy);
    font: 700 .8rem/1.35 var(--font-body, sans-serif);
    text-align: left;
    cursor: pointer;
}

.wes-select__option:hover,
.wes-select__option:focus-visible { outline: 0; background: var(--wes-light); }

.wes-select__option[aria-selected="true"] { background: var(--wes-navy); color: #fff; }

/* Lista hoteli: parametry ceny i sticky filtry. */
.wes-result-meta { --wes-navy: var(--color-navy-950, #14254f); display: flex !important; flex-wrap: nowrap; gap: .45rem; margin: 0 0 .35rem; white-space: nowrap; }

.hotel-archive-card__price.wes-price--available {
    gap: .28rem;
    max-width: none;
}

.wes-archive-total {
    display: grid;
    gap: .18rem;
    margin-top: .12rem;
    padding: .08rem 0 .08rem .7rem;
    border-left: 2px solid var(--color-accent, #ff4058);
}

.wes-archive-total > span {
    color: #68758a;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .055em;
    line-height: 1.25;
    text-transform: uppercase;
}

.wes-archive-total > strong {
    color: var(--color-navy-950, #14254f);
    font-family: var(--font-body, Arial, sans-serif);
    font-size: 1.28rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: .012em;
    line-height: 1.1;
}

.wes-result-meta__item { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .35rem .65rem; border: 1px solid #dbe7f0; background: #edf5fa; color: var(--wes-navy); font-size: .68rem; font-weight: 800; }

.wes-result-meta__item--board-empty { border-color: rgb(255 64 88 / 32%); background: #fff1f3; color: #a82339; }

.wes-result-meta__item--board-included { border-color: rgb(31 143 87 / 30%); background: #edf9f2; color: #167343; }

@media (min-width: 48rem) {
    .hotel-archive__filters {
        position: static;
        top: auto;
        align-self: start;
        max-height: none;
        padding-right: 0;
        overflow: visible;
        scrollbar-gutter: auto;
    }

    /* Panel rezerwacji pozostaje w swoim miejscu i przewija się razem ze stroną. */
    .hotel-detail__booking {
        position: static !important;
        top: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

/* Panel wyboru osób i podsumowania na pojedynczym hotelu. */
[data-wes-context="detail"] { display: grid; gap: .9rem; }

[data-wes-context="detail"] .wes-field { padding: 0; border: 0; background: transparent; }

[data-wes-context="detail"] .wes-label { color: var(--wes-navy); letter-spacing: .03em; text-transform: none; }

[data-wes-context="detail"] .wes-select__trigger {
    min-height: 3.35rem;
    padding: 0 .85rem;
    border: 1px solid var(--wes-border);
    background: #fff;
    font-size: .78rem;
}

[data-wes-context="detail"] .wes-select__arrow { border: 0; background: transparent; }

[data-wes-context="detail"] .wes-children-ages {
    grid-row: auto;
    grid-template-columns: 1fr;
    gap: .8rem;
    padding: 1rem 0 0;
    border-top: 1px solid rgb(20 37 79 / 12%);
    background: transparent;
}

[data-wes-context="detail"] .wes-age-field { padding: 0 !important; border: 0 !important; background: transparent !important; }

[data-wes-context="detail"] > .wes-submit {
    width: 100%;
    min-width: 0;
    min-height: 4.25rem;
    margin-top: .15rem;
    padding: .8rem 1rem;
    background: var(--wes-accent) !important;
}

[data-wes-context="detail"] > .wes-submit:hover,
[data-wes-context="detail"] > .wes-submit:focus-visible { background: var(--wes-navy) !important; }

[data-wes-context="detail"] > .wes-status[data-state="selected"] {
    padding: 1rem;
    border: 1px solid #cfe0ea;
    border-left: 3px solid var(--wes-navy);
    background: #fff;
    color: var(--wes-navy);
}

.hotel-detail__booking .hotel-detail__stay-summary {
    margin: 1rem 0;
    padding: .85rem 0;
    border-top: 1px solid rgb(20 37 79 / 12%);
    border-bottom: 1px solid rgb(20 37 79 / 12%);
    color: var(--wes-navy, #14254f);
    font-weight: 700;
}

.hotel-detail__booking .hotel-detail__price {
    display: grid;
    gap: .3rem;
    margin: 0 0 1rem;
    padding: 1rem;
    border: 1px solid #d7e3eb;
    border-top: 3px solid var(--color-accent, #ff4058);
    background: #fff;
}

.hotel-detail__booking .wes-selected-apartment-name { color: var(--color-navy-950, #14254f); font-size: .7rem; font-weight: 800; text-transform: uppercase; }

.hotel-detail__booking .wes-selected-apartment-total-price { margin-block: .15rem; color: var(--color-navy-950, #14254f); font: 800 2rem/1 var(--font-heading, sans-serif); }

.hotel-detail__booking .wes-selected-apartment-person-price { color: #5e6b7e; font-size: .68rem; line-height: 1.45; }

.hotel-detail__booking .hotel-detail__booking-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 4.4rem;
    padding: .9rem 1rem;
    background: var(--color-accent, #ff4058);
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .05em;
    transition: background-color 180ms ease, color 180ms ease;
}

.hotel-detail__booking .hotel-detail__booking-button[hidden] {
    display: none !important;
}

.hotel-detail__booking .hotel-detail__booking-button > span:last-child {
    display: inline-flex;
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 2.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    color: var(--color-navy-950, #14254f);
    transition: color 180ms ease, transform 180ms ease;
}

.hotel-detail__booking .hotel-detail__booking-button:hover,
.hotel-detail__booking .hotel-detail__booking-button:focus-visible {
    background: var(--color-navy-950, #14254f);
    color: #fff;
}

.hotel-detail__booking .hotel-detail__booking-button:hover > span:last-child,
.hotel-detail__booking .hotel-detail__booking-button:focus-visible > span:last-child {
    color: var(--color-accent, #ff4058);
    transform: translateX(.2rem);
}

@media (max-width: 63.999rem) {
    [data-wes-context="archive"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    [data-wes-context="archive"]::before { grid-column: 1 / -1; }

    [data-wes-context="archive"] > .wes-field:nth-child(1),
    [data-wes-context="archive"] > .wes-field:nth-child(2),
    [data-wes-context="archive"] > .wes-field:nth-child(3),
    [data-wes-context="archive"] > .wes-submit,
    [data-wes-context="archive"] > .wes-children-ages { grid-column: auto; grid-row: auto; }
}

@media (max-width: 47.999rem) {
    [data-wes-context="block"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    [data-wes-context="block"]::before { grid-column: 1 / -1; }

    [data-wes-context="block"] > .wes-field:nth-child(1),
    [data-wes-context="block"] > .wes-field:nth-child(2),
    [data-wes-context="block"] > .wes-field:nth-child(3),
    [data-wes-context="block"] > .wes-submit,
    [data-wes-context="block"] > .wes-children-ages { grid-column: auto; grid-row: auto; }

    [data-wes-context="block"] > .wes-field:nth-child(3),
    [data-wes-context="block"] > .wes-submit,
    [data-wes-context="block"] > .wes-children-ages { grid-column: 1 / -1; }

    [data-wes-context="archive"] { grid-template-columns: 1fr; }

    [data-wes-context="block"] > .wes-field,
    [data-wes-context="archive"] > .wes-field { min-height: 5.75rem; padding: 1.1rem 1.25rem; border-right: 0; border-bottom: 1px solid var(--wes-border); }

    [data-wes-context="block"] > .wes-submit,
    [data-wes-context="archive"] > .wes-submit { grid-column: 1 / -1; min-width: 0; min-height: 5rem; }

    .wes-children-ages { grid-template-columns: 1fr; padding: 1rem; }

    .wes-select__menu { left: 0; width: 100%; min-width: 100%; max-width: 100%; }

    [data-wes-context="block"] > .wes-status { position: static; width: 100%; box-shadow: none; }
}

/* ==========================================================
 * WYŁĄCZNIE NOWE ELEMENTY WTYCZKI:
 * zwijane szczegóły ceny i podsumowanie skipassów.
 * ========================================================== */
.wes-price-breakdown {
	margin-top: .45rem;
	padding-top: .4rem;
	border-top: 1px solid rgb(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 > summary:hover,
.wes-price-breakdown > summary:focus-visible {
	color: var(--color-accent, #ff4058);
}

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

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

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

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

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

[data-hotel-archive] .wes-archive-room-price .wes-price-breakdown {
	display: none !important;
}

/* Nowa wtyczka tworzy jeden natywny select skipassu. */
.hotel-detail__booking .wes-skipass-choice__field > span::after {
	display: none;
	content: none;
}

.hotel-detail__booking .wes-skipass-choice__select {
	display: block;
	position: static;
	width: 100%;
	height: auto;
	min-height: 3.25rem;
	margin: 0;
	padding: .6rem 2rem .6rem .75rem;
	overflow: visible;
	clip: auto;
	border: 1px solid #cddae4;
	border-radius: 0;
	background: #fff;
	color: var(--color-navy-950, #14254f);
	opacity: 1;
	font-size: .68rem;
	font-weight: 700;
	line-height: 1.35;
	pointer-events: auto;
}

/* ==========================================================
 * Finalny wygląd skipassu — reguły na końcu pliku celowo
 * nadpisują starszą wersję custom-selecta.
 * ========================================================== */
.hotel-detail__booking .wes-skipass-choice {
	gap: .75rem;
	margin-top: 1rem;
	padding: .9rem;
	border: 1px solid #d6e2ea;
	border-left: 3px solid var(--color-accent, #ff4058);
	background: #f7fafc;
}

.hotel-detail__booking .wes-skipass-choice__field {
	gap: .55rem;
}

.hotel-detail__booking .wes-skipass-choice__field > span {
	color: var(--color-navy-950, #14254f);
	font-size: .62rem;
	font-weight: 900;
	letter-spacing: .065em;
	text-transform: uppercase;
}

.hotel-detail__booking .wes-skipass-choice .wes-select {
	position: relative;
	width: 100%;
	min-width: 0;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__trigger {
	width: 100%;
	min-height: 3.7rem;
	padding: .65rem .55rem .65rem .75rem;
	border: 1px solid #cbd8e2;
	border-bottom: 1px solid #cbd8e2;
	background: #fff;
	box-shadow: none;
	font-size: .66rem;
	line-height: 1.35;
}

.hotel-detail__booking .wes-skipass-choice .wes-select.is-open .wes-select__trigger,
.hotel-detail__booking .wes-skipass-choice .wes-select__trigger:focus-visible {
	border-color: var(--color-accent, #ff4058);
	box-shadow: 0 0 0 3px rgb(255 64 88 / 10%);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__value {
	display: -webkit-box;
	min-width: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	white-space: normal;
	text-overflow: clip;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__arrow {
	width: 2rem;
	height: 2rem;
	flex: 0 0 2rem;
	border: 0;
	background: #edf4f8;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__menu {
	top: calc(100% + .4rem);
	right: 0;
	left: 0;
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	max-height: 17rem;
	padding: .35rem;
	overflow-x: hidden;
	overflow-y: auto;
	border: 1px solid #d3dfe8;
	background: #fff;
	box-shadow: 0 .9rem 2rem rgb(8 21 48 / 20%);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option {
	display: block;
	width: 100%;
	min-height: 0;
	padding: .7rem .65rem;
	font-size: .62rem;
	font-weight: 700;
	line-height: 1.45;
	white-space: normal;
	overflow-wrap: anywhere;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option + .wes-select__option {
	border-top: 1px solid #e7edf2;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option:hover,
.hotel-detail__booking .wes-skipass-choice .wes-select__option:focus-visible {
	background: #edf5fa;
	color: var(--color-navy-950, #14254f);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option[aria-selected="true"] {
	background: var(--color-navy-950, #14254f);
	color: #fff;
}

.hotel-detail__booking .wes-skipass-choice__total {
	display: block;
	margin: 0;
	padding: .65rem .7rem;
	border-left: 3px solid #21845a;
	background: #edf9f2;
	color: #12633f;
	font-family: var(--font-body, Arial, sans-serif);
	font-size: .68rem !important;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.45;
}

.hotel-detail__booking .wes-skipass-choice__rate {
	display: block;
	margin: -.2rem 0 0;
	color: #64748b;
	font-size: .57rem;
	font-weight: 500;
	line-height: 1.45;
}

.hotel-detail__booking .wes-skipass-choice__note {
	margin: 0;
	padding-left: 1rem;
	color: #617086;
	font-size: .58rem;
	line-height: 1.5;
}

/* ==========================================================
 * WinterEvent 0.2.22: katalog skipassów i Rossignol Academy.
 * ========================================================== */
.wes-skipass-catalog {
	box-sizing: border-box;
	grid-column: 1;
	width: 100%;
	max-width: 100%;
	margin: 3rem 0 1rem;
	padding: 2rem 0;
	border-top: 1px solid rgba(24, 54, 91, .16);
	border-bottom: 1px solid rgba(24, 54, 91, .16);
	color: #18365b;
}

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

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

.wes-skipass-catalog__lead {
	margin: .65rem 0 1.25rem;
	color: #536579;
	font-size: .9rem;
}

.wes-skipass-catalog__table-wrap {
	overflow-x: auto;
	border: 1px solid rgba(24, 54, 91, .14);
	background: #fff;
}

.wes-skipass-catalog__table {
	width: 100%;
	min-width: 43rem;
	border-collapse: collapse;
	font-size: .82rem;
}

.wes-skipass-catalog__table th,
.wes-skipass-catalog__table td {
	padding: .8rem .75rem;
	border-bottom: 1px solid rgba(24, 54, 91, .1);
	text-align: left;
	vertical-align: middle;
}

.wes-skipass-catalog__table thead th {
	background: #f2f6f8;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .025em;
	text-transform: uppercase;
}

.wes-skipass-catalog__table tbody th {
	width: 34%;
	font-weight: 700;
}

.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 td strong,
.wes-skipass-catalog__table td small {
	display: block;
	white-space: nowrap;
}

.wes-skipass-catalog__table td strong {
	font-size: .9rem;
}

.wes-skipass-catalog__table td small {
	margin-top: .12rem;
	color: #68778a;
	font-size: .68rem;
}

.wes-skipass-catalog__rate,
.wes-skipass-catalog__note {
	margin: .75rem 0 0;
	font-size: .7rem;
	line-height: 1.45;
	color: #566273;
}

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

.wes-academy-search {
	box-sizing: border-box;
	grid-column: 1 / -1;
	width: calc(100% - 2.5rem);
	max-width: 80rem;
	min-width: 0;
	margin: 4rem auto 0;
	padding: 3.5rem 0 4rem;
	border-top: 1px solid rgba(24, 54, 91, .16);
	border-bottom: 1px solid rgba(24, 54, 91, .16);
	background: #f2f4f3;
	color: #18365b;
	scroll-margin-top: 6rem;
}

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

.wes-academy-search__eyebrow {
	margin: 0;
	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.5rem, 5vw, 4.75rem);
	font-weight: 500;
	line-height: .96;
}

.wes-academy-search__heading > p {
	max-width: 35rem;
	margin: 0;
	padding: 1rem 0 .2rem 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 rgba(24, 54, 91, .18);
	background: #fff;
	box-shadow: 0 1.25rem 3.5rem rgba(24, 54, 91, .08);
}

.wes-academy-search__panel label {
	display: flex;
	min-width: 0;
	min-height: 5.9rem;
	box-sizing: border-box;
	padding: 1.35rem 1.5rem 1rem;
	flex-direction: column;
	gap: .55rem;
	border-right: 1px solid rgba(24, 54, 91, .14);
}

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

.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 {
	display: flex;
	min-height: 5.9rem;
	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:hover,
.wes-academy-search__panel button:focus-visible {
	background: #d9233d;
}

.wes-academy-search__panel button:disabled {
	cursor: wait;
	filter: grayscale(.45);
	opacity: .7;
}

.wes-academy-search__panel button b {
	font-size: 1.3rem;
	font-weight: 400;
}

.wes-academy-search__status {
	min-height: 1.2rem;
	margin: .9rem 0 0;
	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__group + .wes-academy-results__group {
	border-top: .5rem solid #f2f4f3;
}

.wes-academy-results__group {
	position: relative;
}

.wes-academy-results__group--race {
	box-shadow: inset .38rem 0 0 #ff3f58;
}

.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-heading {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .65rem;
}

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

.wes-academy-results__variant {
	display: inline-flex;
	align-items: center;
	min-height: 1.65rem;
	box-sizing: border-box;
	padding: .3rem .6rem;
	border: 1px solid rgba(24, 54, 91, .22);
	border-radius: 999px;
	background: #f2f4f3;
	color: #536579;
	font-size: .58rem;
	font-weight: 900;
	letter-spacing: .12em;
	line-height: 1;
	text-transform: uppercase;
}

.wes-academy-results__group--race .wes-academy-results__meta {
	background: #18365b;
	color: #fff;
}

.wes-academy-results__group--race .wes-academy-results__variant {
	border-color: #ff3f58;
	background: #ff3f58;
	color: #fff;
}

.wes-academy-results__group--race .wes-academy-results__meta-copy small {
	color: #c4cfda;
}

.wes-academy-results__group--race .wes-academy-results__meta > strong {
	color: #ff91a0;
}

.wes-academy-results__group--race .wes-academy-results__grid {
	background: #fff8f9;
}

.wes-academy-results__meta-copy {
	display: grid;
	gap: .3rem;
}

.wes-academy-results__meta-copy small {
	color: #68778a;
	font-size: .7rem;
	line-height: 1.4;
}

.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;
}

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

	.wes-academy-search__panel button {
		grid-column: 1 / -1;
		min-height: 4.4rem;
	}

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

@media (max-width: 32rem) {
	.wes-academy-search {
		margin-top: 2.5rem;
		padding: 2.75rem 0 3rem;
	}

	.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__group--race .wes-academy-results__meta {
		padding-left: 1.5rem;
	}

	.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;
	}
}

/* Płynne otwieranie i zamykanie szczegółów ceny. */
.wes-price-breakdown > summary {
	position: relative;
	display: flex;
	align-items: center;
	gap: .45rem;
	list-style: none;
}

.wes-price-breakdown > summary::-webkit-details-marker {
	display: none;
}

.wes-price-breakdown > summary::before {
	display: inline-block;
	width: .42rem;
	height: .42rem;
	flex: 0 0 .42rem;
	content: "";
	border-right: 2px solid var(--color-accent, #ff4058);
	border-bottom: 2px solid var(--color-accent, #ff4058);
	transform: translateY(-.1rem) rotate(45deg);
	transition: transform 240ms cubic-bezier(.22, 1, .36, 1);
}

.wes-price-breakdown[open] > summary::before {
	transform: translateY(.1rem) rotate(225deg);
}

.wes-price-breakdown__body {
	transform-origin: top;
	will-change: height, opacity, transform;
}

@media (prefers-reduced-motion: reduce) {
	.wes-price-breakdown > summary::before {
		transition: none;
	}
}

.wes-price-breakdown.is-closing > summary::before {
	transform: translateY(-.1rem) rotate(45deg);
}

/* Główna cena zawsze przed rozwijanymi szczegółami. */
.wes-unit-offer__price > span,
.wes-apartment-card__price > span {
	order: 1;
}

.wes-unit-offer__price > strong,
.wes-apartment-card__price > strong {
	order: 2;
}

.wes-unit-offer__price > .wes-price-breakdown,
.wes-apartment-card__price > .wes-price-breakdown {
	order: 3;
	margin-top: .8rem;
	padding-top: .65rem;
}

.wes-price-breakdown > summary {
	display: flex;
	width: 100%;
	min-height: 1.8rem;
	align-items: center;
	gap: .45rem;
	color: #36566f;
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .01em;
	line-height: 1.35;
	text-decoration: none;
}

.wes-price-breakdown > summary::marker {
	color: var(--color-accent, #ff4058);
}

.wes-price-breakdown[open] > summary {
	margin-bottom: .55rem;
	color: var(--color-navy-950, #14254f);
}

.hotel-detail__booking .hotel-detail__price > .wes-price-breakdown {
	margin-top: .9rem;
	padding-top: .7rem;
}

.wes-price-breakdown__body {
	gap: .32rem;
	margin-top: 0;
	padding: .65rem .7rem;
	border: 0;
	border-left: 2px solid var(--color-accent, #ff4058);
	background: rgb(255 255 255 / 58%);
}

.wes-price-breakdown__body > small {
	color: #53627a;
	font-size: .64rem;
	font-weight: 600;
	line-height: 1.4;
}

/* Dropdown skipassu otwiera się do lewej i nie wychodzi poza panel. */
.hotel-detail__booking .wes-skipass-choice .wes-select {
	width: 100%;
	min-width: 0;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__trigger {
	min-height: 3.55rem;
	padding: .65rem .55rem .65rem .75rem;
	border: 1px solid #cddae4;
	background: #fff;
	box-shadow: 0 .25rem .7rem rgb(20 37 79 / 5%);
	font-size: .68rem;
	line-height: 1.35;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__value {
	display: -webkit-box;
	min-width: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	white-space: normal;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__menu {
	top: calc(100% + .4rem);
	right: 0;
	left: auto;
	width: min(25rem, calc(100vw - 2rem));
	min-width: 100%;
	max-width: min(25rem, calc(100vw - 2rem));
	max-height: 18rem;
	padding: .4rem;
	overflow-y: auto;
	border: 1px solid #d3dfe8;
	background: #fff;
	box-shadow: 0 1.1rem 2.6rem rgb(8 21 48 / 24%);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option {
	min-height: 3rem;
	align-items: flex-start;
	padding: .7rem .75rem;
	font-size: .68rem;
	font-weight: 700;
	line-height: 1.4;
	white-space: normal;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option + .wes-select__option {
	border-top: 1px solid #edf1f4;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option[aria-selected="true"] {
	background: var(--color-navy-950, #14254f);
	color: #fff;
}

@media (max-width: 34.999rem) {
    [data-wes-context="block"] { grid-template-columns: 1fr; }

    [data-wes-context="block"] > .wes-field:nth-child(1),
    [data-wes-context="block"] > .wes-field:nth-child(2),
    [data-wes-context="block"] > .wes-field:nth-child(3) { grid-column: 1; }
}

/* ==========================================================
 \* Nowe elementy API: skipassy, status oferty i warianty pokoi.
 \* Ich docelowy wygląd dopracujemy w kolejnym kroku.
 \* ========================================================== */
.wes-booking-action[hidden],
.hotel-detail__booking-button[hidden] { display: none !important; }

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

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

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

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

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

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

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

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

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

.wes-hotel-status {
    display: inline-flex;
    min-height: 1.65rem;
    align-items: center;
    padding: .3rem .58rem;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.1;
    text-transform: uppercase;
}

.wes-hotel-status--guaranteed { background: #e9f7ef; color: #167343; }

.wes-hotel-status--request { background: #fff1e8; color: #a84300; }

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

.wes-skipass-rates {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .55rem;
    margin: .45rem 0 0;
    padding: 0;
    color: #53627a;
    font-size: .68rem;
    line-height: 1.4;
    list-style: none;
}

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

.wes-skipass-choice {
    display: grid;
    gap: .4rem;
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid rgb(20 37 79 / 14%);
    text-align: left;
}

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

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

.wes-skipass-choice__select {
    width: 100%;
    min-height: 2.5rem;
    margin: 0;
    padding: .45rem 1.9rem .45rem .65rem;
    border: 1px solid rgb(20 37 79 / 20%);
    border-radius: 0;
    background: #fff;
    color: var(--color-navy-950, #14254f);
    font: 700 .72rem/1.3 var(--font-body, sans-serif);
}

.wes-skipass-choice__note { color: #68758a; font-size: .64rem; font-weight: 500; line-height: 1.4; }

.wes-archive-room-status { margin: .75rem 0; color: #53627a; font-size: .8rem; line-height: 1.45; }

.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: .15rem; margin: 0; }

.wes-archive-room-price > span,
.wes-archive-room-price > small { color: #53627a; font-size: .68rem; line-height: 1.35; }

.wes-archive-room-price > strong { color: var(--color-navy-950, #14254f); font-size: 1.25rem; line-height: 1.05; }

[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-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 rgb(20 37 79 / 24%);
    background: transparent;
    color: var(--color-navy-950, #14254f);
    font: 800 .72rem/1.2 var(--font-body, sans-serif);
    cursor: pointer;
}

.wes-room-toggle:hover,
.wes-room-toggle:focus-visible { border-color: var(--color-navy-950, #14254f); background: rgb(20 37 79 / 6%); }

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

@media (max-width: 32rem) {
    .wes-archive-room { align-items: stretch; }

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

/* Status dostępności znajduje się po gwiazdkach. */
.hotel-archive-card__stars + .wes-hotel-statuses,
.vds-hotel-card__stars + .wes-hotel-statuses {
    margin-top: .35rem;
}

/* Pokój: stawki najpierw, cena całkowita jako podsumowanie na dole. */
.wes-unit-offer__price,
.wes-apartment-card__price {
    display: grid;
    gap: 0;
    min-width: 0;
}

.wes-room-price-rates {
    display: grid;
    gap: .3rem;
    margin: 0 0 .75rem;
}

.wes-room-price-rates > small {
    display: block;
    margin: 0;
    color: #53627a;
    font-size: .66rem;
    font-weight: 600;
    line-height: 1.35;
}

.wes-room-price-rates > .wes-vacancy-price {
    margin-top: .2rem;
    padding-left: .55rem;
    border-left: 2px solid #d88942;
    color: #8a4b00 !important;
}

.wes-room-price-total {
    display: grid;
    gap: .25rem;
    padding-top: .7rem;
    border-top: 1px solid rgb(20 37 79 / 18%);
}

.wes-room-price-total > span {
    color: #53627a !important;
    font-size: .58rem !important;
    font-weight: 800;
    letter-spacing: .065em;
    line-height: 1.3;
    text-transform: uppercase;
}

.wes-room-price-total > strong {
    color: var(--color-navy-950, #14254f);
    font-family: var(--font-body, Arial, sans-serif);
    font-size: 1.55rem !important;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.08;
}

.wes-unit-offer__button,
.wes-apartment-card__button {
    align-self: end;
}

@media (max-width: 42rem) {
    .wes-room-price-rates { margin-bottom: .9rem; }
}

/* ==========================================================
 \* Single hotel: szersza lista pokoi i większe zdjęcia.
 \* Zmiana działa wyłącznie na dużych ekranach. Nagłówek,
 \* galeria i panel rezerwacji zachowują dotychczasowe proporcje.
 \* ========================================================== */
@media (min-width: 64rem) {
    .hotel-detail__top,
    .hotel-detail__layout {
        width: min(calc(100% - 3rem), 80rem);
    }

    .hotel-detail__layout {
        grid-template-columns: minmax(0, 1fr) minmax(17rem, 19rem);
        gap: clamp(2rem, 4vw, 3.5rem);
    }

    .hotel-detail__unit {
        grid-template-columns: minmax(0, 1.38fr) minmax(20rem, 1fr);
        min-height: 16rem;
    }

    .hotel-detail__unit-media {
        min-height: 16rem;
    }

    .hotel-detail__unit-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
}

/* ==========================================================
 \* Skipass w panelu rezerwacji.
 \* ========================================================== */
.hotel-detail__booking .wes-skipass-choice {
    position: relative;
    display: grid;
    gap: .7rem;
    margin: .95rem 0 0;
    padding: 1rem;
    border: 1px solid #d8e4ec;
    border-left: 3px solid var(--color-accent, #ff4058);
    background: #f5f9fc;
    text-align: left;
}

.hotel-detail__booking .wes-skipass-choice__field {
    display: grid;
    gap: .55rem;
    margin: 0;
}

.hotel-detail__booking .wes-skipass-choice__field > span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    color: var(--color-navy-950, #14254f);
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .065em;
    line-height: 1.3;
    text-transform: uppercase;
}

.hotel-detail__booking .wes-skipass-choice__field > span::after {
    display: inline-flex;
    min-height: 1.4rem;
    align-items: center;
    padding: .18rem .42rem;
    background: #e7f0f6;
    color: #53627a;
    content: "Opcjonalnie";
    font-size: .52rem;
    font-weight: 800;
    letter-spacing: .06em;
}

.hotel-detail__booking .wes-skipass-choice .wes-select {
    width: 100%;
    min-width: 0;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__trigger {
    min-height: 3.65rem;
    padding: .7rem .65rem .7rem .8rem;
    border: 1px solid #cddae4;
    background: #fff;
    box-shadow: 0 .25rem .75rem rgb(20 37 79 / 5%);
    font-size: .7rem;
    line-height: 1.35;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__trigger:hover {
    border-color: var(--color-navy-950, #14254f);
}

.hotel-detail__booking .wes-skipass-choice .wes-select.is-open .wes-select__trigger,
.hotel-detail__booking .wes-skipass-choice .wes-select__trigger:focus-visible {
    border-color: var(--color-accent, #ff4058);
    box-shadow: 0 0 0 3px rgb(255 64 88 / 12%);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__value {
    display: -webkit-box;
    min-width: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    white-space: normal;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__arrow {
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    border: 0;
    background: #edf4f8;
}

.hotel-detail__booking .wes-skipass-choice .wes-select.is-open .wes-select__arrow {
    background: var(--color-navy-950, #14254f);
    color: #fff;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__menu {
    top: calc(100% + .45rem);
    right: 0;
    left: auto;
    width: min(25rem, calc(100vw - 2rem));
    min-width: 100%;
    max-width: min(25rem, calc(100vw - 2rem));
    max-height: 18rem;
    padding: .4rem;
    border: 1px solid #d3dfe8;
    box-shadow: 0 1.1rem 2.6rem rgb(8 21 48 / 24%);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option {
    min-height: 3rem;
    align-items: flex-start;
    padding: .7rem .75rem;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.4;
    white-space: normal;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option + .wes-select__option {
    border-top: 1px solid #edf1f4;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option:hover,
.hotel-detail__booking .wes-skipass-choice .wes-select__option:focus-visible {
    background: #edf5fa;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option[aria-selected="true"] {
    background: var(--color-navy-950, #14254f);
    color: #fff;
}

.hotel-detail__booking .wes-skipass-choice__note {
    position: relative;
    display: block;
    margin: 0;
    padding-left: 1rem;
    color: #617086;
    font-size: .61rem;
    font-weight: 500;
    line-height: 1.5;
}

.hotel-detail__booking .wes-skipass-choice__note::before {
    position: absolute;
    top: .1rem;
    left: 0;
    color: var(--color-accent, #ff4058);
    content: "i";
    font-size: .7rem;
    font-weight: 900;
}

.hotel-detail__booking .wes-skipass-rates {
    display: grid;
    gap: .35rem;
    margin: 0;
    padding: .7rem 0 0;
    border-top: 1px solid #d8e4ec;
}

.hotel-detail__booking .wes-skipass-rates li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: #53627a;
    font-size: .65rem;
    font-weight: 700;
}

@media (max-width: 47.999rem) {
    .hotel-detail__booking .wes-skipass-choice .wes-select__menu {
        right: auto;
        left: 0;
        width: 100%;
        max-width: 100%;
    }
}

/* Natywny select skipassu z nowej wersji ma pierwszeństwo
 * przed nieużywanymi regułami starego custom-selecta. */
.hotel-detail__booking .wes-skipass-choice__field > span::after {
	display: none;
	content: none;
}

.hotel-detail__booking .wes-skipass-choice__select {
	display: block;
	position: static;
	width: 100%;
	height: auto;
	min-height: 3.25rem;
	margin: 0;
	padding: .6rem 2rem .6rem .75rem;
	overflow: visible;
	clip: auto;
	border: 1px solid #cddae4;
	border-radius: 0;
	background: #fff;
	color: var(--color-navy-950, #14254f);
	opacity: 1;
	font-size: .68rem;
	font-weight: 700;
	line-height: 1.35;
	pointer-events: auto;
}

/* ==========================================================
 * Finalny wygląd skipassu — nadpisuje wcześniejsze warianty.
 * ========================================================== */
.hotel-detail__booking .wes-skipass-choice {
	gap: .75rem;
	margin-top: 1rem;
	padding: .9rem;
	border: 1px solid #d6e2ea;
	border-left: 3px solid var(--color-accent, #ff4058);
	background: #f7fafc;
}

.hotel-detail__booking .wes-skipass-choice__field {
	gap: .55rem;
}

.hotel-detail__booking .wes-skipass-choice__field > span {
	color: var(--color-navy-950, #14254f);
	font-size: .62rem;
	font-weight: 900;
	letter-spacing: .065em;
	text-transform: uppercase;
}

.hotel-detail__booking .wes-skipass-choice__field > span::after {
	display: none;
	content: none;
}

.hotel-detail__booking .wes-skipass-choice .wes-select {
	position: relative;
	width: 100%;
	min-width: 0;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__trigger {
	width: 100%;
	min-height: 3.7rem;
	padding: .65rem .55rem .65rem .75rem;
	border: 1px solid #cbd8e2;
	border-bottom: 1px solid #cbd8e2;
	background: #fff;
	box-shadow: none;
	font-size: .66rem;
	line-height: 1.35;
}

.hotel-detail__booking .wes-skipass-choice .wes-select.is-open .wes-select__trigger,
.hotel-detail__booking .wes-skipass-choice .wes-select__trigger:focus-visible {
	border-color: var(--color-accent, #ff4058);
	box-shadow: 0 0 0 3px rgb(255 64 88 / 10%);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__value {
	display: -webkit-box;
	min-width: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	white-space: normal;
	text-overflow: clip;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__menu {
	top: calc(100% + .4rem);
	right: 0;
	left: 0;
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	max-height: 17rem;
	padding: .35rem;
	overflow-x: hidden;
	overflow-y: auto;
	border: 1px solid #d3dfe8;
	background: #fff;
	box-shadow: 0 .9rem 2rem rgb(8 21 48 / 20%);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option {
	display: block;
	width: 100%;
	min-height: 0;
	padding: .7rem .65rem;
	font-size: .62rem;
	font-weight: 700;
	line-height: 1.45;
	white-space: normal;
	overflow-wrap: anywhere;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option + .wes-select__option {
	border-top: 1px solid #e7edf2;
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option:hover,
.hotel-detail__booking .wes-skipass-choice .wes-select__option:focus-visible {
	background: #edf5fa;
	color: var(--color-navy-950, #14254f);
}

.hotel-detail__booking .wes-skipass-choice .wes-select__option[aria-selected="true"] {
	background: var(--color-navy-950, #14254f);
	color: #fff;
}

.hotel-detail__booking .wes-skipass-choice__total {
	display: block;
	margin: 0;
	padding: .65rem .7rem;
	border-left: 3px solid #21845a;
	background: #edf9f2;
	color: #12633f;
	font-family: var(--font-body, Arial, sans-serif);
	font-size: .68rem !important;
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.45;
}

.hotel-detail__booking .wes-skipass-choice__rate {
	display: block;
	margin: -.2rem 0 0;
	color: #64748b;
	font-size: .57rem;
	font-weight: 500;
	line-height: 1.45;
}

.hotel-detail__booking .wes-skipass-choice__note {
	margin: 0;
	padding-left: 1rem;
	color: #617086;
	font-size: .58rem;
	line-height: 1.5;
}
