@charset "utf-8";
/* ==========================================================================
   VEGAS LUXURY HOTEL - PUBLIC WEBSITE THEME
   Modern luxury layer on top of the base stylesheet.
   Requires assets/css/vegas-brand.css to be loaded first.
   ========================================================================== */

/* ==========================================================================
   1. FOUNDATION
   ========================================================================== */

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--vg-font-body);
    font-size: 16px;
    line-height: 1.7;
    color: var(--vg-text-soft);
    background: var(--vg-surface);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--vg-font-display);
    color: var(--vg-text);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.01em;
}

/* Small headings read better in the body face */
h5, h6, .h5, .h6 {
    font-family: var(--vg-font-body);
    letter-spacing: 0;
}

a {
    color: var(--vg-gold-600);
    transition: color var(--vg-transition);
}

a:hover {
    color: var(--vg-gold-700);
}

.section {
    padding: clamp(3.5rem, 7vw, 6.5rem) 0;
}

.bg-gray {
    background: var(--vg-cream-100);
}

.bg-dark {
    background: var(--vg-ink-900) !important;
}

.bg-primary {
    background: var(--vg-gold-gradient) !important;
    color: var(--vg-on-primary) !important;
}

.text-primary {
    color: var(--vg-gold-600) !important;
}

.text-muted {
    color: var(--vg-text-muted) !important;
}

.text-dark {
    color: var(--vg-text) !important;
}

.rounded {
    border-radius: var(--vg-radius-md) !important;
}

.shadow,
.box-shadow {
    box-shadow: var(--vg-shadow) !important;
}

.shadow-xs {
    box-shadow: var(--vg-shadow-sm) !important;
}

/* Section headings ------------------------------------------------------- */

.section-title .title,
.block-title {
    font-family: var(--vg-font-display);
    color: var(--vg-text);
    letter-spacing: -.015em;
}

.section-title.text-center .block-title,
.text-center > .block-title {
    position: relative;
    padding-bottom: 1.15rem;
}

.section-title.text-center .block-title::after,
.text-center > .block-title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 72px;
    height: 2px;
    border-radius: var(--vg-radius-pill);
    background: var(--vg-gold-gradient);
}

.sub-title {
    color: var(--vg-text-muted);
}

/* ==========================================================================
   2. BUTTONS - curved, tactile, gold-forward
   ========================================================================== */

.btn {
    font-family: var(--vg-font-body);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: .04em;
    padding: .8rem 1.9rem;
    border-radius: var(--vg-radius-pill);
    border: 1px solid transparent;
    transition: transform var(--vg-transition), box-shadow var(--vg-transition),
        background-color var(--vg-transition), color var(--vg-transition), border-color var(--vg-transition);
    will-change: transform;
    text-transform: none;
}

.btn:focus,
.btn.focus {
    box-shadow: 0 0 0 3px rgba(201, 162, 39, .35);
}

.btn:active {
    transform: translateY(0);
}

.btn-sm {
    padding: .5rem 1.2rem;
    font-size: 12.5px;
}

.btn-lg {
    padding: 1rem 2.4rem;
    font-size: 15px;
}

.btn-block {
    border-radius: var(--vg-radius-pill);
}

