.chb-booking-wrap {
    --chb-ink: var(--wp--preset--color--contrast, currentColor);
    --chb-text: var(--wp--preset--color--contrast, currentColor);
    --chb-muted: var(--wp--preset--color--secondary, color-mix(in srgb, currentColor 62%, transparent));
    --chb-line: var(--wp--preset--color--tertiary, color-mix(in srgb, currentColor 18%, transparent));
    --chb-soft: var(--wp--preset--color--base-2, color-mix(in srgb, currentColor 5%, transparent));
    --chb-blush: var(--wp--preset--color--base-2, color-mix(in srgb, var(--chb-rust) 10%, transparent));
    --chb-rust: var(--wp--preset--color--primary, var(--wp--preset--color--accent, currentColor));
    --chb-rust-dark: color-mix(in srgb, var(--chb-rust) 82%, var(--chb-ink) 18%);
    --chb-success: var(--wp--preset--color--primary, var(--chb-rust));
    --chb-surface: var(--wp--preset--color--base, transparent);
    --chb-surface-alt: var(--wp--preset--color--base-2, transparent);
    --chb-on-accent: var(--wp--preset--color--base, Canvas);
    --chb-message-bg: var(--wp--preset--color--base-2, color-mix(in srgb, currentColor 6%, transparent));
    --chb-message-border: var(--chb-line);
    --chb-message-text: inherit;
    --chb-radius: var(--wp--custom--border--radius, var(--wp--custom--border-radius, 6px));
    --chb-radius-small: var(--wp--custom--border--radius, var(--wp--custom--border-radius, 4px));
    --chb-radius-large: var(--wp--custom--border--radius, var(--wp--custom--border-radius, 8px));
    --chb-shadow-soft: 0 14px 34px color-mix(in srgb, currentColor 8%, transparent);
    --chb-shadow-panel: 0 22px 48px color-mix(in srgb, currentColor 14%, transparent);
    --chb-shadow-card: 0 12px 28px color-mix(in srgb, currentColor 6%, transparent);
    max-width: 1180px;
    margin: 0 auto;
    color: inherit;
    font-family: inherit;
}

.chb-booking-form {
    position: relative;
    display: grid;
    gap: 28px;
    color: var(--chb-text);
}

.chb-booking-form [hidden] {
    display: none !important;
}

.chb-search-shell {
    position: relative;
    z-index: 5;
}

.chb-search-bar {
    display: grid;
    grid-template-columns: 20% 20% 40% 20%;
    min-height: 92px;
    border: 1px solid var(--chb-line);
    border-radius: var(--chb-radius);
    background: var(--chb-surface);
    box-shadow: 0 14px 34px color-mix(in srgb, currentColor 8%, transparent);
    overflow: hidden;
}

.chb-search-field {
    position: relative;
    display: grid;
    align-content: center;
    gap: 8px;
    min-width: 0;
    padding: 15px 20px;
    border: 0;
    border-right: 1px solid var(--chb-line);
    background: var(--chb-surface);
    color: var(--chb-ink);
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.chb-date-field {
    background: var(--chb-blush);
    cursor: default;
    font-weight: 600;
}

.chb-booking-form .chb-date-field input[type="date"] {
    width: 100%;
    min-height: 34px;
    padding: 2px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--chb-ink);
    font: inherit;
    font-size: clamp(1rem, 1.45vw, 1.22rem);
    font-weight: 800;
}

.chb-booking-form .chb-date-field input[type="date"]:focus {
    border: 0;
    outline: 2px solid color-mix(in srgb, var(--chb-rust) 35%, transparent);
    outline-offset: 2px;
    border-radius: var(--chb-radius-small);
}

.chb-date-error {
    margin: 10px 0 0;
    padding: 10px 14px;
    border: 1px solid var(--chb-message-border);
    border-radius: var(--chb-radius-small);
    background: var(--chb-message-bg);
    color: var(--chb-message-text);
    font-size: 0.92rem;
    font-weight: 600;
}

