/* -------------------------------------------------------

 01. Basics style
 02. Helper style
 03. Selection style
 04. Preloader style
 05. Owl-Theme custom style
 06. Section style
 07. Navbar style
 08. Header style
 09. Slider-fade style (Homepage Slider)
 10. Slider style (Inner Page Slider)
 11. Kenburns Slider style
 12. Slider Grid Background style
 13. Page Banner Header style
 14. Video Background style
 17. Rooms 3 style
 18. Rooms Page style
 19. Services style
 20. Restaurant Menu style
 21. Facilties style
 22. Clients style
 23. Gallery style
 24. Promo Video and Testimonials style
 25. Booking style
 26. Pricing style
 28. Accordion Box (for Faqs) style
 32. Contact style
 33. Buttons style
 34. Coming Soon
 35. 404 Page style
 36. Footer style
 37. toTop Button style
 38. Overlay Effect Bg image style
 39. Responsive (Media Query)
 40. Spacing System (8px baseline grid)
 41. Button Hierarchy
 43. Gallery Dropdown Filter
 44. Room Cards (rooms.html redesign)
 45. Menu Mobile Improvements
 46. Parallax Mobile Fallback
 47. Touch Target Minimums (Mobile)
 48. Casino Games Carousel
 49. Casino Jackpot Widget
 50. Border Radius Systematization (Phase A + B)
 51. Barba page overlay

------------------------------------------------------- */
/* ======= Basic style ======= */
html,
body {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    font-smoothing: antialiased;
}

* {
    margin: 0;
    padding-top: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    outline: none;
    list-style: none;
    word-wrap: break-word;
}

body {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.75em;
    color: #d1d1d1;
    overflow-x: hidden;
    background: #0d0d0d;
}

html {
    overflow-x: hidden;
}

p {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.75em;
    color: #d1d1d1;
    margin-bottom: 20px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    line-height: 1.25em;
    margin: 0 0 20px 0;
    color: #fff;
}

img {
    width: 100%;
    height: auto;
}

img {
    transition: var(--pib-trans-default);
    color: #f4f4f4;
}

span,
a,
a:hover {
    /* display: inline-block */
    text-decoration: none;
    color: inherit;
}

b {
    font-weight: 400;
    color: #fff;
}

/* text field */
input[type="password"]:focus,
input[type="email"]:focus,
input[type="text"]:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus,
textarea:focus {
    outline: none;
}

input[type="password"],
input[type="email"],
input[type="text"],
input[type="file"],
textarea {
    max-width: 100%;
    margin-bottom: 15px;
    padding: 10px 0;
    height: auto;
    background-color: transparent;
    -webkit-box-shadow: none;
    box-shadow: none;
    border-width: 0 0 1px;
    border-style: solid;
    display: block;
    width: 100%;
    line-height: 1.5em;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #ffffff;
    background-image: none;
    border-bottom: 1px solid #adadad;
    transition: border-color ease-in-out 0.25s,
    box-shadow ease-in-out 0.25s;
}

input:focus,
textarea:focus {
    border-bottom-width: 1px;
    border-color: #fff;
}

input[type="submit"],
input[type="reset"],
input[type="button"],
button {
    text-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    line-height: 1.75em;
    transition: background-color 0.25s ease-out;
    background: transparent;
    border: 0px solid transparent;
}

select {
    padding: 10px;

    /* border-radius: 5px */
}

table,
th,
tr,
td {
    border: 1px solid #2b2b2b;
}

th,
tr,
td {
    padding: 10px;
}

input[type="radio"],
input[type="checkbox"] {
    display: inline;
}

input[type="submit"] {
    font-weight: 400;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    background: #fff;
    color: #222;
    padding: 8px 24px;
    margin: 0;
    position: relative;
    font-size: 15px;
    letter-spacing: 3px;
}

.alert-success {
    background: transparent;
    color: #d1d1d1;
    border: 1px solid #fff;
    border-radius: var(--pib-radius);
}

/* placeholder */
::-webkit-input-placeholder {
    color: #d1d1d1;
    font-size: 15px;
    font-weight: 400;
}

:-moz-placeholder {
    color: #d1d1d1;
}

::-moz-placeholder {
    color: #d1d1d1;
    opacity: 1;
}

:-ms-input-placeholder {
    color: rgba(255, 255, 255, 0.5);
}

/* blockquote */
blockquote {
    padding: 45px;
    display: block;
    position: relative;
    background-color: #1c1c1c;
    overflow: hidden;
    margin: 35px 0;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.75em;
    color: #d1d1d1;
}

blockquote p {
    font-family: inherit;
    margin-bottom: 0 !important;
    color: inherit;
    max-width: 650px;
    width: 100%;
    position: relative;
    z-index: 3;
}

blockquote:before {
    content: "\e645";
    font-family: "Themify";
    position: absolute;
    right: 40px;
    bottom: 40px;
    font-size: 110px;
    opacity: 0.07;
    line-height: 1;
    color: #d1d1d1;
}

blockquote p {
    margin-bottom: 0;
}

blockquote p a {
    color: inherit;
}

blockquote cite {
    display: inline-block;
    font-size: 15px;
    position: relative;
    padding-left: 60px;
    border-color: inherit;
    line-height: 1;
    margin-top: 22px;
    font-style: normal;
    color: #fff;
    font-weight: 400;
}

blockquote cite:before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 5px;
    width: 45px;
    height: 1px;
    border-top: 1px solid;
    border-color: inherit;
    color: #fff;
}

/* ======= Helper style ======= */
.mt-0 {
    margin-top: 0 !important;
}

.mt-15 {
    margin-top: 15px !important;
}

.mt-20 {
    margin-top: 20px !important;
}

.mt-30 {
    margin-top: 30px !important;
}

.mt-60 {
    margin-top: 60px !important;
}

.mt-90 {
    margin-top: 90px !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mb-16 {
    margin-bottom: 16px !important;
}

.mb-15 {
    margin-bottom: 15px;
}

.mb-30 {
    margin-bottom: 30px;
}

.mb-50 {
    margin-bottom: 50px;
}

.mb-60 {
    margin-bottom: 60px !important;
}

.mb-90 {
    margin-bottom: 90px !important;
}

.pb-0 {
    padding-bottom: 0 !important;
}

.no-padding {
    padding: 0 !important;
}

/* important */
.o-hidden {
    overflow: hidden;
}

.position-re {
    position: relative;
}

.full-width {
    width: 100%;
}

.bg-img {
    background-size: cover;
    background-repeat: no-repeat;
}

.bg-fixed {
    /* background-attachment: fixed */
}

.pattern {
    background-repeat: repeat;
    background-size: auto;
}

.count {
    font-family: "Gilda Display", serif;
}

.valign {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.v-middle {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    -webkit-transform: translate(0%, -50%);
    transform: translate(0%, -50%);
}

.v-bottom {
    position: absolute;
    width: 100%;
    bottom: 5%;
    left: 0;
    -webkit-transform: translate(0%, -5%);
    transform: translate(0%, -5%);
}

:root {
    scroll-behavior: auto;

    /* PIB transition tokens — see Phase 2 audit (2026-05-08).
       Standardised durations: 0.25s for micro-interactions,
       0.55s for transforms / shadows / filters / image effects. */
    --pib-trans-default:
        transform 0.55s ease,
        opacity 0.25s ease,
        color 0.25s ease,
        background-color 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.55s ease,
        filter 0.55s ease;
    --pib-trans-micro: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, opacity 0.25s ease;
    --pib-trans-transform: transform 0.55s ease;
    --pib-trans-image: transform 0.55s ease, filter 0.55s ease, opacity 0.55s ease;

    /* PIB typography tokens — Phase 3 (2026-05-08). */
    --pib-font-display: "Gilda Display", Georgia, serif;
    --pib-font-body: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    /* PIB spacing scale — Phase 3.
       Use for new section padding / gap declarations going forward. */
    --pib-space-xs: 0.5rem;   /* 8px */
    --pib-space-sm: 1rem;     /* 16px */
    --pib-space-md: 2rem;     /* 32px */
    --pib-space-lg: 4rem;     /* 64px */
    --pib-space-xl: 6rem;     /* 96px */
    --pib-space-2xl: 8rem;    /* 128px */

    /* PIB monochrome scale — explicit reference values.
       Anything outside this range is a brand violation. */
    --pib-black: #0d0d0d;
    --pib-ink: #1a1a1a;
    --pib-charcoal: #333;
    --pib-graphite: #555;
    --pib-stone: #888;
    --pib-mist: #bbb;
    --pib-fog: #ddd;
    --pib-paper: #f5f5f5;
    --pib-white: #ffffff;

    /* PIB radius scale — subtle round corners across surfaces. */
    --pib-radius: 4px;
    --pib-radius-sm: 2px;
    --pib-radius-lg: 8px;
}

/* Preloader Fade Effect */
.fade-out {
    opacity: 0 !important;
    transition: opacity 0.55s ease;
    pointer-events: none;
}

.owl-carousel .owl-nav button.owl-next,
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel button.owl-dot {
    outline: none;
}

/* background & color */
.bg-darkblack {
    background: #222;
}

.bg-darkblack {
    background: #0d0d0d;
}

.color-1 {
    color: #fff;
}

/* star - white */
.star {
    position: relative;
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 0.9em;
    margin-right: 0.9em;
    margin-bottom: 1.2em;
    border-right: 0.3em solid transparent;
    border-bottom: 0.7em solid #e4a853;
    border-left: 0.3em solid transparent;

    /* Controlls the size of the stars. */
    font-size: 8px;
}

.star:before,
.star:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    top: 0.6em;
    left: -1em;
    border-right: 1em solid transparent;
    border-bottom: 0.7em solid #e4a853;
    border-left: 1em solid transparent;
    transform: rotate(-35deg);
}

.star:after {
    transform: rotate(35deg);
}

/* Star rating */
.star-rating {
    position: relative;
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 0.9em;
    margin-right: 0.9em;
    margin-bottom: 2em;
    border-right: 0.3em solid transparent;
    border-bottom: 0.7em solid #e4a853;
    border-left: 0.3em solid transparent;

    /* Controlls the size of the stars. */
    font-size: 8px;
}

.star-rating:before,
.star-rating:after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    top: 0.6em;
    left: -1em;
    border-right: 1em solid transparent;
    border-bottom: 0.7em solid #e4a853;
    border-left: 1em solid transparent;
    transform: rotate(-35deg);
}

.star-rating:after {
    transform: rotate(35deg);
}

/* Booking intro stars — scale up to match phone icon + heading visual weight */
.booking-intro .star-rating {
    font-size: 14px;
}

/* ======= Selection style ======= */
::selection {
    background: rgba(255, 255, 255, 0.85);
    color: #0d0d0d;
}

::-moz-selection {
    color: #0d0d0d;
    background: rgba(255, 255, 255, 0.85);
}

/* ======= Preloader style ======= */
.preloader-bg,
#preloader {
    position: fixed;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #111;
    z-index: 999999;
}

#preloader {
    display: table;
    table-layout: fixed;
}

#preloader-status {
    display: table-cell;
    vertical-align: middle;
}

.preloader-position {
    position: relative;
    margin: 0 auto;
    text-align: center;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    -o-box-sizing: border-box;
    box-sizing: border-box;
}

.loader {
    position: relative;
    width: 70px;
    height: 70px;
    left: 50%;
    top: auto;
    margin-left: -35px;
    margin-top: 1px;
    -webkit-animation: rotate 1s infinite linear;
    -moz-animation: rotate 1s infinite linear;
    -ms-animation: rotate 1s infinite linear;
    -o-animation: rotate 1s infinite linear;
    animation: rotate 1s infinite linear;
    border: 1px solid rgba(255, 255, 255, 0.1);
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
}

.loader span {
    position: absolute;
    width: 70px;
    height: 70px;
    top: -1px;
    left: -1px;
    border: 1px solid transparent;
    border-top: 1px solid #fff;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    border-radius: 50%;
}