/* Primary = metallic gold with black type (the crest look) */
.btn-primary,
.btn-primary:not(:disabled):not(.disabled) {
    background: var(--vg-gold-gradient);
    background-size: 180% 180%;
    background-position: 0% 50%;
    border-color: transparent;
    color: var(--vg-on-primary);
    box-shadow: var(--vg-shadow-gold);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active {
    background: var(--vg-gold-gradient);
    background-size: 180% 180%;
    background-position: 100% 50%;
    border-color: transparent;
    color: var(--vg-on-primary);
    transform: translateY(-2px);
    box-shadow: var(--vg-shadow-gold-lg);
}

/* Dark button - black with a gold hairline */
.btn-dark {
    background: var(--vg-ink-900);
    border-color: var(--vg-ink-900);
    color: var(--vg-cream-100);
}

.btn-dark:hover {
    background: var(--vg-ink-800);
    border-color: var(--vg-gold-500);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: var(--vg-shadow-md);
}

.btn-white {
    background: #fff;
    border-color: #fff;
    color: var(--vg-ink-900);
    box-shadow: var(--vg-shadow-sm);
}

.btn-white:hover {
    background: var(--vg-cream-100);
    color: var(--vg-gold-700);
    transform: translateY(-2px);
    box-shadow: var(--vg-shadow-md);
}

.btn-outline-white {
    background: transparent;
    border-color: rgba(255, 255, 255, .65);
    color: #fff;
}

.btn-outline-white:hover {
    background: #fff;
    border-color: #fff;
    color: var(--vg-ink-900);
    transform: translateY(-2px);
}

.btn-outline-primary {
    background: transparent;
    border-color: var(--vg-gold-500);
    color: var(--vg-gold-700);
}

.btn-outline-primary:hover {
    background: var(--vg-gold-gradient);
    border-color: transparent;
    color: var(--vg-on-primary);
    transform: translateY(-2px);
    box-shadow: var(--vg-shadow-gold);
}

.btn-gray {
    background: var(--vg-cream-200);
    border-color: var(--vg-cream-200);
    color: var(--vg-text);
}

.btn-gray:hover {
    background: var(--vg-cream-300);
    color: var(--vg-text);
    transform: translateY(-2px);
}

.btn-secondary {
    background: var(--vg-ink-700);
    border-color: var(--vg-ink-700);
    color: #fff;
}

.btn-secondary:hover {
    background: var(--vg-ink-800);
    border-color: var(--vg-ink-800);
    color: #fff;
    transform: translateY(-2px);
}

.btn-success {
    background: var(--vg-success);
    border-color: var(--vg-success);
    color: #fff;
}

.btn-danger {
    background: var(--vg-danger);
    border-color: var(--vg-danger);
    color: #fff;
}

/* ==========================================================================
   3. NAVBAR
   ========================================================================== */

.navbar {
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(180%) blur(14px);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid var(--vg-border);
    padding: .55rem 1.25rem;
    min-height: var(--vg-header-h);
    transition: background var(--vg-transition), box-shadow var(--vg-transition), padding var(--vg-transition);
}

.header-sticky.sticky,
.navbar.sticky {
    background: rgba(255, 255, 255, .97);
    box-shadow: var(--vg-shadow);
    border-bottom-color: transparent;
}

.navbar-brand {
    padding: 0;
    margin-right: 1.75rem;
}

.navbar-brand img {
    max-height: 54px;
    width: auto;
    transition: max-height var(--vg-transition);
}

.navbar-light .navbar-nav .nav-link {
    font-family: var(--vg-font-body);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .03em;
    color: var(--vg-text);
    padding: .7rem 1rem;
    position: relative;
    transition: color var(--vg-transition);
}

.navbar-light .navbar-nav .nav-link::after {
    content: "";
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: .35rem;
    height: 2px;
    border-radius: var(--vg-radius-pill);
    background: var(--vg-gold-gradient);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 260ms var(--vg-ease-out);
}

/* Dropdown carets keep bootstrap's own arrow - don't add a rule under them */
.navbar-light .navbar-nav .dropdown-toggle::after {
    display: inline-block;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.active {
    color: var(--vg-gold-700);
}

.navbar-light .navbar-nav .nav-link:hover::after,
.navbar-light .navbar-nav .active > .nav-link::after {
    transform: scaleX(1);
}

.navbar-right .nav-item.login .nav-link {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: var(--vg-tracking-wide);
    text-transform: uppercase;
    color: var(--vg-text);
    padding: .65rem 1.1rem;
}

.navbar-right .nav-item.login .nav-link:hover {
    color: var(--vg-gold-700);
}

/* "Book Now" call to action in the header */
.navbar .nav-btn button[type="submit"],
.nav-item.nav-btn .nav-link {
    background: var(--vg-gold-gradient) !important;
    background-size: 180% 180%;
    background-position: 0% 50%;
    color: var(--vg-on-primary) !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: .8rem 1.6rem !important;
    border-radius: var(--vg-radius-pill) !important;
    box-shadow: var(--vg-shadow-gold);
    transition: transform var(--vg-transition), box-shadow var(--vg-transition), background-position 400ms var(--vg-ease);
    white-space: nowrap;
}

.navbar .nav-btn button[type="submit"]:hover {
    background-position: 100% 50%;
    transform: translateY(-2px);
    box-shadow: var(--vg-shadow-gold-lg);
}

.navbar .nav-item.p-3 {
    padding: .5rem .75rem !important;
}

.navbar #select_language {
    height: 42px;
    border-radius: var(--vg-radius-pill);
    border: 1px solid var(--vg-border-strong);
    background-color: var(--vg-cream-50);
    font-size: 13px;
    font-weight: 600;
    color: var(--vg-text);
    padding: 0 2rem 0 1rem;
    min-width: 118px;
    cursor: pointer;
}

.navbar-toggler {
    border: 1px solid var(--vg-border-strong);
    border-radius: var(--vg-radius-sm);
    padding: .45rem .65rem;
}

.dropdown-menu {
    border: 1px solid var(--vg-border);
    border-radius: var(--vg-radius);
    box-shadow: var(--vg-shadow-md);
    padding: .5rem;
    margin-top: .6rem;
}

.dropdown-item {
    border-radius: var(--vg-radius-sm);
    font-size: 14px;
    font-weight: 500;
    padding: .6rem .9rem;
    color: var(--vg-text-soft);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: var(--vg-gold-50);
    color: var(--vg-gold-700);
}

/* ==========================================================================
   4. HERO
   ========================================================================== */

.hero-header {
    position: relative;
}

.animation-slide .item::after {
    background: linear-gradient(180deg,
            rgba(11, 11, 13, .55) 0%,
            rgba(11, 11, 13, .38) 42%,
            rgba(11, 11, 13, .82) 100%);
}

.header-subtitle {
    font-family: var(--vg-font-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: var(--vg-tracking-wider);
    text-transform: uppercase;
    color: var(--vg-gold-300);
}

.header-subtitle::before {
    background: var(--vg-gold-gradient);
    height: 2px;
    border-radius: var(--vg-radius-pill);
}

.hero-header .hero-header_wrap .header-text .header-title {
    font-family: var(--vg-font-display);
    color: #fff;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.04;
    font-size: clamp(2.6rem, 6.2vw, 5rem);
    text-shadow: 0 4px 30px rgba(0, 0, 0, .35);
}

.hero-header .hero-header_wrap .header-text .header-des {
    color: rgba(255, 255, 255, .88);
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    max-width: 34rem;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .35);
}

/* Offer card in the hero */
.offer {
    border-radius: var(--vg-radius-lg);
    background: rgba(11, 11, 13, .55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(231, 201, 122, .28);
    box-shadow: var(--vg-shadow-lg);
    padding: 2rem 1.5rem;
}

.offer h2 {
    font-family: var(--vg-font-display);
    color: #fff;
}

/* Price ribbon on the hero offer - gold, not coral */
.ribbon {
    background: var(--vg-gold-500);
    border-radius: 0 0 4px 4px;
}

.ribbon::before {
    border-top-color: var(--vg-gold-500);
}

.ribbon::after {
    border-top-color: var(--vg-gold-500);
}

.ribbon span {
    color: var(--vg-on-primary);
    font-weight: 700;
    font-size: 16px;
}

/* Semantic red stays red, but on-brand */
.text-danger {
    color: var(--vg-danger) !important;
}

.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span {
    background: var(--vg-gold-500);
}

.owl-theme .owl-dots .owl-dot span {
    border-radius: var(--vg-radius-pill);
    transition: all var(--vg-transition);
}

.animation-slide.owl-theme .owl-nav [class*="owl-"],
.destinations-carousel.owl-theme .owl-nav [class*="owl-"],
.blog-carousel.owl-theme .owl-nav [class*="owl-"] {
    border-radius: var(--vg-radius-pill);
    background: rgba(255, 255, 255, .12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, .25);
    color: #fff;
    transition: all var(--vg-transition);
}

.animation-slide.owl-theme .owl-nav [class*="owl-"]:hover,
.destinations-carousel.owl-theme .owl-nav [class*="owl-"]:hover,
.blog-carousel.owl-theme .owl-nav [class*="owl-"]:hover {
    background: var(--vg-gold-gradient);
    border-color: transparent;
    color: var(--vg-on-primary);
}

/* ==========================================================================
   5. BOOKING SEARCH WIDGET - the signature component
   ========================================================================== */

.search-area {
    position: relative;
    z-index: 20;
    margin-top: -58px;
    background: #fff;
    border: 1px solid var(--vg-border);
    border-radius: var(--vg-radius-lg);
    box-shadow: var(--vg-shadow-lg);
    padding: .5rem;
    overflow: hidden;
}

.search-area .search-form-content {
    align-items: stretch;
}

.search-form-content .search-option {
    padding: 1rem 1.35rem;
    border-right: 1px solid var(--vg-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.search-form-content .search-option:last-of-type {
    border-right: 0;
}

.search-form-content .search-option label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: var(--vg-tracking-wide);
    text-transform: uppercase;
    color: var(--vg-text-muted);
    margin-bottom: .3rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}

.search-form-content .search-option label i {
    color: var(--vg-gold-600);
}

.search-form-content .form-control {
    border: 0;
    border-radius: var(--vg-radius-sm);
    background: transparent;
    padding: .25rem 0;
    height: auto;
    font-size: 15px;
    font-weight: 600;
    color: var(--vg-text);
    box-shadow: none;
}

.search-form-content .form-control:focus {
    background: var(--vg-gold-50);
    box-shadow: none;
    padding-left: .5rem;
}

.search-title {
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: var(--vg-tracking-wide);
    color: var(--vg-text-muted);
}

.search-form-content .btn {
    width: 100%;
    height: 100%;
    min-height: 92px;
    border-radius: var(--vg-radius-md);
    background: var(--vg-gold-gradient);
    background-size: 180% 180%;
    background-position: 0% 50%;
    color: var(--vg-on-primary);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .15rem;
    box-shadow: none;
    transition: background-position 450ms var(--vg-ease), transform var(--vg-transition);
}

.search-form-content .btn:hover {
    background-position: 100% 50%;
    transform: none;
}

.search-form-content .btn span {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: none;
    color: rgba(11, 11, 13, .72);
    line-height: 1.35;
}

.search-form-content .btn span p {
    margin: 0;
    font-weight: 700;
    font-size: 12.5px;
    color: var(--vg-on-primary);
}

/* The legacy theme hangs a red torn-paper SVG off the button. Not our look. */
.search-form-content .btn::before {
    display: none !important;
    content: none !important;
}

/* Adults / children steppers */
.btn-pm {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--vg-radius-pill);
    border: 1px solid var(--vg-border-strong);
    background: var(--vg-cream-50);
    color: var(--vg-gold-700);
    cursor: pointer;
    transition: all var(--vg-transition);
    font-size: 11px;
}

.btn-pm:hover {
    background: var(--vg-gold-gradient);
    border-color: transparent;
    color: var(--vg-on-primary);
}

.spinner {
    width: 40px;
    border: 0;
    background: transparent;
    text-align: center;
    font-weight: 700;
    font-size: 15px;
    color: var(--vg-text);
}

/* Date picker */
.daterangepicker {
    border: 1px solid var(--vg-border);
    border-radius: var(--vg-radius-md);
    box-shadow: var(--vg-shadow-lg);
    font-family: var(--vg-font-body);
    padding: .5rem;
}

.daterangepicker td.active,
.daterangepicker td.active:hover {
    background: var(--vg-gold-gradient);
    color: var(--vg-on-primary);
    border-radius: var(--vg-radius-sm);
}

.daterangepicker td.in-range {
    background: var(--vg-gold-50);
    color: var(--vg-gold-800);
}

.daterangepicker td.available:hover,
.daterangepicker th.available:hover {
    background: var(--vg-gold-100);
    border-radius: var(--vg-radius-sm);
}

.daterangepicker .calendar-table th {
    color: var(--vg-text);
    font-weight: 700;
}

/* ==========================================================================
   6. FEATURE BOXES
   ========================================================================== */

.section-feature {
    background: var(--vg-cream-100);
}

.feature-box {
    background: #fff;
    border: 1px solid var(--vg-border);
    border-radius: var(--vg-radius-md);
    padding: 2.25rem 1.5rem;
    height: 100%;
    transition: transform 300ms var(--vg-ease-out), box-shadow 300ms var(--vg-ease), border-color var(--vg-transition);
}

.feature-box:hover {
    transform: translateY(-6px);
    box-shadow: var(--vg-shadow-md);
    border-color: var(--vg-gold-200);
}

.feature-box .feature-box-icon {
    width: 68px;
    height: 68px;
    margin: 0 auto 1.15rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--vg-radius-pill);
    background: var(--vg-gold-gradient-soft);
    box-shadow: inset 0 0 0 1px rgba(201, 162, 39, .25);
}

.feature-box .feature-box-icon img {
    max-width: 34px;
    max-height: 34px;
}

.feature-box-title {
    font-family: var(--vg-font-body);
    font-weight: 700;
    font-size: 17px !important;
    color: var(--vg-text);
    margin-bottom: .5rem;
}

.feature-box p {
    font-size: 14.5px;
    color: var(--vg-text-muted);
}

/* ==========================================================================
   7. CARDS, OFFERS & DESTINATIONS
   ========================================================================== */

.card {
    border: 1px solid var(--vg-border);
    border-radius: var(--vg-radius-md) !important;
    overflow: hidden;
    background: #fff;
    transition: transform 320ms var(--vg-ease-out), box-shadow 320ms var(--vg-ease);
}

.card.border-0 {
    border: 1px solid var(--vg-border) !important;
}

.card:hover {
    transform: translateY(-6px);
    box-shadow: var(--vg-shadow-md);
}

.card-img {
    overflow: hidden;
    display: block;
}

.card-img img {
    width: 100%;
    transition: transform 700ms var(--vg-ease-out);
}

.card:hover .card-img img {
    transform: scale(1.06);
}

.card-body {
    padding: 1.25rem 1.35rem;
}

.card-title {
    font-family: var(--vg-font-body);
    font-weight: 700;
    font-size: 16px;
    line-height: 1.45;
}

.card-img .btn {
    right: 1rem;
    bottom: 1rem;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 260ms var(--vg-ease), transform 260ms var(--vg-ease-out);
}

.card:hover .card-img .btn {
    opacity: 1;
    transform: translateY(0);
}

.weeklyoffer-title a {
    color: var(--vg-text) !important;
    transition: color var(--vg-transition);
}

.card:hover .weeklyoffer-title a {
    color: var(--vg-gold-700) !important;
}

/* Poster / destination cards */
.card.card-poster {
    border-radius: var(--vg-radius-md);
    min-height: 380px;
    border: 0 !important;
}

.card-poster::before {
    background: linear-gradient(180deg, rgba(11, 11, 13, 0) 25%, rgba(11, 11, 13, .88) 100%);
}

.card-poster img.bg-image {
    transition: transform 900ms var(--vg-ease-out);
}

.card-poster:hover img.bg-image {
    transform: scale(1.07);
}

.item-tag {
    border-radius: var(--vg-radius-pill);
    padding: .3rem .85rem;
    font-size: 11px;
    letter-spacing: var(--vg-tracking-wide);
    background: var(--vg-gold-gradient) !important;
    color: var(--vg-on-primary) !important;
}

.card-poster .card-title {
    font-family: var(--vg-font-display);
    font-size: 22px;
}

.badge {
    border-radius: var(--vg-radius-pill);
    padding: .45em .95em;
    font-weight: 600;
    letter-spacing: .03em;
}

.badge-soft-primary {
    background: var(--vg-gold-100);
    color: var(--vg-gold-800);
}

/* "Join us" band */
.join-content {
    background: var(--vg-ink-gradient) !important;
    border-radius: var(--vg-radius-lg) !important;
    border: 1px solid var(--vg-border-dark);
    position: relative;
    overflow: hidden;
}

.join-content::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(900px 320px at 12% -10%, rgba(201, 162, 39, .22), transparent 60%),
        radial-gradient(700px 300px at 92% 110%, rgba(231, 201, 122, .16), transparent 60%);
    pointer-events: none;
}