.chb-search-field span,
.chb-booking-form label > span {
    color: var(--chb-muted);
    font-size: clamp(0.72rem, 0.95vw, 0.84rem);
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.chb-search-field strong {
    min-width: 0;
    color: var(--chb-ink);
    font-size: clamp(1rem, 1.45vw, 1.28rem);
    font-weight: 800;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.chb-search-field i {
    position: absolute;
    right: 18px;
    bottom: 32px;
    width: 12px;
    height: 12px;
    border-right: 1.5px solid var(--chb-ink);
    border-bottom: 1.5px solid var(--chb-ink);
    transform: rotate(45deg);
}

.chb-check-availability {
    display: grid;
    place-items: center;
    min-width: 0;
    padding: 12px 20px;
    border: 0;
    background: #000000;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: clamp(0.9rem, 1.25vw, 1.06rem);
    font-weight: 900;
    line-height: 1.25;
    overflow-wrap: anywhere;
    text-align: center;
    text-transform: uppercase;
}

.chb-check-availability:hover,
.chb-check-availability:focus {
    background: #111111;
    outline: none;
}

.chb-picker-panel {
    position: absolute;
    top: 100%;
    z-index: 10;
    background: var(--chb-surface);
    border: 1px solid var(--chb-line);
    border-radius: var(--chb-radius);
    box-shadow: 0 22px 48px color-mix(in srgb, currentColor 15%, transparent);
}

.chb-guests-panel {
    right: 0;
    width: min(360px, 100%);
    margin-top: 6px;
    padding: 20px 28px;
}

.chb-counter-row {
    display: grid;
    grid-template-columns: 1fr 38px 38px 38px;
    align-items: center;
    gap: 8px;
    min-height: 70px;
    color: var(--chb-text);
    font-size: 1rem;
}

.chb-counter-row button {
    width: 38px;
    height: 38px;
    border: 0;
    background: transparent;
    color: var(--chb-ink);
    cursor: pointer;
    font-size: 1.8rem;
    line-height: 1;
}

.chb-counter-row strong {
    color: var(--chb-ink);
    font-size: 1.35rem;
    text-align: center;
}

.chb-results,
.chb-guest-details,
.chb-room-detail {
    border: 1px solid var(--chb-line);
    border-radius: var(--chb-radius-large);
    background: var(--chb-surface);
}

.chb-results {
    display: grid;
    gap: 26px;
    padding: 30px;
}

.chb-results-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
}

.chb-results-head h3,
.chb-results-head p {
    margin: 0;
}

.chb-results-head h3 {
    color: var(--chb-ink);
    font-size: clamp(1.25rem, 2.3vw, 1.8rem);
    line-height: 1.1;
}

.chb-results-head p {
    color: var(--chb-muted);
    font-size: 1rem;
}

.chb-room-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.chb-room-card {
    display: grid;
    grid-template-rows: auto 1fr;
    min-width: 0;
    padding: 0;
    border: 1px solid var(--chb-line);
    border-radius: var(--chb-radius);
    background: var(--chb-surface);
    color: var(--chb-text);
    cursor: pointer;
    overflow: hidden;
    text-align: left;
    font: inherit;
    box-shadow: 0 12px 28px color-mix(in srgb, currentColor 4%, transparent);
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.chb-room-card:hover,
.chb-room-card:focus,
.chb-room-card.is-selected {
    border-color: var(--chb-ink);
    box-shadow: 0 20px 42px color-mix(in srgb, currentColor 11%, transparent);
    outline: none;
    transform: translateY(-2px);
}

.chb-room-card-media {
    position: relative;
    display: block;
    aspect-ratio: 1.55 / 1;
    background: var(--chb-soft);
    overflow: hidden;
}

.chb-room-card img,
.chb-room-card-placeholder {
    width: 100%;
    height: 100%;
    display: block;
}

.chb-room-card img {
    object-fit: cover;
}

.chb-room-card-price {
    position: absolute;
    left: 18px;
    bottom: 18px;
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 15px;
    background: var(--chb-surface);
    color: var(--chb-rust);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
    box-shadow: 0 8px 20px color-mix(in srgb, currentColor 12%, transparent);
}

.chb-room-card-body {
    display: grid;
    gap: 12px;
    padding: 20px 20px 22px;
}

.chb-room-card strong {
    color: var(--chb-ink);
    font-size: clamp(1.08rem, 1.8vw, 1.32rem);
    line-height: 1.2;
}

.chb-room-card small {
    min-height: 3.9em;
    color: var(--chb-muted);
    font-size: 0.92rem;
    line-height: 1.45;
    overflow: hidden;
}

.chb-room-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--chb-muted);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.chb-room-card-meta em {
    color: var(--chb-success);
    font-style: normal;
}

.chb-room-card-meta span {
    color: var(--chb-ink);
}

.chb-text-button {
    justify-self: start;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--chb-rust);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
}

.chb-room-detail {
    padding: 28px;
}

.chb-room-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(290px, 0.86fr) minmax(290px, 0.58fr);
    gap: 30px;
    align-items: start;
    margin-top: 18px;
}

.chb-room-gallery {
    display: grid;
    gap: 10px;
}

