/* ================================================
   Room Card Hover & Price Overrides
   Removes all hover effects and hides pricing from
   room cards (styledefault and style3).
   ================================================ */

/* ── styledefault cards (eshb-item-grid styledefault) ── */

/* Disable all transitions on hover-animated elements */
.eshb-item-grid.styledefault .grid-item .item-inner .pricing-info,
.eshb-item-grid.styledefault .grid-item .item-inner .hover-bg-one,
.eshb-item-grid.styledefault .grid-item .item-inner .hover-bg-two,
.eshb-item-grid.styledefault .grid-item .item-inner .details-info {
    transition: none !important;
}

/* Keep pricing-info (button) always visible — price removed in PHP template */
.eshb-item-grid.styledefault .grid-item .item-inner .pricing-info,
.eshb-item-grid.styledefault .grid-item .item-inner:hover .pricing-info {
    opacity: 1 !important;
    margin-top: 0 !important;
}

/* Keep hover-bg-one permanently hidden — no color overlay on hover */
.eshb-item-grid.styledefault .grid-item .item-inner .hover-bg-one,
.eshb-item-grid.styledefault .grid-item .item-inner:hover .hover-bg-one {
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Keep details-info (room name + capacity) always visible — no fade-out on hover */
.eshb-item-grid.styledefault .grid-item .item-inner .details-info,
.eshb-item-grid.styledefault .grid-item .item-inner:hover .details-info {
    opacity: 1 !important;
}

/* ── style3 cards (room-grid style3) ── */

/* Remove transitions from grid items and all children */
.room-grid.style3 .grid-item,
.room-grid.style3 .grid-item * {
    transition: none !important;
}

/* Remove the thumbnail scale effect on hover */
.room-grid.style3 .grid-item:hover img.thumbnail {
    transform: none !important;
}

/* ================================================
   GLOBAL TYPOGRAPHY UPGRADE & REFINEMENT
   ================================================ */
:root {
  --font-primary: "Manrope", sans-serif !important;
  --font-secondary: "Cormorant Garamond", serif !important;
  --title-font: "Cormorant Garamond", serif !important;
}

/* Force override any lingering fonts across all UI elements */
body, p, a, span, div, li, input, button, select, textarea, .elementor-widget-text-editor, .eshb-label, .price, .amount, .daterangepicker, .eshb-booking-form {
    font-family: var(--font-primary) !important;
}

h1, h2, h3, h4, h5, h6, .elementor-heading-title, .entry-title, .page-title, .eshb-room-title, .room-title {
    font-family: var(--title-font) !important;
}

/* Typography Refinement: Body */
body {
    line-height: 1.7;
    letter-spacing: 0.2px;
}

/* Typography Refinement: Headings */
h1, .elementor-heading-title.elementor-size-xxl {
    font-weight: 500 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.5px !important;
}

h2, .elementor-heading-title.elementor-size-xl {
    font-weight: 500 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.3px !important;
}

h3, .elementor-heading-title.elementor-size-large, .eshb-room-title {
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
}

/* Navigation */
.main-navigation ul li a, .elementor-nav-menu--main .elementor-item {
    font-weight: 500 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    font-size: 14px !important;
}

/* Buttons */
button, .button, .btn, .elementor-button, .eshb-form-submit-btn, .eshb-search-btn {
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
}

/* ================================================
   PHASE 1: RESPONSIVE STABILITY
   Keeps the existing design while preventing the
   active Elementor templates from widening phones.
   ================================================ */

@media (max-width: 1024px) {
    /* Prevent the inner-page contact strip from wrapping over page titles. */
    .elementor-2589 .elementor-element.elementor-element-a6c53af {
        display: none;
    }
}

@media (max-width: 767px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }

    body {
        overflow-wrap: break-word;
    }

    .elementor-location-header,
    .elementor-location-header .e-con,
    .elementor-location-header .e-con-inner {
        max-width: 100%;
    }

    /* Home and inner-page headers: replace the generated 1200px mobile width. */
    .elementor-1528 .elementor-element.elementor-element-42ff94f,
    .elementor-2589 .elementor-element.elementor-element-493d7ba,
    .elementor-2589 .elementor-element.elementor-element-3886ced {
        --content-width: 100%;
        width: 100%;
        max-width: 100%;
        flex-wrap: nowrap;
        gap: 10px;
        padding: 10px 20px;
    }

    .elementor-1528 .elementor-element.elementor-element-cc09c77,
    .elementor-2589 .elementor-element.elementor-element-5b47840,
    .elementor-2589 .elementor-element.elementor-element-e02ec8d {
        --width: auto;
        width: auto;
        min-width: 0;
        flex: 1 1 auto;
    }

    .elementor-1528 .elementor-element.elementor-element-13839a4,
    .elementor-2589 .elementor-element.elementor-element-8a69df2,
    .elementor-2589 .elementor-element.elementor-element-2a08b8a {
        --width: auto;
        width: auto;
        max-width: none;
        min-width: 0;
        flex: 0 0 auto;
        flex-wrap: nowrap;
        gap: 8px;
        padding: 0;
    }

    .elementor-1528 .hfe-site-logo-container img,
    .elementor-2589 .hfe-site-logo-container img,
    .elementor-2589 .elementor-element.elementor-element-429df2a .hfe-site-logo .hfe-site-logo-container img {
        width: 138px;
        max-width: 138px;
        height: auto;
    }

    .elementor-1528 .elementor-element.elementor-element-db1e086 > .elementor-widget-container,
    .elementor-2589 .elementor-element.elementor-element-b91ae4e > .elementor-widget-container,
    .elementor-2589 .elementor-element.elementor-element-fc78824 > .elementor-widget-container {
        margin: 0;
    }

    .elementor-1528 .rtmega-menu-mobile-button,
    .elementor-2589 .rtmega-menu-mobile-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        min-width: 44px;
        height: 44px;
        padding: 10px;
    }

    .elementor-1528 .elementor-element.elementor-element-43e92d0 .elementor-button,
    .elementor-2589 .elementor-element.elementor-element-def6bd6 .elementor-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 10px 12px;
        font-size: 10px !important;
        letter-spacing: 1.4px !important;
        white-space: nowrap;
    }

    .elementor-1528 .elementor-element.elementor-element-43e92d0.elementor-hidden-mobile,
    .elementor-2589 .elementor-element.elementor-element-def6bd6.elementor-hidden-mobile {
        display: block;
    }

    /* The desktop contact strip is intentionally omitted on phones. */
    .elementor-2589 .elementor-element.elementor-element-a6c53af {
        display: none;
    }

    /* Inner-page hero copy must stay inside the phone viewport. */
    .elementor-2088 .elementor-element.elementor-element-2c60a74f .rt-breadcrumb.full .breadcrumb-inner {
        width: 100%;
        max-width: 100%;
        min-height: 340px;
        padding: 140px 20px 56px;
    }

    .elementor-2088 .elementor-element.elementor-element-2c60a74f .rt-breadcrumb .breadcrumb-inner .page-title {
        max-width: 100%;
        font-size: clamp(42px, 13vw, 54px);
        overflow-wrap: anywhere;
    }

    .elementor-2088 .elementor-element.elementor-element-2c60a74f .rt-breadcrumb .breadcrumb-inner .page-description {
        max-width: 100%;
        padding: 0;
    }

    /* Contact: the generated form is 58% wide with a 1260px decoration by default. */
    .elementor-111 .elementor-element.elementor-element-cd3fc20 {
        padding: 72px 20px;
    }

    .elementor-111 .elementor-element.elementor-element-59c56a7 {
        --container-widget-width: 100%;
        width: 100%;
        max-width: 100%;
    }

    .elementor-111 .elementor-element.elementor-element-5fd68c4 .grid-lines-wrapper {
        width: 100%;
        max-width: 100%;
    }

    .elementor-111 .ff-t-container {
        display: block;
    }

    .elementor-111 .ff-t-cell,
    .elementor-111 .fluentform-widget-wrapper,
    .elementor-111 .ff-el-form-control {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    /* About: stack the two-column content and visual composition cleanly. */
    .elementor-2005 .elementor-element.elementor-element-eadc243,
    .elementor-2005 .elementor-element.elementor-element-cdf6acb,
    .elementor-2005 .elementor-element.elementor-element-fadbe04 {
        --content-width: 100%;
        width: 100%;
        max-width: 100%;
    }

    .elementor-2005 .elementor-element.elementor-element-9fff2eb,
    .elementor-2005 .elementor-element.elementor-element-ee0bdb2 {
        width: 100%;
        max-width: 100%;
        padding: 72px 20px;
        border-left: 0;
        border-right: 0;
    }

    .elementor-2005 .elementor-element.elementor-element-8b3e59f,
    .elementor-2005 .elementor-element.elementor-element-a159163,
    .elementor-2005 .elementor-element.elementor-element-906344e,
    .elementor-2005 .elementor-element.elementor-element-03a2642,
    .elementor-2005 .elementor-element.elementor-element-98eb635,
    .elementor-2005 .elementor-element.elementor-element-b5a676d,
    .elementor-2005 .elementor-element.elementor-element-ca3be9c {
        --width: 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .elementor-2005 .elementor-element.elementor-element-fadbe04 {
        gap: 16px;
    }

    /* Alternating room rows: preserve the design and make each row phone-safe. */
    .room-grid.style1,
    .room-grid.style1 .grid-item,
    .room-grid.style1 .grid-item .container,
    .room-grid.style1 .grid-item .eshb-row,
    .room-grid.style1 .grid-item .contents-col {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .room-grid.style1 .grid-item .container {
        padding-right: 20px;
        padding-left: 20px;
    }

    .room-grid.style1 .grid-item .contents-col {
        padding-right: 0.75rem;
        padding-left: 0.75rem;
    }

    .room-grid.style1 .grid-item.half-fluid .image {
        min-height: 280px;
    }

    .room-grid.style1 .grid-item .p-title,
    .room-grid.style1 .grid-item .desc {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    /* Room details: fluid title, content columns and booking form. */
    .eshb-details-page,
    .eshb-details-page .eshb-container,
    .eshb-details-page .eshb-row,
    .eshb-details-page #eshb-contents,
    .eshb-details-page #eshb-aside,
    .eshb-details-page .eshb-booking,
    .eshb-details-page .eshb-booking-form {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .eshb-details-page .eshb-container {
        padding: 56px 20px;
    }

    .eshb-details-page .eshb-container #eshb-contents,
    .eshb-details-page .eshb-container #eshb-aside {
        padding-right: 0;
        padding-left: 0;
    }

    .eshb-details-page .eshb-container #eshb-aside {
        margin-top: 32px;
    }

    .eshb-single-title {
        max-width: 100%;
        font-size: clamp(38px, 11vw, 46px);
        line-height: 1.08;
        overflow-wrap: anywhere;
    }

    .eshb-details-page .entry-content,
    .eshb-details-page .room-content,
    .eshb-details-page p {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .eshb-details-page input,
    .eshb-details-page select,
    .eshb-details-page textarea {
        max-width: 100%;
    }

    /* Consent controls: fit the viewport and keep all actions reachable. */
    .cookieadmin_law_container {
        right: auto !important;
        bottom: 12px !important;
        left: 12px !important;
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
    }

    .cookieadmin_consent_inside {
        width: 100%;
        max-width: 100%;
        padding: 16px;
        box-sizing: border-box;
    }

    .cookieadmin_notice_con {
        min-width: 0;
        padding: 0;
        font-size: 14px;
        line-height: 1.6;
    }

    .cookieadmin_consent_btns {
        width: 100%;
        gap: 8px;
    }
}

@media (max-width: 480px) {
    .cookieadmin_consent_inside .cookieadmin_btn {
        width: 100%;
        min-height: 44px;
        margin: 0;
    }
}

@media (max-width: 360px) {
    .elementor-1528 .elementor-element.elementor-element-42ff94f,
    .elementor-2589 .elementor-element.elementor-element-493d7ba,
    .elementor-2589 .elementor-element.elementor-element-3886ced {
        padding-right: 12px;
        padding-left: 12px;
        gap: 6px;
    }

    .elementor-1528 .hfe-site-logo-container img,
    .elementor-2589 .hfe-site-logo-container img,
    .elementor-2589 .elementor-element.elementor-element-429df2a .hfe-site-logo .hfe-site-logo-container img {
        width: 122px;
        max-width: 122px;
    }

    .elementor-1528 .elementor-element.elementor-element-43e92d0 .elementor-button,
    .elementor-2589 .elementor-element.elementor-element-def6bd6 .elementor-button {
        padding-right: 9px;
        padding-left: 9px;
        letter-spacing: 1px !important;
    }
}

/* ================================================
   PHASE 2: SLIDER HOMEPAGE HERO
   Images and editable copy now live in Slider Revolution.
   ================================================ */

body.home .elementor-4902 {
    --queens-hero-height: 100vh;
}

body.home .elementor-4902 > .elementor-element-b210bc6 {
    --min-height: var(--queens-hero-height);
    --margin-top: 0;
    --margin-bottom: 0;
    --margin-left: 0;
    --margin-right: 0;
    --padding-top: 0;
    --padding-bottom: 0;
    --padding-left: 0;
    --padding-right: 0;
    position: relative;
    min-height: var(--queens-hero-height);
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #ead3bb;
}

body.home .elementor-4902 > .elementor-element-b210bc6 > .e-con-inner,
body.home .elementor-4902 .elementor-element-46629e0,
body.home .elementor-4902 .elementor-element-46629e0 > .elementor-widget-container,
body.home .elementor-4902 .elementor-element-46629e0 .elementor-shortcode {
    width: 100%;
    max-width: 100%;
    height: 100%;
    min-height: var(--queens-hero-height);
    padding: 0;
}

body.home .elementor-4902 #SR7_1_1,
body.home .elementor-4902 #SR7_1_1 > sr7-adjuster,
body.home .elementor-4902 #SR7_1_1 > sr7-content {
    width: 100% !important;
    min-height: var(--queens-hero-height) !important;
    height: var(--queens-hero-height) !important;
}

/* The static Elementor hero is the active homepage banner. The Slider
   Revolution section remains available in the editor but is not rendered. */
body.home .elementor-4902 > .elementor-element-64cb59e {
    display: flex !important;
}

body.home .elementor-4902 > .elementor-element-b210bc6 {
    display: none !important;
}

body.home #SR7_1_1 [id$="-10"],
body.home #SR7_1_1 [id$="-11"],
body.home #SR7_1_1 [id$="-12"] {
    z-index: 3 !important;
}

body.home #SR7_1_1 [id$="-12"] {
    text-decoration: none !important;
    box-shadow: 0 8px 22px rgba(24, 24, 24, 0.12);
    transition: box-shadow 250ms ease, transform 250ms ease;
}