.join-content > * {
    position: relative;
    z-index: 1;
}

.join-content h2 {
    font-family: var(--vg-font-display);
    color: #fff;
}

/* Play button on the about video */
.play-btn i {
    color: var(--vg-gold-600) !important;
    width: 62px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    box-shadow: var(--vg-shadow-md) !important;
}

/* ==========================================================================
   8. ROOM LIST & ROOM DETAIL
   ========================================================================== */

.room-list.card {
    border-radius: var(--vg-radius-md) !important;
    border: 1px solid var(--vg-border);
    box-shadow: var(--vg-shadow-sm) !important;
    transition: box-shadow 300ms var(--vg-ease), transform 300ms var(--vg-ease-out), border-color var(--vg-transition);
}

.room-list.card:hover {
    box-shadow: var(--vg-shadow-md) !important;
    border-color: var(--vg-gold-200);
    transform: translateY(-3px);
}

.room-list .card-body {
    padding: 1.35rem;
}

.room-img {
    border-radius: var(--vg-radius) !important;
    overflow: hidden;
    display: block;
}

.room-img img {
    border-radius: var(--vg-radius);
    transition: transform 600ms var(--vg-ease-out);
    object-fit: cover;
}

.room-list:hover .room-img img {
    transform: scale(1.05);
}

