@charset "UTF-8";
/*!
Theme Name: Luviana Child
Theme URI: https://motopress.com/products/luviana
Author: MotoPress
Author URI: https://motopress.com
Description: Luviana is a Gutenberg theme perfectly fitting for hotels, rental accommodations and services, boarding houses or hostels. The theme comprises an integrated online booking plugin that allows conducting reservations of your rental properties and receiving online payments.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luviana
Template: luviana
*/

/* Static Header Image Styles */
.luviana-front-page-header {
    position: relative;
    margin-left: -50px;
    margin-right: -50px;
}

.front-page-static-image {
    /* Maintain exact same aspect ratio as original slider */
    min-height: 80vh;
}

/* Ensure header gradient overlay appears above static image but below menu */
#masthead::before {
    z-index: 5 !important;
}

/* Ensure widget area appears below header and menu */
.front-page-widget-area {
    z-index: 1 !important;
    position: relative;
}

/* Ensure header wrapper is above gradient but below mobile menu */
.site-header-wrapper {
    position: relative;
    z-index: 10;
}

/* Ensure main navigation has proper stacking context */
.main-navigation {
    position: relative;
    z-index: 1001 !important;
}

/* Override conflicting inline header styles */
.site-header-wrapper,
.site-branding,
.socials-menu-container {
    z-index: 10 !important;
}

/* Page title hidden - no header content styles needed */

@media (max-width: 991px) {
    .luviana-front-page-header {
        margin-left: -20px;
        margin-right: -20px;
    }
    
    /* Mobile hero height - works for BOTH static image and slider */
    .front-page-static-image {
        min-height: 50vh !important;
    }
    
    .luviana-front-page-header .child-pages-list .child-page {
        min-height: 50vh;
    }
    
    /* Internal page featured image header height */
    body.page-has-post-thumbnail .entry-header-wrapper {
        min-height: 50vh !important;
    }
}

/* Hide front page title that appears in page content */
.front-page .entry-title {
    display: block !important;
}

.front-page .page-title {
    display: none !important;
}

/* Search form white with shadow - original padding restored */
.front-page-widget-area {
    background: transparent !important;
    box-shadow: none !important;
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    padding: 0 !important;
}

.front-page-widget-area:before,
.front-page-widget-area:after {
    display: none !important;
}