body.home #SR7_1_1 [id$="-12"]:hover,
body.home #SR7_1_1 [id$="-12"]:focus-visible {
    box-shadow: 0 12px 28px rgba(24, 24, 24, 0.2);
}

@media (prefers-reduced-motion: reduce) {
    body.home #SR7_1_1 [id$="-10"],
    body.home #SR7_1_1 [id$="-11"],
    body.home #SR7_1_1 [id$="-12"] {
        animation: none !important;
        transition: none !important;
    }
}

/* ================================================
   PHASE 3: PREMIUM CONSENT EXPERIENCE
   Keeps CookieAdmin functionality intact while making
   the notice and preferences dialog compact and on-brand.
   ================================================ */

.cookieadmin_law_container,
.cookieadmin_law_container.cookieadmin_box {
    right: 20px !important;
    bottom: 20px !important;
    left: auto !important;
    width: min(460px, calc(100vw - 40px)) !important;
    max-width: 460px !important;
    font-family: "Poppins", sans-serif;
}

.cookieadmin_consent_inside {
    width: 100%;
    padding: 20px;
    border: 1px solid rgba(171, 137, 101, 0.26) !important;
    border-radius: 14px;
    background: rgba(255, 253, 250, 0.98) !important;
    box-shadow: 0 18px 50px rgba(44, 34, 25, 0.18);
    box-sizing: border-box;
}

#cookieadmin_notice_title {
    margin: 0 0 6px;
    padding: 0;
    color: #181818 !important;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}

.cookieadmin_notice_con {
    min-width: 0;
    padding: 0;
    color: #514941 !important;
    font-size: 13px;
    line-height: 1.6;
}

.cookieadmin_notice_con p {
    margin: 0 0 16px;
}

.cookieadmin_consent_btns,
.cookieadmin_modal_footer {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
}

button.cookieadmin_btn,
.cookieadmin_consent_inside .cookieadmin_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 0;
    min-height: 42px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #cdbba9 !important;
    border-radius: 0;
    color: #29231e !important;
    background: transparent !important;
    font-family: "Poppins", sans-serif;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    white-space: nowrap;
    opacity: 1;
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

button.cookieadmin_btn:hover,
.cookieadmin_consent_inside .cookieadmin_btn:hover {
    border-color: #ab8965 !important;
    background: #f5ede5 !important;
    opacity: 1;
    transform: translateY(-1px);
}

.cookieadmin_consent_inside button.cookieadmin_accept_btn,
.cookieadmin_modal_footer button.cookieadmin_accept_btn,
.cookieadmin_modal_footer button.cookieadmin_save_btn {
    border-color: #ab8965 !important;
    color: #ffffff !important;
    background: #ab8965 !important;
}

.cookieadmin_consent_inside button.cookieadmin_accept_btn:hover,
.cookieadmin_modal_footer button.cookieadmin_accept_btn:hover,
.cookieadmin_modal_footer button.cookieadmin_save_btn:hover {
    border-color: #92704f !important;
    background: #92704f !important;
}

button.cookieadmin_btn:focus-visible,
.cookieadmin_close_pref:focus-visible,
.cookieadmin_show_pref_cookies:focus-visible,
.cookieadmin_toggle:focus-within {
    outline: 3px solid rgba(171, 137, 101, 0.42);
    outline-offset: 3px;
}

.cookieadmin_law_container .cookieadmin-poweredby {
    margin-top: 10px;
    opacity: 0.62;
}

.cookieadmin_law_container .cookieadmin-poweredby a {
    font-size: 9px;
}

.cookieadmin_law_container .cookieadmin-poweredby svg {
    width: 72px;
    height: auto;
}

/* Preferences dialog */
.cookieadmin_modal_overlay {
    background: rgba(24, 20, 17, 0.48);
    backdrop-filter: blur(4px);
}

.cookieadmin_cookie_modal,
.cookieadmin_cookie_modal.cookieadmin_center {
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    width: min(680px, calc(100vw - 32px));
    max-width: 680px !important;
    max-height: min(760px, calc(100svh - 32px));
    border: 1px solid rgba(171, 137, 101, 0.24) !important;
    border-radius: 16px;
    background: #fffdfa !important;
    box-shadow: 0 28px 80px rgba(28, 22, 17, 0.28);
    font-family: "Poppins", sans-serif;
    overflow: hidden;
    transform: translate(-50%, -50%);
}

.cookieadmin_mod_head {
    align-items: center;
    padding: 20px 24px;
    border-bottom: 1px solid #ece2d9;
}

.cookieadmin_preference_title {
    margin: 0;
    color: #181818 !important;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(25px, 4vw, 32px);
    font-weight: 600;
    line-height: 1.1;
}

.cookieadmin_close_pref {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    min-width: 40px;
    height: 40px;
    border-radius: 50%;
    color: #514941;
    font-size: 16px;
    transition: color 180ms ease, background-color 180ms ease;
}