@-webkit-keyframes rotate {
    0% {
        -webkit-transform: rotate(0deg);
    }

    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes rotate {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* ======= Owl-Theme custom style ======= */
.owl-theme .owl-nav.disabled + .owl-dots {
    margin-top: 0px;
    line-height: 1.5;
    display: block;
    outline: none;
}

.owl-theme .owl-dots .owl-dot span {
    width: 12px;
    height: 12px;
    margin: 0 3px;
    border-radius: 50%;
    background: transparent;
    border: 1px solid #d1d1d1;
}

.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span {
    background: #fff;
    border: 1px solid #fff;
}

/* === owl carousel nav style  === */
.clients .owl-theme .owl-nav,
.team .owl-theme .owl-nav,
.slider-grid-bg .owl-theme .owl-nav,
.news .owl-theme .owl-nav,
.pricing .owl-theme .owl-nav,
.testimonials .owl-theme .owl-nav,
.rooms-page .owl-theme .owl-nav,
.rooms3 .owl-theme .owl-nav,
.rooms2 .owl-theme .owl-nav,
.rooms1 .owl-theme .owl-nav {
    position: absolute !important;
    top: 35% !important;
    bottom: auto !important;
    width: 100%;
}

.clients .owl-theme .owl-nav,
.team .owl-theme .owl-nav,
.slider-grid-bg .owl-theme .owl-nav,
.news .owl-theme .owl-nav,
.pricing .owl-theme .owl-nav,
.testimonials .owl-theme .owl-nav,
.rooms-page .owl-theme .owl-nav,
.rooms3 .owl-theme .owl-nav,
.rooms2 .owl-theme .owl-nav,
.rooms1 .owl-theme .owl-nav {
    position: relative;
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
}

.clients .owl-theme .owl-prev,
.team .owl-theme .owl-prev,
.slider-grid-bg .owl-theme .owl-prev,
.news .owl-theme .owl-prev,
.pricing .owl-theme .owl-prev,
.testimonials .owl-theme .owl-prev,
.rooms-page .owl-theme .owl-prev,
.rooms3 .owl-theme .owl-prev,
.rooms2 .owl-theme .owl-prev,
.rooms1 .owl-theme .owl-prev {
    left: 10px !important;
}

.clients .owl-theme .owl-next,
.team .owl-theme .owl-next,
.slider-grid-bg .owl-theme .owl-next,
.news .owl-theme .owl-next,
.pricing .owl-theme .owl-next,
.testimonials .owl-theme .owl-next,
.rooms-page .owl-theme .owl-next,
.rooms3 .owl-theme .owl-next,
.rooms2 .owl-theme .owl-next,
.rooms1 .owl-theme .owl-next {
    right: 10px !important;
}

.clients .owl-theme .owl-prev,
.clients .owl-theme .owl-next,
.team .owl-theme .owl-prev,
.team .owl-theme .owl-next,
.slider-grid-bg .owl-theme .owl-prev,
.slider-grid-bg .owl-theme .owl-next,
.news .owl-theme .owl-prev,
.news .owl-theme .owl-next,
.pricing .owl-theme .owl-prev,
.pricing .owl-theme .owl-next,
.testimonials .owl-theme .owl-prev,
.testimonials .owl-theme .owl-next,
.rooms-page .owl-theme .owl-prev,
.rooms-page .owl-theme .owl-next,
.rooms3 .owl-theme .owl-prev,
.rooms3 .owl-theme .owl-next,
.rooms2 .owl-theme .owl-prev,
.rooms2 .owl-theme .owl-next,
.rooms1 .owl-theme .owl-prev,
.rooms1 .owl-theme .owl-next {
    color: #fff;
    position: absolute !important;
    top: 50%;
    padding: 0;
    height: 50px;
    width: 50px;
    border-radius: 0%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    background: #272727;
    border: 1px solid #272727;
    line-height: 0;
    text-align: center;
    font-size: 16px;
}

.clients .owl-theme .owl-prev > span,
.clients .owl-theme .owl-next > span,
.team .owl-theme .owl-prev > span,
.team .owl-theme .owl-next > span,
.slider-grid-bg .owl-theme .owl-prev > span,
.slider-grid-bg .owl-theme .owl-next > span,
.news .owl-theme .owl-prev > span,
.news .owl-theme .owl-next > span,
.pricing .owl-theme .owl-prev > span,
.pricing .owl-theme .owl-next > span,
.testimonials .owl-theme .owl-prev > span,
.testimonials .owl-theme .owl-next > span,
.rooms-page .owl-theme .owl-prev > span,
.rooms-page .owl-theme .owl-next > span,
.rooms3 .owl-theme .owl-prev > span,
.rooms3 .owl-theme .owl-next > span,
.rooms2 .owl-theme .owl-prev > span,
.rooms2 .owl-theme .owl-next > span,
.rooms1 .owl-theme .owl-prev > span,
.rooms1 .owl-theme .owl-next > span {
    position: absolute;
    line-height: 0;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.clients .owl-theme .owl-nav [class*="owl-"],
.team .owl-theme .owl-nav [class*="owl-"],
.slider-grid-bg .owl-theme .owl-nav [class*="owl-"],
.news .owl-theme .owl-nav [class*="owl-"],
.pricing .owl-theme .owl-nav [class*="owl-"],
.testimonials .owl-theme .owl-nav [class*="owl-"],
.rooms-page .owl-theme .owl-nav [class*="owl-"],
.rooms3 .owl-theme .owl-nav [class*="owl-"],
.rooms2 .owl-theme .owl-nav [class*="owl-"],
.rooms1 .owl-theme .owl-nav [class*="owl-"] {
    width: 40px;
    height: 40px;
    line-height: 34px;
    background: transparent;
    color: #fff;
    font-size: 11px;
    margin-right: 15px;
    margin-left: 15px;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 100%;
    transition: var(--pib-trans-default);
    transform: scale(1);
}

.clients .owl-theme .owl-nav [class*="owl-"]:hover,
.team .owl-theme .owl-nav [class*="owl-"]:hover,
.slider-grid-bg .owl-theme .owl-nav [class*="owl-"]:hover,
.news .owl-theme .owl-nav [class*="owl-"]:hover,
.pricing .owl-theme .owl-nav [class*="owl-"]:hover,
.testimonials .owl-theme .owl-nav [class*="owl-"]:hover,
.rooms-page .owl-theme .owl-nav [class*="owl-"]:hover,
.rooms3 .owl-theme .owl-nav [class*="owl-"]:hover,
.rooms2 .owl-theme .owl-nav [class*="owl-"]:hover,
.rooms1 .owl-theme .owl-nav [class*="owl-"]:hover {
    transform: scale(0.9);
    background: transparent;
    border: 1px solid #fff;
    color: #fff;
}

@media screen and (max-width: 768px) {
    .clients .owl-theme .owl-nav,
    .team .owl-theme .owl-nav,
    .slider-grid-bg .owl-theme .owl-nav,
    .news .owl-theme .owl-nav,
    .pricing .owl-theme .owl-nav,
    .testimonials .owl-theme .owl-nav,
    .rooms-page .owl-theme .owl-nav,
    .rooms3 .owl-theme .owl-nav,
    .rooms2 .owl-theme .owl-nav,
    .rooms1 .owl-theme .owl-nav {
        display: none;
    }
}

.news .owl-theme .owl-nav [class*="owl-"] {
    opacity: 0;
}

.news .owl-theme:hover .owl-nav [class*="owl-"] {
    opacity: 1;
}

/* ======= Section style ======= */
.section-padding {
    padding: 120px 0;
}

@media (max-width: 991px) {
    .section-padding {
        padding: 80px 0;
    }

    .section-padding2 {
        padding: 0 0 80px 0;
    }

    .testimonials .section-padding {
        padding: 60px 0;
    }
}

@media (max-width: 767px) {
    .section-padding {
        padding: 60px 0;
    }

    .section-padding2 {
        padding: 0 0 60px 0;
    }

    .testimonials .section-padding {
        padding: 50px 0;
    }
}

.section-padding2 {
    padding: 0 0 120px 0;
}

.section-padding h6 {
    color: #fff;
    font-size: 20px;
    margin-bottom: 20px;
}

.section-subtitle {
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    color: #adadad;
    text-transform: uppercase;
    position: relative;
    letter-spacing: 3px;
    margin-bottom: 5px;
}

.section-subtitle span {
    color: #fff;
}

.section-title {
    font-size: 46px;
    font-family: "Gilda Display", serif;
    font-weight: 400;
    color: #fff;
    position: relative;
    margin-bottom: 20px;
    line-height: 1.25em;
}

.section-title span {
    color: #fff;
}

/* ======= Menu style ======= */
.pib-wrap {
    display: block;
    background: #0d0d0d;
    right: 0;
    z-index: 101;
    position: fixed;
    width: 440px;
    -webkit-transform: translateX(100%);
    -ms-transform: translateX(100%);
    transform: translateX(100%);
    transition: var(--pib-trans-default);
    bottom: 0;
    top: 0;
    -webkit-box-shadow: 0 -20px 20px -5px rgba(0, 0, 0, 0.05);
    box-shadow: 0 -20px 20px -5px rgba(0, 0, 0, 0.05);
    min-height: 300px;
    overflow: auto;
    padding: 0 50px;
    border: none;
    border-left: 1px solid rgba(255, 255, 255, 0.03);
}

.pib-wrap.pib-wrap-show {
    -webkit-transform: translateX(0%);
    -ms-transform: translateX(0%);
    transform: translateX(0%);
}

/* Scroll lock + dark header only when nav is full-screen (mobile/tablet ≤768px) */
@media screen and (max-width: 768px) {
    body.menu-open {
        overflow: hidden;
    }

    body.menu-open .pib-header {
        background-color: #0d0d0d;
        box-shadow: none;
    }
}

.pib-logo-wrap {
    position: relative;
    z-index: 1021;
}

.pib-menu {
}

.pib-menu ul {
    position: relative;
    margin-top: 180px;
    margin-bottom: 30px;
    padding: 0;
}

.pib-menu ul ul {
    position: relative;
    margin-top: 0;
    margin-bottom: 0;
    padding: 0;
}

.pib-menu ul li,
.pib-menu ul li a {
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
    display: block;
    position: relative;
    transition: var(--pib-trans-default);
}

.pib-menu ul li {
    margin: 12px 0;
    padding: 0 0 12px 0;
    list-style: none;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 3px;
    line-height: 1.6em;
}

.pib-menu ul ul li {
    margin: 6px 0 0 0;
    padding: 0;
    list-style: none;
    text-transform: uppercase;
    letter-spacing: 0px;
    border-bottom: none;
}

.pib-menu ul li a {
    color: #d1d1d1;
    text-decoration: none;
    position: relative;
    padding: 0;
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 400;
    text-transform: uppercase;
}

.pib-menu ul li a {
    display: inline-block;
}

.pib-menu ul li a:after {
    content: "";
    display: block;
    width: 0;
}

.pib-menu ul li a:hover::after {
    width: 100%;
}

.pib-menu ul li a.active {
    color: #fff;
}

.pib-menu ul li a.active:after {
    height: 0px;
}

.pib-menu ul ul {
    height: 0;
    overflow: hidden;
    /* Height + item animations are handled entirely by GSAP */
}

/* Prevent the inherited link transition from fighting GSAP's rotation on the arrow icon */
.pib-menu .pib-menu-sub > a > i {
    display: inline-block;
    transition: none;
}

.pib-menu > ul > li > a {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #d1d1d1;
    text-decoration: none;
    position: relative;
    padding: 0;
    transition: var(--pib-trans-default);
    letter-spacing: 0.5px;
    /* GSAP scales from here — keep origin at left so text grows rightward */
    transform-origin: left center;
}

.pib-menu > ul > li.open > a {
    font-family: "Montserrat", sans-serif;
    /* font-size not set here — GSAP owns scale(1.2) ≈ 18px via GPU transform */
    font-weight: 400;
    color: #fff;
    text-decoration: none;
    position: relative;
    padding: 0;
    transition: color 0.25s ease;
    letter-spacing: 0.5px;
    transform-origin: left center;
}

/* GPU layer hints for submenu items */
.pib-menu ul ul li {
    will-change: transform, opacity;
}

.pib-menu ul ul li a {
    color: #d1d1d1;
    text-decoration: none;
    position: relative;
    padding: 5px 0 5px 5px;
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.25em;
    transition: var(--pib-trans-default);
    margin-left: 12px;
    text-transform: none;
}

.pib-menu ul li:hover > a,
.pib-menu ul li.open > a,
.pib-menu ul li.active > a,
.pib-menu ul ul li:hover > a,
.pib-menu ul ul li.open > a,
.pib-menu ul ul li.active > a {
    color: #fff;
}

.pib-menu ul ul ul li a {
    margin-left: 30px;
    padding-top: 0px;
}

.pib-menu ul li a em,
.pib-menu ul ul li a em {
    font-size: 10px;
    background-color: #fff;
    padding: 1px 6px;
    color: #222;
    border-radius: var(--pib-radius);
    position: absolute;
    margin-left: 10px;
    top: 5px;
    font-style: normal;
}

.pib-menu i {
    padding-left: 5px;
    font-size: 10px;
    color: rgba(255, 255, 255, 0.3);
    vertical-align: middle;
    transition: color 0.25s ease;
}

.pib-menu .active i {
    color: #fff;
}

/* navigation footer */
.pib-menu-footer {
    position: relative;
    bottom: 25px;
    left: 0;
    padding: 30px 0 0;
    color: #999;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.pib-menu-footer p {
    color: #999;
    margin: 0;
    font-size: 15px;
}

.pib-menu-footer a {
    color: #d1d1d1;
}

.separator {
    width: 16%;
    margin-bottom: 20px;
    text-align: center;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    margin: 10px 0;
}

@media screen and (max-width: 768px) {
    .pib-wrap {
        width: 100%;
    }

    .pib-menu-footer {
    }
}

/* reservation field for slider */
.pib-menu-footer div.reservation {
    margin: 0;
    top: 0;
    left: 0;
    height: 60%;
    z-index: 9;
}

.pib-menu-footer div.reservation .call {
    color: #d1d1d1;
    font-weight: 400;
    font-size: 15px;
    margin-top: 0px;
    margin-left: 60px;
}

.pib-menu-footer div.reservation .call span {
    font-family: "Montserrat", sans-serif;
    font-size: 21px;
    color: #fff;
}

.pib-menu-footer div.reservation .icon {
    position: absolute;
    left: 0;

    /* top: -50px; */
    width: 50px;
    height: 50px;
    border: 1px solid #fff;
    -webkit-animation: pulse 2s infinite;
    animation: pulse 2s infinite;
    border-radius: 100%;
}

.pib-menu-footer div.reservation a .icon i {
    color: #fff;
    font-size: 24px;
}

.pib-menu-footer div.reservation a .icon:hover {
    border: 1px solid #fff;
}

.nav-currency-toggle {
    position: relative;
    left: 40px;
    margin-top: 24px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.nav-currency-btn {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #d1d1d1;
    text-decoration: none;
    transition: color 0.25s ease;
}

.nav-currency-btn:hover,
.nav-currency-btn.active {
    color: #fff;
}

.nav-currency-sep {
    color: rgba(255, 255, 255, 0.2);
    font-size: 13px;
}

/* Nav panel currency select */
.nav-curr-select {
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Cpath d='M0 0l3.5 4L7 0z' fill='%23555'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 4px center;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    color: #d1d1d1;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    padding: 6px 24px 6px 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
    width: auto;
    min-width: 110px;
    transition: color 0.25s;
}

.nav-curr-select:focus {
    outline: none;
    color: #fff;
}

.nav-curr-select option {
    background: #0d0d0d;
    color: #fff;
    font-size: 13px;
    letter-spacing: 0;
}

/* ── Currency select inside the sliding nav panel ──────────────────────────── */
.pib-wrap .nav-panel-controls {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

.pib-wrap .language-select,
.pib-wrap .currency-select {
    background: #161616;
    color: #d1d1d1;
    border: 1px solid #222;
    height: 50px;
    width: 100%;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    letter-spacing: 0.5px;
    padding: 0 14px;
    margin-top: 0;
    display: block;
    cursor: pointer;
}

.pib-wrap > .currency-select {
    margin-top: 20px;
}

.pib-wrap .language-select {
    flex: 1 1 0;
    min-width: 0;
}

.pib-wrap .nav-panel-controls .currency-select {
    flex: 1 1 0;
    min-width: 0;
}

.pib-wrap .language-select:focus,
.pib-wrap .currency-select:focus {
    outline: none;
    border-color: #3a3a3a;
    color: #fff;
}

.pib-wrap .language-select option,
.pib-wrap .currency-select option {
    background: #0d0d0d;
    color: #fff;
    font-size: 13px;
    letter-spacing: 0;
}

@media screen and (max-width: 768px) {
    .pib-menu-footer div.reservation {
        /* This is fine */
        display: block;
    }
}

/* ======= Menu header style ======= */
.pib-header {
    padding: 0;
    position: absolute;
    top: 0;
    z-index: 900;
    width: 100%;
    padding: 40px 0;
    background-color: transparent;

    /* No transform transition by default so initial fixed snap is instantaneous */
    transition: padding 0.25s ease,
    background-color 0.25s ease,
    box-shadow 0.25s ease;
}

.pib-header .pib-logo {
    line-height: 0;
    padding: 0;
    color: #fff;
    font-size: 30px;
    font-family: "Oswald", sans-serif;
    font-weight: 300;
}

.pib-header .pib-logo img {
    width: 220px;
    height: auto;
    display: block;
}

.pib-header .social li {
    display: inline-block;
}

.pib-header .social li a {
    color: #fff;
    padding: 0 10px;
}

.pib-header .heading {
    color: #fff;
}

.pib-header.scrolled {
    position: fixed;
    padding: 25px 0;
    top: 0;
    background: #0d0d0d;
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
    -webkit-box-shadow: 0px 5px 15px rgb(0 0 0 / 10%);
    box-shadow: 0px 5px 15px rgb(0 0 0 / 10%);
}

.pib-header.scrolled .social {
    margin-top: 10px;
}

.pib-header.scrolled .social li a {
    color: #fff;
}

.pib-header.scrolled .pib-logo {
    line-height: 0;
    padding: 0;
    color: #fff;
}

.pib-header.scrolled .pib-logo img {
    width: 220px;
    height: auto;
    display: block;
}

@media (max-width: 767px) {
    .pib-header .pib-logo img,
    .pib-header.scrolled .pib-logo img {
        height: 36px;
        width: auto;
    }

    .pib-nav-toggle {
        width: 36px;
        height: 36px;
        right: -2px;
    }

    .pib-nav-toggle i {
        width: 14px;
    }

    .pib-nav-toggle i:before,
    .pib-nav-toggle i:after {
        width: 24px;
    }

    .pib-nav-toggle i:before {
        top: -8px;
    }

    .pib-nav-toggle i:after {
        bottom: -8px;
    }
}

.pib-header.scrolled .pib-nav-toggle {
    top: -1px !important;
}

/* Only animate transform when actively toggling awake/sleep states */
.pib-header.scrolled.awake,
.pib-header.scrolled.sleep {
    transition: padding 0.25s ease,
    background-color 0.25s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.pib-header.awake {
    -webkit-transform: translateY(0%);
    -ms-transform: translateY(0%);
    transform: translateY(0%);
}

.pib-header.sleep {
    -webkit-transform: translateY(-100%);
    -ms-transform: translateY(-100%);
    transform: translateY(-100%);
}

.pib-header.scrolled.nav-transparent {
    background-color: transparent;
    padding: 40px 0;
    -webkit-box-shadow: none;
    box-shadow: none;
}

.pib-nav-toggle {
    top: 0 !important;
    vertical-align: middle;
}

.pib-nav-toggle i,
.pib-nav-toggle i:before,
.pib-nav-toggle i:after {
    background: #fff !important;
}

.pib-wrap-burger-wrap {
    position: relative;
    z-index: 1022;
}

.pib-nav-toggle {
    width: 48px;
    height: 48px;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    top: 0;
    z-index: 109;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    float: right;
    right: -4px;
    border-bottom: none !important;
}

.pib-nav-toggle:hover i:before {
    top: -8px;
}

.pib-nav-toggle:hover i:after {
    bottom: -8px;
}

.pib-nav-toggle.active i {
    background: transparent !important;
}

.pib-nav-toggle.active i:before {
    top: 0;
    -webkit-transform: rotateZ(45deg);
    -moz-transform: rotateZ(45deg);
    -ms-transform: rotateZ(45deg);
    -o-transform: rotateZ(45deg);
    transform: rotateZ(45deg);
}

.pib-nav-toggle.active i:after {
    bottom: 0;
    -webkit-transform: rotateZ(-45deg);
    -moz-transform: rotateZ(-45deg);
    -ms-transform: rotateZ(-45deg);
    -o-transform: rotateZ(-45deg);
    transform: rotateZ(-45deg);
}

.pib-nav-toggle:hover,
.pib-nav-toggle:focus,
.pib-nav-toggle:active {
    outline: none;
    border-bottom: none !important;
}

.pib-nav-toggle i {
    position: relative;
    display: inline-block;
    width: 22px;
    height: 2px;
    text-indent: -55px;
    background: #fff;
    transition: var(--pib-trans-default);
    margin-left: 10px;
}

.pib-nav-toggle i:before,
.pib-nav-toggle i:after {
    content: "";
    width: 32px;
    height: 2px;
    background: #fff;
    position: absolute;
    left: -10px;
    transition: var(--pib-trans-default);
}

.pib-nav-toggle i:before {
    top: -10px;
}

.pib-nav-toggle i:after {
    bottom: -10px;
}

/* ======= Header style ======= */
.header {
    min-height: 100vh;
    overflow: hidden;
}

.header .caption .o-hidden {
    display: inline-block;
}

.header .caption h2 {
    font-weight: 400;
    font-size: 30px;
}

.header .caption span i.star-rating {
    -webkit-animation-delay: 0.8s;
    animation-delay: 0.8s;
}

.header .caption h4 {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 6px;
    color: #fff;
    margin-bottom: 20px;
    margin-top: 20px;
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
}

.header .caption h1 {
    position: relative;
    margin-bottom: 20px;
    font-family: "Gilda Display", serif;
    font-size: 55px;
    text-transform: uppercase;
    line-height: 1.35em;
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
    color: #fff;
    font-weight: 400;
    letter-spacing: 15px;
}

.header .caption h3 {
    position: relative;
    margin-bottom: 20px;
    font-family: "Gilda Display", serif;
    font-size: 48px;
    text-transform: uppercase;
    line-height: 1.35em;
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
    color: #fff;
    font-weight: 400;
    letter-spacing: 7px;
}

.header .caption p {
    font-size: 18px;
    line-height: 1.75em;
    margin-bottom: 0;
    color: #fff;
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
    margin-right: 15px;
}

.header .caption p span {
    letter-spacing: 5px;
    text-transform: uppercase;
    margin: 0 5px;
    padding-right: 14px;
    position: relative;
}

.header .caption p span:last-child {
    padding: 0;
}

.header .caption p span:last-child:after {
    display: none;
}

.header .caption p span:after {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #222;
    position: absolute;
    top: 10px;
    right: 0;
    opacity: 0.5;
}

.header .caption .butn-light {
    -webkit-animation-delay: 0.8s;
    animation-delay: 0.8s;
}

.header .caption .butn-dark {
    -webkit-animation-delay: 0.8s;
    animation-delay: 0.8s;
}

.header .social a {
    color: #eee;
    font-size: 20px;
    margin: 10px 15px;
}

hr {
    margin-top: 5px;
    margin-bottom: 20px;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.3);
}

/* ======= Slider-fade style (Homepage Slider) ======= */
/* ======= Slider-fade style (Homepage Slider) ======= */
.slider-fade .owl-item {
    height: 100vh;
    position: relative;
}

.slider-fade .item {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-size: cover;
    background-position: center;
}

.slider-fade .item .caption {
    z-index: 9;
}

/* slider-fade owl-nav next and prev */
.slider-fade .owl-nav {
    position: absolute;
    bottom: 7%;
    right: 12%;
}

.slider-fade .owl-prev {
    float: left;
}

.slider-fade .owl-next {
    float: right;
}

.slider-fade .owl-theme .owl-nav [class*="owl-"] {
    width: 40px;
    height: 40px;
    line-height: 34px;
    background: transparent;
    border-radius: 100%;
    color: #fff;
    font-size: 10px;
    margin-right: 3px;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.5);
    transition: var(--pib-trans-default);
    transform: scale(1);
}

.owl-theme .owl-nav [class*="owl-"]:hover {
    transform: scale(0.9);
    background: transparent;
    border: 1px solid #fff;
    color: #fff;
}

@media screen and (max-width: 768px) {
    .slider-fade .owl-nav {
        display: none;
    }
}

/* owl-dots for slider — horizontal row above the booking bar */
.slider-fade .owl-dots {
    position: absolute;
    bottom: 112px;
    left: 0;
    width: 100%;
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    top: auto;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
}

.slider-fade .owl-dots .owl-dot span {
    background: transparent;
    display: none;
}

.slider-fade .owl-dots .owl-dot {
    height: 12px;
    width: 12px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    display: inline-block;
    margin: 0 6px;
    border-radius: 50%;
    border-color 0.3s ease;
    transition: background 0.25s ease,
    border-color 0.25s ease;
}

.slider-fade .owl-dots .owl-dot.active {
    border-color: #fff;
    background: #fff;
}

/* ======= Slider style (Inner Page Slider) ======= */
.slider .owl-item {
    height: 100vh;
    position: relative;
}

.slider .item {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-size: cover;
    background-position: center;
}

.slider .item .caption {
    z-index: 9;
}

.slider .owl-theme .owl-dots {
    position: absolute;
    width: 100%;
    bottom: 3%;

    /* left: */
    text-align: center;
}

.slider .owl-theme .owl-dots .owl-dot span {
    width: 13px;
    height: 13px;
    margin: 0 3px;
    border-radius: 50%;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.slider .owl-theme .owl-dots .owl-dot.active span,
.slider .owl-theme .owl-dots .owl-dot:hover span {
    background: #fff;
    border: 1px solid #fff;
}

.home-hero-shell {
    position: relative;
    --pib-home-hero-height: 100vh;
    --pib-hero-dots-bottom: 112px;
    min-height: var(--pib-home-hero-height);
}

.home-hero-shell .header,
.home-hero-shell .slider-fade,
.home-hero-shell .slider-fade .owl-carousel,
.home-hero-shell .slider-fade .owl-stage-outer,
.home-hero-shell .slider-fade .owl-stage,
.home-hero-shell .slider-fade .owl-item,
.home-hero-shell .slider-fade .item {
    height: var(--pib-home-hero-height);
    min-height: var(--pib-home-hero-height);
}

.home-hero-shell .slider-fade .owl-dots {
    bottom: var(--pib-hero-dots-bottom);
}

/* bounce */
.header .arrow {
    position: absolute;
    bottom: 40px;
    width: 100%;
    text-align: center;
    z-index: 8;
}

.header .arrow.bounce {
    -webkit-animation: bounce 2s infinite;
    animation: bounce 2s infinite;
}

.header .arrow i {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
    line-height: 50px;
    color: #fff;
    font-size: 15px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 100%;
}

.header .arrow i:hover {
    border: 1px solid #fff;
}

.header .arrow i:hover:after {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    opacity: 0;
    transition: var(--pib-trans-default);
}

/* ===== Kenburns Slider style ===== */
.kenburns-section {
    z-index: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
    min-height: 100vh;
    position: relative;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.kenburns-section::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: -5;
    background: #000;
}

.kenburns-inner {
    position: relative;
    z-index: 15;
}

.kenburns-inner .caption {
    position: relative;
}

.kenburns-inner .caption h4 {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 6px;
    color: #fff;
    margin-bottom: 20px;
    margin-top: 20px;
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
}

.kenburns-inner .caption h1 {
    position: relative;
    margin-bottom: 20px;
    font-family: "Gilda Display", serif;
    font-size: 55px;
    text-transform: uppercase;
    line-height: 1.35em;
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
    color: #fff;
    font-weight: 400;
    letter-spacing: 15px;
}

.kenburns-inner .caption h3 {
    position: relative;
    margin-bottom: 20px;
    font-family: "Gilda Display", serif;
    font-size: 48px;
    text-transform: uppercase;
    line-height: 1.35em;
    -webkit-animation-delay: 0.6s;
    animation-delay: 0.6s;
    color: #fff;
    font-weight: 400;
    letter-spacing: 5px;
}

#kenburnsSliderContainer .vegas-overlay {
}

@media screen and (max-width: 767px) {
    .kenburns-inner .caption h4 {
        font-size: 12px;
    }

    .kenburns-inner .caption h1 {
        font-size: 30px;
        margin-bottom: 15px;
        letter-spacing: 5px;
        line-height: 1.35em;
    }

    .kenburns-inner .caption h3 {
        font-size: 30px;
        margin-bottom: 15px;
        letter-spacing: 5px;
        line-height: 1.35em;
    }

    .kenburns-inner .caption {
        text-align: center;
    }
}

/* reservation field for Kenburns slider */
.kenburns-section div.reservation {
    -webkit-writing-mode: vertical-lr;
    -ms-writing-mode: tb-lr;
    writing-mode: vertical-lr;
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
    text-orientation: sideways;
    text-orientation: sideways;
    margin: 0;
    position: absolute;
    top: 0;
    left: 40px;
    height: 60%;
    z-index: 9;
}

.kenburns-section div.reservation .call {
    color: #fff;
    text-transform: uppercase;
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    letter-spacing: 5px;
    font-size: 12px;
    line-height: 1.75em;
    margin-top: 15px;
}

.kenburns-section div.reservation .call span {
    font-family: "Gilda Display", serif;
    font-size: 24px;
    color: #fff;
    letter-spacing: 1px;
}

.kenburns-section div.reservation .icon {
    position: absolute;
    left: -1px;
    top: -50px;
    width: 50px;
    height: 50px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    -webkit-animation: pulse 2s infinite;
    animation: pulse 2s infinite;
    border-radius: 100%;
}

.kenburns-section div.reservation a .icon i {
    color: #fff;
    font-size: 24px;
    transform: rotate(90deg);
}

.kenburns-section div.reservation a .icon:hover {
    border: 1px solid #fff;
}

/* bounce */
.kenburns-section .arrow {
    position: absolute;
    bottom: 40px;
    width: 100%;
    text-align: center;
    z-index: 80;
}

.kenburns-section .arrow.bounce {
    -webkit-animation: bounce 2s infinite;
    animation: bounce 2s infinite;
}

.kenburns-section .arrow i {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
    line-height: 50px;
    color: #fff;
    font-size: 15px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 100%;
}

.kenburns-section .arrow i:hover {
    border: 1px solid #fff;
}

.kenburns-section .arrow i:hover:after {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    opacity: 0;
    transition: var(--pib-trans-default);
}

@media screen and (max-width: 768px) {
    .kenburns-section div.reservation {
        display: none;
    }
}

/* ======= Slider Grid Background ======= */
.slider-grid-bg {
    min-height: 100vh;
    background-size: cover;
    background-position: 50%;
    padding-top: 210px;
    padding-bottom: 60px;
    position: relative;
    overflow: hidden;
    background: #222;
    color: #fff;
}

.slider-grid-bg .grid-img {
    height: 100%;
    width: 100%;
    background-size: cover;
    background-position: center;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    transform: scale(1);
    transition: transform 5s,
    opacity 0.25s;
    opacity: 0;
    display: block;
}

.slider-grid-bg .grid-img-active {
    opacity: 1;
    transform: scale(1.03);
    -webkit-filter: brightness(70%);
}

.slider-grid-bg:hover .grid-img-active {
    -webkit-filter: brightness(70%);
}

.slider-grid-bg .content {
    position: relative;
    z-index: 2;
}

.slider-grid-bg .grid-item {
    margin-bottom: 30px;
    display: -ms-flexbox;
    display: flex;
}

.slider-grid-bg .grid-con {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: end;
    align-items: flex-end;
    border: 1px solid rgba(255, 255, 255, 0.4);
    width: 100%;
    text-decoration: none;
    color: currentColor;
    padding: 80px 30px 30px;
    transition: var(--pib-trans-default);
    background: transparent;
    min-height: 340px;
    position: relative;
}

.slider-grid-bg .grid-con-active,
.slider-grid-bg .grid-con:hover {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: end;
    align-items: flex-end;
    width: 100%;
    text-decoration: none;
    color: currentColor;
    padding: 80px 30px 30px;
    transition: var(--pib-trans-default);
    background: transparent;
    min-height: 340px;
    position: relative;
    background: #222;
    border: 1px solid #222;
}

.slider-grid-bg .book {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 3;
    writing-mode: vertical-rl;
    -ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    text-orientation: mixed;
    text-transform: uppercase;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 3px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
    font-family: "Montserrat", sans-serif;
    padding: 10px 3px;
    line-height: 1.5em;
}

.slider-grid-bg .grid-con:hover .book {
    color: #fff;
    border: 1px solid #2b2b2b;
}

.slider-grid-bg .grid-con-active .book {
    color: #fff;
    border: 1px solid #2b2b2b;
}

.slider-grid-bg .subtitle {
    display: block;
    font-weight: 400;
    color: #fff;
    margin-bottom: 5px;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    display: inline;
}

.slider-grid-bg .grid-con:hover .subtitle {
    color: #fff;
}

.slider-grid-bg .grid-con-active .subtitle {
    color: #fff;
}

.slider-grid-bg .title {
    display: block;
    font-family: "Gilda Display", serif;
    font-size: 27px;
    line-height: 1.25em;
    letter-spacing: 0px;
    color: #fff;
    margin-top: 5px;
    margin-bottom: 0px;
}

.slider-grid-bg .grid-con:hover .title {
    color: #fff;
}

.slider-grid-bg .grid-con-active .title {
    color: #fff;
}

/* bounce */
.slider-grid-bg .arrow {
    position: absolute;
    bottom: 40px;
    width: 100%;
    text-align: center;
    z-index: 80;
}

.slider-grid-bg .arrow.bounce {
    -webkit-animation: bounce 2s infinite;
    animation: bounce 2s infinite;
}

.slider-grid-bg .arrow i {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
    line-height: 50px;
    color: #fff;
    font-size: 15px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 100%;
}

.slider-grid-bg .arrow i:hover {
    border: 1px solid #fff;
}

.slider-grid-bg .arrow i:hover:after {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    opacity: 0;
    transition: var(--pib-trans-default);
}

@media only screen and (max-width: 1199px) {
    .slider-grid-bg .grid-con {
        min-height: 300px;
    }

    .slider-grid-bg .grid-con-active,
    .slider-grid-bg .grid-con:hover {
        min-height: 300px;
    }
}

@media only screen and (max-width: 767px) {
    .slider-grid-bg .grid-con {
        min-height: 240px;
    }

    .slider-grid-bg .grid-con-active,
    .slider-grid-bg .grid-con:hover {
        min-height: 240px;
    }
}

/* ======= Page Banner Header style ======= */
.banner-header {
    height: 60vh;
    background-position: center;
}

.banner-header.full-height {
    min-height: 100vh;
    background-position: center;
}

.banner-header.full-height h4 {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 6px;
    color: #fff;
    margin-bottom: 20px;
    margin-top: 20px;
}

.banner-header.full-height h1 {
    position: relative;
    margin-bottom: 20px;
    font-family: "Gilda Display", serif;
    font-size: 55px;
    text-transform: uppercase;
    line-height: 1.35em;
    color: #fff;
    font-weight: 400;
    letter-spacing: 15px;
}

.banner-header h1 {
    font-size: 60px;
    color: #fff;
    position: relative;
}

.banner-header.full-height h3 {
    position: relative;
    margin-bottom: 20px;
    font-family: "Gilda Display", serif;
    font-size: 48px;
    text-transform: uppercase;
    line-height: 1.35em;
    color: #fff;
    font-weight: 400;
    letter-spacing: 7px;
}

.banner-header .caption {
    position: relative;
}

.banner-header h5 {
    color: #fff;
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 10px;
}

.banner-header h5 a {
    color: #fff;
}

.banner-header p {
    font-size: 15px;
    margin-bottom: 0;
    color: #fff;
}

.banner-header p a {
    color: rgba(255, 255, 255, 0.75);
}

/* author & date */
.banner-header .author .avatar {
    width: 27px;
    height: 27px;
    overflow: hidden;
    border-radius: 50%;
    margin-right: 5px;
}

.banner-header .post {
    margin-top: 20px;
}

.banner-header .post div {
    display: inline-block;
}

.banner-header .post .author {
    margin-right: 20px;
    font-size: 13px;
    font-family: "Montserrat", sans-serif;
}

.banner-header .post .date-comment {
    position: relative;
    font-size: 13px;
    color: #fff;
    font-family: "Montserrat", sans-serif;
    margin-right: 20px;
}

.banner-header .post .date-comment i {
    color: #fff;
    font-size: 18px;
    margin-right: 5px;
}

.banner-header .post .date-comment:last-of-type {
    margin-right: 0px;
}

/* bounce */
.banner-header .arrow {
    position: absolute;
    bottom: 40px;
    width: 100%;
    text-align: center;
    z-index: 8;
}

.banner-header .arrow.bounce {
    -webkit-animation: bounce 2s infinite;
    animation: bounce 2s infinite;
}

.banner-header .arrow i {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
    line-height: 50px;
    color: #fff;
    font-size: 15px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 100%;
}

.banner-header .arrow i:hover {
    border: 1px solid #fff;
}

.banner-header .arrow i:hover:after {
    -webkit-transform: scale(1.2);
    transform: scale(1.2);
    opacity: 0;
    transition: var(--pib-trans-default);
}

@media screen and (max-width: 767px) {
    .banner-header {
    }

    .banner-header.full-height h1 {
        font-size: 30px;
        margin-bottom: 15px;
        letter-spacing: 10px;
        line-height: 1.35em;
    }

    .banner-header.full-height h3 {
        font-size: 30px;
        margin-bottom: 15px;
        letter-spacing: 10px;
        line-height: 1.35em;
    }

    .banner-header.full-height h4 {
        font-size: 12px;
    }

    .banner-header h5 {
    }

    .banner-header h1 {
        font-size: 45px;
    }
}

/* =======  Video Background  ======= */
.video-fullscreen-wrap {
    height: 100vh;
    overflow: hidden;
}

.video-fullscreen-wrap .caption {
    position: relative;
}

.video-fullscreen-wrap .caption.textleft {
    text-align: left;
}

/* Dynamic viewport units keep full-height hero surfaces stable on iOS Safari
   and other mobile browsers with collapsing browser chrome. */
@supports (height: 100svh) {
    .header,
    .kenburns-section,
    .slider-grid-bg,
    .banner-header.full-height,
    .comming {
        min-height: 100svh;
    }

    .slider-fade .owl-item,
    .slider .owl-item,
    .video-fullscreen-wrap {
        height: 100svh;
    }
}

@supports (height: 100dvh) {
    .header,
    .kenburns-section,
    .slider-grid-bg,
    .banner-header.full-height,
    .comming {
        min-height: 100dvh;
    }

    .slider-fade .owl-item,
    .slider .owl-item,
    .video-fullscreen-wrap {
        height: 100dvh;
    }
}

.video-fullscreen-wrap h3 {
    position: relative;
    font-family: "Libre Caslon Display", serif;
    font-size: 60px;
    line-height: 1em;
    color: #fff;
    font-weight: 400;
}

.video-fullscreen-wrap h3 span {
    display: block;
    font-size: 30px;
    display: block;
    margin-top: 0px;
    line-height: 1.5em;
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
    color: #fff;
}

.video-fullscreen-video {
    height: 100%;
}

.video-fullscreen-wrap video {
    width: 100vw;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}

.video-fullscreen-wrap .video-fullscreen-inner {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: right;
}

.video-lauch-wrapper {
    border: none;
    background: none;
    width: 100%;
    padding: 0;
}

.video-fullscreen-wrap .overlay {
    /* background-image: linear-gradient(to bottom right, #000000, #000000); */
    opacity: 1;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    box-sizing: border-box;
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    z-index: 4;
}

.video-fullscreen-wrap .butn-dark a {
    color: #fff;
}

.position-relative {
    position: relative !important;
}

/* ======= Rooms1 style ======= */
.rooms1 .item {
    position: relative;
    overflow: hidden;
    margin-bottom: 30px;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    isolation: isolate;
}

.rooms1 .item:hover img {
    -webkit-transform: scale(1.09, 1.09);
    transform: scale(1.09, 1.09);
    -webkit-filter: brightness(70%);
    filter: brightness(70%);
}

/* .con is always pinned at bottom — no hover needed */

.rooms1 .item img {
    transition: transform 0.55s ease, filter 0.55s ease;
    will-change: transform;
}

.rooms1 .item .position-re img {
    height: 450px;
    object-fit: cover;
}

.rooms1 .item .category {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 3;
    writing-mode: vertical-rl;
    -ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    text-orientation: mixed;
    text-transform: uppercase;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 3px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
    font-family: "Montserrat", sans-serif;
    padding: 10px 3px;
    line-height: 1.5em;
}

.rooms1 .item .category a {
    color: #fff;
}

.rooms1 .item .category:hover {
    color: #fff;
}

.rooms1 .item .con {
    padding: 20px;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: left;
    z-index: 20;
    height: auto;
    box-sizing: border-box;
    background: linear-gradient(
    to bottom,
    transparent 0,
    rgba(0, 0, 0, 0.01) 2%,
    rgba(0, 0, 0, 0.85) 90%
  );
}

.rooms1 .item .con h6,
.rooms1 .item .con h6 a {
    position: relative;
    color: #fff;
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    display: inline;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.rooms1 .item .con h6 i {
    font-size: 6px;
    margin-right: 2px;
}

.rooms1 .item .con h5,
.rooms1 .item .con h5 a {
    position: relative;
    color: #fff;
    font-size: 27px;
    font-weight: 400;
    margin-top: 5px;
    margin-bottom: 5px;
}

.rooms1 .item .con p {
    color: #fff;
    font-size: 20px;
}

/* Teaser and permalink always visible — no hover required */
.rooms1 .item .con .con-teaser {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.65);
    letter-spacing: 1px;
    text-transform: uppercase;
    line-height: 1.5;
    opacity: 1;
    max-height: none;
    overflow: visible;
    margin-top: 8px;
    margin-bottom: 12px;
    transform: none;
}

.rooms1 .item .con:has(.con-teaser) .permalink {
    opacity: 1;
}

.rooms1 .item .con i {
    color: #fff;
    font-size: 18px;
}

.rooms1 .item .con i:hover {
    color: #fff;
}

.rooms1 .item .con .butn-light {
    margin-left: 0;
    border-radius: var(--pib-radius);
    border-color: rgba(255, 255, 255, 0.5);
    padding: 11px 30px;
}

.rooms1 .item .con .butn-light:hover {
    border-color: rgba(255, 255, 255, 0.8);
}

/* line animation */
.rooms1 .item .line {
    text-align: center;
    height: 1px;
    width: 60px;
    background-color: rgba(255, 255, 255, 0.2);
    transition-property: width;
    transition-duration: 0.3s;
    transition-timing-function: ease-in-out;
    margin: auto 0 30px;
}

.rooms1 .item:hover .line {
    width: 100%;
    transition-property: width;
    transition-duration: 0.8s;
    transition-timing-function: ease-in-out;
}

/* facilities */
.rooms1 .facilities ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rooms1 .facilities ul li {
    color: #fff;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 3px;
    line-height: 1.2em;
    padding-bottom: 20px;
    float: left;
}

.rooms1 .facilities ul li i {
    margin-right: 10px;
}

/* permalink */
.rooms1 .item .con .permalink {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #fff;
    height: 0;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    transition: var(--pib-trans-default);
    display: inline;
}

.rooms1 .item .con .permalink a {
    color: #fff;
    text-align: right;
}

.rooms1 .item .con .permalink i {
    font-size: 10px;
    text-align: right;
}

.rooms1 .item .con .permalink a:hover,
.rooms1 .item .con .permalink i:hover {
    color: rgba(255, 255, 255, 0.9);
}

/* ======= Rooms 3 ======= */
.rooms3 {
    color: rgba(255, 255, 255, 0.5);
}

.rooms3 .square-flip {
    -webkit-perspective: 1000;
    -moz-perspective: 1000;
    -ms-perspective: 1000;
    perspective: 1000;
    -webkit-transform: perspective(1000px);
    -moz-transform: perspective(1000px);
    -ms-transform: perspective(1000px);
    transform: perspective(1000px);
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    transform-style: preserve-3d;
    position: relative;
    background-size: cover;
    background-position: center center;
}

.rooms3 .square-flip {
    min-height: 450px;
    margin-bottom: 30px;
}

.rooms3 .square,
.rooms3 .square2 {
    width: 100%;
    height: 100%;
}

.rooms3 .square {
    background-size: cover;
    background-position: center center;
    cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25),
    -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    overflow: hidden;
    position: absolute;
    top: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.rooms3 .square .category {
    position: absolute;
    top: 20px;
    left: 20px;
    z-index: 3;
    writing-mode: vertical-rl;
    -ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    text-orientation: mixed;
    text-transform: uppercase;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    letter-spacing: 3px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.5);
    font-family: "Montserrat", sans-serif;
    padding: 10px 3px;
    line-height: 1.5em;
}

.rooms3 .square .category a {
    color: #fff;
}

.rooms3 .square .category:hover {
    color: #fff;
}

.rooms3 .square h4 {
    color: #fff;
    font-size: 27px;
    text-align: left;
    margin-bottom: 0;
    display: inline-flex;
}

.rooms3 .square h6,
.rooms3 .square h6 a {
    position: relative;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    font-family: "Montserrat", sans-serif;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rooms3 .square-flip .square {
    -webkit-transform: rotateY(0deg);
    transform: rotateY(0deg);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    z-index: 1;
}

.rooms3 .square-flip:hover .square {
    -webkit-transform: rotateY(-180deg);
    transform: rotateY(-180deg);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

.rooms3 .square2 {
    background: #2b2b2b;
    background-size: cover;
    background-position: center center;
    cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25),
    -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    overflow: hidden;
    position: absolute;
    top: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.rooms3 .square2.bg-white {
    background: #2b2b2b;
}

.rooms3 .square2:before {
    top: 25px;
    left: 15px;
    right: 15px;
    bottom: 25px;
}

.rooms3 .square2 h4 {
    font-size: 30px;
    color: #fff;
}

.rooms3 .square2 h6 {
    position: relative;
    color: #fff;
    font-size: 15px;
    font-weight: 400;
    font-family: "Montserrat", sans-serif;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rooms3 .square2 p {
    font-size: 15px;
    color: #d1d1d1;
}

.rooms3 .square2 .icon img {
    width: 60px;
    color: #d1d1d1;
    margin-bottom: 20px;
}

.rooms3 .btn-line a {
    border-bottom: 1px solid #ccc;
    color: #d1d1d1;
}

.rooms3 .btn-line a:hover {
    border-bottom: 1px solid #fff;
    color: #fff;
}

.rooms3 .square-flip .square2 {
    -webkit-transform: rotateY(180deg);
    transform: rotateY(180deg);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    z-index: 1;
}

.rooms3 .square-flip:hover .square2 {
    -webkit-transform: rotateY(0deg);
    transform: rotateY(0deg);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

.rooms3 .square-container {
    padding: 40px;
    text-align: right;
    height: 450px;
    position: relative;
    cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25),
    -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    -webkit-transform: translateX(0px) scale(1);
    -ms-transform: translateX(0px) scale(1);
    transform: translateX(0px) scale(1);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    z-index: 2;
}

.rooms3 .square-container .box-title {
    /* width: 100%; */
}

.rooms3 .square-flip:hover .square-container {
    -webkit-transform: translateX(-650px) scale(0.88);
    -ms-transform: translateX(-650px) scale(0.88);
    transform: translateX(-650px) scale(0.88);
}

.rooms3 .square-container2 {
    padding: 30px;
    text-align: left;
    position: relative;
    top: 50%;
    cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    transition: transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25),
    -webkit-transform 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.25);
    -webkit-transform: translateY(-50%) translateX(650px) translateZ(60px)
    scale(0.88);
    transform: translateY(-50%) translateX(650px) translateZ(60px) scale(0.88);
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    z-index: 2;
}

.rooms3 .square-flip:hover .square-container2 {
    -webkit-transform: translateY(-50%) translateX(0px) translateZ(0px) scale(1);
    transform: translateY(-50%) translateX(0px) translateZ(0px) scale(1);
}

.rooms3 .flip-overlay {
    display: block;
    background: #000;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0.2;
}

@media screen and (max-width: 991px) {
    .rooms3 .square-flip {
        margin-bottom: 30px;
    }

    .rooms3 {
        padding-bottom: 72px;
    }
}

/* ======= Rooms Page style ======= */
.rooms-intro {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    line-height: 1.9;
    color: #ccc;
    letter-spacing: 0.3px;
}

.rooms-page h6 {
    position: relative;
    font-family: "Gilda Display", serif;
    font-size: 24px;
    color: #fff;
}

/* page list */
.page-list {
    position: relative;
    display: block;
}

.page-list li {
    position: relative;
    display: flex;
    align-items: center;
}

.page-list li + li {
    margin-top: 10px;
}

.page-list-icon {
    display: flex;
    align-items: center;
}

.page-list-icon span {
    font-size: 18px;
    color: #fff;
}

.page-list-text {
    margin-left: 15px;
}

.page-list-text p {
    font-size: 15px;
    margin: 0;
}

/* owl-nav next and prev */
.rooms-page .owl-nav {
    position: absolute;
    bottom: 3%;
    left: 12%;
}

.rooms-page .owl-prev {
    float: left;
}

.rooms-page .owl-next {
    float: right;
}

.rooms-page .owl-theme .owl-nav [class*="owl-"] {
    width: 40px;
    height: 40px;
    line-height: 34px;
    background: transparent;
    border-radius: 100%;
    color: rgba(255, 255, 255, 0.75);
    font-size: 11px;
    margin-right: 3px;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.3);
    transition: var(--pib-trans-default);
    transform: scale(1);
}

.rooms-page .owl-theme .owl-nav [class*="owl-"]:hover {
    transform: scale(0.9);
    background: transparent;
    border: 1px solid #fff;
    color: #fff;
}

@media screen and (max-width: 768px) {
    .rooms-page .owl-nav {
        display: none;
    }
}

/* Rooms Filter Styling */
.rooms-filter {
    text-align: center;
}

.rooms-filter button {
    background: transparent;
    border: none;
    color: #fff;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin: 0 10px;
    padding: 5px 0;
    cursor: pointer;
    position: relative;
    transition: var(--pib-trans-default);
    opacity: 0.6;
}

.rooms-filter button.active,
.rooms-filter button:hover {
    opacity: 1;
    color: #fff;
}

.room-item {
    margin-bottom: 30px;
}

/* ======= Facility Showcase (facilities.html alternating blocks) ======= */
.facility-showcase {
    background: #111;
}

.facility-showcase-block {
    margin-bottom: 80px;
}

.facility-showcase-block:last-child {
    margin-bottom: 0;
}

.facility-showcase-block img {
    display: block;
    width: 100%;
    height: 420px;
    object-fit: cover;
}

.facility-showcase-text .section-subtitle {
    margin-bottom: 6px;
}

.facility-showcase-title {
    font-family: "Gilda Display", serif;
    font-size: 32px;
    color: #fff;
    margin-bottom: 20px;
    font-weight: 400;
}

.facility-showcase-text p {
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    line-height: 1.9;
    color: #aaa;
}

/* Individual facility pages: feature list */
.facility-features-list {
    list-style: none;
    padding: 0;
    margin: 20px 0 0;
}

.facility-features-list li {
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.7);
    padding: 9px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.facility-features-list li i {
    color: #fff;
    margin-right: 10px;
    font-size: 13px;
}

/* Individual facility pages: CTA block */
.facility-cta {
    text-align: center;
}

.facility-cta-label {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: #fff;
    margin-bottom: 12px;
}

.facility-cta-title {
    font-family: "Gilda Display", serif;
    font-size: 40px;
    color: #fff;
    font-weight: 400;
    margin-bottom: 0;
}

.restaurant-cta-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.restaurant-cta-btn {
    margin: 0;
}

.promo-inline-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.65);
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    letter-spacing: 2px;
    padding: 3px 8px;
    vertical-align: middle;
    margin-left: 10px;
    position: relative;
    top: -2px;
}

/* ======= Facilties style ======= */
.facilties .single-facility {
    background: rgba(255, 255, 255, 0.04);
    padding: 30px 20px;
    transition: background 0.5s ease;
    position: relative;
    z-index: 1;
    margin-bottom: 0;
    line-height: 1;
    height: 100%;
}

.facilties .row {
    row-gap: 30px;
}

.facilties .single-facility h5 {
    font-size: 24px;
    color: #fff;
    margin-bottom: 10px;
}

.facilties .single-facility:hover h5 {
    color: #fff;
    transition: var(--pib-trans-default);
}

/* .facilties .facility-shape:hover span {
  -webkit-transform: rotate(360deg);
          transform: rotate(360deg);
} */
.facilties .single-facility span {
    font-size: 45px;
    color: #fff;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    transition: var(--pib-trans-default);
}

.facilties .single-facility p {
    margin: 0;
    color: #d1d1d1;
}

.facilties .single-facility .facility-shape {
    position: absolute;
    opacity: 0.02;
    z-index: -1;
    bottom: 15px;
    left: 120px;
}

.facilties .single-facility .facility-shape span {
    font-size: 140px;
    color: #222;
}

/* hr */
hr {
    margin-top: 5px;
    margin-bottom: 20px;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.25);
}