.icon-content .zoom-icon {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--vg-radius-pill);
    background: rgba(255, 255, 255, .92);
    color: var(--vg-gold-700);
    box-shadow: var(--vg-shadow-sm);
    transition: all var(--vg-transition);
}

.icon-content .zoom-icon:hover {
    background: var(--vg-gold-gradient);
    color: var(--vg-on-primary);
}

.item-title {
    font-family: var(--vg-font-display);
    font-size: 22px;
    color: var(--vg-text);
}

.item-description {
    font-size: 14.5px;
    color: var(--vg-text-muted);
}

.star_colour,
.star-rating_container {
    color: var(--vg-gold-500) !important;
}

/* ---- Dual-currency pricing (TZS primary, USD reference) ---------------- */

.vg-price {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.25;
}

.vg-price--inline {
    flex-direction: row;
    align-items: baseline;
    gap: .4rem;
}

.vg-price__main {
    font-weight: 700;
    color: var(--vg-text);
    font-size: 1.05em;
}

.vg-price__alt,
.item-price__alt {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--vg-text-muted);
    letter-spacing: .02em;
}

.item-price .price {
    color: var(--vg-gold-700) !important;
    font-family: var(--vg-font-body);
    letter-spacing: -.02em;
    white-space: nowrap;
}

.item-price .h6 {
    color: var(--vg-text-muted);
    margin-left: .2rem;
}