.cookieadmin_close_pref:hover {
    color: #181818;
    background: #f3eae2;
}

.cookieadmin_details_wrapper {
    height: auto;
    max-height: calc(100svh - 220px);
    padding: 0;
    overscroll-behavior: contain;
}

.cookieadmin_preference_details {
    padding: 16px 24px 8px;
}

.cookieadmin_preference {
    padding: 0;
    color: #514941 !important;
    font-size: 13px;
    line-height: 1.6;
}

.cookieadmin_types {
    padding: 15px 24px;
    border-top: 1px solid #ece2d9;
}

.cookieadmin_header {
    align-items: center;
    gap: 16px;
}

.cookieadmin_header > span {
    min-width: 0;
}

.cookieadmin_cookie_modal .stitle,
.cookieadmin_show_pref_cookies {
    color: #29231e;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    font-weight: 600;
}

.cookieadmin_show_pref_cookies {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 50%;
    color: #ab8965;
    font-size: 12px;
}

.cookieadmin_desc {
    padding: 5px 42px 0 28px;
    color: #675e56 !important;
    font-size: 12.5px;
    line-height: 1.55;
}

.cookieadmin_remark,
.cookieadmin_showmore {
    color: #8e6d4d !important;
}

.cookieadmin_slider,
input:disabled + .cookieadmin_slider {
    background-color: #a39a92 !important;
}

input:checked + .cookieadmin_slider {
    background-color: #ab8965 !important;
}

.cookieadmin_modal_footer {
    padding: 16px 24px 14px;
    border-top: 1px solid #ece2d9;
    box-sizing: border-box;
}

.cookieadmin_modal_footer_links {
    grid-column: 1 / -1;
    margin: 2px 0 0;
    color: #71675e;
    font-size: 11px;
}

button.cookieadmin_re_consent {
    right: 18px;
    bottom: 18px;
    left: auto;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    background-color: #ab8965;
    box-shadow: 0 10px 26px rgba(44, 34, 25, 0.25);
}

@media (max-width: 767px) {
    .cookieadmin_law_container,
    .cookieadmin_law_container.cookieadmin_box {
        right: 12px !important;
        bottom: 12px !important;
        left: 12px !important;
        width: auto !important;
        max-width: none !important;
    }

    .cookieadmin_consent_inside {
        padding: 16px;
        border-radius: 12px;
    }

    .cookieadmin_notice_con p {
        margin-bottom: 14px;
    }

    .cookieadmin_law_container .cookieadmin-poweredby {
        margin-top: 8px;
    }

    .cookieadmin_cookie_modal,
    .cookieadmin_cookie_modal.cookieadmin_center {
        width: calc(100vw - 24px);
        max-height: calc(100svh - 24px);
        border-radius: 14px;
    }

    .cookieadmin_mod_head {
        padding: 16px 18px;
    }

    .cookieadmin_preference_details {
        padding: 14px 18px 6px;
    }

    .cookieadmin_types {
        padding: 14px 18px;
    }

    .cookieadmin_desc {
        padding-right: 28px;
    }

    .cookieadmin_modal_footer {
        padding: 14px 18px 12px;
    }
}

@media (max-width: 420px) {
    .cookieadmin_consent_btns,
    .cookieadmin_modal_footer {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cookieadmin_consent_btns .cookieadmin_accept_btn,
    .cookieadmin_modal_footer .cookieadmin_accept_btn {
        grid-column: 1 / -1;
    }

    button.cookieadmin_btn,
    .cookieadmin_consent_inside .cookieadmin_btn {
        padding-right: 8px;
        padding-left: 8px;
        font-size: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cookieadmin_law_container,
    .cookieadmin_cookie_modal,
    button.cookieadmin_btn,
    .cookieadmin_close_pref,
    .cookieadmin_slider {
        animation: none !important;
        transition: none !important;
    }
}

/* ================================================
   CHECKOUT STRUCTURE AND POLISH
   Scoped to the active WooCommerce checkout. Booking,
   cart and payment functionality remains unchanged.
   ================================================ */

body.woocommerce-checkout:not(.woocommerce-order-received) .main-contain {
    background: #fbf8f4;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .main-contain > .container {
    width: min(1240px, calc(100% - 48px));
    max-width: 1240px;
    padding-right: 0;
    padding-left: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) .entry-content > .woocommerce {
    padding-bottom: 96px;
}

.queens-checkout-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 48px;
    padding: 42px 0 38px;
}

.queens-checkout-intro__copy {
    max-width: 700px;
}

.queens-checkout-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 24px;
    color: #6d5a48;
    font-size: 13px;
    font-weight: 500;
    text-decoration: none;
}

.queens-checkout-back span {
    font-size: 17px;
    transition: transform 180ms ease;
}

.queens-checkout-back:hover {
    color: #181818;
}

.queens-checkout-back:hover span {
    transform: translateX(-3px);
}

.queens-checkout-eyebrow {
    margin: 0 0 7px;
    color: #ab8965;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.queens-checkout-intro h1 {
    max-width: 700px;
    margin: 0;
    color: #181818;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(46px, 5vw, 64px);
    font-weight: 600;
    line-height: 0.98;
    letter-spacing: -0.5px;
}

.queens-checkout-lead {
    max-width: 620px;
    margin: 17px 0 0;
    color: #62584f;
    font-size: 15px;
    line-height: 1.7;
}

.queens-checkout-steps {
    display: flex;
    flex: 0 0 auto;
    gap: 22px;
    margin: 0 0 5px;
    padding: 0;
    list-style: none;
}