/* room facilities */
.room-facilities .wrap {
    background: #222;
    padding: 30px;
}

.room-facilities ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.room-facilities ul li {
    color: #d1d1d1;
    font-size: 15px;
    padding-bottom: 10px;
}

.room-facilities ul li i {
    margin-right: 10px;
    color: #fff;
    font-size: 20px;
}

/* ======= Services style ======= */
.services .img {
    position: relative;
    overflow: hidden;
}

.services .img:hover img {
    -webkit-filter: none;
    filter: none;
    -webkit-transform: scale(1.09, 1.09);
    transform: scale(1.09, 1.09);
    transition: var(--pib-trans-default);
}

.services .img img {
    transition: var(--pib-trans-default);
}

.services .content {
    width: 100%;
    padding: 30px;
}

.services .content .date {
    display: table-cell;
    position: relative;
    width: 80px;
    z-index: 2;
}

.services .content .date h3 {
    font-size: 65px;
    font-weight: 500;
    color: #fff;
    margin-bottom: 0px;
}

.services .content .date h6 {
    color: #d1d1d1;
    letter-spacing: 2px;
    font-size: 10px;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    font-weight: 400;
}

.services .content .cont {
    display: table-cell;
    vertical-align: middle;
}

.services .content .cont h4 {
    margin: 0 0 10px 0;
    font-size: 32px;
    color: #fff;
    font-weight: 400;
    line-height: 1.5em;
}

.services .content .cont .more {
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #fff;
    padding-left: 40px;
    position: relative;
}

.services .content .cont .more:after {
    content: "";
    width: 30px;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0px;
}

.services .content .cont .more:hover {
    color: #222;
}

.services .content .info h6 {
    font-size: 15px;
    letter-spacing: 3px;
    color: #fff;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.services .content .info .tags {
    color: #fff;
}

@media screen and (max-width: 991px) {
    .services .content .cont h4 {
        line-height: 1.25em;
    }

    .order2 {
        -webkit-box-ordinal-group: 3 !important;
        -ms-flex-order: 2 !important;
        order: 2 !important;
    }

    .order1 {
        -webkit-box-ordinal-group: 2 !important;
        -ms-flex-order: 1 !important;
        order: 1 !important;
    }
}

@media screen and (max-width: 480px) {
    .services .content .date {
        width: 60px;
    }

    .services .content .info .tags {
        margin: 5px 0 0;
    }

    .services .content .date h3 {
        font-size: 40px;
    }
}

/* =======  Restaurant Menu style ======= */
.restaurant-menu .owl-carousel .owl-stage-outer {
    padding: 20px 0 60px 0;
}

.restaurant-menu .owl-theme .owl-nav [class*="owl-"] {
    position: absolute;
    top: 40%;
    background: transparent;
    color: #fff;
    width: 40px;
    height: 40px;
    line-height: 30px;
    border-radius: 50%;
    border: 1px solid #fff;
    opacity: 0;
    transition: var(--pib-trans-default);
}

.restaurant-menu .owl-theme .owl-nav [class*="owl-"]:hover {
    background: transparent;
    color: #fff;
}

.restaurant-menu .bg-img .owl-theme .owl-nav [class*="owl-"] {
    color: #fff;
}

.restaurant-menu .owl-carousel .owl-nav .owl-next {
    right: 0;
}

.restaurant-menu .owl-carousel .owl-nav .owl-prev {
    left: 0;
}

.restaurant-menu .owl-carousel .owl-nav .owl-next span,
.restaurant-menu .owl-carousel .owl-nav .owl-prev span {
    font-size: 12px;
}

.restaurant-menu .owl-theme:hover .owl-nav [class*="owl-"] {
    opacity: 1;
}

.restaurant-menu .tabs-icon .item {
    padding: 15px 5px;
    cursor: pointer;
}

.restaurant-menu .tabs-icon .item h6 {
    font-size: 20px;
    color: #fff;
    margin-bottom: 0;
}

.restaurant-menu .tabs-icon .owl-item.actived .item,
.restaurant-menu .tabs-icon .item.active {
    color: #fff;
    position: relative;
    background: transparent;
    padding: 15px;
    border: 1px solid #fff;
}

.restaurant-menu .tabs-icon .owl-item.actived .item .icon,
.restaurant-menu .tabs-icon .item.active .icon {
    color: #fff;
}

.restaurant-menu .restaurant-menu-content .cont {
    display: none;
}

.restaurant-menu .restaurant-menu-content .cont .restaurant-menu-info {
    text-align: right;
}

.restaurant-menu .restaurant-menu-content .cont h5 {
    font-size: 20px;
    color: #fff;
    margin-bottom: 10px;
    text-align: left;
    border-bottom: 1px dashed #fff;
    line-height: 2em;
}

.restaurant-menu .restaurant-menu-content .cont p {
    font-size: 15px;
    color: #d1d1d1;
}

.restaurant-menu .restaurant-menu-content .cont h5 .price {
    color: #d1d1d1;
    float: right;
}

.restaurant-menu .restaurant-menu-content .active {
    display: block;
}

.restaurant-menu .owl-theme .owl-nav [class*="owl-"] {
    top: 18%;
}

.restaurant-menu .owl-carousel .owl-nav .owl-next {
    right: -50px;
}

.restaurant-menu .owl-carousel .owl-nav .owl-prev {
    left: -50px;
}

.restaurant-menu .owl-carousel .owl-nav .owl-prev {
    left: -60px;
}

.restaurant-menu .owl-carousel .owl-nav .owl-next {
    right: -60px;
}

.restaurant-menu .restaurant-menu-content .cont .restaurant-menu-info {
    text-align: center;
    margin-bottom: 20px;
}

/* ======= Clients style ======= */
.clients {
    background-color: #fff;
}

.clients .owl-carousel {
    margin: 20px 0;
}

.clients .clients-logo {
    opacity: 1;
    line-height: 0;
}

.clients .clients-logo:hover {
    opacity: 1;
}

.clients img {
    -webkit-filter: none;
    filter: none;
}

.clients img:hover {
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
    transition: var(--pib-trans-default);
}

/* ======= Events page ======= */
.event-space-card {
    background: #1a1a1a;
    border: 1px solid rgba(255, 255, 255, 0.08);
    padding: 35px 30px;
    height: 100%;
}

.event-space-icon {
    font-size: 36px;
    color: rgba(255, 255, 255, 0.65);
    margin-bottom: 15px;
    line-height: 1;
}

.event-space-name {
    font-family: "Gilda Display", serif;
    font-size: 22px;
    color: #fff;
    margin-bottom: 5px;
    font-weight: 400;
}

.event-space-capacity {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: rgba(255, 255, 255, 0.45);
    margin-bottom: 10px;
}

.event-poster {
    overflow: hidden;
    aspect-ratio: 3 / 4;
}

.event-poster img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
}

.event-poster a {
    display: block;
    height: 100%;
    position: relative;
    cursor: zoom-in;
}

.event-poster a::after {
    content: '\e610';
    font-family: 'themify';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    color: #fff;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    transition: opacity 0.25s ease;
}

.event-poster a:hover::after {
    opacity: 1;
}

.event-poster a:hover img {
    transform: scale(1.04);
}

/* ======= View More tile (events + gallery) ======= */
.more-tile {
    background-size: cover;
    background-position: center;
    height: 280px;
    position: relative;
    cursor: pointer;
    display: block;
}

.more-tile-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: background 0.25s;
}

.more-tile:hover .more-tile-overlay {
    background: rgba(0, 0, 0, 0.82);
}

.more-tile-count {
    font-family: "Gilda Display", serif;
    font-size: 30px;
    color: #fff;
    display: block;
    margin-bottom: 14px;
    line-height: 1;
}

.more-tile-btn {
    display: inline-block;
    background: rgba(255, 255, 255, 0.92);
    color: #0d0d0d;
    padding: 9px 26px;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 11px;
    cursor: pointer;
    transition: background 0.25s;
}

.more-tile:hover .more-tile-btn {
    background: #fff;
}

/* gallery more tile — fixed height since no img drives it */
.gallery-item.gallery-more-tile .more-tile {
    height: 250px;
}

/* ======= Gallery filter ======= */
.gallery-filter {
    margin-bottom: 40px;
}

.gallery-filter button {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.6);
    padding: 8px 22px;
    margin: 0 4px 10px;
    text-transform: uppercase;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    cursor: pointer;
    transition: var(--pib-trans-default);
}

.gallery-filter button.active,
.gallery-filter button:hover {
    background: #fff;
    border-color: #fff;
    color: #0d0d0d;
}

/* ======= Gallery style ======= */
.gallery-item {
    position: relative;
    padding-top: 20px;
    padding-bottom: 0;
}

.gallery-grid .gallery-item {
    margin-bottom: 20px;
}

.gallery-box {
    overflow: hidden;
    position: relative;
}

.gallery-box .gallery-img {
    position: relative;
    overflow: hidden;
}

.gallery-box .gallery-img:after {
    content: " ";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 0px;
    pointer-events: none;
    transition: background 0.27s cubic-bezier(0.3, 0.1, 0.58, 1);
}

.gallery-box .gallery-img > img {
    transition: transform 0.3s cubic-bezier(0.3, 0.1, 0.58, 1);
    border-radius: 0;
    will-change: transform;
}

.gallery-box .gallery-detail {
    opacity: 0;
    color: #fff;
    width: 100%;
    padding: 20px;
    box-sizing: border-box;
    position: absolute;
    left: 0;
    overflow: hidden;
    transition: var(--pib-trans-default);
}

.gallery-box .gallery-detail h4 {
    font-size: 18px;
}

.gallery-box .gallery-detail p {
    color: Rgba(0, 0, 0, 0.4);
    font-size: 14px;
}

.gallery-box .gallery-detail i {
    color: #222;
    padding: 8px;
}

.gallery-box .gallery-detail i:hover {
    color: #222;
}

.gallery-box:hover .gallery-detail {
    top: 50%;
    transform: translate(0, -50%);
    opacity: 1;
}

.gallery-box:hover .gallery-img:after {
    background: rgba(0, 0, 0, 0.2);
}

.gallery-box:hover .gallery-img > img {
    transform: scale(1.05);
}

/* magnific popup custom */
.mfp-figure button {
    border: 0px solid transparent;
}

button.mfp-close,
button.mfp-arrow {
    border: 0px solid transparent;
    background: transparent;
}

/* ======= Promo Video and Testimonials style ======= */
/* play button */
.vid-area h5 {
    font-size: 27px;
    font-weight: 400;
    color: #fff;
    margin-bottom: 30px;
}


/* video section */
.video-wrapper {
    min-height: 500px;
}

.video-wrapper .vid {
    position: relative;
    z-index: 8;
}

.video-wrapper .vid .vid-butn:hover .icon {
    color: #fff;
}

.video-wrapper .vid .vid-butn:hover .icon:before {
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
}

.video-wrapper .vid .vid-butn .icon {
    color: #fff;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    line-height: 100px;
    text-align: center;
    font-size: 40px;
    position: relative;
    transition: var(--pib-trans-default);
}

.video-wrapper .vid .vid-butn .icon:after {
    content: "";
    position: absolute;
    top: 5px;
    bottom: 5px;
    right: 5px;
    left: 5px;
    border: 1px solid #eee;
    border-radius: 50%;
    z-index: -1;
}

.video-wrapper .vid .vid-butn .icon:before {
    content: "";
    position: absolute;
    top: 5px;
    bottom: 5px;
    right: 5px;
    left: 5px;
    background: transparent;
    border-radius: 50%;
    z-index: -1;
    transition: var(--pib-trans-default);
}

/* video gallery */
.video-gallery-button {
    position: relative;
    margin: auto;
    -webkit-transform: scale(1.3);
    -ms-transform: scale(1.3);
    transform: scale(1.3);
    z-index: 4;
    margin-left: 15px;
    float: right;
}

.video-gallery-polygon {
    z-index: 2;
    padding-left: 5px;
    display: inline-block;
    position: absolute;
    bottom: 15px;
    right: 15px;
    background: transparent;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.5);
    color: #fff;
    padding: 7px 6px 7px 8px;
    line-height: 0;
}

.video-gallery-polygon:hover {
    background: #fff;
    border: 1px solid #fff;
    color: #0d0d0d;
}

/* testimonials style */
.testimonials .section-padding {
    padding: 70px 0;
}

.testimonials-box {
    position: relative;
    background: transparent;
    padding: 30px;
    margin-bottom: 0;
}

.testimonials-box .head-box h6 {
    font-family: "Montserrat", sans-serif;
    color: #adadad;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 10px;
}

.testimonials-box .head-box h4 {
    font-size: 32px;
    font-weight: 400;
    color: #fff;
    margin-bottom: 10px;
}

.testimonials-box .head-box h4 span {
    color: #222;
}

.line {
    width: 60px;
    border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
    margin-bottom: 10px;
}

.testimonials h5 {
    color: #fff;
    font-size: 24px;
    margin-bottom: 30px;
}

@media screen and (max-width: 991px) {
    .testimonials-box {
        margin-bottom: 0;
        padding: 35px 20px;
    }
}

.testimonials .item {
    margin-bottom: 30px;
    position: relative;
}

.testimonials .item .quote {
    position: absolute;
    right: 20px;
    top: 90px;
    width: 70px;
    margin: 0 auto 30px;
    opacity: 0.1;
}

.testimonials .item p {
    color: #fff;
}

.testimonials .item .info {
    text-align: left;
    margin: 30px 0 15px 0;
}

.testimonials .item .info .author-img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    float: left;
    overflow: hidden;
}

.testimonials .item .info .author-img.review-initial {
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #222;
    font-family: "Gilda Display", serif;
    font-size: 30px;
    line-height: 1;
    text-transform: uppercase;
}

.testimonials .item .info .cont {
    margin-left: 85px;
}

.testimonials .item .info h6 {
    font-size: 15px;
    margin-bottom: 0px;
    padding-top: 0px;
    font-weight: 400;
    font-family: "Montserrat", sans-serif;
    color: #fff;
    line-height: 1em;
    text-transform: uppercase;
    letter-spacing: 3px;
}

.testimonials .item .info span {
    font-size: 12px;
    color: #fff;
    line-height: 1em;
}

.testimonials .item .info .country {
    font-size: 13px;
    letter-spacing: 1px;
    opacity: 0.85;
}

.testimonials .item .info .rate {
    float: right;
}

.testimonials .item .info i {
    color: #222;
    font-size: 6px;
}

@media screen and (max-width: 767px) {
    .testimonials-box {
        padding: 0px;
    }
}

/* ======= Booking style ======= */
.booking-wrapper {
    position: absolute;
    left: 0;
    width: 100%;
    bottom: 5%;
    z-index: 5;
}

.booking-inner {
    position: relative;
    border-radius: 0;
}

.form1 {
    display: block;
    padding: 0;
    position: relative;
}

.form1 label {
    display: none;
}

.form1 .col1 {
    float: left;
    width: 20%;
}

.form1 .col2 {
    float: left;
    width: 14%;
}

.form1 .col3 {
    float: left;
    width: 18%;
}

.form1 .c1 {
    border-right: 1px solid #2b2b2b;
    height: 62px;
    margin-bottom: 15px;
}

.form1 .c2 {
    border-right: 1px solid #2b2b2b;
    height: 62px;
    margin-bottom: 15px;
}

.form1 .c3 {
    border-right: 1px solid #2b2b2b;
    height: 62px;
    margin-bottom: 15px;
}

.form1 .c4 {
    border-right: 1px solid #2b2b2b;
    height: 62px;
    margin-bottom: 15px;
}

.form1 .c5 {
    border-right: 1px solid #2b2b2b;
    height: 62px;
    margin-bottom: 15px;
}

.ui-datepicker .ui-datepicker-header {
    background: #1a1a1a;
    border: 1px solid #333;
    color: #fff;
}

.ui-datepicker {
    font-size: 15px;
    color: #d1d1d1;
    background: #1c1c1c;
    z-index: 100 !important;
    border: 1px solid #2b2b2b;
    border-radius: var(--pib-radius);
}

.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default {
    border: 1px solid #222;
    background: #202020;
    color: #d1d1d1;
}

.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus {
    border: 1px solid #fff;
    background: #fff;
    font-weight: normal;
    color: #0d0d0d;
}

.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active {
    border: 1px solid #fff;
    background: #fff;
    color: #0d0d0d;
    box-shadow: none;
}

.ui-datepicker .ui-datepicker-prev:after {
    font-size: 10px;
    content: "\e64a";
    font-family: "themify";
    color: #fff;
}

.ui-datepicker .ui-datepicker-next:before {
    font-size: 10px;
    content: "\e649";
    font-family: "themify";
    color: #fff;
    float: right;
}

.ui-datepicker .ui-datepicker-prev:hover,
.ui-datepicker .ui-datepicker-next:hover {
    background: transparent;
    border: 1px solid transparent;
}

/* ======= PIB Booking Form — 3-layout responsive ======= */
.pib-booking-wrap {
    background: #0d0d0d;
    border-radius: var(--pib-radius);
    padding: 12px;
}

.pib-booking-bar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.pib-booking-divider {
    display: none;
}

.pib-booking-field {
    background: #1a1a1a;
    border: 1px solid #2a2a2a;
    border-radius: var(--pib-radius);
    height: 52px;
    display: flex;
    align-items: center;
    padding: 0 14px;
}