.price-refundable {
    font-size: 12.5px;
    color: var(--vg-success);
    font-weight: 600;
}

.discount-price {
    color: var(--vg-gold-700) !important;
}

.rack-price s {
    color: var(--vg-text-muted);
    font-size: 14px;
}

.list_item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px dashed var(--vg-border);
}

.list_item:last-child {
    border-bottom: 0;
}

.list_item_price {
    font-weight: 700;
    color: var(--vg-text);
    text-align: right;
    white-space: nowrap;
}

.price_callout {
    background: var(--vg-gold-50);
    border: 1px solid var(--vg-gold-200);
    border-radius: var(--vg-radius);
    padding: 1rem 1.15rem;
    margin-top: 1rem;
}

.price_callout .list_item {
    border-bottom: 0;
    padding: 0;
}

.reviews-stats {
    color: var(--vg-text-muted);
}

/* ==========================================================================
   9. FORMS
   ========================================================================== */

.form-control,
.custom-select {
    border: 1px solid var(--vg-border-strong);
    border-radius: var(--vg-radius-sm);
    background: var(--vg-cream-50);
    color: var(--vg-text);
    font-size: 15px;
    padding: .7rem 1rem;
    height: auto;
    transition: border-color var(--vg-transition), box-shadow var(--vg-transition), background-color var(--vg-transition);
}

.form-control::placeholder {
    color: var(--vg-ink-200);
}

.form-control:focus,
.custom-select:focus {
    background: #fff;
    border-color: var(--vg-gold-500);
    box-shadow: 0 0 0 3px rgba(201, 162, 39, .16);
    color: var(--vg-text);
}