.chb-detail-image {
    width: 100%;
    aspect-ratio: 1.18 / 1;
    border-radius: var(--chb-radius);
    object-fit: cover;
    display: block;
}

.chb-room-thumbs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.chb-detail-thumb {
    width: 100%;
    aspect-ratio: 1.35 / 1;
    border-radius: var(--chb-radius-small);
    object-fit: cover;
}

.chb-room-detail-copy {
    display: grid;
    gap: 16px;
}

.chb-detail-price {
    margin: 0;
    color: var(--chb-rust);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.chb-detail-title,
.chb-checkout-stage > h2 {
    margin: 0;
    color: var(--chb-ink);
    font-size: clamp(1.75rem, 3.7vw, 2.65rem);
    line-height: 1.08;
}

.chb-room-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    color: var(--chb-muted);
    font-size: 0.9rem;
}

.chb-room-facts span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.chb-room-facts span::before {
    content: "";
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--chb-line);
    border-radius: var(--chb-radius-small);
}

.chb-detail-description {
    margin: 0;
    color: var(--chb-muted);
    line-height: 1.65;
}

.chb-room-detail-copy h3,
.chb-billing-panel h3,
.chb-stay-summary h3,
.chb-room-book-box h3 {
    margin: 8px 0 0;
    color: var(--chb-ink);
    font-size: clamp(1.25rem, 2vw, 1.58rem);
    line-height: 1.15;
}

.chb-facilities-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    color: var(--chb-muted);
}

.chb-facilities-grid span {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.chb-facilities-grid img {
    width: 26px;
    height: 26px;
    display: block;
}

.chb-facilities-grid b {
    min-width: 0;
    color: var(--chb-muted);
    font-size: 0.9rem;
    font-weight: 600;
}

.chb-room-rules {
    margin: 0;
    padding-left: 18px;
    color: var(--chb-muted);
    line-height: 1.8;
}

.chb-room-book-box,
.chb-stay-summary {
    display: grid;
    gap: 20px;
    padding: 30px;
    border: 1px solid var(--chb-line);
    border-radius: var(--chb-radius);
    background: var(--chb-surface);
    box-shadow: 0 18px 40px color-mix(in srgb, currentColor 8%, transparent);
}

.chb-room-book-box dl,
.chb-stay-summary dl {
    display: grid;
    grid-template-columns: minmax(100px, 0.82fr) minmax(0, 1fr);
    gap: 16px 18px;
    margin: 0;
}

.chb-room-book-box dt,
.chb-stay-summary dt {
    color: var(--chb-muted);
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1.35;
    text-transform: uppercase;
}

.chb-room-book-box dd,
.chb-stay-summary dd {
    min-width: 0;
    margin: 0;
    color: var(--chb-ink);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.chb-room-book-box dd {
    font-size: clamp(1.02rem, 1.6vw, 1.28rem);
}

.chb-to-checkout {
    min-height: 58px;
    border: 0;
    border-radius: var(--chb-radius-small);
    background: var(--chb-rust);
    color: var(--chb-on-accent);
    cursor: pointer;
    font: inherit;
    font-size: 1rem;
    font-weight: 900;
    text-transform: uppercase;
}

.chb-to-checkout:hover,
.chb-to-checkout:focus {
    background: var(--chb-rust-dark);
    outline: none;
}

.chb-checkout-stage {
    padding: 42px 34px 46px;
}

.chb-checkout-stage > h2 {
    margin-bottom: 34px;
    text-align: center;
}

.chb-checkout-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 42px;
    align-items: start;
}

.chb-billing-panel {
    display: grid;
    gap: 24px;
}

.chb-billing-panel .chb-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.chb-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 18px;
}

.chb-booking-form label,
.chb-full,
.chb-coupon-field {
    display: grid;
    gap: 8px;
    font-weight: 600;
}

.chb-booking-form input,
.chb-booking-form textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--chb-line);
    border-radius: var(--chb-radius-small);
    background: var(--chb-surface);
    color: var(--chb-text);
    font: inherit;
    box-sizing: border-box;
}

.chb-booking-form input:focus,
.chb-booking-form textarea:focus {
    border-color: var(--chb-rust);
    outline: 2px solid color-mix(in srgb, var(--chb-rust) 16%, transparent);
}

.chb-booking-form textarea {
    min-height: 108px;
    resize: vertical;
}

.chb-coupon-box,
.chb-payment-panel {
    display: grid;
    gap: 14px;
}

.chb-coupon-field {
    max-width: 330px;
}