.pib-booking-field input,
.pib-booking-field .booking-select {
    background: transparent;
    border: none;
    margin: 0;
    align-self: stretch;
    color: rgba(255, 255, 255, 0.5);
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.05em;
    flex: 1;
    min-width: 0;
    padding: 0;
    outline: none;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

.pib-booking-field input::placeholder {
    color: rgba(255, 255, 255, 0.5);
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.05em;
}

.pib-booking-field .booking-select {
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Cpath d='M0 0l3.5 4L7 0z' fill='%23666'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 28px;
}

.pib-booking-field .booking-select option {
    background: #1a1a1a;
    color: #fff;
}

.pib-booking-field i {
    color: rgba(255, 255, 255, 0.3);
    font-size: 14px;
    pointer-events: none;
    margin-left: 8px;
    flex-shrink: 0;
}


.pib-booking-submit {
    background: #fff;
    color: #0d0d0d;
    border: none;
    border-radius: var(--pib-radius);
    height: 52px;
    width: 100%;
    padding: 0;
    min-width: 0;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.pib-booking-submit:hover {
    background-color: #e8e8e8;
    color: #0d0d0d;
}

/* Hero form — tablet: 2-col card grid */
@media (min-width: 768px) and (max-width: 991px) {
    .booking-wrapper .pib-booking-bar {
        grid-template-columns: 1fr 1fr;
    }
}

/* Hero form — desktop: seamless single bar */
@media (min-width: 992px) {
    .booking-wrapper .pib-booking-bar {
        display: flex;
        align-items: stretch;
        background: #1a1a1a;
        border-radius: var(--pib-radius);
        overflow: hidden;
        min-height: 52px;
        gap: 0;
    }

    .booking-wrapper .pib-booking-field {
        flex: 1;
        background: transparent;
        border: none;
        border-radius: 0;
        height: auto;
        padding: 0 16px;
    }

    .booking-wrapper .pib-booking-divider {
        display: block;
        width: 1px;
        background: #2a2a2a;
        align-self: stretch;
        flex-shrink: 0;
    }

    .booking-wrapper .pib-booking-submit {
        border-radius: 0 var(--pib-radius) var(--pib-radius) 0;
        height: auto;
        width: auto;
        padding: 0 28px;
        min-width: 120px;
        align-self: stretch;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}

.btn-form1-submit {
    display: block;
    padding: 0;
    border: none;
    margin: 0;
    width: 100%;
    color: #222;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    text-decoration: none;
    line-height: 62px;
    position: relative;
    cursor: pointer;
    letter-spacing: 3px;
    text-transform: uppercase;
    background-color: #1c1c1c;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.btn-form1-submit:hover {
    background-color: #e8e8e8;
    color: #0d0d0d;
    background-position: unset;
}

.btn-form1-submit:focus {
    outline: none;
}

.input1_inner {
    position: relative;
    position: relative;
}

.input1_inner:after {
    content: "";
    display: block;
    position: absolute;
    right: 20px;
    top: 23px;
    pointer-events: none;
    content: "\e6b6";
    font-family: "themify";
    font-size: 15px;
    color: #fff;
    line-height: 1;
}

.input1_inner input {
    display: block;
    width: 100%;
    font-size: 15px;
    color: rgba(255, 255, 255, 0.5);
    padding: 19.5px 40px 20px 19.5px;
    background: #161616;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

.input1_inner input::placeholder {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.5);
}

.input1_inner input:focus {
    outline: none;
    box-shadow: none;
    background: #222;
    color: rgba(255, 255, 255, 0.5);
}

.select1_wrapper {
    margin-bottom: 0;
}

.select1_inner {
    position: relative;
}

.select1_inner:after {
    content: "";
    display: block;
    position: absolute;
    right: 20px;
    top: 25px;
    pointer-events: none;
    content: "\e64b";
    font-family: "themify";
    font-size: 10px;
    color: #fff;
    font-weight: normal;
    line-height: 15px;
}

.select2 {
    width: 100%;
    background: #161616;
    margin-bottom: 15px;
    border: 1px solid transparent;
}

.select2 *:focus {
    outline: none !important;
}

.select2-container--default .select2-results > .select2-results__options {
    max-height: 500px;
}

.select2-container--default .select2-selection--single {
    background: none;
    border-radius: 0;
    border: none;
    height: auto;
}

.selection {
    display: inline-flex;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
    font-size: 15px;
    line-height: 28px;
    padding: 16px 49px 16px 20px;
    color: #8b8b8b;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
    display: none;
}

.select2-dropdown {
    background: none;
    border-radius: 0;
    z-index: 100;
    min-width: 0px;
    border: none;
}

.select2-container--open .select2-dropdown--above {
    border-bottom: 1px solid #2b2b2b;
}

.select2-container--open .select2-dropdown--below {
    border-top: 1px solid #2b2b2b;
}

.select2-results__option {
    padding: 10px 30px;
    background: #1c1c1c;
    font-size: 15px;
    line-height: 20px;
    color: #d1d1d1;
    border-top: 1px solid #2b2b2b;
    text-align: center;
}

.select2-results__option:first-child {
    border-top: none;
}

.small .select2-results__option {
    padding-left: 0;
}

.select2-container--default .select2-results__option[aria-selected="true"] {
    background: #fff;
    color: #222;
}

.select2-container--default
  .select2-results__option--highlighted[aria-selected] {
    background: #fff;
    color: #222;
}

/* responsive */
@media (max-width: 991.98px) {
    .form1 .col1 {
        width: 50%;
        border-bottom: 1px solid #2b2b2b;
    }

    .form1 .c2 {
        border-right: none;
    }

    .form1 .col2 {
        width: 25%;
    }

    .form1 .col3 {
        width: 25%;
    }
}

@media (max-width: 767.98px) {
    .form1 .col1 {
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid #2b2b2b;
    }

    .form1 .col2 {
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid #2b2b2b;
    }

    .form1 .col3 {
        width: 100%;
        border-right: 0;
    }

    .btn-form1-submit:after {
        background: none;
    }

    .booking-wrapper {
        position: absolute;
        left: 0;
        right: 0;
        bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        width: 100%;
        padding: 0;
        background: transparent;
    }

    .booking-wrapper .container {
        max-width: none;
        padding-left: calc(12px + env(safe-area-inset-left, 0px));
        padding-right: calc(12px + env(safe-area-inset-right, 0px));
    }

    .booking-wrapper .pib-booking-wrap {
        padding: 12px;
    }

    .booking-wrapper .pib-booking-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .booking-wrapper .pib-booking-field,
    .booking-wrapper .pib-booking-submit {
        height: 50px;
    }
}

/* booking form */
.booking-box {
    position: relative;
    background: #0d0d0d;
    padding: 30px;
    margin-bottom: 0;
}

.booking-box .pib-booking-wrap {
    padding: 0;
    background: transparent;
    margin-top: 20px;
}

.booking-box .head-box h6 {
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    color: #adadad;
    text-transform: uppercase;
    position: relative;
    letter-spacing: 3px;
    margin-bottom: 10px;
}

.booking-box .head-box h4 {
    font-family: "Gilda Display", serif;
    font-size: 27px;
    font-weight: 400;
    color: #fff;
    border-bottom: 1px solid #2b2b2b;
    padding-bottom: 15px;
    letter-spacing: 0;
    text-transform: none;
    margin-top: 0;
}

.booking-box .head-box h4 span {
    color: #222;
}

@media screen and (max-width: 991px) {
    .booking-box {
        margin-bottom: 0;
    }
}

/* ======= Pricing style ======= */
/* Extra-services cards — overlay design matching facilities-tease cards */
.pricing-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--pib-radius);
    margin-bottom: 0;
    display: block;
    height: 100%;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    isolation: isolate;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    will-change: transform;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.pricing-card:hover {
    transform: translateY(-3px) translateZ(0);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.26);
}

.pricing-card picture {
    display: block;
    height: 450px;
    border-radius: inherit;
    overflow: hidden;
}

.pricing-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
    transition: transform 0.55s ease;
}

.pricing-card:hover picture img,
.pricing-card:hover img {
    transform: scale(1.07);
}

.pricing-card .desc {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 24px 22px 20px;
    background: linear-gradient(
        to bottom,
        transparent 0,
        rgba(0, 0, 0, 0.01) 2%,
        rgba(0, 0, 0, 0.85) 90%
    );
}

/* Service name — identifier */
.pricing-card .name {
    font-family: "Gilda Display", serif;
    font-size: 24px;
    color: #fff;
    margin: 0;
    line-height: 1.12;
}

.pricing-card .name::after {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    margin: 10px 0 10px;
    background: rgba(255, 255, 255, 0.2);
    transition: width 0.8s ease-in-out;
}

.pricing-card:hover .name::after {
    width: 100%;
}

.pricing-card .subname {
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: rgba(255, 255, 255, 0.5);
    margin: 0 0 10px;
}

/* Price — visual anchor */
.pricing-card .amount {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: #fff;
    margin: 0;
    line-height: 1.5;
    display: flex;
    align-items: baseline;
    gap: 7px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.pricing-card .amount span {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.65);
    letter-spacing: 0.3px;
}

.pricing-card .amount .pib-price {
    color: #fff;
    font-weight: 600;
}

/* Thin rule separates price from features */
.pricing-card .list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 0;
}

.pricing-card .list li {
    position: relative;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.74);
    padding-left: 16px;
    line-height: 1.55;
}

.pricing-card .list li + li {
    margin-top: 4px;
}

.pricing-card .list li i {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    font-size: 10px;
    color: rgba(255, 255, 255, 0.5);
}

.pricing-card .list li i.unavailable {
    color: rgba(255, 255, 255, 0.3);
}

/* Breathing room between cards and carousel dots */
.pricing .owl-theme .owl-dots {
    margin-top: 20px !important;
}

@media screen and (max-width: 768px) {
    .pricing-card picture {
        height: 360px;
    }
}

/* ======= Accordion Box (for Faqs) style ======= */
.accordion-box {
    position: relative;
    padding: 0;
}

.accordion-box .block {
    position: relative;
    background: #161616;
    border-radius: 0px;
    overflow: hidden;
    margin-bottom: 15px;
}

.accordion-box .block.active-block {
    background-color: #202020;
}

.accordion-box .block:last-child {
    margin-bottom: 0;
}

.accordion-box .block .acc-btn {
    position: relative;
    font-size: 20px;
    line-height: 27px;
    font-weight: 400;
    cursor: pointer;
    padding: 20px 40px;
    padding-right: 60px;
    color: #fff;
    transition: var(--pib-trans-default);
    font-family: "Gilda Display", serif;
}

.accordion-box .block .acc-btn .count {
    color: #fff;
    padding-right: 3px;
}

.accordion-box .block .acc-btn:before {
    position: absolute;
    right: 35px;
    top: 20px;
    height: 30px;
    font-size: 14px;
    font-weight: normal;
    color: #fff;
    line-height: 30px;
    content: "\e61a";
    font-family: "Themify";
    transition: var(--pib-trans-default);
}

.accordion-box .block .acc-btn.active {
    background-color: #202020;
    color: #fff;
}

.accordion-box .block .acc-btn.active:before {
    color: "Themify";
    content: "\e622";
}

.accordion-box .block .acc-content {
    position: relative;
    display: none;
}

.accordion-box .block .content {
    position: relative;
    padding: 0px 40px 30px;
    background-color: #202020;
    color: #d1d1d1;
}

.accordion-box .block .acc-content.current {
    display: block;
}

.accordion-box .block .content .text {
    display: block;
    position: relative;
    top: 0px;
    display: block;
}

/* ======= Contact style ======= */
.contact h3 {
    font-size: 26px;
    font-family: "Gilda Display", serif;
    font-weight: 400;
    color: #fff;
    letter-spacing: 2px;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.map {
    -webkit-filter: grayscale(0%);
    filter: grayscale(0%);
}

/* ======= Buttons style ======= */
/* dark */
.butn-dark {
    position: relative;
    line-height: 1.2em;
}

.butn-dark a,
.butn-dark button {
    font-weight: 600;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    background: #fff;
    color: #0d0d0d;
    padding: 11px 22px;
    margin: 0;
    font-size: 12px;
    letter-spacing: 1px;
    border-radius: var(--pib-radius);
    border: 1px solid #fff;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    cursor: pointer;
    appearance: none;
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
    touch-action: manipulation;
    min-height: 44px;
}

.butn-dark a:hover,
.butn-dark button:hover {
    background-color: #1a1a1a;
    color: #fff;
    border-color: #1a1a1a;
    text-decoration: none;
}

.butn-dark a .btn-pib-icon,
.butn-dark button .btn-pib-icon {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    transition: transform 0.2s ease;
}

.butn-dark a:hover .btn-pib-icon,
.butn-dark button:hover .btn-pib-icon {
    transform: translateX(4px);
}

/* light */
.butn-light {
    position: relative;
    line-height: 1.2em;
}

.butn-light a {
    font-weight: 600;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    background: transparent;
    color: #fff;
    padding: 11px 22px;
    margin: 0;
    font-size: 12px;
    letter-spacing: 1px;
    border-radius: var(--pib-radius);
    border: 1px solid rgba(255, 255, 255, 0.45);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
    min-height: 44px;
}

.butn-light a:hover {
    background-color: #fff;
    color: #0d0d0d;
    border-color: #fff;
    text-decoration: none;
}

.butn-light a .btn-pib-icon {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    transition: transform 0.2s ease;
}

.butn-light a:hover .btn-pib-icon {
    transform: translateX(4px);
    color: #0d0d0d;
}

.butn-light a:hover .btn-pib-text {
    color: #0d0d0d;
}

/* dark2 */
.butn-dark2 {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    line-height: 1.2em;
    font-weight: 400;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    background: #222;
    color: #fff;
    padding: 13px 22px;
    margin: 0;
    font-size: 15px;
    letter-spacing: 3px;
}

.butn-dark2:after {
    content: "";
    width: 0;
    height: 100%;
    position: absolute;
    bottom: 0;
    left: 100%;
    z-index: 1;
    background: #fff;
    transition: var(--pib-trans-default);
}

.butn-dark2 span {
    position: relative;
    z-index: 2;
}

.butn-dark2:hover:after {
    width: 100%;
    left: 0;
    transition: width 0.25s ease;
}

.butn-dark2:hover span {
    color: #222;
}

/* light2 */
.butn-light2 {
    position: relative;
    line-height: 1.2em;
    font-weight: 400;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    background: transparent;
    color: #fff;
    padding: 12px 20px;
    margin: 0;
    position: relative;
    font-size: 15px;
    letter-spacing: 3px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    overflow: hidden;
}

.butn-light2:after {
    content: "";
    width: 0;
    height: 100%;
    position: absolute;
    bottom: 0;
    left: 100%;
    z-index: 1;
    transition: var(--pib-trans-default);
    background: #fff;
}

.butn-light2 span {
    position: relative;
    z-index: 2;
}

.butn-light2:hover:after {
    width: 100%;
    left: 0;
    transition: width 0.25s ease;
}

.butn-light2:hover span {
    color: #222;
}

/* ====== Coming Soon ======= */
.comming {
    min-height: 100vh;
    height: auto;
    position: relative;
    background-blend-mode: overlay;
    background: rgba(0, 0, 0, 0.4);
    background-image: url("../img/hotel/2.webp");
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: #fff;
}

@media (max-width: 767px) {
    .comming {
        min-height: 120vh;
    }
}

.comming .item {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 30px 15px;
    margin-bottom: 30px;
}

.comming h6 {
    color: #fff;
    font-size: 15px;
    font-family: "Montserrat", sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    margin-bottom: 30px;
    letter-spacing: 3px;
}

.comming h3 {
    font-size: 48px;
    color: #fff;
    position: relative;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin-bottom: 0px;
}

.comming h2 {
    font-size: 40px;
    font-weight: 400;
    color: #fff;
    position: relative;
    margin-bottom: 10px;
}

.comming h1 {
    font-size: 200px;
    font-weight: 400;
    margin-bottom: 0px;
    position: relative;
    color: transparent;
    -webkit-text-stroke: 1px #fff;
    opacity: 0.8;
    line-height: 160px;
}

.comming p {
    color: #fff;
    font-size: 15px;
}

/* coming form */
.comming form {
    margin-top: 30px;
    position: relative;
}

.comming form input {
    width: 100%;
    padding: 11px 50px 11px 11px;
    background-color: transparent;
    border: 1px solid #fff;
    border-radius: var(--pib-radius);
    color: #fff;
    margin-bottom: 15px;
    outline: none;
}

.comming form input::placeholder {
    color: #fff;
}

.comming form button {
    background-color: #fff;
    padding: 6px 20px;
    border-radius: var(--pib-radius);
    color: #fff;
    border: 0;
    position: absolute;
    top: 4px;
    right: 4px;
    cursor: pointer;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 400;
    outline: none;
}

.comming form button:hover {
    background-color: #222;
    color: #fff;
    outline: none;
}

/* go home */
.go-back {
    margin-top: 45px;
}

.go-back a {
    color: #fff;
    display: inline-block;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 3px;
}

.go-back a:hover {
    color: #fff;
}

.go-back a span {
    transition: var(--pib-trans-default);
}

.go-back a span i {
    color: #fff;
    font-size: 12px;
}

.go-back a:hover span {
    padding-right: 15px;
}

/* ======= 404 Page style ======= */
.error-form {
    position: relative;
    max-width: 520px;
    margin: 50px auto 0;
}

.error-form form {
    position: relative;
}

.error-form .form-group {
    position: relative;
    margin: 0;
}

.error-form .form-group input[type="text"],
.error-form .form-group input[type="search"],
.error-form .form-group input[type="email"] {
    position: relative;
    width: 100%;
    line-height: 30px;
    padding: 20px 60px 20px 30px;
    height: 70px;
    display: block;
    font-family: "Montserrat", sans-serif;
    font-size: 15px;
    background: #f4f4f4;
    color: #d1d1d1;
    border-radius: var(--pib-radius);
    border: 1px solid #f4f4f4;
    transition: var(--pib-trans-default);
}

.error-form .form-group input[type="text"]:focus,
.error-form .form-group input[type="email"]:focus,
.error-form .form-group input[type="search"]:focus {
    border-color: #f4f4f4;
}

.error-form .form-group input::-webkit-input-placeholder {
    color: #f4f4f4;
}

.error-form .form-group .theme-btn {
    position: absolute;
    right: 20px;
    top: 10px;
    width: 40px;
    height: 40px;
    line-height: 40px;
    font-size: 20px;
    background: none;
    color: #d1d1d1;
}

.error-form .form-group .theme-btn span {
    vertical-align: middle;
    outline: none;
}

/* ======= Footer style ======= */
.footer {
    position: relative;
    display: block;
}

.footer-top {
    position: relative;
    display: block;
    background-color: #0d0d0d;
    padding: 90px 0 60px 0;
    z-index: 1;
}

.footer-top .footer-column {
    margin-bottom: 30px;
}

.footer-title {
    font-size: 24px;
    color: #fff;
    margin-bottom: 20px;
}

.footer-about-text {
    font-size: 15px;
    color: #d1d1d1;
    margin: 0;
}

.footer-about-social-list {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 25px;
}

.footer-about-social-list a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #d1d1d1;
    font-size: 15px;
    background-color: transparent;
    transition: var(--pib-trans-default);
}

.footer-about-social-list a:hover {
    background-color: #fff;
    border-color: #fff;
    color: #0d0d0d;
}

.footer-about-social-list a svg {
    width: 15px;
    height: 15px;
    display: block;
    flex-shrink: 0;
}

.footer-explore-list li + li {
    margin-top: 3px;
}

.footer-explore-list li a {
    position: relative;
    display: block;
    font-size: 15px;
    color: #d1d1d1;
    transition: var(--pib-trans-default);
}

.footer-explore-list li a:hover {
    padding-left: 15px;
    color: #fff;
}

.footer-explore-list li a:before {
    position: absolute;
    top: 55%;
    left: 0;
    bottom: 0;
    width: 6px;
    height: 6px;
    content: "";
    background-color: #fff;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    opacity: 0;
    border-radius: 50%;
    transition: var(--pib-trans-default);
}

.footer-explore-list li a:hover:before {
    opacity: 1;
}

/* reservation / phone call-out block */
.reservations {
    display: flex;
    align-items: center;
    gap: 14px;
}

.reservations .icon {
    flex-shrink: 0;
}

.reservations .icon span {
    font-size: 42px;
    color: #fff;
    display: block;
    line-height: 1;
}

.reservations .icon.color-1 span {
    font-size: 42px;
    color: #fff;
}

.reservations .text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.reservations .text p {
    font-size: 13px;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(255, 255, 255, 0.65);
    margin: 0;
    line-height: 1;
}

.reservations .text a {
    font-size: 26px;
    font-weight: 400;
    color: #fff;
    letter-spacing: -0.5px;
    line-height: 1.1;
    transition: color 0.25s ease;
}

.reservations .text a:hover {
    color: rgba(255, 255, 255, 0.75);
}

.reservations .text a.color-1 {
    color: #fff;
}

.footer-contact {
    position: relative;
    display: block;
}

.footer-contact .footer-title {
    margin-bottom: 20px;
}

.footer-contact-text,
.footer-contact-phone,
.footer-contact-mail {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    color: #d1d1d1;
    line-height: 1.6em;
    margin: 0;
    padding: 7px 0;
}

.footer-contact-info p {
    margin: 0;
}

.footer-contact-info [class^="flaticon-"],
.footer-contact-info [class*=" flaticon-"] {
    font-size: 16px;
    color: #fff !important;
    flex-shrink: 0;
    width: 18px;
    text-align: center;
}

.footer-contact-text a,
.footer-contact-phone a,
.footer-contact-mail a {
    color: #d1d1d1;
    font-size: 14px;
    transition: color 0.25s ease;
}

.footer-contact-text a:hover,
.footer-contact-mail a:hover {
    color: #fff;
}

/* Footer phone — prominent treatment */
.footer-contact-phone {
    align-items: center;
    padding: 10px 0 6px;
    gap: 14px;
}

.footer-contact-phone .flaticon-call {
    font-size: 42px !important;
    width: 42px !important;
    color: #fff !important;
}

.footer-contact-phone a {
    font-size: 26px !important;
    font-weight: 400;
    color: #fff !important;
    letter-spacing: -0.5px;
    line-height: 1;
}

.footer-contact-phone a:hover {
    color: #d1d1d1 !important;
}

/* language */
.footer-language {
    width: 160px;
    display: flex;
    flex-wrap: wrap;
    position: relative;
    margin-top: 30px;
}

.footer-language i {
    position: absolute;
    right: 18px;
    top: 17px;
    font-size: 15px;
    opacity: 0.6;
    color: #d1d1d1;
}

.footer-language select {
    height: 50px;
    background: #161616;
    color: #d1d1d1;
    border: 1px solid #161616;
    border-radius: var(--pib-radius);
}

.footer-language select option {
    color: #fff;
}

select {
    width: 160px;
    max-width: 100%;
    height: 70px;
    padding: 0 20px;
    border: 1px solid #d1d1d1;
    color: #d1d1d1;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.footer-bottom {
    position: relative;
    display: block;
    background-color: #111;
    -webkit-box-shadow: 0px -1px 0px 0px rgba(255, 255, 255, 0.05);
    box-shadow: 0px -1px 0px 0px rgba(255, 255, 255, 0.05);
    padding: 20px 0;
}

.footer-bottom-inner {
    position: relative;
    display: block;
    text-align: center;
}

.footer-bottom-copy-right {
    font-size: 12px;
    color: #d1d1d1;
    margin: 0;
}

.footer-bottom-copy-right a {
    color: #fff;
    transition: var(--pib-trans-default);
}

.footer-bottom-copy-right a:hover {
    color: #fff;
}

/* ======= toTop Button style ======= */
.progress-wrap {
    position: fixed;
    bottom: 30px;
    right: 30px;
    height: 45px;
    width: 45px;
    cursor: pointer;
    display: block;
    border-radius: 50px;
    -webkit-box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    -webkit-transform: translateY(20px);
    -ms-transform: translateY(20px);
    transform: translateY(20px);
    transition: var(--pib-trans-default);
}

.progress-wrap.active-progress {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
}

.progress-wrap::after {
    position: absolute;
    font-family: "themify";
    content: "\e648";
    text-align: center;
    line-height: 45px;
    font-size: 12px;
    font-weight: 700;
    color: #323232;
    left: 0;
    top: 0;
    height: 45px;
    width: 45px;
    cursor: pointer;
    display: block;
    z-index: 1;
    transition: var(--pib-trans-default);
}

.progress-wrap svg path {
    fill: none;
}

.progress-wrap svg.progress-circle path {
    stroke: rgba(0, 0, 0, 0.2);
    stroke-width: 2;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    transition: var(--pib-trans-default);
}

.progress-wrap {
    -webkit-box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
}

.progress-wrap::after {
    color: #fff;
}

.progress-wrap svg.progress-circle path {
    stroke: #fff;
}

/* =======  Overlay Effect Bg image style  ======= */
[data-overlay-dark],
[data-overlay-darkgray],
[data-overlay-light] {
    position: relative;
}

[data-overlay-dark] .container,
[data-overlay-darkgray] .container,
[data-overlay-light] .container {
    position: relative;
    z-index: 2;
}

[data-overlay-dark]:before,
[data-overlay-darkgray]:before,
[data-overlay-light]:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

[data-overlay-dark]:before {
    background: #0d0d0d;
}

[data-overlay-darkgray]:before {
    background: #222;
}

[data-overlay-light]:before {
    background: #fff;
}

[data-overlay-dark] h1,
[data-overlay-dark] h2,
[data-overlay-dark] h3,
[data-overlay-dark] h4,
[data-overlay-dark] h5,
[data-overlay-dark] h6,
[data-overlay-dark] span {
    color: #ffffff;
}

[data-overlay-darkgray] h1,
[data-overlay-darkgray] h2,
[data-overlay-darkgray] h3,
[data-overlay-darkgray] h4,
[data-overlay-darkgray] h5,
[data-overlay-darkgray] h6,
[data-overlay-darkgray] span {
    color: #fff;
}

[data-overlay-light] h1,
[data-overlay-light] h2,
[data-overlay-light] h3,
[data-overlay-light] h4,
[data-overlay-light] h5,
[data-overlay-light] h6,
[data-overlay-light] span {
    color: #999;
}

[data-overlay-dark] p {
    /* color: #fff */
}

[data-overlay-darkgray] p {
    color: #999;
}

[data-overlay-light] p {
    color: #999;
}

[data-overlay-dark="0"]:before,
[data-overlay-darkgray="0"]:before,
[data-overlay-light="0"]:before {
    opacity: 0;
}

[data-overlay-dark="1"]:before,
[data-overlay-darkgray="1"]:before,
[data-overlay-light="1"]:before {
    opacity: 0.1;
}

[data-overlay-dark="2"]:before,
[data-overlay-darkgray="2"]:before,
[data-overlay-light="2"]:before {
    opacity: 0.2;
}

[data-overlay-dark="3"]:before,
[data-overlay-darkgray="3"]:before,
[data-overlay-light="3"]:before {
    opacity: 0.3;
}

[data-overlay-dark="4"]:before,
[data-overlay-darkgray="4"]:before,
[data-overlay-light="4"]:before {
    opacity: 0.4;
}

[data-overlay-dark="5"]:before,
[data-overlay-darkgray="5"]:before,
[data-overlay-light="5"]:before {
    opacity: 0.5;
}

[data-overlay-dark="6"]:before,
[data-overlay-darkgray="6"]:before,
[data-overlay-light="6"]:before {
    opacity: 0.6;
}

[data-overlay-dark="7"]:before,
[data-overlay-darkgray="7"]:before,
[data-overlay-light="7"]:before {
    opacity: 0.7;
}

[data-overlay-dark="8"]:before,
[data-overlay-darkgray="8"]:before,
[data-overlay-light="8"]:before {
    opacity: 0.8;
}

[data-overlay-dark="9"]:before,
[data-overlay-darkgray="9"]:before,
[data-overlay-light="9"]:before {
    opacity: 0.9;
}

[data-overlay-dark="10"]:before,
[data-overlay-darkgray="10"]:before,
[data-overlay-light="10"]:before {
    opacity: 1;
}

/* ======= Responsive style ======= */

/* Bootstrap's sm/md breakpoints cap containers at 540px and 720px, which leaves
   large dead zones on landscape phones and tablets. Override to 96% in that range. */
@media (min-width: 576px) and (max-width: 991.98px) {
    .container {
        max-width: 96% !important;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1400px !important;
    }
}

@media (min-width: 1920px) {
    .container {
        max-width: 1800px !important;
    }
}

@media (min-width: 2560px) {
    .container {
        max-width: 2400px !important;
    }
}

@media (min-width: 3840px) {
    .container {
        max-width: 3400px !important;
    }
}

@media screen and (max-width: 991px) {
    .bg-fixed {
        background-attachment: scroll !important;
    }

    .header {
        background-attachment: scroll !important;
        background-position: 50% 0% !important;
    }

    .header .caption h1 {
        font-size: 40px;
    }

    .video-fullscreen-wrap .booking-box,
    .kenburns-inner .booking-box,
    .banner-header .booking-box {
        display: none;
    }
}

@media screen and (max-width: 767px) {
    .header .caption h1 {
        font-size: 30px;
        margin-bottom: 15px;
        letter-spacing: 10px;
        line-height: 1.35em;
    }

    .header .caption h3 {
        font-size: 30px;
        margin-bottom: 15px;
        letter-spacing: 10px;
        line-height: 1.35em;
    }

    .header .caption h4 {
        font-size: 12px;
    }

    .header .caption p {
        font-size: 15px;
        margin-right: 10px;
    }

    .header .caption .butn-light {
        margin-right: 10px;
    }

    .portfolio .filtering span {
        margin-bottom: 10px;
    }

    .news .item .con h5,
    .news .item .con h5 a {
        font-size: 20px;
    }

    .post-comment-section h3 span {
        margin-left: 0px;
    }

    .banner-header .caption {
        text-align: center;
    }

    .video-fullscreen-wrap .caption.textleft,
    .video-fullscreen-wrap .caption {
        text-align: center;
    }
}

/* ======= Rating Cards — no animation, always visible ======= */
/* Removed opacity fade: caused visual glitch on hover via animate-box parent re-trigger */
/* .rating-badges .col-md-12,
.rating-badges .col-md-12.in-view {
    opacity: 1 !important;
    transition: none !important;
} */
/* ======= Reviews section: remove overlay, keep it for the booking form ======= */
/* Reviews .background has data-overlay-dark but NO data-background (no image).
   Booking form .background has BOTH — the :not() selector keeps the booking form's overlay. */
.testimonials .background[data-overlay-dark]:not([data-background])::before {
    display: none;
}

/* ======= Credibility Block (About page: Stats + Rating Badges) ======= */
.credibility-block .stat-item {
    text-align: center;
    padding: 22px 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: var(--pib-radius);
    margin-bottom: 20px;
}