label {
    font-size: 13px;
    font-weight: 600;
    color: var(--vg-text-soft);
    margin-bottom: .35rem;
}

textarea.form-control {
    min-height: 130px;
}

/* Auth / form panels */
.form-wrapper {
    width: 100%;
    max-width: 480px;
}

.form-container .panel {
    background: #fff;
    border: 1px solid var(--vg-border);
    border-radius: var(--vg-radius-lg);
    box-shadow: var(--vg-shadow-md);
    padding: 2.5rem 2rem;
}

.form-container .panel-header h3 {
    font-family: var(--vg-font-display);
    color: var(--vg-text);
    margin-bottom: .35rem;
}

.form-container .panel .form-group {
    margin-bottom: 1.1rem;
}

.form-container .panel .btn-block {
    margin-top: .5rem;
    padding: .9rem 1.5rem;
    font-size: 14px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.text-red {
    color: var(--vg-gold-700) !important;
    font-weight: 600;
}

/* Select2 to match our inputs */
.select2-container--bootstrap .select2-selection {
    border: 1px solid var(--vg-border-strong) !important;
    border-radius: var(--vg-radius-sm) !important;
    background: var(--vg-cream-50) !important;
    box-shadow: none !important;
}

.select2-container--bootstrap.select2-container--focus .select2-selection,
.select2-container--bootstrap.select2-container--open .select2-selection {
    border-color: var(--vg-gold-500) !important;
    box-shadow: 0 0 0 3px rgba(201, 162, 39, .16) !important;
}

.select2-container--bootstrap .select2-dropdown {
    border-color: var(--vg-border) !important;
    border-radius: var(--vg-radius-sm) !important;
    box-shadow: var(--vg-shadow-md) !important;
}

.select2-container--bootstrap .select2-results__option--highlighted[aria-selected] {
    background: var(--vg-gold-gradient) !important;
    color: var(--vg-on-primary) !important;
}

/* ==========================================================================
   10. ALERTS & TABLES
   ========================================================================== */

.alert {
    border: 1px solid transparent;
    border-radius: var(--vg-radius);
    padding: 1rem 1.15rem;
    font-size: 14.5px;
    font-weight: 500;
    box-shadow: var(--vg-shadow-xs);
}

.alert-success {
    background: var(--vg-success-soft);
    border-color: rgba(46, 139, 87, .25);
    color: #1f6440;
}

.alert-danger {
    background: var(--vg-danger-soft);
    border-color: rgba(179, 38, 30, .22);
    color: #8c1e17;
}

.alert-warning {
    background: var(--vg-warning-soft);
    border-color: rgba(201, 138, 39, .28);
    color: #8a6115;
}

.alert-info,
.alert-primary {
    background: var(--vg-gold-50);
    border-color: rgba(201, 162, 39, .28);
    color: var(--vg-gold-800);
}

.table {
    font-size: 14.5px;
    color: var(--vg-text-soft);
}

.table thead th {
    background: var(--vg-cream-100);
    border-bottom: 1px solid var(--vg-border);
    border-top: 0;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: var(--vg-tracking-wide);
    text-transform: uppercase;
    color: var(--vg-text-muted);
    padding: .9rem 1rem;
    white-space: nowrap;
}

.table td {
    padding: .85rem 1rem;
    border-top: 1px solid var(--vg-border);
    vertical-align: middle;
}

.table-hover tbody tr:hover {
    background: var(--vg-gold-50);
}

/* Any table can scroll on small screens instead of breaking the layout */
.table-responsive {
    -webkit-overflow-scrolling: touch;
}

/* ==========================================================================
   11. FOOTER & NEWSLETTER
   ========================================================================== */

.newslatter h3 {
    font-family: var(--vg-font-display);
    color: #fff;
}

.newslatter p {
    color: var(--vg-text-on-dark-muted);
}

.newslatter .input-group {
    border-radius: var(--vg-radius-pill);
    overflow: hidden;
    box-shadow: var(--vg-shadow-md);
    background: #fff;
    padding: 5px;
}

.newslatter .form-control {
    border: 0 !important;
    border-radius: var(--vg-radius-pill) !important;
    background: transparent;
    padding-left: 1.35rem;
}

.newslatter .form-control:focus {
    box-shadow: none;
}

.newslatter .btn {
    border-radius: var(--vg-radius-pill) !important;
    background: var(--vg-gold-gradient) !important;
    color: var(--vg-on-primary) !important;
    padding: .7rem 1.75rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    font-size: 13px;
}

.newslatter .btn::before {
    display: none;
}

.main-footer {
    background: var(--vg-ink-900) !important;
    color: var(--vg-text-on-dark-muted);
    border-top: 1px solid var(--vg-border-dark) !important;
}

.main-footer p,
.main-footer div {
    color: var(--vg-text-on-dark-muted);
}

.footer-logo img {
    max-height: 68px;
    width: auto;
}

/* The legacy rule hangs a gold bar to the LEFT of the title and indents every
   link by 30px to clear it. Move the rule underneath instead - cleaner, and
   the links line up with the column. */
.link-title {
    font-family: var(--vg-font-body);
    color: #fff !important;
    position: relative;
    padding-left: 0;
    padding-bottom: .85rem;
    margin-bottom: 1.1rem !important;
}

.link-title::before {
    background: var(--vg-gold-gradient) !important;
    height: 2px;
    width: 38px;
    top: auto;
    bottom: 0;
    margin-top: 0;
    border-radius: var(--vg-radius-pill);
}

.footer-link .link {
    color: var(--vg-text-on-dark-muted);
    font-size: 14.5px;
    padding-left: 0;
    transition: color var(--vg-transition), transform var(--vg-transition);
}

.footer-link .link:hover {
    color: var(--vg-gold-300);
    transform: translateX(4px);
}

.social-icon li a {
    color: var(--vg-text-on-dark-muted);
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: .55rem;
    transition: color var(--vg-transition);
}

.social-icon li a:hover {
    color: var(--vg-gold-300);
}

.social-icon .icon-wrap {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--vg-radius-pill);
    border: 1px solid var(--vg-border-dark);
    background: rgba(255, 255, 255, .04);
    transition: all var(--vg-transition);
}

