/* * UI Component: Dark Theme Location Card (WP-Native Alignment)
 * Refactored to respect WordPress Global Layout Settings, Flexbox boundaries & Strict Grid.
 * Includes fluid typography and grid fallback for mobile (<= 1190px).
 */

:root {
    --hotel-section-corner-radius: 50px;
    --hotel-section-padding: clamp(1.5rem, 5vw, 4rem);
    --hotel-section-background: #1a1a1a;
    --hotel-section-large-gap: 2.5rem;
}

/* 1. Outer Wrapper */
.hotelSection {
    background-color: var(--site-bg-color); 
    font-family: var(--font-primary);
    padding-top: var(--hotel-section-large-gap);
    padding-bottom: 0px; /* var(--hotel-section-large-gap);*/
    box-sizing: border-box;
}

/* 2. Inner Wrapper - The Dark Card */
.hotelSection > .wp-block-group {
    background-color: var(--hotel-section-background);
    border-radius: var(--hotel-section-corner-radius);
    padding: var(--hotel-section-padding);
    box-sizing: border-box;
    
    display: grid !important; 
    grid-template-columns: 1fr 1fr;
    /* Grid structure: 3 rows for Header, Text Boxes, and Button. Right column spans all. */
    grid-template-rows: auto 1fr auto; 
    gap: var(--hotel-section-large-gap) 4rem;
    align-items: stretch; 
}

/* 3. Typography & Positioning */
.hotel-section-header {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    font-size: var(--h1-font-size);
    line-height: var(--h1-line-height);
    font-weight: var(--h1-font-weight);
    color: var(--h1-text-color);
    text-transform: var(--h1-text-transform);
    letter-spacing: var(--h1-letter-spacing);
    margin: 0 0 1rem 0;
    line-height: 1.1;
    transition: font-size 0.3s ease-in-out; 
}

/* Inner Flex Container - Refactored to Horizontal Row */
.hotelSection .is-content-justification-space-between {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    display: flex;
    flex-direction: row; /* Horizontal alignment */
    justify-content: flex-start; 
    align-items: flex-start;
    flex-wrap: wrap; /* Prevents overflow issues on smaller desktop screens */
    gap: 3rem; /* Spacing between "Location" and "Contact" */
    height: 100%; 
}

/* Info Boxes Reset & Horizontal Structure */
.Single-info-box {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    flex: 1 1 auto;
    min-width: 180px; /* Guarantees readability before breakpoint collapse */
    text-align: left !important;
}

.Single-info-box-header {
    font-size: var(--h3-font-size);
    color: var(--contact-text-muted);
    margin: 0 0 0.5rem 0;
    text-transform: uppercase;
    letter-spacing: 2px;
    transition: font-size 0.3s ease-in-out;
}

.Single-info-box-desc {
    font-size: var(--p-font-size) !important;
    line-height: var(--p-line-heght);
    color: var(--p-text-color);
    margin: 0 0 0.25rem 0; /* Added slight vertical rhythm between paragraphs */
    transition: font-size 0.3s ease-in-out;
}

/* Button Positioning explicitly inside Grid */
.hotelSection .wp-block-buttons {
    grid-column: 1 / 2;
    grid-row: 3 / 4;
    margin-top: auto; 
}

/* 4. Iframe / Map Styling */
.hotelSection iframe {
    grid-column: 2 / 3;
    grid-row: 1 / 4; /* Spans across Header, Content, and Button */
    width: 100%;
    min-height: 450px;
    height: 100%;
    background-color: var(--high-contrast-bg-color);
    border-radius: var(--hotel-section-corner-radius);
    border: none !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* ==========================================================================
   Hotel Section Mobile Layout Override (Resolutions <= 1190px)
   Architecture: Flexbox Column Stack & Strict Overflow Prevention
   ========================================================================== */
@media (max-width: 1190px) {
    
    .hotelSection {
        padding: 30px 0;
        overflow-x: hidden; 
    }

    .hotelSection > .wp-block-group {
        display: flex !important; 
        flex-direction: column;
        gap: 40px;
        align-items: flex-start; /* Unified left alignment for mobile */
        padding: 50px 20px; /*Inner padding*/ 
        border-radius: 30px; 
        margin-left: 0px;
        margin-right: 0px;
        width: 100%;
        max-width: 100%;
    }
    

    /* Stack inner info boxes vertically on mobile */
    .hotelSection .is-content-justification-space-between {
        display: flex;
        flex-direction: column;
        width: 100%;
        gap: 30px;
        justify-content: flex-start !important;
        align-items: flex-start !important; 
        height: auto;
    }

    .hotelSection .is-content-justification-space-between > .Single-info-box {
        align-items: flex-start !important;
        align-self: flex-start !important;
        text-align: left !important;
        margin-left: 0 !important; 
        margin-right: auto !important; 
        width: 100%;
    }

    .hotelSection .hotel-section-header {
    font-size: var(--mobile-scaled-h1-font-size) !important;
        hyphens: auto;
        margin-bottom: 0; 
    }

    .hotelSection .Single-info-box-header {
        font-size: var(--mobile-h3-font-size);
        word-wrap: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    .hotelSection .Single-info-box-desc {
        font-size: var(--p-mobile-font-size) !important;
    }

    .hotelSection iframe {
        border-radius: 30px; 
        width: 100%;
        max-width: 100%;
        min-height: 350px;
        height: auto; 
        margin-top: 0; 
    }
}