.credibility-block .stat-item .stat-number {
    font-family: "Gilda Display", serif;
    font-size: 36px;
    color: #fff;
    line-height: 1;
    margin-bottom: 8px;
    letter-spacing: -1px;
}

.credibility-block .stat-item .stat-label {
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 3px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
}

/* ======= Credibility Teaser (Home About + Rating Badges) ======= */
.rating-badges .col-md-12 {
    margin-bottom: 18px;
}

.rating-badges .col-md-12:last-child {
    margin-bottom: 0;
}

.rating-card {
    display: block;
    background: #fff;
    border: 1px solid #ebebeb;
    padding: 22px 26px;

    /* position: relative */
    /* cursor: pointer */
    /* transition: transform 0.25s ease */
}

.rating-card:hover {
    transform: translateY(-2px);
}

/* All children non-interactive — anchor bounding box is the sole hover target, no child-boundary events */
.rating-card * {
    pointer-events: none;
}

.rating-card-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    width: 100%;
}

.rating-left {
    flex: 1;
    min-width: 0;
}

.rating-right {
    text-align: right;
    flex-shrink: 0;
    width: auto;
    min-width: 80px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rating-card .platform-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.rating-card .platform-logo {
    max-height: 28px;
    width: auto;
    flex-shrink: 0;
}

.rating-card .platform {
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 11px;
    color: #777;
    margin-bottom: 0;
}

.rating-card .score {
    font-family: "Gilda Display", serif;
    font-size: 36px;
    color: #232323;
    line-height: 1;
    margin-bottom: 8px;
}

.rating-card .score-out-of {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: #222;
    margin-left: 4px;
    font-weight: 400;
}

.rating-card .stars {
    margin-bottom: 12px;
}

.rating-card .stars i {
    font-size: 12px;
    margin-right: 1px;
}

.rating-card .review-link {
    display: inline-block;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 11px;
    color: #232323;
    border-bottom: 1px solid #222;
    padding-bottom: 2px;
}

.rating-card .quality-label {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 13px;
    color: #232323;
    margin-bottom: 0;
}

.rating-card .review-count {
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: 11px;
    color: #aaa;
    line-height: 1.5;
    white-space: normal;
    word-break: break-word;
}

/* ======= Facilities Tease (Home Main Facilities Photo Blocks) ======= */
.facilities-tease {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 22px;
    margin-left: 0;
    margin-right: 0;
    align-items: stretch;
}

.facilities-tease > [class*="col-"] {
    width: auto;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0 !important;
    flex: none;
}

.facilities-tease > .col-md-4 {
    grid-column: span 4;
}

.facilities-tease > .col-md-6,
.facilities-tease > .col-md-6:nth-child(4),
.facilities-tease > .col-md-6:nth-child(5) {
    grid-column: span 6;
}

.facilities-tease .item {
    display: block;
    position: relative;
    overflow: hidden;
    color: #fff;
    height: clamp(360px, 28vw, 420px);
    border-radius: var(--pib-radius);
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    isolation: isolate;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    will-change: transform;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.facilities-tease .item:hover {
    transform: translateY(-3px) translateZ(0);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.26);
}

.facilities-tease .item picture {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: inherit;
    overflow: hidden;
}

.facilities-tease .item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: inherit;
    transition: transform 0.55s ease;
}

.facilities-tease .item:hover img {
    transform: scale(1.06);
}

.facilities-tease .item .overlay {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(13, 13, 13, 0.14) 0%, rgba(13, 13, 13, 0.24) 34%, rgba(13, 13, 13, 0.9) 76%, rgba(13, 13, 13, 0.98) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 10px;
    padding: 24px 20px 20px;
    overflow: hidden;
}

.facilities-tease .item .overlay h5 {
    font-family: "Gilda Display", serif;
    font-size: 22px;
    color: #fff;
    margin-bottom: 0;
    line-height: 1.08;
    min-height: calc(2 * 1.12em);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    text-shadow: 0 3px 10px rgba(0, 0, 0, 0.16);
}

.facilities-tease .item .overlay h5::after {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    margin: 8px 0 0;
    background: rgba(255, 255, 255, 0.2);
    transition: width 0.8s ease-in-out;
}

.facilities-tease .item:hover .overlay h5::after {
    width: 100%;
}

.facilities-tease .item .overlay p {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.78);
    margin-bottom: 0;
    line-height: 1.45;
    min-height: calc(2 * 1.5em);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.facilities-tease .item .overlay .discover {
    align-self: flex-start;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 11px;
    color: #fff;
    border-bottom: none;
    padding-bottom: 0;
    transition: color 0.25s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 0;
    padding-top: 0;
}

.facilities-tease .item:hover .overlay .discover {
    color: #fff;
}

.facilities-tease .item .overlay .discover i {
    transition: transform 0.2s ease;
    font-size: 11px;
}

.facilities-tease .item:hover .overlay .discover i {
    transform: translateX(4px);
}

@media (max-width: 991.98px) {
    .facilities-tease {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .facilities-tease > .col-md-4,
    .facilities-tease > .col-md-6,
    .facilities-tease > .col-md-6:nth-child(4),
    .facilities-tease > .col-md-6:nth-child(5) {
        grid-column: span 1;
    }

    .facilities-tease .item {
        height: 340px;
    }
}

@media screen and (max-width: 768px) {
    .facilities-tease {
        grid-template-columns: 1fr;
    }

    .facilities-tease > .col-md-4,
    .facilities-tease > .col-md-6,
    .facilities-tease > .col-md-6:nth-child(4),
    .facilities-tease > .col-md-6:nth-child(5) {
        grid-column: auto;
    }

    .facilities-tease .item {
        height: 300px;
    }
}

/* ======= Room Cards (Overlay Style — matches facilities-tease) ======= */
.room-card {
    position: relative;
    overflow: hidden;
    display: block;
}

.room-card img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    display: block;
    transition: transform 0.55s ease;
}

.room-card:hover img {
    transform: scale(1.06);
}

.room-card .overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.05) 0%,
    rgba(0, 0, 0, 0.8) 100%
  );
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px 30px;
    color: #fff;
}

.room-card .room-price {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 6px;
}

.room-card .overlay h5 {
    font-family: "Gilda Display", serif;
    font-size: 26px;
    color: #fff;
    margin-bottom: 8px;
    line-height: 1.2;
}

.room-card .overlay .discover {
    align-self: flex-start;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 11px;
    color: #fff;
    border-bottom: 1px solid #fff;
    padding-bottom: 2px;
    transition: color 0.25s ease;
}

.room-card:hover .overlay .discover {
    color: #fff;
}

.room-book-badge {
    position: absolute;
    top: 0;
    right: 0;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    background: rgba(35, 35, 35, 0.85);
    color: #fff;
    padding: 14px 9px;
    font-family: "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 3px;
    font-size: 10px;
    z-index: 3;
    transition: background 0.25s ease;
    text-decoration: none;
}

.room-book-badge:hover {
    background: #fff;
    color: #222;
}

@media screen and (max-width: 768px) {
    .room-card img {
        height: 280px;
    }
}

/* ======= Pricing Tables (dark theme — inherits body #0d0d0d) ======= */
.pricing-section {
    background: transparent;
}

.pricing-category {
    margin-bottom: 48px;
}

.pricing-category:last-child {
    margin-bottom: 0;
}

.pricing-category-title {
    font-family: "Gilda Display", serif;
    font-size: 22px;
    font-weight: 400;
    color: #fff;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.pricing-table {
    width: 100%;
}

.pricing-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    transition: background 0.25s;
}

.pricing-row:last-child {
    border-bottom: none;
}

.pricing-row:hover {
    background: rgba(255, 255, 255, 0.04);
}

.pricing-row-name {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: #aaa;
    flex: 1;
    padding-right: 16px;
}

.pricing-row-duration {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.4);
    margin-left: 8px;
    white-space: nowrap;
}

.pricing-row-price {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    text-align: right;
}

.pricing-row-price .price-unit {
    font-size: 11px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.4);
    margin-left: 2px;
}

.price-tier-label {
    font-size: 10px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.4);
    display: block;
    text-align: right;
    letter-spacing: 0.5px;
}

/* Package highlight cards */
.pricing-packages {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 16px;
    margin-top: 24px;
}

.pricing-package-card {
    border: 1px solid rgba(255, 255, 255, 0.12);
    padding: 20px;
    position: relative;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--pib-radius);
}

.pricing-package-card.is-promo {
    border-color: rgba(255, 255, 255, 0.4);
}

.pricing-package-card.is-promo::before {
    content: "PROMO";
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.65);
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    letter-spacing: 2px;
    padding: 3px 6px;
}

.package-card-name {
    font-family: "Gilda Display", serif;
    font-size: 16px;
    color: #fff;
    margin-bottom: 6px;
    line-height: 1.4;
}

.package-card-detail {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.45);
    margin-bottom: 14px;
    line-height: 1.6;
}

.package-card-price {
    font-family: "Montserrat", sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #fff;
}

.package-card-price .price-unit {
    font-size: 13px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.4);
    margin-left: 2px;
}

/* Two-column pricing grid for wide tables */
.pricing-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 40px;
}

@media (max-width: 767px) {
    .pricing-cols {
        grid-template-columns: 1fr;
    }

    .pricing-packages {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 480px) {
    .pricing-packages {
        grid-template-columns: 1fr;
    }
}

/* ======= Menu: hamburger transforms to X natively via .active class ======= */
/* The hamburger already has rotateZ CSS for .active — just keep it visible */
/* Hide the redundant in-panel close button; hamburger handles open/close */
.pib-menu-close {
    display: none !important;
}

/* ======= rooms1 .item — grid (non-carousel) context fix ======= */
.rooms1 .item {
    position: relative;
    overflow: hidden;
    display: block;
}

/* Anchor replaces the div wrapper — needs block layout to fill card width */
.rooms1 .item a.position-re {
    display: block;
}

.rooms1 .item:hover .position-re img {
    transform: scale(1.06);
    filter: brightness(85%);
}

.rooms1 .item .position-re img {
    transition: transform 0.55s ease, filter 0.55s ease;
}

/* ======= Menu Page style ======= */
/* ── Controls bar ────────────────────────────────────────────────────────── */
.menu-controls-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    background: #0d0d0d;
    border-bottom: 1px solid #222;
    opacity: 0;

    /* Initially hidden */
    transform: translateY(-100%);

    /* Fully hidden above the viewport */
    pointer-events: none;
    transition: opacity 350ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
    transform 350ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: opacity, transform;
}

.menu-controls-bar.is-visible {
    opacity: 1;
    transform: translateY(
    0
  );

    /* This class will be replaced by .menu-bar-active */
    pointer-events: auto;
}

/* Disable double-tap zoom site-wide; pinch-zoom (2-finger) is preserved */
button,
input,
select,
a,
[role="button"],
[role="menuitem"] {
    touch-action: manipulation;
}

/* ── Top bar row ─────────────────────────────────────────────────────────── */
.menu-topbar {
    padding: 10px 0;
}

.menu-topbar-inner {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Search */
.menu-search-wrap {
    flex: 1;
    position: relative;
    min-width: 140px;
    height: 40px;
    overflow: hidden;
    background: #121212;
    border: 1px solid #242424;
    border-radius: var(--pib-radius);
    transition: border-color 0.25s ease, background 0.25s ease;
}

.menu-search-wrap:focus-within {
    background: #161616;
    border-color: #3a3a3a;
}

.menu-search-wrap .menu-search-input,
#menu-search {
    width: 100%;
    height: 40px;
    max-width: none;
    margin-bottom: 0;
    background: transparent;
    border: 0;
    color: #fff;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    letter-spacing: 0.3px;
    line-height: 40px;
    padding: 0 44px 0 15px;
    box-sizing: border-box;
    transition: color 0.25s ease;
}

.menu-search-input::placeholder {
    color: rgba(255, 255, 255, 0.42);
}

.menu-search-input:focus {
    outline: none;
    border-color: transparent;
    box-shadow: none;
}

.menu-search-icon {
    position: absolute;
    right: 14px;
    top: 0;
    height: 40px;
    display: flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.42);
    font-size: 16px;
    pointer-events: none;
    line-height: 0;
}

.menu-search-icon i {
    display: block;
    line-height: 1;
}

/* Top bar controls group */
.menu-topbar-controls {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

/* Allergen button */
.menu-ctl-btn {
    background: transparent;
    border: none;
    color: #888;
    cursor: pointer;
    font-size: 15px;
    padding: 0 8px;
    height: 40px;
    position: relative;
    transition: color 0.25s;
    display: flex;
    align-items: center;
    line-height: 1;
}

.menu-ctl-btn:hover {
    color: #fff;
}

.allergen-badge {
    position: absolute;
    top: -3px;
    right: -3px;
    background: #fff;
    color: #000;
    font-family: "Montserrat", sans-serif;
    font-size: 8px;
    font-weight: 700;
    width: 13px;
    height: 13px;
    display: none;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.allergen-badge.visible {
    display: flex;
}

/* ── Allergen dropdown ───────────────────────────────────────────────────── */
.allergen-dropdown {
    position: relative;
    flex-shrink: 0;
}

.allergen-menu {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    background: #0d0d0d;
    border: 1px solid #222;
    min-width: 180px;
    max-height: 280px;
    overflow-y: auto;
    z-index: 101;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
    scrollbar-width: thin;
    scrollbar-color: #333 transparent;
}

.allergen-menu.open {
    display: block;
}

.allergen-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #444;
}

.allergen-menu-header > span {
    pointer-events: none;
}

.allergen-menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.allergen-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    cursor: pointer;
    color: #888;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: color 0.25s,
    background 0.25s;
    white-space: nowrap;
}

.allergen-item:hover {
    color: #fff;
    background: #141414;
}

.allergen-item.active {
    color: #fff;
    background: #141414;
}

.allergen-check {
    width: 14px;
    flex-shrink: 0;
    font-size: 11px;
    color: #fff;
    opacity: 0;
    transition: opacity 0.25s;
}

.allergen-item.active .allergen-check {
    opacity: 1;
}

.allergen-clear-btn {
    background: none;
    border: none;
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #444;
    cursor: pointer;
    padding: 0;
    transition: color 0.25s;
}

.allergen-clear-btn.has-selections {
    color: #888;
}

.allergen-clear-btn.has-selections:hover {
    color: #fff;
}

/* Language + Currency button groups */
.menu-ctl-group {
    display: flex;
    align-items: center;
    gap: 2px;
}

.menu-ctl-txt {
    background: transparent;
    border: none;
    color: #888;
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    padding: 4px 5px;
    transition: color 0.25s;
    line-height: 1;
}

.menu-ctl-txt:hover {
    color: rgba(255, 255, 255, 0.65);
}

.menu-ctl-txt.active {
    color: #fff;
}

/* ── Language + Currency selects ─────────────────────────────────────────── */
.menu-ctl-select {
    background: #141414;
    border: 1px solid #333;
    color: #fff;
    padding: 0 8px;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    letter-spacing: 0.2px;
    border-radius: 0;
    cursor: pointer;
    transition: border-color 0.25s;
    flex-shrink: 0;
    height: 40px;
    max-width: 130px;
}

.menu-ctl-select:focus {
    outline: none;
    border-color: #fff;
}

.menu-ctl-select option {
    background: #141414;
}

@media (min-width: 768px) {
    .menu-ctl-select {
        background-color: #161616;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Cpath d='M0 0l3.5 4L7 0z' fill='%23666'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 8px center;
        border: none;
        color: #fff;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        padding: 0 26px 0 10px;
        height: 40px;
        max-width: none;
        font-size: 12px;
        letter-spacing: 0.8px;
        transition: background-color 0.25s;
    }

    .menu-ctl-select:focus {
        outline: none;
        background-color: #222;
    }

    .menu-ctl-select option {
        background: #161616;
        font-size: 13px;
    }
}

/* ── Level-1 FOOD | DRINKS toggle ───────────────────────────────────────── */
.menu-tabs-l1-row {
    border-bottom: 1px solid #1a1a1a;
    padding: 0 4px;
    display: flex;
    align-items: stretch;
}

.menu-tab-l1 {
    background: transparent;
    border: none;
    border-bottom: 1px solid transparent;
    color: #555;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 10px 14px;
    cursor: pointer;
    transition: color 0.25s,
    border-color 0.25s;
    white-space: nowrap;
}

.menu-tab-l1:hover {
    color: rgba(255, 255, 255, 0.65);
}

.menu-tab-l1.active {
    color: #fff;
    border-bottom-color: #fff;
}

/* ── Category tabs ───────────────────────────────────────────────────────── */
.menu-tabs-row {
    border-top: 1px solid #1a1a1a;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.menu-tabs-row::-webkit-scrollbar {
    display: none;
}

.menu-tabs {
    display: flex;
    align-items: stretch;
    white-space: nowrap;
    padding: 0 4px;
}

.menu-tab {
    background: transparent;
    border: none;
    border-bottom: 1px solid transparent;
    color: #888;
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 10px 12px;
    cursor: pointer;
    transition: color 0.25s,
    border-color 0.25s;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1.4;
}

.menu-tab:hover {
    color: rgba(255, 255, 255, 0.55);
}

.menu-tab.active {
    color: #fff;
    border-bottom-color: #fff;
}

/* ── Category dropdown (unified, inline in topbar) ── */
.menu-tabs-l1-row {
    display: none;
}

.menu-cat-dropdown {
    position: relative;
    flex-shrink: 0;
}

.menu-cat-trigger {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    height: 40px;
    padding: 0 14px;
    border-radius: var(--pib-radius);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    max-width: 180px;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.25s ease, border-color 0.25s ease;
}

.menu-cat-trigger:hover {
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.07);
}

.menu-cat-trigger:active {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.3);
}

.menu-cat-trigger[aria-expanded="true"] {
    background: rgba(255, 255, 255, 0.06);
    border-color: #fff;
}

.menu-cat-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex-shrink: 1;
    min-width: 0;
}

.menu-cat-chevron {
    font-size: 9px;
    display: inline-block;
    transition: transform 0.25s;
    flex-shrink: 0;
}

.menu-cat-trigger[aria-expanded="true"] .menu-cat-chevron {
    transform: rotate(180deg);
}

.menu-cat-menu {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    background: #0d0d0d;
    border: 1px solid #222;
    min-width: 220px;
    max-height: 280px;
    overflow-y: auto;
    z-index: 101;
    scrollbar-width: thin;
    scrollbar-color: #333 transparent;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}

.menu-cat-menu::-webkit-scrollbar {
    width: 4px;
}

.menu-cat-menu::-webkit-scrollbar-track {
    background: transparent;
}

.menu-cat-menu::-webkit-scrollbar-thumb {
    background: #333;
}

.menu-cat-menu.open {
    display: block;
}

/* ── FOOD | DRINKS tab strip ─────────────────────────────────────────────── */
.menu-cat-tabs {
    display: flex;
    position: sticky;
    top: 0;
    background: #0d0d0d;
    border-bottom: 1px solid #222;
    z-index: 1;
}

.menu-cat-tab {
    flex: 1;
    padding: 10px 0;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: #555;
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: pointer;
    transition: color 0.25s,
    border-color 0.25s;
    margin-bottom: -1px;
}

.menu-cat-tab:hover {
    color: rgba(255, 255, 255, 0.6);
}

.menu-cat-tab.active {
    color: #fff;
    border-bottom-color: #fff;
}

/* ── Category panels ─────────────────────────────────────────────────────── */
.menu-cat-panel {
    list-style: none;
    margin: 0;
    padding: 4px 0;
}

.menu-cat-panel--hidden {
    display: none;
}

.menu-cat-menu li[data-tab] {
    padding: 9px 14px;
    cursor: pointer;
    color: #888;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: color 0.25s,
    background 0.25s;
    white-space: nowrap;
}

.menu-cat-menu li[data-tab]:hover {
    color: #fff;
    background: #141414;
}

.menu-cat-menu li[data-tab].active {
    color: #fff;
    background: #141414;
}

.menu-cat-menu li[data-tab].active::before {
    content: "● ";
    font-size: 7px;
    vertical-align: middle;
    opacity: 0.7;
}

/* ── Section layout ──────────────────────────────────────────────────────── */
.menu-section {
    padding-top: 56px;
    scroll-margin-top: 160px;
}

.menu-sec-heading {
    margin-bottom: 30px;
}

.menu-sec-title {
    font-family: "Gilda Display", serif;
    font-size: 26px;
    letter-spacing: 0.02em;
    text-transform: none;
    color: #fff;
    font-weight: 400;
    margin: 0 0 14px;
}

.menu-sec-rule {
    height: 1px;
    background: linear-gradient(to right, #333, transparent);
}

.menu-cat-note {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    color: #666;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin: -10px 0 24px;
}

.menu-sub-head {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #666;
    margin: 44px 0 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #1e1e1e;
}

.menu-sub-note {
    opacity: 0.55;
    font-size: 11px;
    margin-left: 8px;
    text-transform: none;
    letter-spacing: 0;
    font-family: "Montserrat", sans-serif;
}

/* ── Menu grid & cards ───────────────────────────────────────────────────── */
.menu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-bottom: 8px;
}

.menu-item-card {
    background: #141414;
    border: none;
    box-shadow: inset 0 0 0 1px #222;
    padding: 20px 22px;
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    z-index: 0;
    transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease,
    opacity 0.25s;
    opacity: 0;
    animation: menuCardIn 0.15s ease forwards;
}

.menu-item-card:hover {
    background: #1a1a1a;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
    transform: translateY(-1px);
    z-index: 1;
}

.menu-item-card.mi-hidden {
    display: none;
}

@keyframes menuCardIn {
    to {
        opacity: 1;
    }
}

.mi-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 0;
}

.mi-name {
    font-family: "Gilda Display", serif;
    font-size: 17px;
    color: #fff;
    line-height: 1.3;
    margin: 0;
    font-weight: 400;
}

.mi-price {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: #aaa;
    white-space: nowrap;
    flex-shrink: 0;
    font-weight: 400;
    line-height: 1.5;
}

.mi-desc {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    color: #888;
    line-height: 1.6;
    margin: 8px 0 0;
}

.mi-allergens {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 8px;
}

.mi-allergen {
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    letter-spacing: 0.5px;
    color: #888;
    background: #1a1a1a;
    border: 1px solid #333;
    padding: 2px 5px;
    text-transform: capitalize;
    border-radius: var(--pib-radius-sm);
}

/* No results */
.menu-no-results {
    text-align: center;
    color: #888;
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    padding: 60px 0;
    display: none;
}

/* Output fade on filter change */
#menu-output {
    transition: opacity 0.25s;
}

#menu-output.filtering {
    opacity: 0;
}

/* FAB */
.menu-fab {
    position: fixed;
    bottom: calc(28px + env(safe-area-inset-bottom, 0px));
    right: 28px;
    width: 44px;
    height: 44px;
    background: #fff;
    color: #000;
    border: none;
    cursor: pointer;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.25s,
    transform 0.25s;
    pointer-events: none;
    border-radius: var(--pib-radius);
}

.menu-fab.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: all;
}

.menu-fab:hover {
    background: rgba(255, 255, 255, 0.85);
}

/* Legacy — keep in case referenced elsewhere */
.menu-section-divider {
    display: none;
}

.menu-cat-head {
    display: none;
}

.menu-item-body {
    flex: 1;
    min-width: 0;
}

.menu-item-name {
    font-family: "Gilda Display", serif;
    font-size: 14px;
    color: #fff;
    margin: 0;
}

.menu-item-desc {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    color: #888;
    margin-top: 6px;
}

.menu-item-price {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    color: #888;
    white-space: nowrap;
    flex-shrink: 0;
}

@media (max-width: 991px) {
    .menu-grid {
        grid-template-columns: 1fr;
    }
}

/* ── More button: hidden by default (desktop), shown via media query ── */
#more-btn {
    display: none;
}

/* ── More menu drawer ─────────────────────────────────────────────────────── */
/* position: fixed is captured by .menu-controls-bar's will-change: transform stacking context,
   making this effectively position: absolute relative to the bar. JS sets top = bar.offsetHeight. */
.more-menu-drawer {
    position: fixed;
    right: 0;
    width: 100%;
    max-width: 220px;
    background: #0d0d0d;
    border: 1px solid #333;
    border-top: 1px solid #111;
    z-index: 101;
    padding: 16px 16px 14px;
    box-shadow: -1px 3px 8px rgba(0, 0, 0, 0.45);
    display: none;
}

.more-menu-drawer.open {
    display: block;
}

.more-menu-close {
    position: absolute;
    top: 10px;
    right: 12px;
    background: none;
    border: none;
    color: #555;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 4px;
    transition: color 0.25s;
}

.more-menu-close:hover {
    color: #fff;
}

.more-menu-item {
    margin-bottom: 14px;
}

.more-menu-item:last-child {
    margin-bottom: 0;
}

.more-menu-item label {
    display: block;
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #555;
    margin-bottom: 6px;
}

/* More drawer selects: fill the drawer width */
.more-menu-drawer .menu-ctl-select {
    width: 100%;
    max-width: none;
}

@media (max-width: 767px) {
    .menu-topbar-inner {
        gap: 8px;
    }

    /* Right-align the dropdown so it never clips off the right edge */
    .menu-cat-menu {
        left: auto;
        right: 0;
    }

    /* Right-align allergen menu on mobile too */
    .allergen-menu {
        left: auto;
        right: 0;
    }

    #lang-select,
    #curr-select {
        display: none;
    }

    #more-btn {
        display: flex;
    }

    .menu-fab {
        bottom: calc(20px + env(safe-area-inset-bottom, 0px));
        right: 20px;
        width: 40px;
        height: 40px;
        font-size: 14px;
    }
}

@media (max-width: 575px) {
    /* Prevent long category names from squeezing the search bar */
    .menu-cat-trigger {
        max-width: 96px;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
    }

    /* Tighter proportions for search at very small widths */
    .menu-search-icon {
        font-size: 14px;
    }

    .menu-search-input {
        font-size: 12px;
        padding: 0 38px 0 12px;
    }

    .menu-search-wrap {
        height: 40px;
        min-width: 100px;
    }
}

/* iOS safe-area: pad menu content so last items aren't hidden by bottom browser chrome */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
    .menu-content-wrap {
        padding-bottom: env(safe-area-inset-bottom);
    }
}

/* ======= Keyboard focus indicators (WCAG 2.1 AA — SC 2.4.7) ======= */
/* The global * { outline: none } above kills all native focus rings.
   Restore visible focus for keyboard users via :focus-visible so mouse
   users are unaffected. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.85);
    outline-offset: 3px;
}

/* Rating cards have a white background — use a dark outline there */
.rating-card:focus-visible {
    outline: 2px solid rgba(30, 30, 30, 0.8);
    outline-offset: 2px;
}

/* Booking form submit and menu controls on dark backgrounds */
.btn-form1-submit:focus-visible,
.butn-dark a:focus-visible,
.butn-dark button:focus-visible,
.butn-light a:focus-visible,
.butn-dark2:focus-visible,
.butn-light2:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.85);
    outline-offset: 3px;
}

/* ======= GSAP Animation System — Motion Design ======= */
:root {
    --dur-micro: 0.15s;
    --dur-transition: var(--pib-trans-default);
    --dur-entrance: 0.7s;
}

/* Prevent layout shift before GSAP sets initial states */
[data-animation]:not([data-animation="none"]) {
    will-change: opacity, transform;
}

/* ======= Nav link underline (completes existing ::after skeleton) ======= */
/* The ::after element already exists with width:0→100% on hover (line ~1044).
   This adds the visible stroke and transition. */
.pib-menu ul li a::after {
    height: 1px;
    background: rgba(255, 255, 255, 0.55);
    transition: width 0.25s ease;
    margin-top: 2px;
}

/* ======= Rating card GPU layer (prevents repaint glitch) ======= */
.rating-card {
    transform: translateZ(0);
}

/* ======= Input placeholder fade on focus ======= */
input:focus::placeholder,
textarea:focus::placeholder {
    opacity: 0;
    transition: opacity 0.25s ease;
}

/* ======= Input focus treatment ======= */
input[type="text"]:focus,
input[type="email"]:focus,
textarea:focus {
    box-shadow: none;
    transition: border-color 0.25s ease;
}

/* ======= Mobile touch feedback ======= */
@media (hover: none) {
    .rooms1 .item:active img {
        filter: brightness(0.8);
        transform: scale(1.02);
        transition: filter 0.25s ease, transform 0.25s ease;
    }
}

/* ======= 40. Spacing System (8px baseline grid) ======= */
:root {
    --spacing-xs: 8px;
    --spacing-sm: 16px;
    --spacing-md: 24px;
    --spacing-lg: 32px;
    --spacing-xl: 48px;
    --spacing-2xl: 64px;
}