.chb-payment-option {
    display: flex !important;
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
    min-height: 66px;
    padding: 16px 18px;
    border: 1px solid var(--chb-line);
    border-radius: var(--chb-radius-small);
    background: var(--chb-surface);
    color: var(--chb-text);
    font-weight: 800;
    cursor: pointer;
}

.chb-payment-option:has(input:checked) {
    border-color: var(--chb-rust);
    background: var(--chb-surface-alt);
}

.chb-payment-option input,
.chb-privacy input {
    width: 18px;
    min-height: 18px;
    margin-top: 3px;
    flex: 0 0 auto;
}

.chb-payment-option span {
    display: grid;
    gap: 4px;
}

.chb-payment-option small {
    color: var(--chb-muted);
    font-weight: 500;
}

.chb-privacy {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

.chb-stay-summary {
    position: sticky;
    top: 24px;
    background: var(--chb-surface-alt);
}

.chb-stay-summary dl {
    padding-bottom: 18px;
    border-bottom: 1px solid var(--chb-line);
}

.chb-stay-summary p {
    margin: 0;
    color: var(--chb-muted);
    font-size: 0.9rem;
}

.chb-quote {
    min-height: 0;
}

.chb-quote-ready,
.chb-quote-error,
.chb-message {
    padding: 16px 18px;
    border-radius: var(--chb-radius-small);
}

.chb-quote-ready {
    border: 1px solid var(--chb-message-border);
    background: var(--chb-message-bg);
}

.chb-quote-error,
.chb-message-error {
    border: 1px solid var(--chb-message-border);
    background: var(--chb-message-bg);
    color: var(--chb-message-text);
}

.chb-message-success {
    border: 1px solid var(--chb-message-border);
    background: var(--chb-message-bg);
    color: var(--chb-message-text);
}

.chb-message-info {
    border: 1px solid var(--chb-message-border);
    background: var(--chb-message-bg);
    color: var(--chb-message-text);
}

.chb-quote-ready > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    color: var(--chb-message-text);
    font-size: 1.05rem;
}

.chb-quote-ready > div span {
    color: var(--chb-rust);
    font-weight: 900;
}

.chb-quote-ready dl {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px 16px;
    margin: 14px 0 0;
}

.chb-quote-ready dt,
.chb-quote-ready dd,
.chb-quote-ready p {
    margin: 0;
}

.chb-quote-ready dd {
    font-weight: 800;
}

.chb-quote-ready p {
    margin-top: 12px;
    color: var(--chb-muted);
    font-size: 0.86rem;
}

.chb-form-footer {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
}

.chb-form-footer button {
    min-height: 48px;
    padding: 0 24px;
    border: 0;
    border-radius: var(--chb-radius-small);
    background: var(--chb-rust);
    color: var(--chb-on-accent);
    font-weight: 900;
    cursor: pointer;
    text-transform: uppercase;
}

.chb-form-footer button:hover,
.chb-form-footer button:focus {
    background: var(--chb-rust-dark);
    outline: none;
}

@media (max-width: 1080px) {
    .chb-room-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .chb-room-detail-grid,
    .chb-checkout-grid {
        grid-template-columns: 1fr;
    }

    .chb-stay-summary {
        position: static;
    }
}

@media (max-width: 1080px) and (min-width: 881px) {
    .chb-search-bar {
        grid-template-columns: 20% 20% 40% 20%;
    }

    .chb-search-field {
        border-bottom: 0;
    }
}

@media (max-width: 880px) {
    .chb-search-bar {
        grid-template-columns: 1fr;
    }

    .chb-search-field {
        border-right: 0;
        border-bottom: 1px solid var(--chb-line);
        padding: 12px 20px;
    }

    .chb-search-field i {
        right: 20px;
        bottom: 20px;
    }

    .chb-check-availability {
        min-height: 50px;
    }

    .chb-guests-panel {
        left: 0;
        right: 0;
        width: auto;
        min-width: 0;
        max-width: none;
    }
}

@media (max-width: 700px) {
    .chb-results,
    .chb-room-detail,
    .chb-checkout-stage {
        padding: 20px;
    }

    .chb-results-head,
    .chb-form-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .chb-room-options,
    .chb-form-grid,
    .chb-billing-panel .chb-form-grid,
    .chb-facilities-grid,
    .chb-room-book-box dl,
    .chb-stay-summary dl {
        grid-template-columns: 1fr;
    }

    .chb-room-card small {
        min-height: 0;
    }

    .chb-guests-panel {
        padding: 20px 24px;
    }

    .chb-room-book-box,
    .chb-stay-summary {
        padding: 22px;
    }

    .chb-form-footer button {
        width: 100%;
    }
}
