/* =====================================================
   Language Switcher — FR / EN
   Sits inside .nav-action-blanc (desktop) and is also
   exposed on mobile as a floating chip next to the burger.
   ===================================================== */

.lang-switcher {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-right: 12px;
    padding: 3px;
    background: var(--brand-white, #fff);
    border: 1px solid var(--brand-title, #7a5c3e);
    border-radius: 999px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.lang-switcher-btn {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: transparent;
    cursor: pointer;
    padding: 6px 12px;
    font-family: var(--font-ui, "Montserrat", sans-serif);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--brand-title, #7a5c3e);
    border-radius: 999px;
    line-height: 1;
    transition: background 0.25s ease, color 0.25s ease, transform 0.2s ease;
}

.lang-switcher-btn:hover {
    color: var(--brand-accent, #c0945e);
}

.lang-switcher-btn.active {
    background: var(--brand-title, #7a5c3e);
    color: var(--brand-white, #fff);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18) inset;
}

.lang-switcher-btn:focus-visible {
    outline: 2px solid var(--brand-accent, #c0945e);
    outline-offset: 2px;
}

/* ========== MOBILE ========== */
@media (max-width: 768px) {
    /* The .nav-action-blanc container is hidden on mobile,
       so we re-show only the lang switcher and float it next
       to the burger toggle. */
    .nav-action-blanc {
        display: flex !important;
        position: absolute;
        top: 50%;
        right: 60px;
        transform: translateY(-50%);
        padding: 0;
        margin: 0;
        flex: 0 0 auto;
        z-index: 5;
    }

    /* Hide the Services CTA inside the action container on mobile */
    .nav-action-blanc .btn-nav-blanc {
        display: none;
    }

    .lang-switcher {
        margin-right: 0;
        padding: 2px;
    }

    .lang-switcher-btn {
        padding: 5px 10px;
        font-size: 0.72rem;
    }
}

/* Floating Call / Book actions shared by every page and viewport. */
.floating-button {
    position: fixed;
    right: 18px;
    bottom: 18px;
    left: auto;
    z-index: 900;
    display: flex !important;
    width: auto;
    gap: 7px;
    align-items: center;
    padding: 6px;
    border: 1px solid rgba(85, 59, 46, 0.16);
    border-radius: 999px;
    background: rgba(250, 247, 243, 0.88);
    box-shadow: 0 16px 40px rgba(59, 42, 34, 0.18);
    backdrop-filter: blur(16px);
    margin: 0 !important;
    pointer-events: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity 240ms ease, transform 240ms ease;
}

.floating-button > div {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    margin: 0 !important;
    padding: 0;
}

.floating-button .btn-call-us,
.floating-button .btn-book-now {
    display: inline-flex;
    min-width: 134px;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin: 0;
    padding: 0 19px;
    border-radius: 999px;
    font-family: var(--font-ui, "Open Sans", Arial, sans-serif);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.055em;
    line-height: 1;
    text-decoration: none;
    transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, transform 220ms ease;
}

.floating-button .btn-call-us {
    border-color: transparent !important;
    background: transparent;
    color: #3b2a22 !important;
    box-shadow: none;
}

.floating-button .btn-book-now {
    border-color: #3b2a22 !important;
    background: #3b2a22;
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(59, 42, 34, 0.17);
}

.floating-button .btn-call-us:hover,
.floating-button .btn-book-now:hover {
    border-color: #8f6c51 !important;
    background: #8f6c51;
    color: #fff !important;
    transform: translateY(-2px);
}

.floating-button .btn-call-us:active,
.floating-button .btn-book-now:active {
    transform: translateY(1px) scale(0.985);
}

.floating-button .btn-call-us:focus-visible,
.floating-button .btn-book-now:focus-visible {
    outline: 2px solid #7a5c3e;
    outline-offset: 3px;
}

@media (max-width: 768px) {
    .floating-button {
        right: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        left: 10px;
        display: grid !important;
        grid-template-columns: 0.85fr 1.15fr;
        width: auto;
        gap: 5px;
        padding: 5px;
        border-radius: 18px;
    }

    .floating-button > div {
        width: auto !important;
    }

    .floating-button .btn-call-us,
    .floating-button .btn-book-now {
        width: 100%;
        min-width: 0;
        min-height: 48px;
        padding: 0 12px;
        font-size: 10px;
    }

    /* Touch screens must not inherit RD Theme's permanent gallery hover state. */
    .mobile .gallery-item::before,
    .mobile .gallery-item .gallery-item-title,
    .mobile .gallery-item .gallery-item-button,
    .tablet .gallery-item::before,
    .tablet .gallery-item .gallery-item-title,
    .tablet .gallery-item .gallery-item-button,
    #gallery-page .gallery-item:hover::before,
    #gallery-page .gallery-item:hover .gallery-item-title,
    #gallery-page .gallery-item:hover .gallery-item-button {
        opacity: 0 !important;
    }

    #gallery-page .gallery-item:hover img,
    #gallery-page a:hover img,
    #gallery-page img:hover {
        transform: none !important;
        box-shadow: var(--brand-shadow) !important;
    }

    /* Gallery is presentation-only on mobile: preserve fluid vertical scrolling. */
    #gallery-page .gallery-item,
    #home-gallery .gallery-item {
        pointer-events: none !important;
        cursor: default;
        touch-action: pan-y;
        -webkit-tap-highlight-color: transparent;
        user-select: none;
    }
}

@media (max-width: 480px) {
    .nav-action-blanc {
        right: 52px;
    }

    .lang-switcher-btn {
        padding: 4px 8px;
        font-size: 0.68rem;
    }
}

/* Compact, single-row site navigation. */
body {
    padding-top: 88px;
}

.nav-blanc-wrap,
.nav-blanc-wrap.nav-scroll-x {
    height: 88px;
    border-bottom: 1px solid rgba(85, 59, 46, 0.1);
}

.nav-blanc-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    width: min(100% - 40px, 1420px);
    min-height: 88px;
    height: 88px;
    padding: 0;
}

.nav-social-blanc,
.nav-action-blanc {
    flex: none;
    padding-top: 0;
}

.nav-social-blanc {
    min-width: 84px;
}

.nav-action-blanc {
    min-width: 94px;
}

.nav-center-blanc {
    position: static;
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    gap: clamp(24px, 3.2vw, 54px);
    text-align: left;
}

.logo-blanc {
    flex: 0 0 auto;
    margin: 0;
}

.logo-blanc .logo-wordmark {
    min-height: 0;
}

.header-logo-img,
.nav-scroll-x .header-logo-img {
    width: auto !important;
    height: 52px !important;
    max-width: min(220px, 42vw) !important;
    object-fit: contain !important;
    filter: none;
}

.menu-blanc {
    justify-content: flex-start;
    gap: clamp(15px, 1.7vw, 28px);
}

.menu-blanc a {
    position: relative;
    padding: 8px 0;
    font-size: 12px;
    letter-spacing: 0.075em;
}

.menu-blanc a::after {
    position: absolute;
    right: 0;
    bottom: 2px;
    left: 0;
    height: 1px;
    background: currentColor;
    content: "";
    opacity: 0;
    transform: scaleX(0.4);
    transition: opacity 220ms ease, transform 220ms ease;
}

.menu-blanc a:hover::after,
.menu-blanc a:focus-visible::after,
.menu-blanc a.nav-current-blanc::after {
    opacity: 0.62;
    transform: scaleX(1);
}

.menu-blanc a:focus-visible,
.nav-toggle-blanc:focus-visible {
    outline: 2px solid var(--brand-accent, #7a5c3e);
    outline-offset: 4px;
}

.lang-switcher {
    margin-right: 0;
}

@media (max-width: 1080px) and (min-width: 769px) {
    .nav-blanc-inner {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .nav-social-blanc {
        display: none;
    }

    .nav-center-blanc {
        justify-content: flex-start;
        gap: 24px;
    }

    .menu-blanc {
        gap: 14px;
    }

    .menu-blanc a {
        font-size: 11px;
    }
}

@media (max-width: 768px) {
    body {
        padding-top: 76px;
    }

    .nav-blanc-wrap,
    .nav-blanc-wrap.nav-scroll-x {
        height: 76px;
    }

    .nav-blanc-inner {
        display: flex;
        width: 100%;
        min-height: 76px;
        height: 76px;
        padding: 0 16px;
    }

    .nav-center-blanc {
        display: block;
    }

    .header-logo-img,
    .nav-scroll-x .header-logo-img {
        height: 58px !important;
    }

    .menu-blanc {
        top: 76px;
        gap: 4px;
        padding: 14px 20px 20px;
        border-top: 1px solid rgba(85, 59, 46, 0.08);
        box-shadow: 0 18px 35px rgba(60, 43, 34, 0.1);
    }

    .menu-blanc a {
        padding: 10px 6px;
        font-size: 12px;
    }

    .nav-action-blanc {
        right: 58px;
        min-width: 0;
    }

    .nav-toggle-blanc {
        display: grid;
        width: 38px;
        height: 38px;
        margin-left: auto;
        place-items: center;
        border: 1px solid rgba(85, 59, 46, 0.18);
        border-radius: 50%;
        background: transparent;
        font-size: 18px;
        line-height: 1;
    }
}

/* Final navbar layout: logo stays optically centered on every viewport. */
body {
    padding-top: 96px;
}

.nav-blanc-wrap,
.nav-blanc-wrap.nav-scroll-x {
    height: 96px;
}

.nav-blanc-inner {
    position: relative;
    display: flex;
    width: min(100% - 40px, 1500px);
    min-height: 96px;
    height: 96px;
    justify-content: space-between;
}

.nav-center-blanc {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
}

.logo-blanc {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 5;
    margin: 0;
    transform: translate(-50%, -50%);
}

.header-logo-img,
.nav-scroll-x .header-logo-img {
    height: 54px !important;
    max-width: 240px !important;
}

.menu-blanc {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px minmax(0, 1fr);
    align-items: center;
    width: 100%;
}

.menu-blanc__group {
    display: flex;
    align-items: center;
    gap: clamp(14px, 1.55vw, 25px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.menu-blanc__group--left {
    grid-column: 1;
    justify-content: flex-end;
    padding-right: 22px;
}

.menu-blanc__group--right {
    grid-column: 3;
    justify-content: flex-start;
    padding-left: 22px;
}

.nav-social-blanc,
.nav-action-blanc {
    position: relative;
    z-index: 6;
}

@media (max-width: 1080px) and (min-width: 769px) {
    .nav-blanc-inner {
        display: flex;
    }

    .nav-center-blanc {
        position: absolute;
        inset: 0;
        justify-content: initial;
    }

    .header-logo-img,
    .nav-scroll-x .header-logo-img {
        height: 48px !important;
        max-width: 200px !important;
    }

    .menu-blanc {
        grid-template-columns: minmax(0, 1fr) 170px minmax(0, 1fr);
    }

    .menu-blanc__group {
        gap: 12px;
    }

    .menu-blanc__group--left {
        padding-right: 14px;
    }

    .menu-blanc__group--right {
        padding-left: 14px;
    }

    .menu-blanc a {
        font-size: 10px;
    }
}

@media (max-width: 768px) {
    body {
        padding-top: 82px;
    }

    .nav-blanc-wrap,
    .nav-blanc-wrap.nav-scroll-x {
        height: 82px;
    }

    .nav-blanc-inner {
        width: 100%;
        min-height: 82px;
        height: 82px;
        padding: 0 14px;
    }

    .nav-center-blanc {
        position: static;
        width: auto;
    }

    .header-logo-img,
    .nav-scroll-x .header-logo-img {
        height: 44px !important;
        max-width: 170px !important;
    }

    .menu-blanc {
        top: 82px;
        display: none;
        width: 100%;
    }

    .menu-blanc.active {
        display: flex;
    }

    .menu-blanc__group {
        display: flex;
        flex-direction: column;
        gap: 4px;
        width: 100%;
        padding: 0;
    }

    .nav-action-blanc {
        position: absolute;
        top: 50%;
        right: auto;
        left: 14px;
    }

    .nav-toggle-blanc {
        position: absolute;
        top: 50%;
        right: 14px;
        margin: 0;
        transform: translateY(-50%);
        width: 42px;
        height: 42px;
        padding: 0;
        font-size: 22px;
        line-height: 1;
        transition: color 220ms ease, border-color 220ms ease, transform 220ms ease;
    }

    .nav-toggle-blanc.is-open {
        color: var(--brand-title, #2c2420);
        font-size: 30px;
    }
}

/* Compact transparent wordmark — sized for navbar, not full-square mark. */
.header-logo-img,
.nav-scroll-x .header-logo-img {
    height: 56px !important;
    max-width: min(260px, 46vw) !important;
    width: auto !important;
    object-fit: contain !important;
}

@media (max-width: 1080px) and (min-width: 769px) {
    .header-logo-img,
    .nav-scroll-x .header-logo-img {
        height: 50px !important;
        max-width: 210px !important;
    }
}

@media (max-width: 768px) {
    .header-logo-img,
    .nav-scroll-x .header-logo-img {
        height: 42px !important;
        max-width: 168px !important;
    }
}

/* Keep the last page content reachable above the persistent booking actions. */
body {
    padding-bottom: 86px;
}

@media (max-width: 768px) {
    body {
        padding-bottom: 78px;
    }
}

/* Keep the desktop navigation links centered on the logo's vertical axis. */
@media (min-width: 769px) {
    .menu-blanc {
        height: 100%;
    }

    .menu-blanc__group {
        align-self: center;
    }
}