/* ======= 41. Button Hierarchy ======= */
.btn-pib-primary {
    display: inline-block;
    background-color: #ffffff;
    color: #0d0d0d;
    border: 2px solid #ffffff;
    padding: 12px 24px;
    font-family: "Montserrat", sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
}

.btn-pib-primary:hover {
    background-color: #f0f0f0;
    color: #0d0d0d;
    box-shadow: 0 2px 10px rgba(255, 255, 255, 0.15);
    text-decoration: none;
}

.btn-pib-primary:active {
    opacity: 0.85;
}

.btn-pib-secondary {
    display: inline-block;
    background-color: transparent;
    color: #ffffff;
    border: 2px solid rgba(255, 255, 255, 0.5);
    padding: 12px 24px;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.btn-pib-secondary:hover {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: #ffffff;
    color: #ffffff;
    text-decoration: none;
}

.btn-pib-secondary:active {
    background-color: rgba(255, 255, 255, 0.15);
}

.btn-pib-tertiary {
    display: inline-block;
    background-color: transparent;
    color: #ffffff;
    border: none;
    padding: 8px 0;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    position: relative;
    transition: color 0.25s ease;
}

.btn-pib-tertiary::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #ffffff;
    transition: width 0.25s ease;
}

.btn-pib-tertiary:hover::after {
    width: 100%;
}

.btn-pib-tertiary:hover {
    color: #ffffff;
    text-decoration: none;
}

.btn-pib-primary:focus-visible,
.btn-pib-secondary:focus-visible,
.btn-pib-tertiary:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
}

.btn-pib-primary .btn-pib-icon,
.btn-pib-secondary .btn-pib-icon,
.btn-pib-tertiary .btn-pib-icon {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    transition: transform 0.2s ease;
}

.btn-pib-primary:hover .btn-pib-icon,
.btn-pib-secondary:hover .btn-pib-icon,
.btn-pib-tertiary:hover .btn-pib-icon {
    transform: translateX(4px);
}

/* ======= 43. Gallery Dropdown Filter ======= */
.gallery-filter-row {
    margin-bottom: 24px;
    display: flex;
    align-items: center;
}

.gallery-filter-dropdown-wrap {
    position: relative;
    display: inline-block;
}

.gallery-filter-trigger {
    background-color: transparent;
    color: #ffffff;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 8px 4px;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: border-color 0.25s ease;
}

.gallery-filter-trigger:hover,
.gallery-filter-trigger[aria-expanded="true"] {
    border-bottom-color: #ffffff;
}

.gallery-filter-trigger:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
}

.gallery-filter-chevron {
    font-size: 9px;
    transition: transform 0.25s ease;
    display: inline-block;
}

.gallery-filter-trigger[aria-expanded="true"] .gallery-filter-chevron {
    transform: rotateZ(180deg);
}

.gallery-filter-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    background-color: #111111;
    border: 1px solid rgba(255, 255, 255, 0.12);
    list-style: none;
    margin: 0;
    padding: 8px 0;
    min-width: 190px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
    z-index: 500;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}

.gallery-filter-menu.open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.gallery-filter-menu li {
    padding: 11px 16px;
    color: #cccccc;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.gallery-filter-menu li:hover {
    background-color: rgba(255, 255, 255, 0.06);
    color: #ffffff;
}

.gallery-filter-menu li.active {
    color: #ffffff;
    font-weight: 600;
    padding-left: 32px;
    position: relative;
}

.gallery-filter-menu li.active::before {
    content: "✓";
    position: absolute;
    left: 12px;
    font-size: 11px;
}

.gallery-filter-menu li:focus-visible {
    outline: none;
    background-color: rgba(255, 255, 255, 0.1);
}

/* Active Filter Badge */
.gallery-active-badge {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    color: #777777;
    padding: 10px 0 8px;
    border-left: 2px solid rgba(255, 255, 255, 0.25);
    padding-left: 12px;
    margin-bottom: 16px;
}

.gallery-badge-label {
    color: #ffffff;
    font-weight: 600;
}

/* Gallery item overlay text (hover) */
.gallery-box .gallery-img .gallery-item-label {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 40px 16px 14px;
    background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 100%);
    color: #ffffff;
    font-family: "Gilda Display", serif;
    font-size: 14px;
    opacity: 0;
    transition: opacity 0.27s cubic-bezier(0.3, 0.1, 0.58, 1);
    pointer-events: none;
}

.gallery-box:hover .gallery-item-label {
    opacity: 1;
}

@media (max-width: 767px) {
    .gallery-filter-trigger {
        font-size: 11px;
        padding: 10px 4px;
    }

    .gallery-active-badge {
        font-size: 11px;
    }
}

/* ======= 44. Rooms Hub Redesign ======= */
.rooms-banner .caption p {
    max-width: 540px;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-family: var(--pib-font-body);
    font-size: 16px;
    line-height: 1.8;
}

.rooms-hub-intro {
    background: #0d0d0d;
}

.rooms-hub-intro p {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.rooms-hub-intro p + p {
    margin-top: 18px;
}

.rooms-hub-spotlight {
    background: #141414;
    border-radius: var(--pib-radius);
    overflow: hidden;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.03), 0 8px 18px rgba(0, 0, 0, 0.14);
}

.rooms-hub-spotlight-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px;
}

.rooms-hub-spotlight-meta {
    color: rgba(255, 255, 255, 0.5);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 2.4px;
    text-transform: uppercase;
}

.rooms-hub-spotlight h3 {
    margin: 10px 0 0;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 31px;
    font-weight: 400;
    line-height: 1.1;
}

.rooms-hub-spotlight-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 18px;
}

.rooms-hub-choice {
    margin-bottom: 0;
    padding: 15px 16px 16px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: var(--pib-radius);
    min-height: 0;
}

.rooms-hub-choice-icon {
    display: block;
    margin-bottom: 14px;
    color: rgba(255, 255, 255, 0.26);
    font-size: 22px;
    line-height: 1;
}

.rooms-hub-choice h4 {
    margin: 0 0 8px;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 19px;
    font-weight: 400;
}

.rooms-hub-choice p {
    margin: 0;
    color: rgba(255, 255, 255, 0.58);
    font-family: var(--pib-font-body);
    font-size: 12.5px;
    line-height: 1.55;
}

.rooms-hub-collection {
    background: #111;
}

.rooms-section-note {
    max-width: 820px;
    margin: 12px 0 16px;
    color: rgba(255, 255, 255, 0.56);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.8;
}

.section-title + .rooms-section-note,
.section-title + .fac-section-note,
.section-title + .spa-section-note,
.section-title + .casino-section-note,
.section-title + .fitness-section-note,
.section-title + .salon-section-note,
.section-title + .restaurant-section-note {
    margin-top: -6px;
}

.rooms-hub-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 24px;
}

.rooms-hub-grid .room-item {
    margin-bottom: 0;
}

.rooms-hub-card {
    grid-column: span 6;
    position: relative;
    min-height: 470px;
    background: #121212;
    border-radius: var(--pib-radius);
    overflow: hidden;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    isolation: isolate;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    margin: 0 auto;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.rooms-hub-card:hover {
    transform: translateY(-3px) translateZ(0);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.26);
}

.rooms-hub-card-media {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
}

.rooms-hub-card-media picture {
    display: block;
    height: 100%;
    border-radius: inherit;
    overflow: hidden;
}

.rooms-hub-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(13, 13, 13, 0.14) 0%, rgba(13, 13, 13, 0.24) 34%, rgba(13, 13, 13, 0.9) 76%, rgba(13, 13, 13, 0.98) 100%);
    z-index: 1;
}

.rooms-hub-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
    transition: transform 0.55s ease, filter 0.55s ease;
}

.rooms-hub-card:hover .rooms-hub-card-media img {
    transform: scale(1.04);
    filter: brightness(0.76);
}

.rooms-hub-card-content {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    min-height: 212px;
    padding: 19px 20px 18px;
}

.rooms-hub-card-kicker {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--pib-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.5;
    min-height: 15px;
    text-transform: uppercase;
}

.rooms-hub-card-price {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
    max-width: calc(100% - 36px);
    min-height: 32px;
    padding: 4px 8px;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: var(--pib-radius);
    background: transparent;
}

.rooms-hub-card-price-prefix,
.rooms-hub-card-price-suffix {
    color: rgba(255, 255, 255, 0.58);
    font-family: var(--pib-font-body);
    font-size: 8px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    text-transform: uppercase;
}

.rooms-hub-card-price-amount {
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 18px;
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.rooms-hub-card-title {
    margin: 0;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 23px;
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: 0;
    text-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
    min-height: 1.12em;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.rooms-hub-card-title::after {
    content: "";
    display: block;
    width: 60px;
    height: 1px;
    margin: 8px 0 0;
    background: rgba(255, 255, 255, 0.2);
    transition: width 0.8s ease-in-out;
}

.rooms-hub-card:hover .rooms-hub-card-title::after {
    width: 100%;
}

.rooms-hub-card-title a {
    color: #fff;
    text-decoration: none;
}

.rooms-hub-card-copy {
    margin: 0;
    max-width: 540px;
    color: rgba(255, 255, 255, 0.76);
    font-family: var(--pib-font-body);
    font-size: 12.5px;
    line-height: 1.56;
    min-height: calc(3 * 1.56em);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rooms-hub-card-meta {
    margin: 0;
    color: rgba(255, 255, 255, 0.68);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.35;
    text-transform: uppercase;
    min-height: calc(1 * 1.35em);
}

.rooms-hub-card-actions {
    display: flex;
    gap: 10px;
    margin-top: 0;
    padding-top: 0;
}

.rooms-hub-card-actions.mt-auto {
    margin-top: 0 !important;
}

.rooms-hub-card-actions .rooms-hub-btn {
    flex: 1;
}

.rooms-hub-card-actions .rooms-hub-btn a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 11px 10px;
    font-size: 11px;
    letter-spacing: 1.5px;
    line-height: 1.2;
    text-align: center;
}

.rooms-hub-card-actions .btn-pib-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.rooms-hub-card-actions .btn-pib-icon i {
    display: block;
    line-height: 1;
}

.rooms-hub-card--featured {
    grid-column: 1 / -1;
    aspect-ratio: 21 / 9;
    min-height: 408px;
}

.rooms-hub-card--featured .rooms-hub-card-media img {
    height: 100%;
    min-height: 0;
}

.rooms-hub-card--featured .rooms-hub-card-content {
    min-height: 220px;
    padding: 22px 22px 20px;
}

.rooms-hub-card--featured .rooms-hub-card-title {
    font-size: 29px;
}

@media (max-width: 1199.98px) {
    .rooms-hub-choice {
        min-height: auto;
    }

    .rooms-hub-card-title {
        font-size: 22px;
    }

    .rooms-hub-card--featured .rooms-hub-card-title {
        font-size: 27px;
    }
}

@media (max-width: 991.98px) {
    .rooms-banner .caption p {
        max-width: 500px;
    }

    .rooms-hub-grid {
        grid-template-columns: 1fr;
    }

    .rooms-hub-card,
    .rooms-hub-card--featured {
        grid-column: auto;
        aspect-ratio: 16 / 10;
        min-height: 372px;
    }
}

@media (max-width: 767.98px) {
    .rooms-banner .caption p {
        margin: 14px auto 0;
        text-align: center;
    }

    .rooms-hub-spotlight-body,
    .rooms-hub-card-content,
    .rooms-hub-card--featured .rooms-hub-card-content {
        min-height: 0;
        padding: 22px 20px 20px;
    }

    .rooms-hub-spotlight h3,
    .rooms-hub-card--featured .rooms-hub-card-title {
        font-size: 28px;
    }

    .rooms-hub-card,
    .rooms-hub-card--featured {
        aspect-ratio: 4 / 3.7;
        min-height: 356px;
    }

    .rooms-hub-card-copy {
        max-width: none;
        min-height: 0;
    }

    .rooms-hub-card-title,
    .rooms-hub-card-meta,
    .facilities-tease .item .overlay h5,
    .facilities-tease .item .overlay p {
        min-height: 0;
    }

    .rooms-hub-card-title,
    .facilities-tease .item .overlay h5 {
        display: block;
    }
}

@media (max-width: 575.98px) {
    .rooms-hub-card-price-amount {
        font-size: 16px;
    }

    .rooms-hub-card-actions {
        flex-direction: column;
    }

    .rooms-hub-card-title {
        font-size: 22px;
    }

    .rooms-hub-card-copy {
        display: none;
    }
}

/* ======= 45. Menu Mobile Improvements ======= */
@media (max-width: 767px) {
    .menu-tabs {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 4px;
        padding-bottom: 4px;
        scrollbar-width: none;
    }

    .menu-tabs::-webkit-scrollbar {
        display: none;
    }

    .menu-tab {
        flex-shrink: 0;
    }

    .menu-topbar-controls {
        gap: 8px;
    }
}

/* ======= 46. Parallax Mobile Fallback ======= */
@media (max-width: 1023px) {
    .bg-fixed {
        background-attachment: scroll !important;
        background-position: center center !important;
    }
}

/* ======= 47. Touch Target Minimums (Mobile) ======= */
@media (max-width: 767px) {
    .btn-pib-primary,
    .btn-pib-secondary,
    .menu-tab,
    .gallery-filter-trigger,
    .pib-nav-toggle {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* ======= 44. Past Events Modal ======= */
.pib-events-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.pib-events-modal.is-open {
    opacity: 1;
    pointer-events: all;
}

.pib-events-modal-panel {
    background: #0d0d0d;
    border: 1px solid rgba(255, 255, 255, 0.08);
    width: 90%;
    max-width: 960px;
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    position: relative;
}

.pib-events-modal-header {
    padding: 20px 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

.pib-events-modal-title {
    font-family: "Gilda Display", serif;
    font-size: 20px;
    color: #fff;
    font-weight: 400;
    margin: 0;
}

.pib-events-modal-close {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 14px;
    width: 34px;
    height: 34px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.25s;
    flex-shrink: 0;
}

.pib-events-modal-close:hover {
    border-color: rgba(255, 255, 255, 0.6);
}

.pib-events-modal-body {
    overflow-y: auto;
    padding: 20px;
    flex: 1;
}

.pib-events-modal-body .row {
    row-gap: 16px;
}

.pib-events-modal-body .event-poster img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 767px) {
    .pib-events-modal-panel {
        width: 100%;
        max-width: 100%;
        max-height: 100vh;
        border: none;
    }
}

/* Ensure Magnific Popup lightbox always renders above all modals */
.mfp-bg {
    z-index: 99998;
}

.mfp-wrap {
    z-index: 99999;
}

/* ======= Polish Sweep Additions ======= */
/* rooms.html intro paragraph: constrain width and centre it.
   The <p class="rooms-intro"> sits directly inside a Bootstrap .row div
   without a col-* wrapper, so it stretches full-width without this rule. */
.rooms-intro {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}

/* Site-wide centered intro/about blocks.
   Bootstrap offset columns jump at the 1200px container breakpoint; keep the
   actual copy block optically centered and readable through wide displays. */
.about .container > .row > .col-md-8.offset-md-2.text-center {
    margin-left: auto;
    margin-right: auto;
}

.about .container > .row > .col-md-8.offset-md-2.text-center > .rooms-intro {
    text-align: center;
}

@media (min-width: 1200px) {
    .about .container > .row > .col-md-8.offset-md-2.text-center {
        flex: 0 0 760px;
        max-width: 760px;
    }
}

@media (min-width: 1920px) {
    .about .container > .row > .col-md-8.offset-md-2.text-center {
        flex-basis: 820px;
        max-width: 820px;
    }

    .about .container > .row > .col-md-8.offset-md-2.text-center > .rooms-intro {
        max-width: 720px;
    }
}

/* Facility pages — pricing-row narrow-screen wrap.
   On < 576 px the flex row can overflow if a treatment name is long.
   No responsive rule existed for .pricing-row before this block. */
@media (max-width: 575px) {
    .pricing-row {
        flex-wrap: wrap;
        gap: 4px;
    }

    .pricing-row-name {
        width: 100%;
        padding-right: 0;
    }

    .pricing-row-price {
        text-align: left;
    }
}

/* ======= 45. Menu Cart ======= */
.cart-btn {
    position: relative;
}

.cart-badge {
    position: absolute;
    top: 2px;
    right: 2px;
    background: #fff;
    color: #0d0d0d;
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: var(--pib-radius-lg);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
}

.cart-badge.has-items {
    display: flex;
}

.mi-card-footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}

.mi-add-btn {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.6);
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    font-weight: 600;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.25s, color 0.25s, background 0.25s;
    line-height: 1;
}

.mi-add-btn:hover {
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

.menu-item-card.mi-in-cart {
    background: rgba(255, 255, 255, 0.06);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.75);
}

.menu-item-card.mi-in-cart:hover {
    background: rgba(255, 255, 255, 0.09);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.85);
    transform: translateY(-1px);
    z-index: 1;
}

.menu-item-card.mi-in-cart .mi-add-btn {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.5);
    color: #fff;
}

.cart-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.cart-overlay.is-open {
    opacity: 1;
    pointer-events: all;
}

.cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: 380px;
    height: -webkit-fill-available;
    height: 100dvh;
    background: #111;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
    z-index: 10001;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.25s ease;
}

.cart-drawer.is-open {
    transform: translateX(0);
}

@media (max-width: 480px) {
    .cart-drawer {
        width: 100%;
        border-left: none;
    }
}

.cart-drawer-header {
    padding: 20px 20px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

.cart-drawer-title {
    font-family: "Gilda Display", serif;
    font-size: 20px;
    color: #fff;
    font-weight: 400;
}

.cart-close-btn {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 14px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.25s;
    border-radius: var(--pib-radius);
}

.cart-close-btn:hover {
    border-color: rgba(255, 255, 255, 0.6);
}

.cart-drawer-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px;
}

.cart-empty-msg {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.35);
    text-align: center;
    margin-top: 40px;
}

.cart-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.cart-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.cart-item-name {
    font-family: "Gilda Display", serif;
    font-size: 14px;
    color: #fff;
    flex: 1;
    line-height: 1.4;
}

.cart-item-controls {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.cart-qty-btn {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 14px;
    width: 24px;
    height: 24px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.25s;
    line-height: 1;
}

.cart-qty-btn:hover {
    border-color: rgba(255, 255, 255, 0.6);
}

.cart-qty {
    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    color: #fff;
    min-width: 20px;
    text-align: center;
}

.cart-item-price {
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
    flex-shrink: 0;
    min-width: 60px;
    text-align: right;
}

.cart-drawer-footer {
    padding: 16px 20px;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cart-total-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

.cart-total-label {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.4);
}

.cart-total-value {
    font-family: "Gilda Display", serif;
    font-size: 22px;
    color: #fff;
}

.cart-clear-btn {
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.3);
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    padding: 0;
    text-align: center;
    transition: color 0.25s;
}

.cart-clear-btn:hover {
    color: rgba(255, 255, 255, 0.7);
}

.cart-waiter-btn {
    background: #fff;
    color: #0d0d0d;
    border: none;
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 14px 20px;
    cursor: pointer;
    transition: background 0.25s, color 0.25s;
    border-radius: var(--pib-radius);
}

.cart-waiter-btn:hover {
    background: rgba(255, 255, 255, 0.85);
}

/* ======= 46. Waiter View ======= */
.waiter-view {
    position: fixed;
    inset: 0;
    background: #0a0a0a;
    z-index: 10002;
    display: none;
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto;
}

.waiter-view.is-open {
    display: flex;
}

.waiter-view-inner {
    width: 100%;
    max-width: 600px;
    padding: 40px 30px;
    padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px));
}

.waiter-view-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.waiter-view-title {
    font-family: "Gilda Display", serif;
    font-size: 32px;
    color: #fff;
    font-weight: 400;
}

.waiter-back-btn {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: rgba(255, 255, 255, 0.6);
    font-family: "Montserrat", sans-serif;
    font-size: 12px;
    letter-spacing: 1px;
    padding: 8px 16px;
    cursor: pointer;
    transition: border-color 0.25s, color 0.25s;
    border-radius: var(--pib-radius);
}

.waiter-back-btn:hover {
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

.waiter-item {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.waiter-item-qty {
    font-family: "Montserrat", sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.5);
    min-width: 36px;
    flex-shrink: 0;
}

.waiter-item-name {
    font-family: "Gilda Display", serif;
    font-size: 24px;
    color: #fff;
    flex: 1;
    font-weight: 400;
    line-height: 1.3;
}

.waiter-item-price {
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    color: rgba(255, 255, 255, 0.55);
    flex-shrink: 0;
}

.waiter-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 24px 0 0;
    margin-top: 8px;
}

.waiter-total-label {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: rgba(255, 255, 255, 0.4);
}

.waiter-total-value {
    font-family: "Gilda Display", serif;
    font-size: 36px;
    color: #fff;
}

/* ======= 47. GSAP Animation Baseline ======= */
/* Prevent layout shift before GSAP sets initial states */
[data-animation] .section-title,
[data-animation] .section-subtitle,
[data-animation] .line {
    will-change: transform, opacity;
}

[data-reveal="image"] {
    will-change: transform, opacity;
}

/* ======= 48. Casino Games Carousel ======= */

.casino-games-section {
    overflow: hidden;
}

.casino-games-strip {
    overflow: hidden;
    width: 100%;
    margin-bottom: 40px;
}

.casino-games-strip:last-of-type {
    margin-bottom: 0;
}

.casino-games-track {
    display: flex;
    gap: 28px;
    width: max-content;
    padding: 10px 0;
}

.casino-games-track.scroll-left {
    animation: cgLeft 40s linear infinite;
}

.casino-games-track.scroll-right {
    animation: cgRight 40s linear infinite;
}

.casino-games-strip:hover .casino-games-track {
    animation-play-state: paused;
}