.social-icon li a:hover .icon-wrap {
    background: var(--vg-gold-gradient);
    color: var(--vg-on-primary);
    border-color: transparent;
}

.sub-footer {
    background: var(--vg-ink-900) !important;
    border-top: 1px solid var(--vg-border-dark) !important;
    color: var(--vg-text-on-dark-muted);
    font-size: 13.5px;
}

.sub-footer .copy {
    color: var(--vg-text-on-dark-muted);
}

.sub-footer a.text-white {
    color: var(--vg-text-on-dark-muted) !important;
    font-size: 13.5px;
    transition: color var(--vg-transition);
}

.sub-footer a.text-white:hover {
    color: var(--vg-gold-300) !important;
}

.sub-footer .list-inline-item + .list-inline-item {
    margin-left: 1.25rem;
}

/* Developer credit sits on the dark sub-footer */
.sub-footer .vg-credit {
    color: rgba(250, 246, 236, .45);
    margin-top: .3rem;
}

.sub-footer .vg-credit a:hover,
.sub-footer .vg-credit a:focus-visible {
    color: var(--vg-gold-300);
    border-bottom-color: var(--vg-gold-300);
}

/* Back-to-top */
.btn-top {
    border-radius: var(--vg-radius-pill);
    background: var(--vg-gold-gradient);
    color: var(--vg-on-primary);
    box-shadow: var(--vg-shadow-gold);
    border: 0;
    transition: transform var(--vg-transition), box-shadow var(--vg-transition);
}

.btn-top:hover {
    transform: translateY(-3px);
    box-shadow: var(--vg-shadow-gold-lg);
}

/* ==========================================================================
   12. GALLERY & MISC
   ========================================================================== */

.grid-item img,
.masonry-img img {
    border-radius: var(--vg-radius);
}

.grid-item {
    overflow: hidden;
    border-radius: var(--vg-radius);
}

.moreinfo {
    border-radius: var(--vg-radius);
    background: linear-gradient(180deg, rgba(11, 11, 13, 0) 40%, rgba(11, 11, 13, .82) 100%);
}

.info-title::before,
.custom-title::before {
    background: var(--vg-gold-gradient) !important;
    border-radius: var(--vg-radius-pill);
}

/* Contact strip: three short items don't need a full section's air */
.section.border-bottom {
    padding: 2.75rem 0;
    border-bottom-color: var(--vg-border) !important;
}

.section.border-bottom .border-right {
    border-right-color: var(--vg-border) !important;
}

.section.border-bottom h6 {
    letter-spacing: var(--vg-tracking-wide);
    color: var(--vg-text-muted);
}

.section.border-bottom .h4 {
    font-family: var(--vg-font-display);
    color: var(--vg-text);
    transition: color var(--vg-transition);
}

.section.border-bottom a.h4:hover {
    color: var(--vg-gold-700);
}

/* Google Maps paints tiles wider than its container; clip them so the page
   never gains a horizontal scrollbar on small screens. */
.map-content {
    overflow: hidden;
    max-width: 100%;
}

.map-content #map {
    min-height: 380px;
    width: 100%;
    max-width: 100%;
}

/* Contact detail list on the left of the form */
.contact-info .info-title,
.info-title {
    color: var(--vg-text);
}

.breadcrumb {
    background: transparent;
    padding: 0;
    font-size: 13px;
}

.breadcrumb-item.active {
    color: var(--vg-gold-700);
}

.page-item.active .page-link {
    background: var(--vg-gold-gradient);
    border-color: transparent;
    color: var(--vg-on-primary);
}

.page-link {
    color: var(--vg-text-soft);
    border-color: var(--vg-border);
    border-radius: var(--vg-radius-sm) !important;
    margin: 0 3px;
}

