/*
Theme Name: Swiss Hotel Booking Flow Review
Template: astra
Description: Hotel design child theme for Astra. Assign Swiss Design templates to pages after staging review.
Version: 1.3.0
Requires PHP: 7.4
*/
.hotel-booking{padding:80px max(24px,calc((100vw - 1100px)/2));background:#f5f1e9;color:#243b36}.hotel-booking h2{text-align:center;margin-bottom:32px}.hotel-booking a{color:#2e5a50}

/* The photo controls stay easy to tap without a visible button outline. */
.slider-wrapper .slider-arrow, .gallery-panel .slider-arrow, .gallery-controls .gallery-arrow {
    display: flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; padding: 0;
    border: 0; border-radius: 0; background: transparent;
    color: #fff; box-shadow: none; text-shadow: 0 1px 5px rgba(0,0,0,.8);
}
.slider-wrapper .slider-arrow:hover, .gallery-panel .slider-arrow:hover, .gallery-controls .gallery-arrow:hover {
    background: transparent; color: #fff; opacity: .8;
}
.slider-wrapper .slider-arrow:focus-visible, .gallery-panel .slider-arrow:focus-visible, .gallery-controls .gallery-arrow:focus-visible {
    outline: 2px solid #fff; outline-offset: 2px;
}
@media (max-width: 1100px) {
    header .menu-toggle, header .menu-toggle:hover, header .menu-toggle:focus {
        width: 48px; height: 48px; padding: 0; align-items: center;
        justify-content: center; border: 0; background: transparent; box-shadow: none;
    }
    header .nav-container .nav-links {
        width: 100%; margin: 0; padding: 0; align-items: center;
        justify-content: center; text-align: center;
    }
}

/* Gallery arrows sit on the photo; room thumbnails are hidden. */
.slider-wrapper .slider-arrow, .gallery-panel .slider-arrow, .gallery-controls .gallery-arrow {
    background: transparent !important; border: 0 !important;
    color: white !important; box-shadow: none !important;
    text-shadow: 0 1px 6px rgba(0,0,0,.9); padding: 0 !important;
}
.gallery-container .gallery-thumbs { display: none; }
.gallery-container .gallery-controls { margin: 0; }
.gallery-container .gallery-arrow {
    position: absolute; top: clamp(160px, 21vw, 290px); z-index: 2;
    transform: translateY(-50%); width: 48px; height: 48px;
}
.gallery-container .gallery-arrow:first-child { left: 12px; }
.gallery-container .gallery-arrow:last-child { right: 12px; }
.gallery-container:has(.gallery-thumbs button:only-child) .gallery-arrow { display: none; }

/* Keep the mobile menu icon visible and centered on tablet-sized screens. */
@media (max-width: 1100px) {
    header .menu-toggle,
    header .menu-toggle:hover,
    header .menu-toggle:focus,
    header .menu-toggle:active {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 6px;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 0 !important;
        border-radius: 0;
        background: transparent !important;
        box-shadow: none !important;
    }
    header .menu-toggle .bar {
        display: block;
        flex: 0 0 2px;
        width: 24px;
        height: 2px;
        background-color: #fff;
    }
}

/* Room photographs fit in the frame and can be enlarged. */
.room-details-view{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px 32px;align-items:start}.gallery-container{grid-column:1;margin:0}.room-info-grid{display:contents}.room-description{grid-column:1;grid-row:2}.booking-sidebar{grid-column:2;grid-row:1}.room-photo-open{display:block;width:100%;padding:0;border:0;border-radius:22px;background:#262321;overflow:hidden;cursor:zoom-in}.gallery-container .main-img{width:100%;height:clamp(250px,42vh,400px);object-fit:contain;border-radius:0;background:#262321}.gallery-container .gallery-arrow{top:50%}.room-photo-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:60px 64px;border:0;background:rgba(0,0,0,.96);color:white}.room-photo-dialog::backdrop{background:rgba(0,0,0,.9)}.room-photo-dialog img{display:block;width:100%;height:100%;object-fit:contain}.room-photo-dialog button{position:absolute;color:#fff;background:transparent;border:0;box-shadow:none;font-size:48px;line-height:1;padding:8px 14px;cursor:pointer}.room-photo-dialog button:hover{background:transparent;color:#fff;opacity:.8}.room-photo-close{right:14px;top:8px}.room-photo-prev{left:8px;top:50%;transform:translateY(-50%)}.room-photo-next{right:8px;top:50%;transform:translateY(-50%)}@media(max-width:800px){.room-details-view{display:flex;flex-direction:column;gap:22px}.gallery-container,.room-info-grid,.booking-sidebar,.room-description{width:100%}.room-info-grid{display:flex;flex-direction:column;gap:22px;margin:0}.booking-sidebar{order:-1}.gallery-container .main-img{height:clamp(230px,45vh,380px)}.room-photo-dialog{padding:60px 45px}}

/* A soft photographic backdrop frames portrait and landscape room pictures. */
.room-photo-open {position:relative;isolation:isolate;background:#53413c}.room-photo-open::before{content:"";position:absolute;inset:-24px;background-image:linear-gradient(rgba(25,20,20,.3),rgba(25,20,20,.3)),var(--room-photo);background-position:center;background-size:cover;filter:blur(18px);z-index:-1}.gallery-container .main-img{position:relative;background:transparent;filter:drop-shadow(0 4px 14px rgba(0,0,0,.25))}header .logo{width:78px;height:78px;padding:7px;background:#fff;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}header .logo img{width:100%;height:100%;object-fit:contain;filter:none}@media(max-width:760px){header .logo{width:64px;height:64px;padding:6px}}

.booking-sidebar p { margin-bottom: 20px; }
.booking-sidebar .btn-book-now { display: inline-block; }

/* Transparent logo, as requested by the hotel. */
header .logo{width:140px;height:auto;padding:5px 8px;background:transparent}header .logo img{width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}@media(max-width:760px){header .logo{width:110px;height:auto;padding:4px 6px}}

/* White navigation with the hotel's red branding. */
header, header.sticky { background: #fff; border-bottom: 1px solid #f2dddd; }
header .logo img { filter: brightness(0) saturate(100%) invert(16%) sepia(99%) saturate(5817%) hue-rotate(357deg) brightness(90%) contrast(115%); }
header .nav-links a, header .nav-links a:visited { color: #c90000; }
header .nav-links a:hover, header .nav-links a:focus-visible { color: #8e0000; }
header .menu-toggle .bar { background-color: #c90000; }
header .lang-select { color: #c90000; border-color: #d86b6b; }
header :focus-visible { outline-color: #c90000; }
@media (max-width: 1100px) { header .nav-container { background: #fff; } }

/* Keep the booking step unobscured beneath the fixed navigation. */
#booking{scroll-margin-top:110px}.hotel-booking-page{min-height:60vh;padding-top:135px;padding-bottom:80px}.hotel-booking-page .entry-content{max-width:1100px;margin:auto}.hotel-booking-page h1{font-family:Georgia,serif;text-align:center;color:#df0909;font-size:clamp(36px,5vw,56px);margin:0 0 32px}.hotel-booking-page .plugin-container{max-width:100%}@media(max-width:760px){#booking{scroll-margin-top:85px}.hotel-booking-page{padding-top:110px}}