.queens-checkout-steps li {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #675e56;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}

.queens-checkout-steps li + li::before {
    width: 26px;
    height: 1px;
    margin-right: 4px;
    background: #d8c9bb;
    content: "";
}

.queens-checkout-steps li span,
.queens-payment-heading span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    border: 1px solid #c7ad93;
    border-radius: 50%;
    color: #8e6d4d;
    font-size: 10px;
    font-weight: 600;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout {
    display: grid;
    grid-template-columns: minmax(0, 1.17fr) minmax(380px, 0.83fr);
    grid-template-rows: auto auto;
    align-items: start;
    column-gap: 32px;
    row-gap: 8px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #customer_details {
    grid-column: 1;
    grid-row: 1 / 3;
    margin: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review_heading {
    grid-column: 2;
    grid-row: 1;
    width: 100% !important;
    margin: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review {
    grid-column: 2;
    grid-row: 2;
    width: 100% !important;
    margin: 0;
    position: sticky;
    top: 108px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #customer_details,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review {
    padding: 28px !important;
    border: 1px solid rgba(171, 137, 101, 0.28) !important;
    border-radius: 12px !important;
    background: #fffefa;
    box-shadow: 0 14px 38px rgba(50, 39, 29, 0.055);
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout h3 {
    margin: 0 0 22px;
    padding: 0 !important;
    color: #181818;
    font-family: "Cormorant Garamond", serif;
    font-size: 29px;
    font-weight: 600;
    line-height: 1.1;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .woocommerce-billing-fields > h3::before,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review_heading::before {
    display: block;
    margin-bottom: 7px;
    color: #ab8965;
    font-family: "Poppins", sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.4px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .woocommerce-billing-fields > h3::before {
    content: "01  /  GUEST INFORMATION";
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review_heading::before {
    content: "02  /  RESERVATION SUMMARY";
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-billing-fields__field-wrapper {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 19px 18px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #billing_address_1_field {
    grid-column: 1 / -1;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row label {
    margin-bottom: 7px;
    color: #4e463f;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .required {
    color: #9f4f43;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row input,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row select,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row textarea,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .select2-selection--single {
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid #d7c4b1 !important;
    border-radius: 6px !important;
    background: #ffffff;
    color: #28231f;
    font-family: "Poppins", sans-serif;
    font-size: 14px;
    box-shadow: none;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row input:focus,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row select:focus,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .form-row textarea:focus,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .select2-container--focus .select2-selection--single {
    border-color: #9d7854 !important;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(171, 137, 101, 0.14);
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table {
    table-layout: fixed;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table thead th {
    padding: 0 0 11px !important;
    border-bottom-color: #eadfd4;
    color: #807267;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.1px;
    text-transform: uppercase;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table th.product-total,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table td.product-total {
    width: 108px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table tbody tr td {
    padding: 16px 0;
    border-bottom-color: #eadfd4;
    color: #3d3630;
    font-size: 13px;
    vertical-align: top;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table .product-name > a {
    color: #241f1b;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table .product-quantity {
    color: #766b62;
    font-weight: 500;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table dl.variation {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 4px 8px;
    margin: 12px 0 0;
    color: #6a6057;
    font-size: 11.5px;
    line-height: 1.45;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table dl.variation dt,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table dl.variation dd,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table dl.variation p {
    float: none;
    margin: 0;
    padding: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table dl.variation dt {
    color: #37312c;
    font-weight: 600;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-cart-remove-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    margin-left: 7px;
    padding: 0;
    border: 1px solid #e2d5ca;
    border-radius: 50%;
    color: #93604f;
    background: #fff;
    vertical-align: middle;
    transition: border-color 180ms ease, color 180ms ease, background-color 180ms ease;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-cart-remove-btn:hover {
    border-color: #a85d4d;
    color: #8c3f33;
    background: #fbefec;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table tfoot th,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table tfoot td {
    padding: 11px 0;
    border-color: #eadfd4;
    color: #4a423b;
    font-size: 13px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table tfoot tr.order-total th,
body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table tfoot tr.order-total td {
    padding-top: 16px;
    border-top: 1px solid #d8c7b7;
    font-size: 17px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table tfoot tr.order-total td {
    color: #8e6d4d;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 11px;
    margin: 18px 0 22px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions__right {
    grid-row: 1;
    width: 100%;
    min-width: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions__left {
    grid-row: 2;
    width: 100%;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions .eshb-coupon-wrap {
    width: 100%;
    margin: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions .eshb-coupon-toggle {
    margin: 0;
    text-align: left;
    color: #62584f;
    font-size: 12px;
    line-height: 1.5;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions .eshb-showcoupon {
    margin-left: 3px;
    color: #8e6d4d;
    font-weight: 600;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions .eshb-add-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid #c8ad92;
    border-radius: 0;
    color: #6d5238;
    background: transparent;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    white-space: normal;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-order-review-actions .eshb-add-more-btn:hover {
    border-color: #ab8965;
    color: #241f1b;
    background: #f7efe7;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-coupon-fields .form-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    margin-top: 10px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-coupon-fields .eshb-coupon-code {
    width: 100%;
    min-width: 0;
    margin: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-coupon-fields .eshb-apply-coupon {
    min-height: 44px;
    margin: 0;
    padding: 10px 13px;
    border: 1px solid #ab8965;
    border-radius: 0;
    color: #fff;
    background: #ab8965;
    white-space: nowrap;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .queens-payment-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 4px 0 13px;
    font-family: "Poppins", sans-serif;
    font-size: 13px;
    font-weight: 600;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #payment {
    margin-top: 0;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #payment .wc_payment_methods .wc_payment_method {
    padding: 13px 14px;
    border: 1px solid #dfd1c5;
    border-radius: 8px;
    background: #ffffff;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #payment .wc_payment_methods .wc_payment_method:has(input:checked) {
    border-color: #b69472;
    background: #faf4ee;
    box-shadow: inset 0 0 0 1px rgba(171, 137, 101, 0.1);
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #payment .wc_payment_method input[type="radio"] {
    accent-color: #9d7854;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #payment .wc_payment_method label {
    font-size: 13px;
    font-weight: 600;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #payment .payment_box {
    margin: 11px 0 0;
    padding: 12px 14px;
    border-radius: 6px;
    color: #574f48;
    background: #f3eae2;
    font-size: 12px;
    line-height: 1.55;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #payment .payment_box::before {
    border-bottom-color: #f3eae2;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .woocommerce-privacy-policy-text {
    margin-top: 17px;
    color: #71675e;
    font-size: 11.5px;
    line-height: 1.65;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .woocommerce-privacy-policy-text a {
    color: #8e6d4d;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #place_order {
    min-height: 50px;
    margin-top: 18px;
    padding: 13px 18px;
    border-radius: 0;
    background: #ab8965;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}

body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #place_order:hover {
    background: #8e6d4d;
}

.queens-checkout-security {
       display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 6px;
    margin: 14px 0 0;
    width: fit-content;
    padding-top: 15px;
    color: #776d64;
    font-size: 10.5px;
    line-height: 1.45;
    text-align: center;
}

.queens-checkout-security__icon {
    position: relative;
    flex: 0 0 auto;
    width: 11px;
    height: 9px;
    margin-top: 4px;
    border: 1.5px solid #9a795a;
    border-radius: 2px;
}

.queens-checkout-security__icon::before {
    position: absolute;
    bottom: 6px;
    left: 50%;
    width: 6px;
    height: 6px;
    border: 1.5px solid #9a795a;
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    content: "";
    transform: translateX(-50%);
}

body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-error,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-message,
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-info {
    border: 1px solid rgba(171, 137, 101, 0.25);
    border-radius: 8px;
}

@media (max-width: 1100px) {
    .queens-checkout-intro {
        display: block;
    }

    .queens-checkout-steps {
        margin-top: 26px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout {
        display: block;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #customer_details,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review {
        position: static;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review_heading {
        margin-top: 42px;
    }
}

@media (max-width: 767px) {
    body.woocommerce-checkout:not(.woocommerce-order-received) .main-contain {
        padding-top: 102px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .main-contain > .container {
        width: calc(100% - 24px);
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .entry-content > .woocommerce {
        padding-bottom: 64px;
    }

    .queens-checkout-intro {
        padding: 24px 6px 30px;
    }

    .queens-checkout-back {
        margin-bottom: 20px;
    }

    .queens-checkout-intro h1 {
        max-width: 480px;
        font-size: clamp(40px, 11vw, 52px);
        line-height: 1;
    }

    .queens-checkout-lead {
        margin-top: 14px;
        font-size: 14px;
        line-height: 1.6;
    }

    .queens-checkout-steps {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
        margin-top: 22px;
    }

    .queens-checkout-steps li {
        display: grid;
        justify-items: center;
        gap: 6px;
        font-size: 10px;
        text-align: center;
        white-space: normal;
    }

    .queens-checkout-steps li + li::before {
        display: none;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #customer_details,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review {
        padding: 20px !important;
        border-radius: 10px !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout h3 {
        font-size: 26px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-billing-fields__field-wrapper {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #billing_address_1_field {
        grid-column: auto;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review_heading {
        margin: 36px 4px 16px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table th.product-total,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table td.product-total {
        width: 82px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table .product-name > a {
        font-size: 14px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table dl.variation {
        grid-template-columns: 1fr;
        gap: 2px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table dl.variation dd + dt {
        margin-top: 5px;
    }
}

@media (max-width: 420px) {
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #customer_details,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #order_review {
        padding: 16px !important;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table th.product-total,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout table.shop_table td.product-total {
        width: 72px;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-coupon-fields .form-row {
        grid-template-columns: 1fr;
    }

    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-coupon-fields .eshb-apply-coupon {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .queens-checkout-back span,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout #place_order,
    body.woocommerce-checkout:not(.woocommerce-order-received) form.checkout .eshb-cart-remove-btn {
        transition: none !important;
        transform: none !important;
    }
}

/* ================================================
   QUEENS DATE SELECTOR: GOLD, IVORY & BRASS
   Visual-only overrides for Easy Hotel's date fields
   and date-range calendar. Booking logic is unchanged.
   ================================================ */

:root {
    --queens-date-gold: #c9a24d;
    --queens-date-gold-soft: #f1e2bd;
    --queens-date-brass: #80602b;
    --queens-date-brass-deep: #67491f;
    --queens-date-ivory: #fffdf6;
    --queens-date-ivory-soft: #f8f1e2;
    --queens-date-ink: #2e271c;
    --queens-date-muted: #7b7162;
    --queens-date-border: #dcc99f;
}

/* Date input cards: booking form and availability search form. */
.eshb-booking .eshb-booking-form .date-pickers-wrapper .eshb-input-wrapper,
.eshb-search .eshb-search-form .dates-wrapper .eshb-input-wrapper {
    display: flex;
    align-items: center;
    min-height: 52px;
    border: 1px solid var(--queens-date-border);
    border-radius: 12px;
    background: var(--queens-date-ivory);
    box-shadow: 0 5px 16px rgba(103, 73, 31, 0.08);
    overflow: hidden;
    transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.eshb-booking .eshb-booking-form .date-pickers-wrapper .eshb-input-wrapper:hover,
.eshb-search .eshb-search-form .dates-wrapper .eshb-input-wrapper:hover {
    border-color: var(--queens-date-gold);
    background: #fffaf0;
}

.eshb-booking .eshb-booking-form .date-pickers-wrapper .eshb-input-wrapper:focus-within,
.eshb-search .eshb-search-form .dates-wrapper .eshb-input-wrapper:focus-within {
    border-color: var(--queens-date-brass);
    box-shadow: 0 0 0 3px rgba(201, 162, 77, 0.22), 0 8px 20px rgba(103, 73, 31, 0.12);
}

.eshb-booking .eshb-booking-form .date-pickers-wrapper .eshb-date-field,
.eshb-search .eshb-search-form .dates-wrapper .eshb-date-field {
    flex: 1 1 auto;
    min-width: 0;
}

/* The room booking form lives in a narrow sidebar. Keep complete formatted
   dates readable instead of squeezing both controls into half-width columns. */
.eshb-booking .eshb-booking-form .date-pickers-wrapper {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.eshb-booking .eshb-booking-form .date-pickers-wrapper > .eshb-form-group {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    text-align: left;
}

.eshb-booking .eshb-booking-form .date-pickers-wrapper input.form-control,
.eshb-search .eshb-search-form .dates-wrapper input.form-control {
    min-height: 50px;
    margin: 0 !important;
    padding: 12px 46px 12px 16px !important;
    border: 0 !important;
    border-radius: 12px !important;
    color: var(--queens-date-ink);
    background: transparent !important;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    text-align: left;
    box-shadow: none !important;
}

.eshb-booking .eshb-booking-form .date-pickers-wrapper .field-label,
.eshb-search .eshb-search-form .dates-wrapper .field-label {
    color: var(--queens-date-brass-deep) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 1.25px;
    text-transform: uppercase;
}

.eshb-booking .eshb-booking-form .date-pickers-wrapper .eshb-calendar-icon,
.eshb-search .eshb-search-form .dates-wrapper .eshb-calendar-icon {
    top: 50% !important;
    right: 16px !important;
    color: var(--queens-date-brass) !important;
    font-size: 17px;
}

/* Calendar surface. It is appended to <body>, so it cannot be scoped
   beneath the booking form without breaking the plugin's positioning. */
body .daterangepicker {
    --eshb-active-bg-color: var(--queens-date-brass);
    --eshb-active-color: #ffffff;
    --eshb-inrange-bg-color: var(--queens-date-gold-soft);
    --eshb-inrange-color: var(--queens-date-ink);
    padding: 14px;
    max-width: calc(100vw - 24px);
    border: 1px solid var(--queens-date-border);
    border-radius: 16px;
    color: var(--queens-date-ink);
    background: var(--queens-date-ivory);
    box-shadow: 0 22px 56px rgba(72, 52, 24, 0.2);
    font-family: var(--font-primary) !important;
    line-height: 1.35;
    box-sizing: border-box;
}

/* Interactive pickers are direct children of body. Keep them usable on short
   laptop windows and landscape phones without constraining the embedded room calendar. */
body > .daterangepicker {
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
    overscroll-behavior: contain;
}

body .daterangepicker::before {
    border-bottom-color: var(--queens-date-gold);
}

body .daterangepicker::after {
    border-bottom-color: var(--queens-date-ivory);
}

body .daterangepicker.drop-up::before {
    border-top-color: var(--queens-date-gold);
}

body .daterangepicker.drop-up::after {
    border-top-color: var(--queens-date-ivory);
}

body .daterangepicker .drp-calendar {
    width: 280px;
    max-width: 280px;
    box-sizing: border-box;
}

body .daterangepicker .drp-calendar.left,
body .daterangepicker .drp-calendar.right {
    padding: 8px 10px;
}

body .daterangepicker .drp-calendar.right {
    border-left: 1px solid rgba(201, 162, 77, 0.24);
}

body .daterangepicker .calendar-table,
body .daterangepicker .drp-calendar.left .calendar-table,
body .daterangepicker .drp-calendar.right .calendar-table {
    border: 0;
    border-radius: 12px;
    background: var(--queens-date-ivory);
}

body .daterangepicker .calendar-table table {
    width: 100% !important;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0 4px;
    box-sizing: border-box;
}

body .daterangepicker .calendar-table tr {
    display: table-row !important;
    margin: 0;
}

body .daterangepicker .calendar-table th,
body .daterangepicker .calendar-table td {
    min-width: 0 !important;
    width: auto !important;
    height: 40px !important;
    padding: 0 !important;
    border: 0;
    border-radius: 50% !important;
    box-sizing: border-box;
    color: var(--queens-date-ink);
    font-size: 13px;
    font-weight: 600;
    line-height: 40px;
    transition: color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

/* Exactly seven equal columns for weekday headings and dates. Month/navigation
   cells are deliberately excluded so colspan="5" remains correctly sized. */
body .daterangepicker .calendar-table thead tr:nth-child(2) th,
body .daterangepicker .calendar-table tbody td {
    width: 14.285714% !important;
}

body .daterangepicker .calendar-table thead tr:first-child th {
    width: auto !important;
}

body .daterangepicker .calendar-table tbody tr {
    height: 44px;
}

body .daterangepicker th.month {
    height: 44px;
    color: var(--queens-date-ink);
    font-family: var(--title-font) !important;
    font-size: 21px !important;
    font-weight: 600;
    line-height: 1.2;
}

body .daterangepicker thead tr:nth-child(2) th {
    height: 30px;
    padding-bottom: 4px !important;
    color: var(--queens-date-brass);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.8px;
    line-height: 30px;
    text-transform: uppercase;
}

body .daterangepicker .calendar-table .prev,
body .daterangepicker .calendar-table .next {
    border-radius: 50%;
}

body .daterangepicker .calendar-table .prev span,
body .daterangepicker .calendar-table .next span {
    border-color: var(--queens-date-brass);
}

body .daterangepicker td.available:hover,
body .daterangepicker th.available:hover {
    color: var(--queens-date-brass-deep) !important;
    background: var(--queens-date-gold-soft) !important;
    box-shadow: inset 0 0 0 1px rgba(128, 96, 43, 0.16);
}

body .daterangepicker td.in-range,
body .daterangepicker td.in-range:hover {
    border-radius: 0 !important;
    color: var(--queens-date-ink) !important;
    background: var(--queens-date-gold-soft) !important;
    box-shadow: none;
}

body .daterangepicker td.start-date,
body .daterangepicker td.start-date:hover {
    border-radius: 999px 0 0 999px !important;
}

body .daterangepicker td.end-date,
body .daterangepicker td.end-date:hover {
    border-radius: 0 999px 999px 0 !important;
}

body .daterangepicker td.start-date.end-date,
body .daterangepicker td.start-date.end-date:hover {
    border-radius: 50% !important;
}

body .daterangepicker td.active,
body .daterangepicker td.active:hover {
    color: #ffffff !important;
    background: var(--queens-date-brass) !important;
    box-shadow: inset 0 0 0 1px var(--queens-date-brass-deep), 0 3px 10px rgba(103, 73, 31, 0.22);
    transform: none !important;
}

body .daterangepicker td.off,
body .daterangepicker td.off.in-range,
body .daterangepicker td.off.start-date,
body .daterangepicker td.off.end-date {
    color: #b5ac9d !important;
    background: transparent !important;
}

body .daterangepicker td.disabled,
body .daterangepicker option.disabled {
    color: #aaa091;
    text-decoration-color: rgba(128, 96, 43, 0.4);
}

body .daterangepicker .drp-buttons {
    margin: 10px -14px -14px;
    padding: 12px 16px;
    border-top: 1px solid rgba(201, 162, 77, 0.28);
    border-radius: 0 0 16px 16px;
    background: var(--queens-date-ivory-soft);
}

body .daterangepicker .drp-selected {
    color: var(--queens-date-muted);
    font-size: 12px;
}

body .daterangepicker .drp-buttons .btn {
    min-height: 36px;
    padding: 8px 14px;
    border: 1px solid var(--queens-date-brass);
    border-radius: 8px;
    color: var(--queens-date-brass-deep);
    background: transparent;
    font-size: 11px;
    font-weight: 700;
}

body .daterangepicker .drp-buttons .applyBtn {
    color: #ffffff;
    background: var(--queens-date-brass);
}

body .daterangepicker .drp-buttons .btn:hover,
body .daterangepicker .drp-buttons .btn:focus-visible {
    color: #ffffff;
    background: var(--queens-date-brass-deep);
}

body .daterangepicker .ranges li:hover {
    color: var(--queens-date-brass-deep);
    background: var(--queens-date-gold-soft);
}

body .daterangepicker .ranges li.active {
    color: #ffffff;
    background: var(--queens-date-brass);
}

@media (max-width: 700px) {
    body .daterangepicker {
        width: calc(100vw - 24px);
        max-width: 420px;
        max-height: calc(100svh - 24px);
        padding: 10px;
        overflow-x: hidden;
        overflow-y: auto;
    }

    body .daterangepicker .drp-calendar {
        float: none !important;
        width: 100%;
        max-width: none;
    }

    body .daterangepicker .drp-calendar.left,
    body .daterangepicker .drp-calendar.right {
        padding: 6px 2px;
    }

    body .daterangepicker .drp-calendar.right {
        margin-top: 8px;
        padding-top: 14px;
        border-top: 1px solid rgba(201, 162, 77, 0.24);
        border-left: 0;
    }

    body .daterangepicker .calendar-table th,
    body .daterangepicker .calendar-table td {
        min-width: 0 !important;
        height: 40px !important;
        line-height: 40px;
    }

    body .daterangepicker .drp-buttons {
        margin: 8px -10px -10px;
    }
}

@media (max-width: 359px) {
    body .daterangepicker {
        width: calc(100vw - 16px);
        padding: 8px;
        border-radius: 12px;
    }

    body .daterangepicker .drp-calendar.left,
    body .daterangepicker .drp-calendar.right {
        padding-right: 0;
        padding-left: 0;
    }

    body .daterangepicker .calendar-table th,
    body .daterangepicker .calendar-table td {
        height: 38px !important;
        font-size: 12px;
        line-height: 38px;
    }

    body .daterangepicker .calendar-table tbody tr {
        height: 42px;
    }

    body .daterangepicker th.month {
        font-size: 19px !important;
    }
}

.eshb-availability-calendars-area {
    --eshb-active-bg-color: var(--queens-date-brass);
    --eshb-active-color: #ffffff;
    --eshb-inrange-bg-color: var(--queens-date-gold-soft);
    --eshb-inrange-color: var(--queens-date-ink);
}

.eshb-availability-calendars-area .eshb-availability-calendars,
.eshb-availability-calendars-area .daterangepicker {
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 1024px) {
    .eshb-search .eshb-search-form .dates-wrapper {
        width: 100% !important;
        gap: 12px;
    }

    .eshb-search .eshb-search-form .dates-wrapper > .eshb-form-group {
        flex: 1 1 0;
        min-width: 0;
    }
}

@media (max-width: 767px) {
    .eshb-availability-calendars-area .eshb-availability-calendars .daterangepicker.show-calendar {
        width: 100% !important;
        max-width: 100%;
    }

    .eshb-availability-calendars-area .daterangepicker .drp-calendar {
        float: none !important;
        width: 100%;
        max-width: none;
    }

    .eshb-availability-calendars-area .daterangepicker .drp-calendar.right {
        margin-top: 8px;
        padding-top: 14px;
        border-top: 1px solid rgba(201, 162, 77, 0.24);
        border-left: 0;
    }

    .eshb-booking .eshb-booking-form .date-pickers-wrapper .eshb-form-group,
    .eshb-search .eshb-search-form .dates-wrapper .eshb-form-group {
        width: 100%;
        padding-right: 0;
        padding-left: 0;
    }

    .eshb-search .eshb-search-form .dates-wrapper {
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .eshb-booking .eshb-booking-form .date-pickers-wrapper .eshb-input-wrapper,
    .eshb-search .eshb-search-form .dates-wrapper .eshb-input-wrapper,
    body .daterangepicker .calendar-table th,
    body .daterangepicker .calendar-table td {
        transition: none;
    }
}

/* ================================================
   QUEENS EMBEDDED AVAILABILITY CALENDAR
   This scope deliberately excludes the booking/search popover calendars,
   which are appended directly to <body> by Easy Hotel.
   ================================================ */

.single-eshb_accomodation .eshb-availability-calendars-area {
    --queens-availability-booked: #ddd4c5;
    --queens-availability-booked-ink: #71685b;
    width: 100%;
    max-width: 780px;
    margin: clamp(44px, 5vw, 68px) 0 0;
    color: var(--queens-date-ink);
    isolation: isolate;
}

.single-eshb_accomodation .eshb-availability-calendars-area .calendar-title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 22px;
    color: var(--queens-date-ink);
    font-family: var(--title-font) !important;
    font-size: clamp(27px, 2.4vw, 34px);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.single-eshb_accomodation .eshb-availability-calendars-area .calendar-title::after {
    width: 54px;
    height: 1px;
    flex: 0 0 54px;
    background: linear-gradient(90deg, var(--queens-date-gold), transparent);
    content: "";
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-availability-calendars {
    position: relative;
    width: 100%;
    min-width: 0;
}

/* Replacing the plugin's floated month panels with a contained grid fixes the
   collapsed outer box and keeps the two months equal and properly aligned. */
.single-eshb_accomodation .eshb-availability-calendars-area .eshb-availability-calendars > .daterangepicker.show-calendar {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100% !important;
    max-width: 780px !important;
    min-height: 0;
    margin: 0 !important;
    padding: 20px !important;
    overflow: hidden;
    border: 1px solid rgba(181, 138, 59, 0.38);
    border-radius: 22px;
    color: var(--queens-date-ink);
    background:
        radial-gradient(circle at 0 0, rgba(201, 162, 77, 0.1), transparent 230px),
        var(--queens-date-ivory);
    box-shadow: 0 18px 48px rgba(72, 52, 24, 0.13);
    box-sizing: border-box;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker::before,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker::after,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker > .ranges,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker > .drp-buttons {
    display: none !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.left,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.right {
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    margin: 0 !important;
    padding: 7px 20px 12px !important;
    border: 0;
    box-sizing: border-box;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.right {
    border-left: 1px solid rgba(181, 138, 59, 0.22);
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.left .calendar-table,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.right .calendar-table {
    width: 100%;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-sizing: border-box;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table table {
    width: 100% !important;
    margin: 0 !important;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0 4px;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table tr {
    display: table-row !important;
    height: auto;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table th,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table td {
    width: auto !important;
    min-width: 0 !important;
    height: 40px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: var(--queens-date-ink);
    background-clip: border-box;
    font-family: var(--font-primary) !important;
    font-size: 13px;
    font-weight: 600;
    line-height: 40px;
    box-sizing: border-box;
    transition: color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table thead tr:nth-child(2) th,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table tbody td {
    width: 14.285714% !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table thead tr:first-child th {
    width: auto !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker th.month {
    height: 54px !important;
    color: var(--queens-date-ink) !important;
    font-family: var(--title-font) !important;
    font-size: 22px !important;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 54px;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker thead tr:nth-child(2) th {
    height: 34px !important;
    padding-bottom: 5px !important;
    color: var(--queens-date-brass) !important;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.09em;
    line-height: 29px;
    text-transform: uppercase;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table .prev,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table .next {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    background: rgba(201, 162, 77, 0.08);
    transition: background-color 160ms ease, box-shadow 160ms ease;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table .prev:hover,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table .next:hover {
    background: var(--queens-date-gold-soft) !important;
    box-shadow: inset 0 0 0 1px rgba(128, 96, 43, 0.14);
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table .prev span,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table .next span {
    padding: 4px;
    border-width: 0 2px 2px 0;
    border-color: var(--queens-date-brass);
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.available:not(.active):not(.in-range):hover {
    color: var(--queens-date-brass-deep) !important;
    background: var(--queens-date-gold-soft) !important;
    box-shadow: inset 0 0 0 1px rgba(128, 96, 43, 0.14);
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.in-range,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.in-range:hover {
    border-radius: 0 !important;
    color: var(--queens-date-ink) !important;
    background: #efe0b9 !important;
    box-shadow: none;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.start-date,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.start-date:hover {
    border-radius: 999px 0 0 999px !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.end-date,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.end-date:hover {
    border-radius: 0 999px 999px 0 !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.start-date.end-date,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.start-date.end-date:hover {
    border-radius: 50% !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.active,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.active:hover {
    color: #fffdf7 !important;
    background: linear-gradient(135deg, #b98d3e, var(--queens-date-brass)) !important;
    box-shadow: inset 0 0 0 1px var(--queens-date-brass-deep), 0 5px 13px rgba(103, 73, 31, 0.24);
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.off,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.off.in-range,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.off.start-date,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.off.end-date {
    color: #b8ae9e !important;
    background: transparent !important;
    box-shadow: none;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.disabled,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker option.disabled {
    color: #b2a99b !important;
    background: transparent !important;
    text-decoration-color: rgba(113, 104, 91, 0.45);
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.booked-date,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.booked-date.active,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.booked-date:hover,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.reserved-date,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.reserved-date.available,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.reserved-date:hover {
    border-radius: 9px !important;
    color: var(--queens-availability-booked-ink) !important;
    background: var(--queens-availability-booked) !important;
    box-shadow: inset 0 0 0 1px rgba(113, 104, 91, 0.12);
    cursor: not-allowed !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.checked-in-date {
    color: var(--queens-availability-booked-ink) !important;
    background-color: #f8f2e6 !important;
    background-image: linear-gradient(135deg, transparent 50%, var(--queens-availability-booked) 50%) !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.checked-out-date {
    color: var(--queens-availability-booked-ink) !important;
    background-color: #f8f2e6 !important;
    background-image: linear-gradient(135deg, var(--queens-availability-booked) 50%, transparent 50%) !important;
}

.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.holiday-date,
.single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker td.previous-holiday-date {
    border-radius: 9px !important;
    color: #96594d !important;
    background: #faefeb !important;
    box-shadow: inset 0 0 0 1px rgba(150, 89, 77, 0.28);
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 22px;
    width: 100%;
    margin: 16px 0 0;
    padding: 14px 18px;
    border: 1px solid rgba(181, 138, 59, 0.2);
    border-radius: 14px;
    color: var(--queens-date-muted);
    background: rgba(255, 253, 246, 0.78);
    box-sizing: border-box;
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend .eshb-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend .eshb-legend-swatch {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    border: 1px solid rgba(128, 96, 43, 0.28);
    border-radius: 5px;
    box-shadow: none;
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend .eshb-legend-available {
    background: var(--queens-date-ivory);
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend .eshb-legend-selected {
    border-color: var(--queens-date-brass);
    background: linear-gradient(135deg, #b98d3e, var(--queens-date-brass));
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend .eshb-legend-booked,
.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend .eshb-legend-reserved {
    border-color: rgba(113, 104, 91, 0.25);
    background: var(--queens-availability-booked);
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend .eshb-legend-holiday {
    border-color: rgba(150, 89, 77, 0.48);
    background: #faefeb;
    box-shadow: inset 0 0 0 1px rgba(150, 89, 77, 0.12);
}

.single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-msg:not(:empty) {
    margin: 12px 0 0;
    padding: 11px 14px;
    border: 1px solid rgba(150, 89, 77, 0.22);
    border-radius: 10px;
    color: #7d453c;
    background: #fff7f3;
    font-size: 13px;
    line-height: 1.45;
}

@media (max-width: 767px) {
    .single-eshb_accomodation .eshb-availability-calendars-area {
        max-width: 680px;
        margin-top: 42px;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .eshb-availability-calendars > .daterangepicker.show-calendar {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        padding: 14px !important;
        border-radius: 18px;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar,
    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.left,
    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.right {
        width: min(100%, 440px) !important;
        margin-inline: auto !important;
        padding: 5px 12px 10px !important;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.right {
        margin-top: 8px !important;
        padding-top: 15px !important;
        border-top: 1px solid rgba(181, 138, 59, 0.22);
        border-left: 0;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend {
        gap: 10px 16px;
    }
}

@media (max-width: 420px) {
    .single-eshb_accomodation .eshb-availability-calendars-area .calendar-title {
        gap: 10px;
        margin-bottom: 17px;
        font-size: 26px;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .calendar-title::after {
        width: 36px;
        flex-basis: 36px;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .eshb-availability-calendars > .daterangepicker.show-calendar {
        padding: 10px !important;
        border-radius: 16px;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar,
    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.left,
    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .drp-calendar.right {
        padding-right: 4px !important;
        padding-left: 4px !important;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table th,
    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table td {
        height: 38px !important;
        font-size: 12px;
        line-height: 38px;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker th.month {
        height: 48px !important;
        font-size: 20px !important;
        line-height: 48px;
    }

    .single-eshb_accomodation .eshb-availability-calendars-area .eshb-calendar-legend {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px 12px;
        padding: 13px 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table th,
    .single-eshb_accomodation .eshb-availability-calendars-area .daterangepicker .calendar-table td {
        transition: none;
    }
}

/* ================================================
   HEADER CART ICON — injected via hfe_header hook
   ================================================ */

/* Native Almaris header: keep both mobile controls in one measured group. */
#reactheme-header .mobilehum ul.offcanvas-icon.layout-2 {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

#reactheme-header .mobilehum ul.offcanvas-icon.layout-2 > li {
    flex: 0 0 auto;
    margin: 0;
}

#reactheme-header .mobilehum ul.offcanvas-icon.layout-2 > li .nav-menu-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    max-width: none;
    height: 44px;
    padding: 0;
    border-radius: 50%;
    line-height: 1;
}

#reactheme-header .mobilehum .eshb-header-cart-link,
#reactheme-header .mobilehum .eshb-header-cart-link svg,
#reactheme-header .mobilehum .eshb-header-cart-link svg path,
#reactheme-header .mobilehum .eshb-header-cart-link svg line {
    fill: none !important;
    stroke: currentColor;
}

#reactheme-header .mobilehum .eshb-header-cart-link {
    color: var(--color-white);
}

#reactheme-header .mobilehum .menu-button svg {
    display: block;
    width: 20px;
    height: 16px;
}

#reactheme-header .mobilehum .menu-button svg rect {
    fill: currentColor;
}

#reactheme-header .menu-sticky.sticky .mobilehum .eshb-header-cart-link,
#reactheme-header .menu-sticky.sticky .mobilehum .menu-button {
    color: #1c2539;
}

/* Ensure header is the positioning parent for the cart wrap */
#reactheme-header.header-style-1 {
    position: relative;
}

/* Wrapper: absolutely positioned inside the <header> tag, top-right */
.eshb-header-cart-wrap {
    position: absolute;
    top: 50%;
    right: 90px; /* sits left of the hamburger menu button */
    transform: translateY(-50%);
    z-index: 999;
    display: flex;
    align-items: center;
}

a.eshb-header-cart-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: #FFFFFF;
    text-decoration: none !important;
    transition: color 200ms ease, background-color 200ms ease;
    line-height: 1;
}

a.eshb-header-cart-link:hover,
a.eshb-header-cart-link:focus-visible {
    color: #AB8965;
    background: rgba(171, 137, 101, 0.12);
}

a.eshb-header-cart-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px #1c2539;
}

a.eshb-header-cart-link svg {
    display: block;
    flex-shrink: 0;
}

.elementor-2589 ~ .eshb-header-cart-wrap .eshb-header-cart-link {
    color: #1c2539;
}

span.eshb-cart-count {
    position: absolute;
    top: -8px;
    right: -10px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 50px;
    background: #765633;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

/* Hide badge when count is 0 */
span.eshb-cart-count:empty {
    display: none;
}

/* On mobile, preserve a clear 8px gap beside the 44px hamburger target. */
@media (max-width: 767px) {
    .eshb-header-cart-wrap {
        right: 72px;
        width: 44px;
        height: 44px;
    }

    a.eshb-header-cart-link svg {
        width: 21px;
        height: 21px;
    }
}

@media (max-width: 360px) {
    .eshb-header-cart-wrap {
        right: 64px;
    }
}

/* When sticky header is active (dark bg → white icon already correct)
   On scroll/sticky with light bg, switch to dark icon */
.menu-sticky.sticked .eshb-header-cart-wrap a.eshb-header-cart-link,
#reactheme-header.header-style-1 .header-inner.sticked .eshb-header-cart-wrap a.eshb-header-cart-link {
    color: #1C2539;
}
.menu-sticky.sticked .eshb-header-cart-wrap a.eshb-header-cart-link:hover,
#reactheme-header.header-style-1 .header-inner.sticked .eshb-header-cart-wrap a.eshb-header-cart-link:hover {
    color: #AB8965;
}

/* ================================================
   RESERVATION CART
   A responsive treatment for the classic WooCommerce cart shortcode.
   ================================================ */

body.woocommerce-cart .main-contain {
    background: #f8f5f0;
}

body.woocommerce-cart .main-contain > .container {
    width: min(100% - 40px, 1320px);
    max-width: 1320px;
    padding-right: 0;
    padding-left: 0;
}

body.woocommerce-cart .entry-content > .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: flex-start;
    gap: 32px;
}

body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-cart .queens-cart-intro {
    flex: 0 0 100%;
    width: 100%;
}

body.woocommerce-cart .woocommerce-notices-wrapper:empty {
    display: none;
}

body.woocommerce-cart .queens-cart-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(340px, 0.7fr);
    gap: clamp(30px, 5vw, 72px);
    align-items: end;
    margin: 0 0 20px;
    padding: clamp(28px, 5vw, 54px);
    overflow: hidden;
    border: 1px solid rgba(171, 137, 101, 0.2);
    border-radius: 24px;
    background:
        radial-gradient(circle at 100% 0, rgba(171, 137, 101, 0.16), transparent 42%),
        #fff;
    box-shadow: 0 22px 55px rgba(28, 37, 57, 0.08);
}

body.woocommerce-cart .queens-cart-back {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 22px;
    color: #606060;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

body.woocommerce-cart .queens-cart-back:hover,
body.woocommerce-cart .queens-cart-back:focus-visible {
    color: #765633;
}

body.woocommerce-cart .queens-cart-eyebrow {
    margin: 0 0 8px;
    color: #765633;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

body.woocommerce-cart #queens-cart-title {
    margin: 0;
    color: #1c2539;
    font-size: clamp(38px, 5vw, 62px);
    line-height: 1;
}

body.woocommerce-cart .queens-cart-lead {
    max-width: 620px;
    margin: 16px 0 0;
    color: #606060;
    font-size: 16px;
    line-height: 1.7;
}

body.woocommerce-cart .queens-cart-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.woocommerce-cart .queens-cart-steps li {
    display: grid;
    gap: 8px;
    color: #5f6670;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: center;
    text-transform: uppercase;
}

body.woocommerce-cart .queens-cart-steps li::before {
    content: "";
    grid-row: 1;
    grid-column: 1;
    align-self: center;
    height: 2px;
    background: #e7dfd5;
}

body.woocommerce-cart .queens-cart-steps li span {
    z-index: 1;
    grid-row: 1;
    grid-column: 1;
    justify-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 2px solid #e7dfd5;
    border-radius: 50%;
    background: #fff;
    color: #5f6670;
}

body.woocommerce-cart .queens-cart-steps li.is-current {
    color: #1c2539;
}

body.woocommerce-cart .queens-cart-steps li.is-current::before,
body.woocommerce-cart .queens-cart-steps li.is-current span {
    border-color: #765633;
    background-color: #765633;
    color: #fff;
}

body.woocommerce-cart .queens-cart-assurance {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid rgba(28, 37, 57, 0.1);
    color: #606060;
    font-size: 12px;
    line-height: 1.55;
}

body.woocommerce-cart .queens-cart-assurance > span {
    position: relative;
    flex: 0 0 17px;
    width: 17px;
    height: 14px;
    margin-top: 3px;
    border: 2px solid #ab8965;
    border-radius: 4px;
}

body.woocommerce-cart .queens-cart-assurance > span::before {
    content: "";
    position: absolute;
    bottom: 9px;
    left: 2px;
    width: 9px;
    height: 8px;
    border: 2px solid #ab8965;
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
}

body.woocommerce-cart .woocommerce-cart-form {
    width: 100%;
    min-width: 0;
    margin: 0;
}

body.woocommerce-cart table.shop_table.cart {
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(28, 37, 57, 0.1) !important;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(28, 37, 57, 0.06);
}

body.woocommerce-cart table.shop_table.cart thead {
    background: #1c2539;
}

body.woocommerce-cart table.shop_table.cart thead th {
    padding: 17px 14px;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.woocommerce-cart table.shop_table.cart td {
    padding: 22px 14px;
    vertical-align: middle;
}

body.woocommerce-cart table.shop_table.cart tr.cart_item td {
    border-bottom: 1px solid rgba(28, 37, 57, 0.08) !important;
}

body.woocommerce-cart table.shop_table.cart .product-remove {
    width: 48px;
    padding-right: 5px;
    padding-left: 16px;
}

body.woocommerce-cart table.shop_table.cart a.remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(28, 37, 57, 0.13);
    border-radius: 50%;
    color: #7d838c !important;
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
}

body.woocommerce-cart table.shop_table.cart a.remove:hover,
body.woocommerce-cart table.shop_table.cart a.remove:focus-visible {
    border-color: #a84d45;
    background: #a84d45;
    color: #fff !important;
}

body.woocommerce-cart table.shop_table.cart .product-thumbnail {
    width: 110px;
}

body.woocommerce-cart table.shop_table.cart .product-thumbnail img {
    width: 84px;
    height: 84px;
    border-radius: 12px;
    object-fit: cover;
}

body.woocommerce-cart table.shop_table.cart .product-name a {
    color: #1c2539;
    font-family: var(--title-font) !important;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.2;
}

body.woocommerce-cart table.shop_table.cart .product-name a:hover {
    color: #ab8965;
}

body.woocommerce-cart table.shop_table.cart dl.variation {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 3px 8px;
    margin: 9px 0 0;
    color: #6f747c;
    font-size: 12px;
    line-height: 1.5;
}

body.woocommerce-cart table.shop_table.cart dl.variation dt,
body.woocommerce-cart table.shop_table.cart dl.variation dd,
body.woocommerce-cart table.shop_table.cart dl.variation p {
    float: none;
    margin: 0;
    padding: 0;
}

body.woocommerce-cart table.shop_table.cart .product-price,
body.woocommerce-cart table.shop_table.cart .product-subtotal {
    color: #1c2539;
    font-size: 15px;
    font-weight: 700;
}

body.woocommerce-cart .eshb-qty-locked {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    border: 1px solid rgba(28, 37, 57, 0.14);
    border-radius: 8px;
    background: #f8f5f0;
    color: #1c2539;
    font-weight: 700;
}

body.woocommerce-cart table.shop_table.cart td.actions {
    display: table-cell;
    padding: 18px;
    background: #fcfaf7;
    text-align: right;
}

body.woocommerce-cart table.shop_table.cart td.actions::after {
    content: "";
    display: table;
    clear: both;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 10px;
    float: left;
    width: 55%;
    max-width: 440px;
    margin: 0;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 10px 14px;
    border: 1px solid rgba(28, 37, 57, 0.16);
    border-radius: 8px;
    background: #fff;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text,
body.woocommerce-cart table.shop_table.cart td.actions .coupon .button {
    box-sizing: border-box;
    height: 48px;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon .button {
    margin: 0;
    white-space: nowrap;
}

body.woocommerce-cart table.shop_table.cart td.actions .coupon .coupon-error-notice {
    grid-column: 1 / -1;
    margin: 0;
}

body.woocommerce-cart table.shop_table.cart td.actions .button,
body.woocommerce-cart .return-to-shop .button {
    min-height: 48px;
    padding: 12px 18px;
    border-radius: 8px;
    background: #1c2539;
    color: #fff;
    font-size: 11px;
    letter-spacing: 0.08em;
}

body.woocommerce-cart table.shop_table.cart td.actions > .button {
    float: right;
    margin: 0 0 0 10px;
}

body.woocommerce-cart table.shop_table.cart td.actions .queens-add-more-rooms {
    border: 1px solid rgba(28, 37, 57, 0.2);
    background: #fff;
    color: #1c2539;
}

body.woocommerce-cart table.shop_table.cart td.actions .button:hover,
body.woocommerce-cart table.shop_table.cart td.actions .button:focus-visible,
body.woocommerce-cart .return-to-shop .button:hover,
body.woocommerce-cart .return-to-shop .button:focus-visible {
    background: #765633;
    color: #fff;
}

body.woocommerce-cart table.shop_table.cart td.actions .button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 0;
    box-shadow: 0 0 0 4px #1c2539;
}

body.woocommerce-cart table.shop_table.cart td.actions .queens-add-more-rooms:hover,
body.woocommerce-cart table.shop_table.cart td.actions .queens-add-more-rooms:focus-visible {
    border-color: #1c2539;
    background: #f4efe8;
    color: #1c2539;
    text-align: center;
}

body.woocommerce-cart .cart-collaterals {
    width: 100%;
    min-width: 0;
}

body.woocommerce-cart .cart-collaterals .cart_totals,
body.woocommerce-cart .cart-collaterals .cross-sells {
    float: none;
    width: 100%;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
    position: static;
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid rgba(171, 137, 101, 0.22);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(28, 37, 57, 0.08);
}

body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
    margin: 0 0 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(28, 37, 57, 0.1);
    color: #1c2539;
    font-size: 30px;
}

body.woocommerce-cart .cart-collaterals .cart_totals table {
    margin: 0 0 22px;
    border: 0 !important;
}

body.woocommerce-cart .cart-collaterals .cart_totals tr th,
body.woocommerce-cart .cart-collaterals .cart_totals tr td {
    padding: 13px 0;
    border-bottom: 1px solid rgba(28, 37, 57, 0.08) !important;
    color: #606060;
    font-size: 14px;
}

body.woocommerce-cart .cart-collaterals .cart_totals tr td {
    text-align: right;
}

body.woocommerce-cart .cart-collaterals .cart_totals tr.order-total th,
body.woocommerce-cart .cart-collaterals .cart_totals tr.order-total td {
    padding-top: 18px;
    border-bottom: 0 !important;
    color: #1c2539;
    font-size: 17px;
    font-weight: 800;
}

body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout {
    padding: 0;
}

body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    margin: 0;
    padding: 14px 20px;
    border-radius: 10px;
    background: #765633;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    box-shadow: 0 12px 25px rgba(118, 86, 51, 0.24);
}

body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button:hover,
body.woocommerce-cart .cart-collaterals .wc-proceed-to-checkout .checkout-button:focus-visible {
    background: #1c2539;
    transform: translateY(-1px);
}

body.woocommerce-cart .wc-empty-cart-message {
    flex: 0 0 100%;
    width: 100%;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
    background: #fff;
}

body.woocommerce-cart .cart-empty.woocommerce-info {
    flex: 0 0 100%;
    width: 100%;
    margin: 0;
    padding: 42px 30px 20px;
    border: 0;
    background: #fff;
    color: #1c2539;
    font-family: var(--title-font) !important;
    font-size: clamp(26px, 4vw, 38px);
    text-align: center;
}

body.woocommerce-cart .cart-empty.woocommerce-info::before {
    display: block;
    position: static;
    width: 54px;
    height: 54px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: rgba(171, 137, 101, 0.14);
    color: #ab8965;
    font-family: WooCommerce;
    font-size: 22px;
    line-height: 54px;
}

body.woocommerce-cart .return-to-shop {
    flex: 0 0 100%;
    width: 100%;
    margin: 0;
    padding: 0 30px 42px;
    border-radius: 0 0 18px 18px;
    background: #fff;
    text-align: center;
}

@media (min-width: 768px) {
    body.woocommerce-cart .wc-empty-cart-message + .return-to-shop {
        margin-top: -32px;
    }
}

@media (min-width: 768px) {
    body.woocommerce-cart table.shop_table.cart .product-name {
        min-width: 180px;
    }

    body.woocommerce-cart table.shop_table.cart .product-price,
    body.woocommerce-cart table.shop_table.cart .product-quantity,
    body.woocommerce-cart table.shop_table.cart .product-subtotal {
        white-space: nowrap;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    body.woocommerce-cart table.shop_table.cart td.actions .coupon {
        float: none;
        width: 100%;
        max-width: none;
        margin: 0 0 12px;
    }
}

@media (min-width: 768px) and (max-width: 1279px) {
    body.woocommerce-cart .cart-collaterals {
        max-width: 520px;
        margin-left: auto;
    }
}

@media (min-width: 1280px) {
    body.woocommerce-cart .entry-content > .woocommerce {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 360px);
    }

    body.woocommerce-cart .woocommerce-notices-wrapper,
    body.woocommerce-cart .queens-cart-intro,
    body.woocommerce-cart .wc-empty-cart-message,
    body.woocommerce-cart .return-to-shop {
        grid-column: 1 / -1;
    }

    body.woocommerce-cart .woocommerce-cart-form {
        grid-column: 1;
    }

    body.woocommerce-cart .cart-collaterals {
        grid-column: 2;
        position: sticky;
        top: 110px;
        align-self: start;
    }
}

@media (max-width: 1279px) {
    body.woocommerce-cart .queens-cart-intro {
        grid-template-columns: 1fr;
        align-items: start;
    }

    body.woocommerce-cart .woocommerce-cart-form,
    body.woocommerce-cart .cart-collaterals {
        width: 100%;
    }

    body.woocommerce-cart .cart-collaterals .cart_totals {
        position: static;
    }
}

@media (max-width: 767px) {
    body.woocommerce-cart .main-contain > .container {
        width: min(100% - 28px, 1180px);
    }

    body.woocommerce-cart .entry-content > .woocommerce {
        display: block;
    }

    body.woocommerce-cart .queens-cart-intro {
        gap: 28px;
        margin-bottom: 18px;
        padding: 26px 20px;
        border-radius: 18px;
    }

    body.woocommerce-cart #queens-cart-title {
        font-size: clamp(36px, 12vw, 48px);
    }

    body.woocommerce-cart .queens-cart-lead {
        font-size: 14px;
    }

    body.woocommerce-cart .woocommerce-cart-form {
        width: 100%;
        margin-bottom: 20px;
    }

    body.woocommerce-cart table.shop_table.cart {
        display: block;
        overflow: visible;
        border: 0 !important;
        background: transparent;
        box-shadow: none;
    }

    body.woocommerce-cart table.shop_table.cart thead {
        display: none;
    }

    body.woocommerce-cart table.shop_table.cart tbody {
        display: grid;
        gap: 14px;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item {
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr);
        grid-template-areas:
            "thumb name"
            "thumb price"
            "thumb quantity"
            "subtotal subtotal";
        gap: 8px 14px;
        position: relative;
        padding: 18px;
        border: 1px solid rgba(28, 37, 57, 0.1);
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 12px 28px rgba(28, 37, 57, 0.06);
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item td {
        display: block;
        width: auto;
        min-height: 0;
        padding: 0;
        border: 0 !important;
        background-color: transparent;
        text-align: left !important;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-remove {
        position: absolute;
        top: 12px;
        right: 12px;
        z-index: 2;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-thumbnail {
        grid-area: thumb;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-thumbnail::before {
        display: none;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-thumbnail img {
        width: 88px;
        height: 104px;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-name {
        grid-area: name;
        padding-right: 34px;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-name::before {
        display: none;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-name a {
        font-size: 20px;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-price {
        grid-area: price;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-quantity {
        grid-area: quantity;
    }

    body.woocommerce-cart table.shop_table.cart tr.cart_item .product-subtotal {
        grid-area: subtotal;
        margin-top: 8px;
        padding-top: 13px;
        border-top: 1px solid rgba(28, 37, 57, 0.08) !important;
    }

    body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-price,
    body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-quantity,
    body.woocommerce-cart table.shop_table_responsive tr.cart_item td.product-subtotal {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        font-size: 13px;
    }

    body.woocommerce-cart table.shop_table_responsive tr.cart_item td::before {
        float: none;
        color: #5f6670;
        font-size: 10px;
        font-weight: 800;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    body.woocommerce-cart table.shop_table.cart tr:last-child {
        display: block;
        width: 100%;
    }

    body.woocommerce-cart table.shop_table.cart td.actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        width: 100%;
        margin-top: 0;
        padding: 16px;
        border: 1px solid rgba(28, 37, 57, 0.1) !important;
        border-radius: 16px;
        background: #fff;
    }

    body.woocommerce-cart table.shop_table.cart td.actions .coupon {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        flex: none;
        width: 100%;
        max-width: none;
        margin: 0;
        padding-bottom: 0;
    }

    body.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text {
        width: 100%;
    }

    body.woocommerce-cart table.shop_table.cart td.actions .coupon .button {
        float: none;
        width: auto;
    }

    body.woocommerce-cart table.shop_table.cart td.actions .coupon .coupon-error-notice {
        float: none;
        width: 100%;
    }

    body.woocommerce-cart table.shop_table.cart td.actions > .button {
        float: none;
        width: 100%;
        margin: 0;
    }

    body.woocommerce-cart .cart-collaterals {
        width: 100%;
    }

    body.woocommerce-cart .cart-collaterals .cart_totals {
        padding: 24px 20px;
        border-radius: 16px;
    }

    body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
        font-size: 28px;
    }
}

@media (max-width: 479px) {
    body.woocommerce-cart .queens-cart-steps li {
        font-size: 9px;
    }

    body.woocommerce-cart table.shop_table.cart td.actions .coupon {
        grid-template-columns: 1fr;
    }

    body.woocommerce-cart table.shop_table.cart td.actions .coupon .button {
        width: 100%;
    }
}

body.woocommerce-cart .cart_item.queens-cart-item--removing {
    opacity: 0.45;
    pointer-events: none;
    transition: opacity 160ms ease;
}