@keyframes cgLeft {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes cgRight {
    0%   { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

.casino-game-img {
    flex-shrink: 0;
    width: 260px;
    height: auto;
    border-radius: var(--pib-radius);
    display: block;
    opacity: 0.75;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.casino-game-img:hover {
    opacity: 1;
    transform: scale(1.06);
}

/* ======= 49. Casino Jackpot Widget ======= */

/* Senator network headline card */
.senator-jackpot-card {
    background: #141414;
    border: 1px solid #222;
    padding: 28px 24px 20px;
    margin-bottom: 16px;
    text-align: center;
}

.sjc-label {
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: #555;
    margin-bottom: 10px;
}

.sjc-value {
    font-family: "Gilda Display", serif;
    font-size: 52px;
    color: #fff;
    line-height: 1;
    margin-bottom: 4px;
}

.sjc-unit {
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
    letter-spacing: 2px;
    color: #444;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.sjc-bar-wrap {
    height: 2px;
    background: #1a1a1a;
    margin-bottom: 8px;
    overflow: hidden;
    position: relative;
}

.sjc-bar {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    background: #fff;
    transition: width 1s ease;
}

.sjc-cap-label {
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    letter-spacing: 1px;
    color: #333;
    text-transform: uppercase;
}

/* 2x2 tier grid */
.jp-tiers-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.jp-tier-card {
    background: #0d0d0d;
    border: 1px solid #1a1a1a;
    padding: 16px;
    text-align: center;
}

.jp-tier-name {
    font-family: "Montserrat", sans-serif;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 8px;
    color: #333;
}

.jp-tier-value {
    font-family: "Gilda Display", serif;
    font-size: 22px;
    line-height: 1;
    margin-bottom: 2px;
    color: rgba(255, 255, 255, 0.5);
}

.jp-tier-unit {
    font-family: "Montserrat", sans-serif;
    font-size: 8px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #333;
}

/* Tier brightness differentiation — MEGAPOT brightest */
#jp-MEGAPOT .jp-tier-name  { color: rgba(255, 255, 255, 0.7); }
#jp-MEGAPOT .jp-tier-value { color: #fff; }
#jp-SUPERPOT .jp-tier-name  { color: rgba(255, 255, 255, 0.5); }
#jp-SUPERPOT .jp-tier-value { color: rgba(255, 255, 255, 0.85); }
#jp-CASHPOT .jp-tier-name  { color: rgba(255, 255, 255, 0.35); }
#jp-CASHPOT .jp-tier-value { color: rgba(255, 255, 255, 0.65); }
#jp-MINIPOT .jp-tier-name  { color: rgba(255, 255, 255, 0.2); }
#jp-MINIPOT .jp-tier-value { color: rgba(255, 255, 255, 0.45); }

/* Recent wins panel */
.casino-wins-wrap {
    background: #0d0d0d;
    border: 1px solid #1a1a1a;
}

.cw-header {
    font-family: "Montserrat", sans-serif;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #444;
    padding: 16px 20px;
    border-bottom: 1px solid #1a1a1a;
}

.cw-table {
    width: 100%;
    border-collapse: collapse;
    font-family: "Montserrat", sans-serif;
    font-size: 11px;
}

.cw-table tr {
    border-bottom: 1px solid #111;
}

.cw-table tr:last-child {
    border-bottom: none;
}

.cw-table th {
    padding: 8px 20px;
    color: rgba(255, 255, 255, 0.25);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    border-bottom: 1px solid #1a1a1a;
    text-align: left;
}

.cw-table td {
    padding: 10px 20px;
    color: #666;
    vertical-align: middle;
}

.cw-loading {
    text-align: center;
    padding: 24px !important;
    color: #333 !important;
    letter-spacing: 1px;
}

/* Tier badges in wins table */
.cw-badge {
    display: inline-block;
    font-family: "Montserrat", sans-serif;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 3px 6px;
    white-space: nowrap;
}

.cw-badge-MEGAPOT  { color: #fff; background: rgba(255, 255, 255, 0.12); }
.cw-badge-SUPERPOT { color: rgba(255, 255, 255, 0.8); background: rgba(255, 255, 255, 0.07); }
.cw-badge-CASHPOT  { color: rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.04); }
.cw-badge-MINIPOT  { color: rgba(255, 255, 255, 0.4); background: transparent; }

.cw-amount {
    color: #fff;
    font-weight: 600;
    white-space: nowrap;
}

/* Mobile */
@media (max-width: 767px) {
    .sjc-value {
        font-size: 38px;
    }

    .casino-wins-wrap {
        margin-top: 24px;
    }

    .cw-table td {
        padding: 8px 12px;
    }
}


/* ======= Phase 4 — Defensive small-screen safety net (≤374px) =======
   The legacy media-query stack uses 480px as its smallest breakpoint.
   Ultra-small phones (iPhone SE 1st gen 320×568, very narrow Androids)
   need a separate safety net to prevent overflow on text-dense surfaces.
   Each rule here is conservative — protect against overflow / clipping,
   not to redesign. Browser verification still required at 320 / 375. */
@media (max-width: 374px) {
    /* Hero h1 — prevent the "Where Luxury is the standard" line from
       overflowing the viewport on a 320px screen. */
    .slider-fade .item h1,
    .slider .v-middle .caption h1 {
        font-size: 28px !important;
        line-height: 1.18 !important;
        letter-spacing: 0;
    }

    /* Hero h4 / subtitles — same rationale. */
    .slider-fade .item h4,
    .slider .v-middle .caption p,
    .slider .v-middle .caption h5 {
        font-size: 13px !important;
        letter-spacing: 0.5px;
    }

    /* Menu page sticky filter row — densest layout in the site.
       Allow horizontal scroll fallback rather than wrap to 3+ rows. */
    .menu-cat-bar,
    .menu-filter-bar,
    .menu-cat-filters,
    .menu-cat-row {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
    }

    /* Room card price typography — keep prices on one line. */
    .rooms1 .item .price,
    .rooms1 .item .price-num {
        font-size: 22px;
        white-space: nowrap;
    }

    /* Booking form — let labels and field captions wrap freely. */
    .booking-form-wrap label,
    .booking-form-wrap .form-label,
    .form1 label {
        word-break: break-word;
        line-height: 1.3;
    }

    /* Section titles — guard against very long facility names overflowing. */
    .section-title {
        font-size: clamp(22px, 7vw, 30px);
        line-height: 1.15;
        word-break: break-word;
    }

    /* Container side-padding — tighten so cards don't get squeezed too much. */
    .container,
    .container-fluid {
        padding-left: 12px;
        padding-right: 12px;
    }

    /* Page banner header captions — prevent "Frequently Asked Questions"
       and similar long strings from overflowing the viewport. */
    .banner-header .caption h1 {
        font-size: 26px !important;
        line-height: 1.2;
    }
}

/* ≥1440px — fill empty horizontal space on wide laptops (room cards
   and facility teasers tend to look stranded on 1440+ when the
   container caps at ~1200). */
@media (min-width: 1440px) {
    .rooms1 .container,
    .facilities-master .container {
        max-width: 1320px;
    }
}

/* ======= 50. Border Radius Systematization =======
   All bounded UI surfaces use the --pib-radius token (4px).
   Page-banner and hero-carousel surfaces stay full-bleed (no radius).
   Circular elements (owl-dots, progress ring) stay at 50% / 100%.
   Phase A: cards, buttons, forms. Phase B: remaining bounded components. */

/* ——— Phase A: cards, buttons, forms, booking wrapper ——— */

/* Cards — room/facility teaser items, rating cards, testimonials,
   features showcases, venue spec cards. Gallery items deliberately
   excluded — overflow:hidden on a Isotope-managed parent can clip
   filter-animation transforms mid-flight, and masonry tiles read
   better square. */
.rooms1 .item,
.rooms1 .item .position-re,
.rooms1 .item .o-hidden,
.rating-card,
.testimonials-box,
.feature-item,
.feature-card,
.venue-card,
.casino-game-card,
.event-poster {
    border-radius: var(--pib-radius);
    overflow: hidden;
}

/* Card images — round the photo above the card body so the photo
   takes the same corner as its container. */
.rooms1 .item img,
.rooms1 .item picture,
.feature-item img,
.event-poster img,
.casino-game-img {
    border-radius: var(--pib-radius);
}

/* Buttons — primary/secondary CTAs and form submit. */
.butn-light a,
.butn-dark a,
.butn-light2,
.butn-dark2,
.btn-pib-primary,
.btn-pib-secondary,
.btn-pib-tertiary,
.btn-form1-submit {
    border-radius: var(--pib-radius);
}

/* Hero booking form — Check Now sits at the far right, flush against the last
   column. Left edge stays sharp; right edge gets the standard radius. */
.booking-wrapper .btn-form1-submit {
    border-radius: 0 var(--pib-radius) var(--pib-radius) 0;
}

/* When columns stack (≤767px) the button is full-width — restore all corners. */
@media (max-width: 767.98px) {
    .booking-wrapper .btn-form1-submit {
        border-radius: var(--pib-radius);
    }
}

/* Hero form strip — all interior fields sit flush against neighbours; only
   the leftmost and rightmost exposed edges get radius.
   The global .form1 input / .datepicker rules give full 4px — override here.
   !important beats Select2's own stylesheet (select2.css). */
.booking-wrapper .form1 input,
.booking-wrapper .form1 select,
.booking-wrapper .select2-container--default .select2-selection--single,
.booking-wrapper .datepicker {
    border-radius: 0 !important;
}

/* Check In (leftmost field) — left edge exposed, right edge flush with Check Out */
.booking-wrapper .form1 .c1 input {
    border-radius: var(--pib-radius) 0 0 var(--pib-radius);
}

/* Tablet (2-row layout): .col1=50% puts Check-in+Check-out on row 1;
   .col2=25% puts Adults first on row 2. Give exposed end-caps their corners. */
@media (min-width: 768px) and (max-width: 991.98px) {
    .booking-wrapper .form1 .c2 input {
        border-radius: 0 var(--pib-radius) var(--pib-radius) 0 !important;
    }
    .booking-wrapper .form1 .c3 input {
        border-radius: var(--pib-radius) 0 0 var(--pib-radius) !important;
    }
}

/* Mobile: columns stack full-width — restore full radius on all hero form fields */
@media (max-width: 767.98px) {
    .booking-wrapper .form1 input,
    .booking-wrapper .form1 select,
    .booking-wrapper .select2-container--default .select2-selection--single,
    .booking-wrapper .datepicker {
        border-radius: var(--pib-radius) !important;
    }

    .booking-wrapper .form1 .c1 input {
        border-radius: var(--pib-radius) !important;
    }
}

/* Form inputs — booking form, contact form, subscribe, datepicker. */
.form1 input[type="text"],
.form1 input[type="email"],
.form1 input[type="tel"],
.form1 input[type="number"],
.form1 select,
.form1 textarea,
.contact-form input,
.contact-form select,
.contact-form textarea,
.booking-form-wrap input,
.booking-form-wrap select,
.booking-form-wrap textarea,
.hero-booking-form input,
.hero-booking-form select,
.hero-booking-form textarea,
.select2-container--default .select2-selection--single,
.select2-dropdown,
.datepicker {
    border-radius: var(--pib-radius);
}

/* Menu page sticky filter trigger + dropdown panel. */
.menu-cat-trigger,
.menu-cat-menu {
    border-radius: var(--pib-radius);
}

/* Menu language / currency toggles in the menu bar. */
.menu-lang-btn,
.menu-cur-btn,
.menu-lang-toggle,
.menu-cur-toggle,
.nav-currency-btn,
.menu-toggle-pill {
    border-radius: var(--pib-radius);
}

/* Sliding nav panel currency select (the literal "currency button" reference). */
.pib-wrap .currency-select {
    border-radius: var(--pib-radius);
}

/* Banner header captions — keep page-header backgrounds square (full-bleed),
   but anything overlapping inside that holds content can soften. */

/* Page header overlay banners — leave full-bleed, NOT rounded. */
/* Hero slider items — leave full-bleed, NOT rounded. */

/* Helper utility for any custom usage. */
.pib-rounded { border-radius: var(--pib-radius); }
.pib-rounded-sm { border-radius: var(--pib-radius-sm); }
.pib-rounded-lg { border-radius: var(--pib-radius-lg); }

/* ——— Phase B: remaining bounded components ——— */

.facilties .single-facility,
.rooms1 .item .category,
.pricing-package-card,
.accordion-box .block,
.event-space-card,
.gallery-box,
.booking-box,
.facility-showcase-block img,
#menu-output,
.menu-search-input {
    border-radius: var(--pib-radius);
}

/* Pricing rows: hover highlight only — not base state */
.pricing-row:hover {
    border-radius: var(--pib-radius);
}

/* PROMO chip on .pricing-package-card */
.pricing-package-card.is-promo::before {
    border-radius: 4px;
}

/* Standalone section content images (about story, restaurant, facility experience blocks) */
picture img.img-fluid,
.about picture img {
    border-radius: var(--pib-radius);
}

/* ——— Phase A addendum: centering bug fix ——— */
.col-md-12:has(> .section-title),
.col-md-12:has(> .section-subtitle) {
    text-align: center;
}

/* Same pattern: paragraphs immediately following a centered section header
   inside a row by themselves should also center. The .rooms-intro paragraphs
   on rooms.html and facilities.html sit inside a bare row without a column
   wrapper, so their text inherits from the row's default left-align. */
.about .container > .row > p.rooms-intro,
.rooms1 .container > .row > p.rooms-intro,
section.section-padding > .container > .row > p.rooms-intro {
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

/* ——— Phase B addendum: casino widgets, menu tiles, allergen, badges ——— */

/* Casino jackpot + recent-wins panels */
.senator-jackpot-card,
.jp-tier-card {
    border-radius: var(--pib-radius);
}

.casino-wins-wrap {
    border-radius: var(--pib-radius);
    overflow: hidden;
}

.cw-badge {
    border-radius: var(--pib-radius);
}

/* Menu item tiles — each tile is individually bounded via box-shadow border */
.menu-item-card {
    border-radius: var(--pib-radius);
}

/* Language / currency selects override hardcoded border-radius: 0 */
.menu-ctl-select,
.menu-search-wrap {
    border-radius: var(--pib-radius);
}

/* Allergen dropdown panel */
.allergen-menu {
    border-radius: var(--pib-radius);
}

/* Allergen count badge (13×13 px — sm avoids a near-circular look) */
.allergen-badge {
    border-radius: var(--pib-radius-sm);
}

/* Promo inline chip */
.promo-inline-badge {
    border-radius: var(--pib-radius);
}

/* Menu add-to-order and cart quantity buttons */
.mi-add-btn,
.cart-qty-btn {
    border-radius: var(--pib-radius);
}

/* More-options overflow drawer */
.more-menu-drawer {
    border-radius: var(--pib-radius);
}

/* Select2 connected-state treatment:
   opens-below → top edge connects to input, top corners square;
   opens-above → bottom edge connects to input, bottom corners square. */
.select2-container--open .select2-dropdown--below {
    border-radius: 0 0 var(--pib-radius) var(--pib-radius);
}

.select2-container--open .select2-dropdown--above {
    border-radius: var(--pib-radius) var(--pib-radius) 0 0;
}

/* ======= Flatpickr Dark Theme — PIB ======= */
/* CDN flatpickr.min.css loads after style.css so !important is required throughout */

.flatpickr-calendar {
    background: #1a1a1a !important;
    border: 1px solid #2a2a2a !important;
    border-radius: var(--pib-radius) !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.55) !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important;
}

/* Hide the default pointing triangle arrow */
.flatpickr-calendar::before,
.flatpickr-calendar::after {
    display: none !important;
}

.flatpickr-months {
    background: transparent !important;
    padding: 4px 0 !important;
}

.flatpickr-months .flatpickr-month {
    height: 40px !important;
}

.flatpickr-month,
.flatpickr-current-month,
.flatpickr-current-month input.cur-year {
    color: #fff !important;
    background: transparent !important;
    fill: #fff !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
}

/* Combined month + year dropdown */
.flatpickr-current-month {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    inset: 4px 44px auto 44px !important;
    width: auto !important;
    height: 32px !important;
    padding: 0 !important;
    line-height: 32px !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month .numInputWrapper {
    display: none !important;
}

.flatpickr-current-month .numInputWrapper span {
    display: none !important;
}

.flatpickr-current-month input.cur-year {
    pointer-events: none !important;
    padding-right: 0 !important;
}

.pib-month-year-select {
    width: auto !important;
    min-width: 156px !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 28px !important;
    border: 1px solid transparent !important;
    border-radius: var(--pib-radius-sm) !important;
    background-color: transparent !important;
    color: #fff !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer !important;
    text-align: center !important;
    text-align-last: center !important;
    background-image: none !important;
    background-position: center !important;
    background-size: auto !important;
    background-repeat: no-repeat !important;
    line-height: 32px !important;
}

.pib-month-year-select:hover,
.pib-month-year-select:focus {
    border-color: transparent !important;
    background-color: transparent !important;
    outline: none !important;
    box-shadow: none !important;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: rgba(255, 255, 255, 0.5) !important;
    fill: rgba(255, 255, 255, 0.5) !important;
    top: 8px !important;
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    fill: rgba(255, 255, 255, 0.5) !important;
}

.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border-radius: 3px !important;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: #fff !important;
}

.flatpickr-weekdays {
    background: transparent !important;
}

.flatpickr-weekday {
    color: rgba(255, 255, 255, 0.3) !important;
    background: transparent !important;
    font-family: "Montserrat", sans-serif !important;
    font-weight: 600 !important;
    font-size: 10px !important;
    letter-spacing: 0.05em !important;
}

.flatpickr-days {
    border-color: transparent !important;
}

.dayContainer {
    border-color: transparent !important;
}

.flatpickr-day {
    color: #fff !important;
    border-radius: 3px !important;
    border: 1px solid transparent !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important;
}

.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: rgba(255, 255, 255, 0.2) !important;
}

.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: transparent !important;
    color: #fff !important;
}

.flatpickr-day.today {
    border: none !important;
    background: rgba(255, 255, 255, 0.06) !important;
}

.flatpickr-day.today:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    border-color: transparent !important;
}

/* Kill focus ring on calendar days — [tabindex]:focus-visible global rule catches them */
.flatpickr-day:focus,
.flatpickr-day:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover {
    background: #fff !important;
    color: #0d0d0d !important;
    border-color: #fff !important;
    border-radius: 3px !important;
    font-weight: 700 !important;
}

.flatpickr-day.startRange {
    box-shadow: none !important;
}

.flatpickr-day.endRange {
    box-shadow: none !important;
}

.flatpickr-day.selected.startRange.endRange {
    box-shadow: none !important;
}

.flatpickr-day.inRange,
.flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: transparent !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    color: rgba(255, 255, 255, 0.75) !important;
}

.flatpickr-day.pib-range-start,
.flatpickr-day.pib-range-end,
.flatpickr-day.pib-range-start:hover,
.flatpickr-day.pib-range-end:hover {
    background: #fff !important;
    border-color: #fff !important;
    border-radius: 3px !important;
    color: #0d0d0d !important;
    font-weight: 700 !important;
    box-shadow: none !important;
}

.flatpickr-day.pib-range-trail,
.flatpickr-day.pib-range-trail:hover {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: transparent !important;
    border-radius: 3px !important;
    color: rgba(255, 255, 255, 0.82) !important;
    box-shadow: none !important;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: rgba(255, 255, 255, 0.2) !important;
    text-decoration: line-through !important;
    text-decoration-color: rgba(255, 255, 255, 0.15) !important;
    background: transparent !important;
}

.flatpickr-innerContainer {
    border-color: transparent !important;
}

.flatpickr-rContainer + .flatpickr-rContainer {
    border-left: 1px solid #2a2a2a !important;
}

/* ======= Barba page overlay ======= */
#pib-page-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: #0d0d0d;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    will-change: opacity;
}

#pib-page-overlay.is-active {
    pointer-events: all;
}

.pib-overlay-inner {
    text-align: center;
}

.pib-overlay-name {
    font-family: "Gilda Display", serif;
    font-size: 22px;
    letter-spacing: 8px;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 8px;
}

.pib-overlay-sub {
    font-family: "Montserrat", sans-serif;
    font-size: 10px;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.4);
}

/* Focused polish pass: about story image, gallery responsiveness, menu controls. */
.pib-about-story-image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    max-height: 560px;
    object-fit: cover;
    object-position: center;
    border-radius: var(--pib-radius);
}

.about.section-padding .col-md-6.animate-box:first-child {
    padding-right: 36px;
}

.about.section-padding .col-md-6.animate-box:first-child .section-title {
    margin-bottom: 22px;
}

.about.section-padding .col-md-6.animate-box:first-child > p {
    max-width: 38ch;
    margin-bottom: 20px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 17px;
    line-height: 1.78;
}

.about.section-padding .col-md-6.animate-box:first-child > p:last-of-type {
    margin-bottom: 0;
}

.about.section-padding .col-md-6.animate-box:first-child .reservations {
    margin-top: 34px !important;
}

@media screen and (max-width: 991px) {
    .about.section-padding .col-md-6.animate-box:first-child {
        padding-right: 15px;
    }

    .pib-about-story-image {
        aspect-ratio: 16 / 11;
        max-height: none;
    }
}

.gallery-box .gallery-img {
    aspect-ratio: 16 / 10;
}

.gallery-box .gallery-img > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    backface-visibility: hidden;
    transform: translateZ(0);
}

/* ======= Stroke-free Controls Polish ======= */
:root {
    --pib-control-radius: 4px;
    --pib-control-fill: #161616;
    --pib-control-fill-hover: #1f1f1f;
    --pib-control-fill-active: #252525;
    --pib-control-muted: rgba(255, 255, 255, 0.55);
    --pib-panel-shadow: none;
    --pib-media-card-shadow: 0 6px 14px rgba(0, 0, 0, 0.12), 0 1px 5px rgba(0, 0, 0, 0.07);
    --pib-media-card-shadow-hover: 0 8px 18px rgba(0, 0, 0, 0.13), 0 2px 7px rgba(0, 0, 0, 0.09);
}

.pib-wrap .nav-panel-controls {
    gap: 8px;
}

.pib-wrap .language-select,
.pib-wrap .currency-select,
.footer-language select,
.menu-ctl-select,
.menu-search-wrap,
.menu-cat-trigger {
    border: 0 !important;
    border-radius: var(--pib-control-radius) !important;
    background-color: var(--pib-control-fill) !important;
    color: #fff;
    box-shadow: none !important;
}

.pib-wrap .language-select,
.pib-wrap .currency-select,
.footer-language select,
.menu-ctl-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'%3E%3Cpath d='M0 0l3.5 4L7 0z' fill='%238a8a8a'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 7px 4px !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.pib-wrap .language-select,
.pib-wrap .currency-select,
.footer-language select {
    height: 40px;
    padding: 0 30px 0 12px;
    line-height: 40px;
}

.footer-language {
    width: 160px;
}

.footer-language i {
    display: none;
}

.pib-wrap .language-select:hover,
.pib-wrap .currency-select:hover,
.footer-language select:hover,
.menu-ctl-select:hover,
.menu-search-wrap:hover,
.menu-cat-trigger:hover {
    background-color: var(--pib-control-fill-hover) !important;
}

.pib-wrap .language-select:focus,
.pib-wrap .currency-select:focus,
.footer-language select:focus,
.menu-ctl-select:focus,
.menu-search-wrap:focus-within,
.menu-cat-trigger[aria-expanded="true"] {
    background-color: var(--pib-control-fill-active) !important;
    color: #fff;
    outline: none;
}

.pib-wrap .language-select:focus-visible,
.pib-wrap .currency-select:focus-visible,
.footer-language select:focus-visible,
.menu-ctl-select:focus-visible,
.menu-search-input:focus-visible,
.menu-cat-trigger:focus-visible,
.menu-ctl-btn:focus-visible,
.allergen-clear-btn:focus-visible,
.more-menu-close:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.78);
    outline-offset: 2px;
}

.menu-controls-bar {
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    box-shadow: none;
}

.menu-search-wrap .menu-search-input,
#menu-search {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.menu-search-input::placeholder {
    color: var(--pib-control-muted);
}

.menu-ctl-select {
    padding-right: 30px;
    min-width: 86px;
}

.menu-cat-trigger {
    background: var(--pib-control-fill);
    transition: background-color 0.25s ease, color 0.25s ease;
}

.menu-cat-trigger:hover,
.menu-cat-trigger:active,
.menu-cat-trigger[aria-expanded="true"] {
    border-color: transparent;
}

.allergen-menu,
.menu-cat-menu,
.more-menu-drawer,
.select2-dropdown {
    border: 0 !important;
    background: #111 !important;
    box-shadow: var(--pib-panel-shadow);
}

.menu-cat-tabs,
.menu-cat-tab,
.menu-cat-menu li[data-tab],
.allergen-item,
.select2-results__option {
    border: 0 !important;
}

.menu-cat-tabs {
    background: #111;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
}

.menu-cat-tab {
    margin-bottom: 0;
}

.menu-cat-tab.active {
    background: #1b1b1b;
}

.allergen-item:hover,
.allergen-item.active,
.menu-cat-menu li[data-tab]:hover,
.menu-cat-menu li[data-tab].active,
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: #202020;
    color: #fff;
}

.gallery-active-badge {
    border-left: 0;
    padding-left: 0;
}

/* ======= Stroke-free Surface Continuation ======= */
.menu-item-card,
.mi-allergen,
.mi-add-btn,
.cart-qty-btn,
.cart-close-btn,
.cart-drawer,
.senator-jackpot-card,
.jp-tier-card,
.casino-wins-wrap,
.cw-header,
.cw-table,
.cw-table tr,
.cw-table th,
.pricing-row,
.pricing-category-title,
.facility-features-list li {
    border: 0 !important;
}

.menu-item-card,
.senator-jackpot-card,
.jp-tier-card,
.casino-wins-wrap {
    background: var(--pib-control-fill) !important;
    box-shadow: none !important;
}

.mi-allergen,
.mi-add-btn,
.cart-qty-btn,
.cart-close-btn,
.cw-header {
    background: var(--pib-control-fill-hover) !important;
    box-shadow: none !important;
}

.mi-add-btn:hover,
.cart-qty-btn:hover,
.cart-close-btn:hover,
.menu-item-card:hover,
.senator-jackpot-card:hover,
.jp-tier-card:hover {
    background: var(--pib-control-fill-active) !important;
    box-shadow: none !important;
}

.butn-light a,
.butn-light2,
.butn-dark2 {
    border: 0 !important;
}

.pib-booking-submit,
.btn-form1-submit {
    background: #fff !important;
    color: #0d0d0d !important;
    box-shadow: none !important;
}

.pib-booking-submit:hover,
.btn-form1-submit:hover {
    background: #e8e8e8 !important;
    color: #0d0d0d !important;
}

.butn-light a,
.butn-light2,
.butn-dark2 {
    background: var(--pib-control-fill);
}

.butn-light a:hover,
.butn-light2:hover,
.butn-dark2:hover {
    background: #fff;
}

.header .caption .butn-light a {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
}

.header .caption .butn-light a:hover {
    background: #fff;
    color: #0d0d0d;
    border-color: #fff !important;
}

.header .caption .butn-light a:hover .btn-pib-text,
.header .caption .butn-light a:hover .btn-pib-icon,
.header .caption .butn-light a:hover i {
    color: #0d0d0d;
}

.booking-box .head-box h4,
.booking-box .pib-booking-field {
    border: 0 !important;
}

.rooms-hub-card-actions .butn-light.rooms-hub-btn a {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
}

.rooms-hub-card-actions .butn-light.rooms-hub-btn a:hover {
    background: #fff;
    color: #0d0d0d;
    border-color: #fff !important;
}

.rooms-hub-card-actions .butn-light.rooms-hub-btn a:hover .btn-pib-text,
.rooms-hub-card-actions .butn-light.rooms-hub-btn a:hover .btn-pib-icon,
.rooms-hub-card-actions .butn-light.rooms-hub-btn a:hover i {
    color: #0d0d0d;
}

/* Facility page hero buttons — white stroke, matching homepage hero */
.spa-hero .butn-light a,
.salon-hero .butn-light a,
.fitness-hero .butn-light a,
.casino-hero .butn-light a {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
}

.spa-hero .butn-light a:hover,
.salon-hero .butn-light a:hover,
.fitness-hero .butn-light a:hover,
.casino-hero .butn-light a:hover {
    background: #fff;
    color: #0d0d0d;
    border-color: #fff !important;
}

.spa-hero .butn-light a:hover .btn-pib-text,
.spa-hero .butn-light a:hover .btn-pib-icon,
.salon-hero .butn-light a:hover .btn-pib-text,
.salon-hero .butn-light a:hover .btn-pib-icon,
.fitness-hero .butn-light a:hover .btn-pib-text,
.fitness-hero .butn-light a:hover .btn-pib-icon,
.casino-hero .butn-light a:hover .btn-pib-text,
.casino-hero .butn-light a:hover .btn-pib-icon {
    color: #0d0d0d;
}

.room-hero .butn-light a {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
}

.room-hero .butn-light a:hover {
    background: #fff;
    color: #0d0d0d;
    border-color: #fff !important;
}

.room-hero .butn-light a:hover .btn-pib-text,
.room-hero .butn-light a:hover .btn-pib-icon,
.room-hero .butn-light a:hover i {
    color: #0d0d0d;
}

@media (max-width: 991.98px) {
    .pib-booking-field {
        border: 0 !important;
        box-shadow: none;
    }
}

.menu-item-card {
    gap: 2px;
}

.menu-item-card.mi-in-cart,
.menu-item-card.mi-in-cart:hover {
    background: #242424 !important;
    box-shadow: none !important;
}

.menu-item-card.mi-in-cart .mi-add-btn {
    background: #303030 !important;
    border: 0 !important;
}

.mi-add-btn,
.cart-qty-btn,
.cart-close-btn {
    color: rgba(255, 255, 255, 0.72);
}

.mi-add-btn:hover,
.cart-qty-btn:hover,
.cart-close-btn:hover {
    color: #fff;
}

.cart-drawer {
    background: #111;
    box-shadow: none;
}

.cart-drawer-header,
.cart-drawer-footer,
.cart-item {
    border: 0 !important;
}

.cart-item {
    background: var(--pib-control-fill);
    border-radius: var(--pib-control-radius);
    margin-bottom: 8px;
    padding: 12px;
}

.pricing-row {
    background: var(--pib-control-fill);
    border-radius: var(--pib-control-radius);
    margin-bottom: 6px;
    padding: 10px 12px;
}