.page-link:hover {
    background: var(--vg-gold-50);
    color: var(--vg-gold-700);
    border-color: var(--vg-gold-200);
}

/* ==========================================================================
   13. RESPONSIVE
   ========================================================================== */

@media (max-width: 1199.98px) {
    .navbar-light .navbar-nav .nav-link {
        padding: .7rem .75rem;
    }
}

@media (max-width: 991.98px) {
    :root {
        --vg-header-h: 66px;
    }

    .navbar {
        padding: .5rem 1rem;
    }

    .navbar-brand img {
        max-height: 44px;
    }

    .navbar-collapse {
        background: #fff;
        margin: .75rem -1rem -0.5rem;
        padding: .5rem 1rem 1rem;
        border-top: 1px solid var(--vg-border);
    }

    .navbar-light .navbar-nav .nav-link {
        padding: .85rem .25rem;
        border-bottom: 1px solid var(--vg-border);
    }

    .navbar-light .navbar-nav .nav-link::after {
        display: none;
    }

    .navbar-light .navbar-nav .nav-item:last-child .nav-link {
        border-bottom: 0;
    }

    /* Brand + actions share one row: keep each side narrow enough to fit
       rather than forcing nowrap (which just pushes content off-screen). */
    .navbar {
        align-items: center;
    }

    .navbar > .d-flex.order-lg-last {
        margin-left: auto;
        align-items: center;
    }

    .navbar-collapse {
        flex-basis: 100%;
        order: 10;
    }

    .navbar .nav-item.p-3 {
        padding: .25rem .35rem !important;
    }

    .navbar #select_language {
        min-width: 0;
        width: auto;
        max-width: 108px;
        height: 36px;
        font-size: 12px;
        padding: 0 1.6rem 0 .7rem;
    }

    .navbar-right .nav-item.login .nav-link {
        padding: .5rem .6rem;
        font-size: 18px;
    }

    .navbar-toggler {
        margin-left: .35rem;
        padding: .4rem .55rem;
    }

    /* Booking widget stacks into a single readable column */
    .search-area {
        margin-top: -30px;
        padding: .35rem;
        border-radius: var(--vg-radius-md);
    }

    .search-form-content .search-option {
        border-right: 0;
        border-bottom: 1px solid var(--vg-border);
        padding: .9rem 1rem;
    }

    .search-form-content .btn {
        min-height: 64px;
        margin-top: .35rem;
        border-radius: var(--vg-radius);
    }

    .hero-header .hero-header_wrap .header-text {
        text-align: center;
    }

    .hero-header .hero-header_wrap .header-text .header-des {
        margin-left: auto;
        margin-right: auto;
    }

    .header-subtitle::before {
        display: none;
    }

    .card.card-poster {
        min-height: 300px;
    }

    .footer-logo img {
        max-height: 56px;
    }

    .sub-footer .row {
        text-align: center;
    }

    .sub-footer ul {
        text-align: center !important;
        margin-top: .75rem;
    }
}

@media (max-width: 767.98px) {
    body {
        font-size: 15px;
    }

    .section {
        padding: 3rem 0;
    }

    .form-container .panel {
        padding: 1.75rem 1.25rem;
    }

    .join-content {
        padding: 2.5rem 1.25rem;
    }

    .room-list .card-body {
        padding: 1rem;
    }

    .room-img img,
    .img-fluid-custome {
        width: 100% !important;
        max-width: 100% !important;
        height: 210px;
        object-fit: cover;
    }

    .btn {
        padding: .75rem 1.5rem;
    }

    .newslatter .btn {
        padding: .65rem 1.15rem;
        font-size: 12px;
    }

    /* Never let a wide table break the page */
    .table-responsive,
    table {
        display: block;
        width: 100%;
        overflow-x: auto;
    }
}

@media (max-width: 575.98px) {

    /* Fit brand + sign-in + language + toggler on a single 390px row */
    .navbar-brand img {
        max-height: 36px;
    }

    .navbar-brand {
        margin-right: .25rem;
    }

    .navbar #select_language {
        max-width: 88px;
        font-size: 11.5px;
        padding: 0 1.4rem 0 .55rem;
    }

    .hero-header .hero-header_wrap .header-text .header-title {
        font-size: 2.25rem;
    }

    .feature-box {
        padding: 1.75rem 1.15rem;
    }

    .newslatter .input-group {
        border-radius: var(--vg-radius);
        flex-direction: column;
        gap: .5rem;
    }

    .newslatter .input-group-append {
        width: 100%;
    }

    .newslatter .btn {
        width: 100%;
    }

    .btn-block,
    .form-container .panel .btn-block {
        width: 100%;
    }
}

/* Print - booking confirmations and invoices */
@media print {

    .navbar,
    .main-footer,
    .sub-footer,
    .newslatter,
    .btn-top,
    .search-area {
        display: none !important;
    }

    body {
        background: #fff;
        color: #000;
    }
}