.front-page-widget-area .widget_mphb_search_availability_widget {
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* ==============================================
   ADJUST THESE VALUES TO MODIFY FORM PADDING
   All values are in rem units
   ============================================== */
.front-page-widget-area .mphb_widget_search-form {
    background: rgb(254, 254, 254) !important;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    
    /* DEFAULT PADDING - ORIGINAL THEME VALUES */
    padding: 1.875rem 2.5rem !important; /* top/bottom | left/right */
    
    /* FOR DESKTOP: ADDITIONAL PADDING ON RIGHT FOR BUTTON */
    padding-right: calc(12.667% + 1.875rem) !important;
    
    margin: 0 auto !important;
    position: relative;
    z-index: 1;
    overflow: visible;
    width: 100% !important;
    max-width: 1200px !important;
}

/* Fix form colors */
.front-page-widget-area .mphb_widget_search-form label,
.front-page-widget-area .mphb_widget_search-form small,
.front-page-widget-area .mphb_widget_search-form abbr {
    color: #5f6060 !important;
}

.front-page-widget-area .mphb_widget_search-form input,
.front-page-widget-area .mphb_widget_search-form select {
    background: #fff !important;
    border-color: #e4e4e4 !important;
    color: #666 !important;
}

.front-page-widget-area .mphb_widget_search-form input:focus,
.front-page-widget-area .mphb_widget_search-form select:focus {
    border-color: #c1b086 !important;
}

/* FULL HEIGHT SEARCH BUTTON */
.front-page-widget-area .mphb_widget_search-submit-button-wrapper {
    width: 16.667% !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    margin: 0 !important;
}

.front-page-widget-area .mphb_widget_search-submit-button-wrapper .button {
    background: #c1b086 !important;
    color: white !important;
    height: 100% !important;
    border-radius: 0 4px 4px 0 !important;
}

.front-page-widget-area .mphb_widget_search-submit-button-wrapper .button:hover {
    background: #A80C0C !important;
}

/* Mobile responsiveness */
@media (max-width: 991px) {
    .front-page-widget-area .mphb_widget_search-form {
        padding: 1.875rem !important;
        margin: 0 1.5rem 1.5rem !important;
        max-width: 100% !important;
    }
    
    .front-page-widget-area .mphb_widget_search-submit-button-wrapper {
        width: 100% !important;
        position: relative !important;
        margin-top: 1rem !important;
    }
    
    .front-page-widget-area .mphb_widget_search-submit-button-wrapper .button {
        background: #c1b086 !important;
        border-radius: 4px !important;
        color: white !important;
    }
    
    .front-page-widget-area .mphb_widget_search-submit-button-wrapper .button:hover {
        background: #A80C0C !important;
    }
    

}

@media (min-width: 992px) {
    .front-page-widget-area .mphb_widget_search-form {
        min-height: 140px !important;
    }
    
    /* Make fields are evenly spaced: 4 columns */
    .front-page-widget-area .mphb_search_widget_default_fields {
        width: 100% !important;
        margin: 0 -9px !important;
    }
    
    .front-page-widget-area .mphb_search_widget_default_fields > p {
        width: 25% !important;
        max-width: 25% !important;
        padding: 0 9px !important;
        margin-bottom: 0 !important;
    }
}

/* ==============================================
   MANUAL ADJUSTMENT REFERENCE:
   Modify these values in style.css lines:
   
   1. TOP/BOTTOM PADDING:
      padding: 1.875rem 2.5rem !important;
      ↑ change 1.875rem = 30px (top/bottom)
      change 2.5rem = 40px (left/right)
   
   2. RIGHT PADDING FOR BUTTON:
      padding-right: calc(16.667% + 1.875rem) !important;
      16.667% = width of button
      1.875rem = same as top padding
   
   3. MINIMUM HEIGHT:
      min-height: 140px !important;
   
   Change these values to make form taller/shorter
   ============================================== */

/* Mobile dropdown menu fixes */
@media screen and (max-width: 991px) {
    /* Remove left/right padding from menu wrapper */
    .header-menus-wrapper {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Widen menu items to full width */
    .main-navigation ul li a {
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }
    
    /* Increase width of social menu container */
    .socials-menu-mobile-container {
        max-width: 100% !important;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
    
    /* Make menu full viewport edge-to-edge with proper z-index and styling */
    .header-menus-wrapper {
        left: -20px !important;
        right: -20px !important;
        width: calc(100% + 40px) !important;
        border-radius: 0;
        z-index: 1000 !important;
        background: #ffffff !important;
    }
    
    /* Ensure menu text is dark for readability on white background */
    .header-menus-wrapper a,
    .header-menus-wrapper .menu-text,
    .header-menus-wrapper #primary-menu a {
        color: #222222 !important;
    }

    /* Hover state for menu items */
    .header-menus-wrapper a:hover,
    .header-menus-wrapper #primary-menu a:hover {
        color: #c1b086 !important;
    }
}

/* SEO-friendly page title hiding - visible to search engines, hidden from users */
/* WCAG and Google recommended method - NOT display: none */
/* ONLY HIDES THE TITLE TEXT - HERO IMAGES REMAIN VISIBLE */
.page h1.entry-title,
.single-post h1.entry-title,
.blog h1.entry-title,
.archive h1.entry-title,
.search h1.entry-title {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Show accommodation/room type titles - fixes specificity issue */
.page .mphb-room-type .entry-title,
.page .mphb-room-type .mphb-room-type-title,
.single-mphb_room_type .entry-title,
.post-type-archive-mphb_room_type .entry-title {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    border: 0 !important;
    color: #222 !important;
}

/* Show room type prices */
.mphb-room-type .mphb-price,
.mphb-room-type .mphb-room-type-price,
.mphb-room-type .price {
    position: static !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #222 !important;
}

/* Fix front page title - replace display:none with SEO-friendly method */
.front-page .entry-title,
.front-page .page-title {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* EXCEPTION: Show room type titles ON FRONT PAGE (overrides front-page title hiding) */
.front-page .mphb-room-type .entry-title,
.front-page .mphb-room-type .mphb-room-type-title {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    border: 0 !important;
    color: #222 !important;
}

/* FIX: Show room type prices ON FRONT PAGE */
.front-page .mphb-room-type .mphb-room-type-price,
.front-page .mphb-room-type .mphb-price,
.front-page .mphb-room-type .price,
.front-page .mphb_widget_rooms-wrapper .mphb-price,
.front-page .mphb-room-type .mphb-price-period {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    overflow: visible !important;
    color: #222 !important;
    font-size: 18px !important;
}

/* Remove dark overlay from page hero images */
body.page-has-post-thumbnail .entry-header-background:after {
    display: none !important;
}

/* Optional: Add this class to specific pages in WordPress editor to hide titles individually */
/* 
.hide-page-title .entry-header-wrapper {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
} 
*/

/* ==========================================
   ADOBE FONTS ASSIGNMENTS
   ========================================== */

/* MAIN HEADINGS (Big Caslon FB) */
h1, h2, h3, .site-title, .wp-block-heading {
    font-family: "big-caslon-fb", serif !important;
    text-transform: uppercase; 
    font-weight: 400;
    letter-spacing: 0.02em;
}

/* SUB HEADINGS (Bodoni PT Variable) */
h4, h5, h6, .sub-heading, .site-description, .widget-title {
    font-family: "bodoni-pt-variable", serif !important;
    font-weight: 400;
}

/* PARAGRAPH & MENU TEXT (Gotham) */
body, p, a, span, li, .menu-text, button, .button, .mphb-book-button {
    font-family: "gotham", "Open Sans", sans-serif !important;
    font-weight: 400 !important;
}

/* Bold tags use Gotham Bold */
strong, b {
    font-weight: 600 !important;
}

/* HEADER MENU (Big Caslon & All Caps) */
#site-navigation a,
#site-navigation .menu-text {
    font-family: "big-caslon-fb", serif !important;
    text-transform: uppercase !important;
    font-weight: 400 !important;
    letter-spacing: 1px;
}

/* Mobile social menu - icons only (like desktop) */
@media screen and (max-width: 991px) {
    /* Hide menu text labels */
    .socials-menu-mobile-container .theme-social-menu a .menu-text {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }
    
    /* Center icons and remove margin right */
    .socials-menu-mobile-container .theme-social-menu a:before {
        margin-right: 0 !important;
        float: none !important;
    }
    
    /* Center social icons container */
    .socials-menu-mobile-container .theme-social-menu {
        display: flex;
        justify-content: center;
        gap: 1rem;
    }
    
    /* Make links square */
    .socials-menu-mobile-container .theme-social-menu a {
        justify-content: center;
        padding: 0.5rem;
    }
    
    /* Compact header widget form on mobile - 2 columns */
    /* Remove left/right margin to make form full width */
    .front-page-widget-area .mphb_widget_search-form {
        margin: 0 !important;
        padding: 1.875rem 1rem !important;
    }
    
    /* Apply flexbox directly to the wrapper div */
    .front-page-widget-area .mphb-search-widget-default-fields {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: space-between !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }
    
    /* 2 column layout for dates and guests */
    .front-page-widget-area .mphb-search-widget-default-fields > p {
        flex: 0 0 48% !important;
        max-width: 48% !important;
        margin-bottom: 1rem !important;
        padding: 0 !important;
    }
    
    /* Submit button full width */
    .front-page-widget-area .mphb_widget_search-submit-button-wrapper {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        margin-top: 0 !important;
    }
    
    /* Compact labels for header widget form */
    .front-page-widget-area .mphb_widget_search-form label {
        font-size: 0.8rem !important;
        margin-bottom: 0.25rem !important;
    }
    
    .front-page-widget-area .mphb_widget_search-form input,
    .front-page-widget-area .mphb_widget_search-form select {
        font-size: 1rem !important;
        padding: 0.5rem !important;
        min-height: 40px !important;
    }
}

/* ==============================================
   MOBILE EXPANDABLE STICKY BOOKING BAR
   ============================================== */

/* Base container */
.mobile-sticky-booking {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 99999; /* Increased to be above datepicker */
    background: #c1b086;
    transform: translateY(100%);
    transition: transform 0.3s ease-in-out;
    display: none;
    box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.2);
}

/* Ensure datepicker appears above everything and keeps consistent styling */
.datepick-popup {
    z-index: 999999 !important;
    background: #fff !important;
    -webkit-box-shadow: 0px 13px 43px 0px rgba(6, 28, 52, 0.23) !important;
    box-shadow: 0px 13px 43px 0px rgba(6, 28, 52, 0.23) !important;
}

/* Extra specificity to override MPHB minimal theme */
div.datepick-popup {
    background: #fff !important;
}

/* Show only on mobile */
@media (max-width: 991px) {
    .mobile-sticky-booking {
        display: block;
    }
    
    .mobile-sticky-booking.visible {
        transform: translateY(0);
    }
    
    /* Header / Toggle Button */
    .mobile-sticky-header {
        padding: 0.75rem;
        background: #c1b086;
    }
    
    .mobile-booking-toggle {
        width: 100%;
        background: #fff;
        color: #c1b086;
        border: none;
        padding: 0.875rem 1rem;
        border-radius: 4px;
        font-family: "gotham", "Open Sans", sans-serif;
        font-weight: 500;
        font-size: 1rem;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        min-height: 48px;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        transition: all 0.2s ease;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    }
    
    .mobile-booking-toggle:hover,
    .mobile-booking-toggle:focus {
        background: #f8f8f8;
        color: #A80C0C;
        outline: none;
    }
    
    .mobile-booking-toggle[aria-expanded="true"] .toggle-icon {
        transform: rotate(180deg);
    }
    
    .toggle-icon {
        transition: transform 0.2s ease;
        font-size: 0.8rem;
    }
    
    /* Collapsed form container */
    .mobile-booking-form {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease-in-out, padding 0.3s ease;
        background: #fff;
    }
    
    .mobile-booking-form[aria-hidden="false"] {
        max-height: 600px;
        padding: 1rem;
    }
    
    /* Ensure datepicker positions correctly above the booking bar */
    .mobile-sticky-booking .datepick-popup {
        position: fixed !important;
        bottom: auto !important;
        top: auto !important;
    }
    
    /* Form styling */
    .mobile-booking-form .mphb_widget_search-form {
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
    }
    
    /* Use flexbox directly on the form - no wrapper div exists */
    .mobile-booking-form .mphb_sc_search-form {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: space-between !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Hide required fields tip - saves vertical space */
    .mobile-booking-form .mphb-required-fields-tip {
        display: none !important;
    }
    
    /* Each field takes 48% width for 2 columns */
    .mobile-booking-form .mphb_sc_search-form > p.mphb_sc_search-check-in-date,
    .mobile-booking-form .mphb_sc_search-form > p.mphb_sc_search-check-out-date,
    .mobile-booking-form .mphb_sc_search-form > p.mphb_sc_search-adults,
    .mobile-booking-form .mphb_sc_search-form > p.mphb_sc_search-children {
        flex: 0 0 48% !important;
        max-width: 48% !important;
        margin-bottom: 1rem !important;
        padding: 0 !important;
    }
    
    /* Submit button full width */
    .mobile-booking-form .mphb_sc_search-form > p.mphb_sc_search-submit-button-wrapper {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        margin-bottom: 0 !important;
    }
    
    /* Submit button remains full width */
    .mobile-booking-form .mphb_widget_search-form > p.mphb_widget_search-submit-button-wrapper {
        width: 100% !important;
        display: block !important;
        margin-right: 0 !important;
        margin-bottom: 0 !important;
    }
    
    /* Compact labels and inputs for mobile horizontal layout */
    .mobile-booking-form .mphb_sc_search-form label {
        font-size: 0.8rem !important;
        margin-bottom: 0.25rem !important;
    }
    
    .mobile-booking-form .mphb_sc_search-form input,
    .mobile-booking-form .mphb_sc_search-form select {
        font-size: 1rem !important;
        padding: 0.5rem !important;
        min-height: 40px !important;
    }
    
    .mobile-booking-form .mphb_widget_search-submit-button-wrapper {
        width: 100% !important;
        position: relative !important;
        margin-top: 0.5rem !important;
    }
    
    .mobile-booking-form .button {
        width: 100% !important;
        min-height: 48px;
    }
    
    /* Add bottom padding to body so footer isn't covered */
    body {
        padding-bottom: 80px;
    }
    
    /* Fix for iOS Safari bottom safe area */
    @supports (-webkit-touch-callout: none) {
        body {
            padding-bottom: calc(80px + env(safe-area-inset-bottom));
        }
        
        .mobile-sticky-booking {
            padding-bottom: env(safe-area-inset-bottom);
        }
    }
}

/* ==============================================
   ROOM LAYOUT FIX FOR TRANSLATED POSTS WITHOUT FEATURED IMAGES
   ============================================== */

/**
 * Fix rooms alternating layout for rooms without images
 * Forces consistent layout even when translated rooms have no featured image
 */
.mphb-room-type.has-no-image .room-description-wrapper {
    width: 100%;
    padding: 3rem;
}

@media (min-width: 992px) {
    .mphb-room-type.has-no-image:nth-child(even) .room-description-wrapper {
        text-align: right;
    }
}


/* Fix WPML language switcher visibility in social menu */
.socials-menu-container .theme-social-menu a .menu-text,
.socials-menu-container .wpml-ls-menu-item a .menu-text {
    position: initial !important;
    clip: unset !important;
    overflow: visible !important;
    width: auto !important;
    height: auto !important;
    padding: 0 0.75rem !important;
}

/* Remove vertical separator bar on right */
.socials-menu-container:before {
    display: none !important;
}

/* Fix overlapping - remove circle styling for language links */
.socials-menu-container .theme-social-menu .wpml-ls-menu-item a {
    width: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    line-height: normal !important;
    display: inline !important;
}

/* Optional: Hide native language suffix if you don't want (Inglese) part */
.wpml-ls-display {
    display: none !important;
}

/* ==============================================
   SOCIAL MENU & LANGUAGE SWITCHER COMPLETE FIXES
   ============================================== */

/* 1. Fix text visibility on BOTH desktop and mobile */
.socials-menu-container .theme-social-menu a .menu-text,
.socials-menu-mobile-container .theme-social-menu a .menu-text,
.wpml-ls-menu-item a .menu-text {
    position: initial !important;
    clip: unset !important;
    overflow: visible !important;
    width: auto !important;
    height: auto !important;
    padding: 0 0.75rem !important;
}

/* 2. Make language items fit properly in wider pill-shaped circles */
.socials-menu-container .theme-social-menu .wpml-ls-menu-item a {
    width: 6rem !important;
    height: 2.5rem !important;
    border-radius: 1.25rem !important;
    line-height: 2.5rem !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

/* 3. Larger hover growth for all social menu items */
.theme-social-menu a:hover {
    transform: scale(1.2) !important;
}

/* 4. Remove vertical separator bar */
.socials-menu-container:before {
    display: none !important;
}

/* 5. Fix mobile menu z-index behind search widget */
.header-menus-wrapper {
    z-index: 9999 !important;
    position: relative;
}

/* 7. Ensure mobile menu container has proper stacking context */
.main-navigation {
    position: relative;
    z-index: 1001 !important;
}

/* 6. Hide language suffix (Inglese) */
.wpml-ls-display {
    display: none !important;
}

/* Mobile social menu - left align and add vertical spacing */
@media (max-width: 991px) {
    .socials-menu-mobile-container .theme-social-menu {
        text-align: left !important;
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
    }
    
    .socials-menu-mobile-container .theme-social-menu li {
        display: block !important;
        width: 100% !important;
        margin: 0.5rem 0 !important;
    }
    
    .socials-menu-mobile-container .theme-social-menu a {
        text-align: left !important;
        justify-content: flex-start !important;
        width: 100% !important;
        display: block !important;
        padding: 0.5rem 0 !important;
    }
    
    .socials-menu-mobile-container .theme-social-menu a .menu-text {
        padding-left: 0 !important;
    }
}

/* ==============================================
   ROOM PAGE STYLES (scoped to accommodation pages only)
   ============================================== */

/* -----------------------------------------------
   Gallery displayed first — use flexbox order so that
   the gallery appears above the description even when
   the description comes first in the editor content
----------------------------------------------- */
.single-mphb_room_type .entry-content-inner-wrapper {
    display: flex;
    flex-direction: column;
}

.single-mphb_room_type .mphb-single-room-type-gallery-wrapper {
    order: -1;
}

/* -----------------------------------------------
   Availability Calendar — fill left column width
----------------------------------------------- */
.single-mphb_room_type .mphb-calendar .datepick {
    width: 100% !important;
}

/* Increase gap between the two calendar months */
.single-mphb_room_type .mphb-calendar .datepick-month {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
}

.single-mphb_room_type .mphb-calendar .datepick-month-row {
    margin-left: -0.75rem !important;
    margin-right: -0.75rem !important;
}

/* -----------------------------------------------
   Room Gallery — Swiper slider
----------------------------------------------- */
.single-mphb_room_type .mphb-single-room-type-gallery-wrapper {
    margin-bottom: 2rem;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* Gallery images inside Swiper slides */
.single-mphb_room_type .gspb-room-gallery .swiper-slide img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 4 / 3;
}

/* Swiper pagination bullets — brand color */
.single-mphb_room_type .gspb-room-gallery .swiper-pagination-bullet {
    background: #c1b086;
    opacity: 0.4;
}

.single-mphb_room_type .gspb-room-gallery .swiper-pagination-bullet-active {
    opacity: 1;
}

/* Swiper nav buttons — perfectly round, no oval distortion */
.single-mphb_room_type .gspb-room-gallery .swiper-button-prev,
.single-mphb_room_type .gspb-room-gallery .swiper-button-next {
    color: #c1b086;
    background: rgba(255, 255, 255, 0.85);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    padding: 0;
    transition: background 0.2s ease;
}

.single-mphb_room_type .gspb-room-gallery .swiper-button-prev:hover,
.single-mphb_room_type .gspb-room-gallery .swiper-button-next:hover {
    background: rgba(255, 255, 255, 1);
}

/* Lightbox image link cursor */
.single-mphb_room_type .gspb-room-gallery .imagelink {
    cursor: zoom-in;
    display: block;
}

/* -----------------------------------------------
   Room Details Panel — at-a-glance room specs
   Injected between gallery and attributes.
----------------------------------------------- */
.room-details-panel {
    background: #f8f9fa;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 1.5rem 2rem;
    margin: 1.5rem 0 2rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2rem;
}

/* Price block — prominent, left-aligned */
.room-details-price {
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
    flex-shrink: 0;
    color: #222;
    line-height: 1.2;
}

.room-details-price-label {
    font-size: 0.9rem;
    color: #666;
    font-family: "gotham", "Open Sans", sans-serif;
    font-weight: 400;
}

.room-details-price-value {
    font-size: 2.25rem;
    font-weight: 700;
    font-family: "big-caslon-fb", serif;
    color: #c1b086;
}

.room-details-price-period {
    font-size: 0.85rem;
    color: #888;
    font-family: "gotham", "Open Sans", sans-serif;
}

/* Specs bar — flex row of specs cards */
.room-details-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: center;
    flex: 1;
}

.room-details-spec {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: #fff;
    border: 1px solid #e9e9e9;
    border-radius: 6px;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    color: #444;
}

.room-details-spec-icon {
    color: #c1b086;
    flex-shrink: 0;
}

.room-details-spec-value {
    font-weight: 600;
    color: #222;
    font-family: "gotham", "Open Sans", sans-serif;
}

.room-details-spec-label {
    color: #888;
    font-size: 0.8rem;
    margin-left: 0.15rem;
    font-family: "gotham", "Open Sans", sans-serif;
}

/* -----------------------------------------------
   Featured Image — hidden on room pages.
   The Greenshift gallery includes it as the first slide.
----------------------------------------------- */
.single-mphb_room_type .post-thumbnail {
    display: none !important;
}

/* Reduce the big gap below the header wrapper when featured image is removed */
.single-mphb_room_type .entry-header-wrapper {
    margin-bottom: 2rem !important;
}

/* -----------------------------------------------
   Two-Column Layout — Sidebar Proportions
   Overrides parent theme values for a more balanced
   content/sidebar ratio: ~64% content / ~30% form.
----------------------------------------------- */
@media (min-width: 992px) {
    .single-mphb_room_type .entry-content-inner-wrapper {
        padding-right: 36% !important;
    }

    .single-mphb_room_type .single-room-reservation-form {
        width: 30% !important;
    }
}

/* Form title styling — matches room details panel typography */
.single-mphb_room_type .single-room-reservation-form .mphb-reservation-form-title {
    font-family: "big-caslon-fb", serif;
    font-size: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 1.5rem;
    color: #222;
}

/* Submit button — brand color */
.single-mphb_room_type .mphb-reserve-button,
.single-mphb_room_type .mphb_sc_checkout-submit-wrapper .button,
.single-mphb_room_type input[type="submit"].mphb-reserve-button {
    background: #c1b086;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 0.875rem 2rem;
    font-family: "gotham", "Open Sans", sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 1rem;
    cursor: pointer;
    transition: background-color 0.2s ease;
    min-height: 48px;
}

.single-mphb_room_type .mphb-reserve-button:hover,
.single-mphb_room_type .mphb_sc_checkout-submit-wrapper .button:hover,
.single-mphb_room_type input[type="submit"].mphb-reserve-button:hover {
    background: #A80C0C;
}

/* -----------------------------------------------
   Attributes — two-column grid on desktop
----------------------------------------------- */
.single-mphb_room_type .mphb-single-room-type-attributes {
    background: #fafaf9;
    border-radius: 8px;
    padding: 1.5rem 2rem;
    margin-bottom: 1.5rem;
}

.single-mphb_room_type .mphb-single-room-type-attributes .mphb-attribute-title {
    font-family: "big-caslon-fb", serif;
    text-transform: uppercase;
    font-size: 1.1rem;
    letter-spacing: 0.02em;
    margin-bottom: 1rem;
    color: #222;
}

@media (min-width: 768px) {
    .single-mphb_room_type .mphb-single-room-type-attributes ul {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem 2rem;
    }
}

/* Amenities/facilities rendered as visual tag badges */
.single-mphb_room_type .mphb-single-room-type-attributes li.mphb-attribute-list-item-facilities .mphb-attribute-value {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
    font-size: 0;
}

.single-mphb_room_type .mphb-single-room-type-attributes li.mphb-attribute-list-item-facilities .mphb-attribute-value [class*="facility-"] {
    font-size: 0.85rem;
    line-height: 1.5;
    display: inline-block;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 0.2rem 0.6rem;
}

.single-mphb_room_type .mphb-single-room-type-attributes li.mphb-attribute-list-item-facilities .mphb-attribute-value [class*="facility-"] a {
    color: #444;
    text-decoration: none;
}

.single-mphb_room_type .mphb-single-room-type-attributes li.mphb-attribute-list-item-facilities .mphb-attribute-value [class*="facility-"] a:hover {
    color: #c1b086;
}

/* Remove list item marker/bullet from all attribute items */
.single-mphb_room_type .mphb-single-room-type-attributes ul {
    list-style: none;
    padding-left: 0;
}

.single-mphb_room_type .mphb-single-room-type-attributes li {
    list-style: none;
    margin-bottom: 0.5rem;
}

/* -----------------------------------------------
   Room Breadcrumb Navigation
----------------------------------------------- */
.room-breadcrumb {
    margin-bottom: 1.5rem;
}

.room-breadcrumb #breadcrumbs {
    font-size: 0.875rem;
    color: #666;
}

/* -----------------------------------------------
   Responsive — Accommodation Pages
----------------------------------------------- */
@media (max-width: 767px) {
    .room-details-panel {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        padding: 1.25rem 1rem;
    }

    .room-details-price {
        justify-content: center;
    }

    .room-details-price-value {
        font-size: 1.75rem;
    }

    .room-details-specs {
        justify-content: center;
    }

    .single-mphb_room_type .mphb-single-room-type-attributes {
        padding: 1rem 1.25rem;
    }

    .single-mphb_room_type .mphb-single-room-type-gallery-wrapper {
        border-radius: 0;
        margin-left: -20px;
        margin-right: -20px;
        width: calc(100% + 40px);
    }
}

/* Room page title smaller on mobile for long room names */
@media (max-width: 767px) {
    .single-mphb_room_type .entry-header .entry-title {
        font-size: 1.5rem !important;
    }
}

/* Accommodation listing — keep "/ per night" on same line as price, smaller */
.mphb_sc_rooms-wrapper.is-style-style-3 .type-mphb_room_type .mphb-regular-price .mphb-price-period {
    font-size: 55% !important;
}

.mphb_sc_rooms-wrapper.is-style-style-3 .type-mphb_room_type .mphb-regular-price {
    display: flex !important;
    align-items: baseline;
    flex-wrap: nowrap;
    gap: 0.25em;
}

/* Right-align the book button in the accommodation listing */
.mphb_sc_rooms-wrapper.is-style-style-3 .type-mphb_room_type .mphb-to-book-btn-wrapper {
    float: right !important;
    margin-right: 0 !important;
}

/* ==============================================
   CONTACTS PAGE — shorter hero section
   Mobile: 30vh, Desktop: 40vh with bottom of image visible
   ============================================== */
body.page-contacts .entry-header-wrapper {
    min-height: 30vh !important;
    max-height: 30vh !important;
}

@media (min-width: 768px) {
    body.page-contacts .entry-header-wrapper {
        min-height: 40vh !important;
        max-height: 40vh !important;
    }
}

body.page-contacts .entry-header-background img {
    object-position: bottom !important;
}