.pib-wrap,
.pib-header.scrolled,
.footer-bottom {
    -webkit-box-shadow: none;
    box-shadow: none;
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.rooms-hub-spotlight {
    box-shadow: none !important;
    border: 0;
}

.facilities-tease .item,
.rooms-hub-card,
.pricing-card {
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    box-shadow: var(--pib-media-card-shadow);
    border: 0;
}

.facilities-tease .item:hover,
.rooms-hub-card:hover,
.pricing-card:hover {
    box-shadow: var(--pib-media-card-shadow-hover);
}

.btn-pib-primary:hover,
.gallery-filter-menu {
    box-shadow: none;
}

.rooms-hub-card-media,
.facilities-tease .item,
.rooms1 .item .position-re,
.facility-showcase-block picture,
.room-intro picture,
.room-bathroom picture,
.pricing-card picture,
.gallery-box .gallery-img {
    overflow: hidden;
    background: #0d0d0d;
}

.flatpickr-calendar {
    background: #1a1a1a !important;
    border: 1px solid #2a2a2a !important;
    border-radius: var(--pib-radius) !important;
    box-shadow: none !important;
}

.pricing-row:hover {
    background: var(--pib-control-fill-active);
}

.facility-features-list {
    display: grid;
    gap: 6px;
}

.facility-features-list li {
    background: var(--pib-control-fill);
    border-radius: var(--pib-control-radius);
    padding: 10px 12px;
}

.jp-tiers-grid {
    gap: 10px;
}

.sjc-bar-wrap {
    background: #242424;
    border-radius: 999px;
}

.cw-table {
    border-collapse: separate;
    border-spacing: 0 6px;
    padding: 8px;
}

.cw-table thead,
.cw-table tbody,
.cw-table tr {
    background: transparent;
}

.cw-table th {
    padding-top: 4px;
    padding-bottom: 4px;
}

.cw-table td {
    background: var(--pib-control-fill-hover);
    border: 0 !important;
}

.cw-table td:first-child {
    border-radius: var(--pib-control-radius) 0 0 var(--pib-control-radius);
}

.cw-table td:last-child {
    border-radius: 0 var(--pib-control-radius) var(--pib-control-radius) 0;
}

.cw-badge-MINIPOT {
    background: rgba(255, 255, 255, 0.035);
}

.menu-sec-rule {
    height: 0;
    background: transparent;
}

.footer-about-social-list a,
.progress-wrap,
.progress-wrap::after {
    border: 0 !important;
    background: var(--pib-control-fill);
    box-shadow: none;
}

.footer-about-social-list a:hover {
    background: #fff;
    color: #0d0d0d;
}

.progress-wrap:hover,
.progress-wrap:hover::after {
    background: var(--pib-control-fill-active);
}

.progress-wrap svg.progress-circle path {
    stroke: transparent;
}

/* ======= Facilities Hub Page ======= */
.fac-intro p {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.fac-intro p + p {
    margin-top: 18px;
}

.fac-intro-image {
    min-height: 500px;
    max-height: 600px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.fac-stats .col-6,
.casino-stats .col-6 {
    display: flex;
}

.fac-stats .stat-item,
.casino-stats .stat-item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    min-height: 130px;
    padding: 22px 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: var(--pib-radius);
    margin-bottom: 20px;
}

.fac-stats .stat-number,
.casino-stats .stat-number {
    font-family: var(--pib-font-heading);
    font-size: 36px;
    color: #fff;
    line-height: 1;
    margin-bottom: 8px;
    letter-spacing: -1px;
    white-space: nowrap;
}

.fac-stats .stat-label,
.casino-stats .stat-label {
    font-family: var(--pib-font-body);
    text-transform: uppercase;
    letter-spacing: 3px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 480px) {
    .fac-stats .stat-number,
    .casino-stats .stat-number {
        font-size: 26px;
    }
}

.fac-section-note {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
    margin-top: 0;
}


@media (max-width: 991.98px) {
    .fac-intro-image {
        min-height: 400px;
    }
}

@media (max-width: 575.98px) {
    .fac-intro-image {
        min-height: 320px;
    }
}

/* ======= Spa Page Cinematic Redesign ======= */
.spa-hero {
    min-height: 82vh;
}

.spa-hero .caption p {
    max-width: 520px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-family: var(--pib-font-body);
    font-size: 16px;
    line-height: 1.8;
}

.spa-hero-actions {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
    margin-top: 32px;
}

.spa-hero-link {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.spa-hero-link:hover {
    color: #fff;
}

.spa-intro {
    position: relative;
}

.spa-intro p,
.spa-section-note {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.spa-intro p + p {
    margin-top: 18px;
}

.spa-intro-image {
    min-height: 520px;
    max-height: 620px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.spa-circuit {
    background: #0d0d0d;
}

.spa-circuit-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.spa-circuit-item {
    min-height: 250px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 28px 22px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.spa-circuit-icon {
    font-size: 26px;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
    margin-bottom: 20px;
}

.spa-circuit-item span,
.spa-menu-heading span,
.spa-ritual-kicker {
    color: rgba(255, 255, 255, 0.42);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.spa-circuit-item h3,
.spa-ritual-card h3,
.spa-menu-heading h3 {
    margin: 12px 0 0;
    color: #fff;
    font-family: var(--pib-font-display);
    font-weight: 400;
    letter-spacing: 0;
}

.spa-circuit-item h3 {
    font-size: 24px;
}

.spa-circuit-item p,
.spa-ritual-card p {
    margin: 14px 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-family: var(--pib-font-body);
    font-size: 14px;
    line-height: 1.75;
}

.spa-rituals-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.spa-ritual-card {
    min-height: 260px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 30px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.spa-ritual-card-featured {
    background: #1d1d1d;
}

.spa-ritual-card h3 {
    font-size: 27px;
}

.spa-ritual-price {
    display: block;
    margin-top: 30px;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 31px;
    line-height: 1;
}

.spa-menu {
    background: #0d0d0d;
    scroll-margin-top: 90px;
}

.spa-menu-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 36px;
}

.spa-menu-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    color: rgba(255, 255, 255, 0.68);
    background: #161616;
    border-radius: var(--pib-radius-sm);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.spa-menu-nav a:hover,
.spa-menu-nav a:focus-visible {
    color: #0d0d0d;
    background: #fff;
}

.spa-menu-stack {
    display: grid;
    gap: 18px;
}

.spa-menu-group {
    display: grid;
    grid-template-columns: minmax(190px, 0.34fr) minmax(0, 1fr);
    gap: 28px;
    padding: 30px;
    background: #121212;
    border-radius: var(--pib-radius);
    scroll-margin-top: 110px;
}

.spa-menu-heading h3 {
    font-size: 28px;
}

.spa-menu-heading p {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.48);
    font-family: var(--pib-font-body);
    font-size: 13px;
}

.spa-menu-list {
    display: grid;
    gap: 6px;
}

.spa-menu-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 58px;
    padding: 12px 14px;
    background: #1a1a1a;
    border-radius: var(--pib-radius-sm);
}

.spa-menu-row-package {
    background: #202020;
}

.spa-menu-row span {
    color: rgba(255, 255, 255, 0.86);
    font-family: var(--pib-font-body);
    font-size: 14px;
    line-height: 1.45;
}

.spa-menu-row small {
    display: block;
    margin-top: 3px;
    color: rgba(255, 255, 255, 0.48);
    font-size: 12px;
    line-height: 1.5;
}

.spa-menu-row strong {
    color: #fff;
    font-family: var(--pib-font-body);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    text-align: right;
    white-space: nowrap;
}

.spa-cta {
    background: #111;
}

.spa-cta .facility-cta-label,
.spa-cta .facility-cta-title {
    text-align: center;
}

@media (min-width: 992px) {
    .spa-ritual-card-featured {
        grid-column: span 2;
    }
}

@media (max-width: 1199.98px) {
    .spa-circuit-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .spa-hero {
        min-height: 74vh;
    }

    .spa-intro-image {
        min-height: 420px;
    }

    .spa-circuit-grid,
    .spa-rituals-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .spa-menu-group {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

@media (max-width: 575.98px) {
    .spa-hero {
        min-height: 78vh;
    }

    .spa-hero .caption p {
        font-size: 14px;
        line-height: 1.7;
    }

    .spa-hero-actions {
        align-items: center;
        flex-direction: column;
        gap: 16px;
    }

    .spa-intro-image {
        min-height: 330px;
    }

    .spa-circuit-grid,
    .spa-rituals-grid {
        grid-template-columns: 1fr;
    }

    .spa-circuit-item,
    .spa-ritual-card,
    .spa-menu-group {
        padding: 22px;
    }

    .spa-circuit-item {
        min-height: 210px;
    }

    .spa-menu-nav {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 6px;
        -webkit-overflow-scrolling: touch;
    }

    .spa-menu-nav a {
        flex: 0 0 auto;
    }

    .spa-menu-row {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .spa-menu-row strong {
        text-align: left;
        white-space: normal;
    }

    .spa-cta .facility-cta-label,
    .spa-cta .facility-cta-title {
        text-align: center;
    }
}

/* ======= Promo Chip ======= */
.pib-promo-chip {
    display: inline-flex;
    align-items: center;
    padding: 2px 6px;
    margin-left: 12px;
    background: rgba(255, 255, 255, 0.9);
    color: #0d0d0d !important;
    font-family: var(--pib-font-body);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 2px;
    line-height: 1;
    vertical-align: middle;
    flex-shrink: 0;
}

/* Chip inside a pricing card sits on its own line above the title */
.fitness-pricing-card .pib-promo-chip {
    display: inline-flex;
    margin-left: 0;
    margin-bottom: 12px;
}

/* ======= Facility Pages UI Corrections ======= */

/* Hero actions — button always inline-flex so it doesn't push the hero-link below */
.room-hero-actions .butn-light,
.spa-hero-actions .butn-light,
.salon-hero-actions .butn-light,
.fitness-hero-actions .butn-light,
.casino-hero-actions .butn-light {
    display: inline-flex;
    flex-shrink: 0;
}

/* Hero actions — never wrap on tablet/desktop; stacking handled by ≤575px breakpoint */
.room-hero-actions,
.spa-hero-actions,
.salon-hero-actions,
.fitness-hero-actions,
.casino-hero-actions {
    flex-wrap: nowrap;
}

/* Hero — follow caption centering at ≤767px */
@media (max-width: 767px) {
    .spa-hero .caption p,
    .salon-hero .caption p,
    .fitness-hero .caption p,
    .casino-hero .caption p {
        text-align: center;
    }

    .spa-hero-actions,
    .salon-hero-actions,
    .fitness-hero-actions,
    .casino-hero-actions {
        justify-content: center;
    }
}

/* Section note — always stacked below title (no desktop side-column) */
.spa-circuit .row.mb-50 > div,
.spa-rituals .row.mb-50 > div,
.spa-menu .row.mb-40 > div,
.salon-services .row.mb-50 > div,
.salon-menu .row.mb-40 > div,
.fitness-zones .row.mb-50 > div,
.fitness-pricing .row.mb-40 > div {
    flex: 0 0 100%;
    max-width: 100%;
}

/* CTA sections — centered on all facility pages */
.spa-cta .row > [class*="col-"],
.salon-cta .row > [class*="col-"],
.fitness-cta .row > [class*="col-"],
.casino-cta .row > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
    text-align: center;
    margin-top: 0 !important;
}

.spa-cta .facility-cta-label,
.spa-cta .facility-cta-title,
.salon-cta .facility-cta-label,
.salon-cta .facility-cta-title,
.fitness-cta .facility-cta-label,
.fitness-cta .facility-cta-title,
.casino-cta .facility-cta-label,
.casino-cta .facility-cta-title {
    text-align: center;
}

.spa-cta .butn-dark,
.salon-cta .butn-dark,
.fitness-cta .butn-dark,
.casino-cta .butn-dark {
    display: inline-flex;
    margin-top: 24px;
}

/* ======= Casino Page Redesign ======= */
.casino-hero {
    min-height: 82vh;
}

.casino-hero .caption p {
    max-width: 520px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-family: var(--pib-font-body);
    font-size: 16px;
    line-height: 1.8;
}

.casino-hero-actions {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: 32px;
}

.casino-hero-link {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.casino-hero-link:hover {
    color: #fff;
}

.casino-intro p {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.casino-intro p + p {
    margin-top: 18px;
}

.casino-intro-image {
    min-height: 480px;
    max-height: 580px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.casino-section-note {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}


/* Live indicator */
.casino-live {
    background: #0d0d0d;
    scroll-margin-top: 90px;
}

.casino-live-indicator {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.casino-live-dot {
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 50%;
    flex-shrink: 0;
    animation: casino-live-pulse 2s ease-in-out infinite;
}

.casino-live-label {
    color: rgba(255, 255, 255, 0.5);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
}

@keyframes casino-live-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.3; transform: scale(0.65); }
}

/* MEGAPOT top-tier distinction */
.jp-tier-card-top {
    background: #1e1e1e;
}

/* Games section note stacking */
.casino-games-section .row > div {
    flex: 0 0 100%;
    max-width: 100%;
}

/* Live section note stacking */
.casino-live .row.mb-40 > div {
    flex: 0 0 100%;
    max-width: 100%;
}

.casino-cta {
    background: #111;
}

.casino-cta .facility-cta-label,
.casino-cta .facility-cta-title {
    text-align: center;
}

@media (max-width: 991.98px) {
    .casino-hero {
        min-height: 74vh;
    }

    .casino-intro-image {
        min-height: 380px;
    }
}

@media (max-width: 575.98px) {
    .casino-hero {
        min-height: 78vh;
    }

    .casino-hero .caption p {
        font-size: 14px;
        line-height: 1.7;
    }

    .casino-hero-actions {
        align-items: center;
        flex-direction: column;
        gap: 16px;
    }

    .casino-intro-image {
        min-height: 300px;
    }

    .casino-cta .facility-cta-label,
    .casino-cta .facility-cta-title {
        text-align: center;
    }
}

/* ======= Fitness Page Redesign ======= */
.fitness-hero {
    min-height: 80vh;
}

.fitness-hero .caption p {
    max-width: 520px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-family: var(--pib-font-body);
    font-size: 16px;
    line-height: 1.8;
}

.fitness-hero-actions {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
    margin-top: 32px;
}

.fitness-hero-link {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.fitness-hero-link:hover {
    color: #fff;
}

.fitness-intro p,
.fitness-section-note {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.fitness-intro p + p {
    margin-top: 18px;
}

.fitness-intro-image {
    min-height: 500px;
    max-height: 600px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.fitness-zones {
    background: #0d0d0d;
}

.fitness-zones-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.fitness-zone-item {
    min-height: 250px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 28px 22px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.fitness-zone-icon {
    font-size: 26px;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
    margin-bottom: 20px;
}

.fitness-zone-item span {
    color: rgba(255, 255, 255, 0.42);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.fitness-zone-item h3 {
    margin: 12px 0 0;
    color: #fff;
    font-family: var(--pib-font-heading);
    font-weight: 400;
    font-size: 26px;
    letter-spacing: 0;
}

.fitness-zone-item p {
    margin: 14px 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-family: var(--pib-font-body);
    font-size: 14px;
    line-height: 1.75;
}

.fitness-pricing {
    scroll-margin-top: 90px;
}

.fitness-pricing-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 32px;
}

.fitness-pricing-card {
    min-height: 240px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.fitness-pricing-card-featured {
    background: #1d1d1d;
}

.fitness-pricing-kicker {
    color: rgba(255, 255, 255, 0.42);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 0;
}

.fitness-pricing-card h3 {
    margin: 12px 0 0;
    color: #fff;
    font-family: var(--pib-font-heading);
    font-weight: 400;
    font-size: 24px;
    letter-spacing: 0;
}

.fitness-pricing-card p {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-family: var(--pib-font-body);
    font-size: 14px;
    line-height: 1.7;
}

.fitness-pricing-price {
    display: block;
    margin-top: 28px;
    color: #fff;
    font-family: var(--pib-font-heading);
    font-size: 30px;
    line-height: 1;
}

.fitness-training-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 8px;
}

.fitness-training-group {
    padding: 26px 28px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.fitness-training-heading {
    margin-bottom: 16px;
}

.fitness-training-heading span {
    color: #fff;
    font-family: var(--pib-font-body);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.fitness-training-heading small {
    display: inline-block;
    margin-left: 8px;
    color: rgba(255, 255, 255, 0.48);
    font-size: 12px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

.fitness-training-list {
    display: grid;
    gap: 6px;
}

.fitness-training-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 48px;
    padding: 10px 14px;
    background: #1e1e1e;
    border-radius: var(--pib-radius-sm);
}

.fitness-training-row span {
    color: rgba(255, 255, 255, 0.86);
    font-family: var(--pib-font-body);
    font-size: 14px;
}

.fitness-training-row strong {
    color: #fff;
    font-family: var(--pib-font-body);
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}

.fitness-cta {
    background: #111;
}

.fitness-cta .facility-cta-label,
.fitness-cta .facility-cta-title {
    text-align: center;
}

@media (max-width: 991.98px) {
    .fitness-hero {
        min-height: 72vh;
    }

    .fitness-intro-image {
        min-height: 420px;
    }

    .fitness-zones-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fitness-pricing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .fitness-hero {
        min-height: 76vh;
    }

    .fitness-hero .caption p {
        font-size: 14px;
        line-height: 1.7;
    }

    .fitness-hero-actions {
        align-items: center;
        flex-direction: column;
        gap: 16px;
    }

    .fitness-intro-image {
        min-height: 320px;
    }

    .fitness-zones-grid,
    .fitness-pricing-grid {
        grid-template-columns: 1fr;
    }

    .fitness-zone-item {
        min-height: 200px;
        padding: 22px;
    }

    .fitness-training-wrap {
        grid-template-columns: 1fr;
    }

    .fitness-training-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .fitness-training-row strong {
        white-space: normal;
    }

    .fitness-cta .facility-cta-label,
    .fitness-cta .facility-cta-title {
        text-align: center;
    }
}

/* ======= Salon Page Redesign ======= */
.salon-hero {
    min-height: 80vh;
}

.salon-hero .caption p {
    max-width: 520px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-family: var(--pib-font-body);
    font-size: 16px;
    line-height: 1.8;
}

.salon-hero-actions {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
    margin-top: 32px;
}

.salon-hero-link {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.salon-hero-link:hover {
    color: #fff;
}

.salon-intro p,
.salon-section-note {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.salon-intro p + p {
    margin-top: 18px;
}

.salon-intro-image {
    min-height: 500px;
    max-height: 600px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.salon-services {
    background: #0d0d0d;
}

.salon-services-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.salon-service-item {
    min-height: 240px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 26px 20px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.salon-service-icon {
    font-size: 26px;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
    margin-bottom: 20px;
}

.salon-service-item span {
    color: rgba(255, 255, 255, 0.42);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.salon-service-item h3 {
    margin: 12px 0 0;
    color: #fff;
    font-family: var(--pib-font-heading);
    font-weight: 400;
    font-size: 22px;
    letter-spacing: 0;
}

.salon-service-item p {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-family: var(--pib-font-body);
    font-size: 14px;
    line-height: 1.75;
}

.salon-menu {
    scroll-margin-top: 90px;
}

.salon-menu-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 36px;
}

.salon-menu-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    color: rgba(255, 255, 255, 0.68);
    background: #1e1e1e;
    border-radius: var(--pib-radius-sm);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.salon-menu-nav a:hover,
.salon-menu-nav a:focus-visible {
    color: #0d0d0d;
    background: #fff;
}

.salon-menu-stack {
    display: grid;
    gap: 18px;
}

.salon-menu-group {
    display: grid;
    grid-template-columns: minmax(190px, 0.34fr) minmax(0, 1fr);
    gap: 28px;
    padding: 30px;
    background: #161616;
    border-radius: var(--pib-radius);
    scroll-margin-top: 110px;
}

.salon-menu-heading span {
    color: rgba(255, 255, 255, 0.42);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.salon-menu-heading h3 {
    margin: 12px 0 0;
    color: #fff;
    font-family: var(--pib-font-heading);
    font-weight: 400;
    font-size: 26px;
    letter-spacing: 0;
}

.salon-menu-heading p {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.48);
    font-family: var(--pib-font-body);
    font-size: 13px;
}

.salon-menu-list {
    display: grid;
    gap: 6px;
}

.salon-menu-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 52px;
    padding: 10px 14px;
    background: #1e1e1e;
    border-radius: var(--pib-radius-sm);
}

.salon-menu-row-package {
    background: #242424;
}

.salon-menu-row span {
    color: rgba(255, 255, 255, 0.86);
    font-family: var(--pib-font-body);
    font-size: 14px;
    line-height: 1.45;
}

.salon-menu-row small {
    display: block;
    margin-top: 3px;
    color: rgba(255, 255, 255, 0.48);
    font-size: 12px;
    line-height: 1.5;
}

.salon-menu-row strong {
    color: #fff;
    font-family: var(--pib-font-body);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    text-align: right;
    white-space: nowrap;
}

.salon-cta {
    background: #111;
}

.salon-cta .facility-cta-label,
.salon-cta .facility-cta-title {
    text-align: center;
}

@media (max-width: 1199.98px) {
    .salon-services-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .salon-hero {
        min-height: 72vh;
    }

    .salon-intro-image {
        min-height: 420px;
    }

    .salon-services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .salon-menu-group {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

@media (max-width: 575.98px) {
    .salon-hero {
        min-height: 76vh;
    }

    .salon-hero .caption p {
        font-size: 14px;
        line-height: 1.7;
    }

    .salon-hero-actions {
        align-items: center;
        flex-direction: column;
        gap: 16px;
    }

    .salon-intro-image {
        min-height: 320px;
    }

    .salon-services-grid {
        grid-template-columns: 1fr;
    }

    .salon-service-item {
        min-height: 200px;
        padding: 20px;
    }

    .salon-menu-nav {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 6px;
        -webkit-overflow-scrolling: touch;
    }

    .salon-menu-nav a {
        flex: 0 0 auto;
    }

    .salon-menu-row {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .salon-menu-row strong {
        text-align: left;
        white-space: normal;
    }

    .salon-menu-group {
        padding: 20px;
    }

    .salon-cta .facility-cta-label,
    .salon-cta .facility-cta-title {
        text-align: center;
    }
}

/* ======= Restaurant Info Page Redesign ======= */
.restaurant-hero {
    min-height: 80vh;
}

.restaurant-hero .caption p {
    max-width: 560px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-family: var(--pib-font-body);
    font-size: 16px;
    line-height: 1.8;
}

.restaurant-intro p,
.restaurant-section-note,
.restaurant-venues-footer p {
    margin-top: 16px;
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.restaurant-intro p + p,
.restaurant-chef p + p {
    margin-top: 18px;
}

.restaurant-intro-image,
.restaurant-chef-image {
    min-height: 500px;
    max-height: 620px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.restaurant-overview,
.restaurant-hosting {
    background: #0d0d0d;
}

.restaurant-overview-grid,
.restaurant-hosting-grid,
.restaurant-venues-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.restaurant-card-icon {
    font-size: 26px;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
    margin-bottom: 20px;
}

.restaurant-overview-card,
.restaurant-hosting-card,
.restaurant-venue-card {
    min-height: 240px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 28px 24px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.restaurant-overview-kicker,
.restaurant-venue-kicker,
.restaurant-hosting-card span,
.restaurant-venues-total-label {
    color: rgba(255, 255, 255, 0.42);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.restaurant-overview-card h3 {
    margin: 12px 0 0;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 28px;
    font-weight: 400;
    letter-spacing: 0;
}

.restaurant-hosting-card h3,
.restaurant-venue-card h3 {
    margin: 12px 0 0;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 24px;
    font-weight: 400;
    letter-spacing: 0;
}

.restaurant-overview-card p,
.restaurant-chef p,
.restaurant-hosting-card p,
.restaurant-venue-card p {
    margin: 14px 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-family: var(--pib-font-body);
    font-size: 14px;
    line-height: 1.75;
}

.restaurant-hosting-card,
.restaurant-venue-card {
    min-height: 220px;
}

.restaurant-venues-total {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 30px;
    margin-bottom: 12px;
    background: #121212;
    border-radius: var(--pib-radius);
}

.restaurant-venues-total-number {
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 42px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -1px;
}

.restaurant-venues-footer {
    margin-top: 18px;
}

.restaurant-cta {
    background: #111;
    overflow: hidden;
}

.restaurant-cta-link {
    display: inline-block;
    margin-top: 20px;
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--pib-font-body);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.restaurant-cta-link:hover {
    color: #fff;
}

@media (max-width: 1199.98px) {
    .restaurant-overview-grid,
    .restaurant-hosting-grid,
    .restaurant-venues-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .restaurant-hero {
        min-height: 72vh;
    }

    .restaurant-intro-image,
    .restaurant-chef-image {
        min-height: 420px;
    }
}

@media (max-width: 767.98px) {
    .restaurant-hero {
        min-height: 74vh;
    }

    .restaurant-intro-image,
    .restaurant-chef-image {
        min-height: 380px;
    }
}

@media (max-width: 575.98px) {
    .restaurant-hero {
        min-height: 76vh;
    }

    .restaurant-hero .caption p {
        font-size: 14px;
        line-height: 1.7;
    }

    .restaurant-intro-image,
    .restaurant-chef-image {
        min-height: 320px;
    }

    .restaurant-overview-grid,
    .restaurant-hosting-grid,
    .restaurant-venues-grid {
        grid-template-columns: 1fr;
    }

    .restaurant-overview-card,
    .restaurant-hosting-card,
    .restaurant-venue-card,
    .restaurant-venues-total {
        padding: 22px;
        min-height: auto;
    }

    .restaurant-venues-total-number {
        font-size: 34px;
    }
}
/* ======= End Restaurant Info Page Redesign ======= */

/* ======= Room Detail Pages Redesign ======= */

.room-hero {
    min-height: 82vh;
}

.room-hero .caption p {
    max-width: 520px;
    margin: 14px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-family: var(--pib-font-body);
    font-size: 16px;
    line-height: 1.8;
}

.room-hero-price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 22px;
}

.room-hero-price-from,
.room-hero-price-night {
    color: rgba(255, 255, 255, 0.52);
    font-family: var(--pib-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.room-hero-price-amount {
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 38px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -1px;
}

.room-hero-actions {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 28px;
}

.room-stats .col-6 {
    display: flex;
}

.room-stats .stat-item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    min-height: 130px;
    padding: 22px 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: var(--pib-radius);
    margin-bottom: 20px;
}

.room-stats .stat-number {
    font-family: var(--pib-font-heading);
    font-size: 36px;
    color: #fff;
    line-height: 1;
    margin-bottom: 8px;
    letter-spacing: -1px;
    white-space: nowrap;
}

.room-stats .stat-label {
    font-family: var(--pib-font-body);
    text-transform: uppercase;
    letter-spacing: 3px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
}

.room-intro {
    background: #0d0d0d;
}

.room-intro p {
    color: rgba(255, 255, 255, 0.66);
    font-family: var(--pib-font-body);
    font-size: 15px;
    line-height: 1.85;
}

.room-intro p + p {
    margin-top: 18px;
}

.room-intro-image {
    min-height: 480px;
    max-height: 580px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.room-features {
    background: #111;
}

.room-features-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.room-feature-item {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 24px 20px;
    background: #161616;
    border-radius: var(--pib-radius);
    min-height: 180px;
}

.room-feature-icon {
    font-size: 22px;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
    margin-bottom: 16px;
}

.room-feature-item h3 {
    margin: 0;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0;
}

.room-feature-item p {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.52);
    font-family: var(--pib-font-body);
    font-size: 13px;
    line-height: 1.6;
}

.room-bathroom {
    background: #0d0d0d;
}

.room-bath-image {
    min-height: 480px;
    max-height: 580px;
    object-fit: cover;
    border-radius: var(--pib-radius);
}

.room-bath-list {
    list-style: none;
    padding: 0;
    margin: 24px 0 0;
}

.room-bath-list li {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--pib-font-body);
    font-size: 15px;
}

.room-bath-list li:first-child {
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.room-bath-list i {
    color: rgba(255, 255, 255, 0.35);
    font-size: 18px;
    flex-shrink: 0;
    width: 22px;
    text-align: center;
}

.room-policies {
    background: #111;
}

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

.room-policy-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 24px 20px;
    background: #161616;
    border-radius: var(--pib-radius);
}

.room-policy-icon {
    font-size: 22px;
    color: rgba(255, 255, 255, 0.28);
    line-height: 1;
    margin-bottom: 14px;
}

.room-policy-card h3 {
    margin: 0 0 8px;
    color: #fff;
    font-family: var(--pib-font-display);
    font-size: 20px;
    font-weight: 400;
    letter-spacing: 0;
}

.room-policy-card p {
    margin: 0;
    color: rgba(255, 255, 255, 0.52);
    font-family: var(--pib-font-body);
    font-size: 13px;
    line-height: 1.7;
}

.room-policies-cta {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.room-cta-buttons {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

@media (max-width: 1199.98px) {
    .room-features-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .room-hero {
        min-height: 75vh;
    }

    .room-intro-image,
    .room-bath-image {
        min-height: 380px;
    }

    .room-features-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .room-hero {
        min-height: 72vh;
    }

    .room-hero .caption p,
    .room-hero-price,
    .room-hero-actions {
        text-align: center;
        justify-content: center;
    }

    .room-policies-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .room-hero {
        min-height: 78vh;
    }

    .room-hero .caption p {
        font-size: 14px;
    }

    .room-hero-price-amount {
        font-size: 30px;
    }

    .room-features-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .room-feature-item {
        min-height: auto;
    }

    .room-policies-grid {
        grid-template-columns: 1fr;
    }

    .room-intro-image,
    .room-bath-image {
        min-height: 300px;
    }
}

@media (max-width: 480px) {
    .room-stats .stat-number {
        font-size: 26px;
    }
}
/* ======= End Room Detail Pages Redesign ======= */

/* ======= Contact Page Refresh ======= */
.contact-layout {
    align-items: stretch;
}


.contact-panel {
    height: 100%;
    padding: 0;
}

.contact-panel h3 {
    border: 0;
    padding-bottom: 0;
    margin-bottom: 16px;
    letter-spacing: 0;
}

.contact-panel p {
    color: rgba(255, 255, 255, 0.68);
    margin-bottom: 0;
}

.contact-methods {
    display: grid;
    gap: 8px;
    margin: 30px 0;
}

.contact-method {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 76px;
    background: var(--pib-control-fill);
    border: 0;
    border-radius: var(--pib-control-radius);
    padding: 14px;
    color: #fff;
    box-shadow: none;
}

.contact-method:hover {
    background: var(--pib-control-fill-active);
    color: #fff;
}

.contact-method-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    background: var(--pib-control-fill-hover);
    border-radius: var(--pib-control-radius);
    color: #fff;
    font-size: 20px;
}

.contact-method-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.contact-method-copy span {
    color: rgba(255, 255, 255, 0.48);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
}

.contact-method-copy strong {
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.contact-socials {
    margin-top: 4px;
}

.contact-form-intro {
    max-width: 440px;
    margin-bottom: 28px !important;
}

.contact__form .alert-success {
    background: var(--pib-control-fill);
    border: 0;
    border-radius: var(--pib-control-radius);
    color: rgba(255, 255, 255, 0.82);
    margin-bottom: 14px;
}

.contact__form .form-group {
    margin-bottom: 10px;
}

.contact-form-grid {
    margin-left: -5px;
    margin-right: -5px;
}

.contact-form-grid > [class*="col-"] {
    padding-left: 5px;
    padding-right: 5px;
}

.contact__form input,
.contact__form textarea {
    width: 100%;
    background: var(--pib-control-fill);
    border: 0 !important;
    border-radius: var(--pib-control-radius);
    box-shadow: none;
    color: #fff;
    font-size: 13px;
    letter-spacing: 0.02em;
    margin-bottom: 0;
}

.contact__form input {
    height: 54px;
    padding: 0 15px;
}

.contact__form textarea {
    min-height: 154px;
    padding: 15px;
    resize: vertical;
}

.contact__form input:focus,
.contact__form textarea:focus {
    background: var(--pib-control-fill-active);
    border: 0 !important;
    box-shadow: none;
    color: #fff;
    outline: 0;
}

.contact__form input:focus-visible,
.contact__form textarea:focus-visible,
.contact-method:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.58);
    outline-offset: 2px;
}

.contact-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 54px;
    background: #fff !important;
    border: 0 !important;
    border-radius: var(--pib-radius);
    color: #0d0d0d !important;
    padding: 15px 22px;
    box-shadow: none !important;
}

.contact-submit::after {
    display: none;
}

.contact-submit span {
    color: #0d0d0d !important;
}

.contact-submit:hover,
.contact-submit:focus {
    background: #e8e8e8 !important;
    color: #0d0d0d !important;
}

@media (max-width: 767.98px) {
    .contact-method {
        align-items: flex-start;
        min-height: 0;
    }
}

/* ======= Accessibility: reduce motion ======= */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
