/*
Theme Name: Auberge
Theme URI: https://aubergedesfinsbois.fr/
Author: Auberge des Fins Bois
Description: Theme WordPress sur mesure pour L'Auberge des Fins Bois.
Version: 1.0.25
Update URI: false
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: auberge
Domain Path: /languages
Woo: 8.0
*/

body {
    margin: 0;
}

html,
body {
    width: 100%;
    overflow-x: hidden;
}

.skip-link {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 100000;
    transform: translateY(-140%);
    padding: 10px 14px;
    background: #fff;
    color: #111;
    font-weight: 700;
}

.skip-link:focus {
    transform: translateY(0);
}

.page-shell {
    --layout-width: min(100vw, 1920px);
    width: var(--layout-width);
}

.page-shell .page {
    min-height: 0 !important;
    background: #fff;
}



.qsn-photo img,
.qsn-room__media img,
.qsn-values__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery__modal-trigger {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.plats-grid,
.gallery {
    overflow: hidden;
}

.plats-grid .plat-card,
.gallery .gallery__item {
    display: none;
}

.plats-grid .plat-card:nth-child(-n+4),
.gallery .gallery__item:nth-child(-n+3) {
    display: block;
}

.plats-grid .plat-card.is-hidden,
.gallery .gallery__item.is-hidden {
    display: none;
}

.plats-grid .plat-card:not(.is-hidden),
.gallery .gallery__item:not(.is-hidden) {
    display: block;
}

.auberge-cart-notice {
    position: fixed;
    z-index: 10000;
    right: 24px;
    bottom: 24px;
    transform: translateY(16px);
    opacity: 0;
    padding: 14px 18px;
    background: #111;
    color: #fff;
    font: 600 14px/1.4 "Open Sans", sans-serif;
    transition: opacity .2s ease, transform .2s ease;
}

.auberge-cart-notice.is-visible {
    transform: translateY(0);
    opacity: 1;
}

.wpcf7 form {
    margin-top: 45px;
}

.wpcf7 input:not([type="submit"]),
.wpcf7 select,
.wpcf7 textarea {
    width: 100%;
    min-height: 64px;
    border: 1px solid #d8d8d8;
    background: #fff;
    padding: 0 20px;
    color: #5c6574;
    font-size: 14px;
}

.wpcf7 textarea {
    min-height: 170px;
    padding-top: 18px;
}

.wpcf7 input[type="submit"] {
    float: right;
    width: 286px;
    height: 64px;
    border: 0;
    background: #d32080;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .24px;
}

.wpcf7 p {
    margin: 0 0 30px;
}

.wpcf7 .form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
}

.wpcf7 .form-row p {
    margin: 0;
}

.cart-summary__qty,
.cart-summary__remove {
    border: 1px solid rgba(255,255,255,.65);
    color: #fff;
    background: transparent;
    cursor: pointer;
}

.cart-summary__remove {
    padding: 2px 7px;
    font-size: 11px;
}

.wpcf7 .auberge-cf7-form {
    display: grid;
    gap: 1rem;
}

.wpcf7 .form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.wpcf7 .field {
    display: block;
    margin: 0;
}

.wpcf7 .field input,
.wpcf7 .field textarea,
.wpcf7 .field select {
    width: 100%;
}

.wpcf7 .wpcf7-submit.btn {
    border: 0;
    cursor: pointer;
}

.wpcf7 .wpcf7-not-valid-tip {
    margin-top: .35rem;
    font-size: 12px;
    color: #d32080;
}

.wpcf7 .wpcf7-response-output {
    margin: 1rem 0 0;
    padding: .85rem 1rem;
    border-radius: 4px;
    font-size: 14px;
}

@media (max-width: 767px) {
    .wpcf7 .form-row {
        grid-template-columns: 1fr;
    }
}


html,
body {
    background: #111111;
}

/* Mobile uses the responsive WordPress markup, desktop uses the scaled mockup. */
@media (min-width: 901px) {
    .page-shell {
        height: auto !important;
    }

    .page-shell .page {
        transform: none !important;
        zoom: var(--page-scale);
    }
}

@media (max-width: 900px) {
    .responsive-page {
        background: #fff;
    }

    .responsive-page img {
        max-width: 100%;
        height: auto;
    }

    .responsive-page .woocommerce ul.products {
        display: grid;
        grid-template-columns: 1fr;
        gap: 18px;
        margin: 24px 0 0;
        padding: 0;
    }

    .responsive-page .woocommerce ul.products li.product {
        width: 100% !important;
        margin: 0 !important;
        float: none !important;
    }
}

@media (max-width: 900px) {
    .responsive-page main > section,
    .qsn-page .responsive-page main > section,
    .carte-page .responsive-page main > section,
    .resa-page .responsive-page main > section,
    .actus-page .responsive-page main > section,
    .contact-page .responsive-page main > section {
        display: block !important;
    }

    .responsive-page .section,
    .responsive-page .contact-section,
    .responsive-page .carte-section,
    .responsive-page .resa-section,
    .responsive-page .actus-section,
    .responsive-page .qsn-section {
        position: relative !important;
        width: auto !important;
        height: auto !important;
        min-height: 0 !important;
    }

    .responsive-page .message-form__inner {
        position: static !important;
        width: auto !important;
    }

    .responsive-page .wpcf7 form,
    .responsive-page form.form {
        margin-top: 28px !important;
    }

    .responsive-page .wpcf7 .form-row,
    .responsive-page form.form .grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .responsive-page .wpcf7 input[type="submit"],
    .responsive-page form.form button[type="submit"] {
        float: none !important;
        width: 100% !important;
        margin-top: 20px !important;
    }

    .responsive-page .cart-summary,
    .responsive-page .woocommerce-mini-cart,
    .responsive-page .auberge-cart-summary {
        position: relative !important;
        inset: auto !important;
        width: auto !important;
        height: auto !important;
        margin-top: 28px !important;
    }
}

.image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(0, 0, 0, .82);
}

.image-lightbox.is-open {
    display: flex;
}

.image-lightbox__figure {
    max-width: min(1100px, 92vw);
    max-height: 86vh;
    margin: 0;
    text-align: center;
}

.image-lightbox__image {
    display: block;
    max-width: 100%;
    max-height: 82vh;
    width: auto;
    height: auto;
    object-fit: contain;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .45);
}

.image-lightbox__caption {
    margin-top: 12px;
    color: #fff;
    font-size: 14px;
}

.image-lightbox__close {
    position: absolute;
    top: 18px;
    right: 22px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.has-lightbox {
    overflow: hidden;
}

.gallery__nav {
    z-index: 20;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.gallery__arrow {
    position: relative;
    z-index: 21;
    display: inline-grid !important;
    place-items: center;
    border: 0;
    cursor: pointer;
}

.gallery__arrow[hidden] {
    display: none !important;
}

.gallery__arrow:disabled {
    opacity: .45;
    cursor: default;
}

/* Cross-page responsive and carousel corrections. */
@media (max-width: 900px) {
    body .desktop-page {
        display: none !important;
    }

    body .responsive-page {
        display: block !important;
        min-height: 100vh;
        background: #fff;
    }

    .responsive-page main {
        display: block !important;
        background: #fff;
    }

    .responsive-page .mobile-copy,
    .responsive-page p {
        overflow-wrap: anywhere;
    }

    .responsive-page .script-logo {
        font-size: clamp(38px, 13vw, 56px) !important;
        line-height: .95 !important;
    }
}

.carte-carousel-arrow,
.plats-arrow--prev,
.plats-arrow--next {
    z-index: 30 !important;
    display: grid !important;
    place-items: center;
    border: 0;
    border-radius: 0;
    color: #fff;
    background: #111;
    cursor: pointer;
}

.carte-carousel-arrow-right,
.plats-arrow--next {
    background: #d32080;
}

.carte-carousel-arrow::before,
.plats-arrow--prev::before {
    content: "←";
    font-size: 28px;
    line-height: 1;
}

.carte-carousel-arrow-right::before,
.plats-arrow--next::before {
    content: "→";
}

.carte-carousel-arrow:disabled,
.plats-arrow--prev:disabled,
.plats-arrow--next:disabled {
    opacity: .45;
}

#reserver-table {
    min-height: 920px;
}

#reserver-table .reservation-form input,
#reserver-table .reservation-form select,
#reserver-table .reservation-form textarea {
    max-width: 100%;
}

#reserver-table .reservation-details:not(.hidden) {
    display: grid !important;
}

@media (max-width: 900px) {
    #reserver-table {
        min-height: 0;
    }

    .responsive-page .reservation-form input,
    .responsive-page .reservation-form select,
    .responsive-page .reservation-form textarea {
        width: 100% !important;
    }
}

.qsn-list li {
    position: relative;
    padding-left: 34px;
}

.qsn-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .3em;
    width: 18px;
    height: 18px;
    background: #d32080;
    border-radius: 999px;
    box-shadow: inset 0 0 0 2px #d32080;
}

.qsn-list li::after {
    content: "";
    position: absolute;
    left: 6px;
    top: calc(.3em + 4px);
    width: 6px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

@media (max-width: 900px) {
    .responsive-page #reserver-table {
        display: block !important;
        width: auto !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        color: #fff !important;
    }

    .responsive-page #reserver-table > div {
        position: static !important;
        width: auto !important;
        height: auto !important;
    }

    .responsive-page #reserver-table > div:first-child {
        display: none !important;
    }

    .responsive-page #reserver-table img,
    .responsive-page #reserver-table p,
    .responsive-page #reserver-table h2 {
        display: none !important;
    }

    .responsive-page #reserver-table .reservation-form {
        display: grid !important;
        gap: 14px !important;
        margin-top: 24px !important;
    }

    .responsive-page #reserver-table .reservation-details {
        gap: 14px !important;
    }

    .responsive-page .plats-group,
    .responsive-page .plats-grid {
        position: relative !important;
        width: auto !important;
        height: auto !important;
        min-height: 0 !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .responsive-page .plats-group .plat-card,
    .responsive-page .plats-grid .plat-card {
        position: relative !important;
        width: auto !important;
        height: auto !important;
    }

    .responsive-page .carte-carousel-arrow {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        width: 80px !important;
        height: 46px !important;
        margin-top: 12px;
    }
}

@media (min-width: 901px) {
    .actus-page .actus-section:last-of-type {
        height: auto !important;
        min-height: 1100px;
        padding-bottom: 120px;
    }
}

@media (max-width: 900px) {
    .responsive-page .mobile-home-hero {
        padding-top: 0 !important;
        background: #000 !important;
    }

    .responsive-page .mobile-home-hero .responsive-hero-panel {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 26px !important;
        width: min(100% - 28px, 1120px) !important;
        margin: 0 auto !important;
        padding: 44px 24px !important;
        background: #f3e5e5 !important;
        color: #111 !important;
        overflow: visible !important;
    }

    .responsive-page .mobile-home-hero .script-logo {
        display: block !important;
        max-width: 100% !important;
        color: #111 !important;
        font-size: clamp(42px, 14vw, 62px) !important;
        line-height: .95 !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .responsive-page .mobile-home-hero .mobile-copy {
        display: block !important;
        max-width: 100% !important;
        color: #111 !important;
        font-size: 16px !important;
        line-height: 1.55 !important;
        font-weight: 600 !important;
    }

    .responsive-page .mobile-home-hero .mobile-hero-dish {
        display: block !important;
        width: min(100%, 340px) !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        margin: 0 auto !important;
        padding: 0 !important;
        border-radius: 999px !important;
        object-fit: contain !important;
        background: #d32080 !important;
    }
}

@media (max-width: 900px) {
    .responsive-page .mobile-home-hero .mobile-hero-dish,
    .responsive-page .mobile-home-hero img.mobile-hero-dish {
        width: min(100%, 340px) !important;
        height: min(86vw, 340px) !important;
        max-width: 340px !important;
        max-height: 340px !important;
        object-fit: cover !important;
        object-position: center bottom !important;
        overflow: visible !important;
    }

    .responsive-page .mobile-home-hero .mobile-copy p {
        margin: 0 !important;
    }
}

/* Actualités page: flow layout instead of fixed canvas heights. */
.actus-flow {
    width: 1300px;
    margin: 0 auto;
    text-align: center;
}

.actus-flow--hero {
    padding: 62px 0 72px;
}

.actus-flow--story {
    width: 840px;
    padding: 120px 0 135px;
    text-align: left;
}

.actus-flow--posts {
    width: 1300px;
    padding: 78px 0 130px;
}

.actus-flow--posts .actus-past-card {
    width: 848px;
    background: #f7f7f7;
}

@media (max-width: 900px) {
    .actus-flow,
    .actus-flow--story,
    .actus-flow--posts,
    .actus-flow--posts .actus-past-card {
        width: auto !important;
        max-width: 100% !important;
    }

    .actus-flow--hero,
    .actus-flow--story,
    .actus-flow--posts {
        padding: 48px 18px !important;
    }
}

@media (max-width: 900px) {
    .responsive-page .mobile-home-hero .mobile-hero-dish,
    .responsive-page .mobile-home-hero img.mobile-hero-dish {
        background: transparent !important;
    }
}

@media (max-width: 900px) {
    .responsive-page .mobile-home-hero .responsive-hero-panel::after {
        content: none !important;
        display: none !important;
    }
}

/* La carte: match mockup arrows, compact reservation form, datepicker and mobile cards. */
.carte-carousel-arrow {
    width: 80px !important;
    height: 46px !important;
    background: #111 !important;
    color: #fff !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    z-index: 40 !important;
}

.carte-carousel-arrow-right {
    background: #d32080 !important;
}

.carte-carousel-arrow::before {
    content: "←" !important;
    display: block;
    color: #fff;
    font-size: 28px;
    line-height: 1;
    font-family: Arial, sans-serif;
}

.carte-carousel-arrow-right::before {
    content: "→" !important;
}

.reservation-form--compact {
    display: grid;
    gap: 12px;
    width: 470px;
}

.reservation-form--compact .reservation-form__row,
.reservation-form--compact .reservation-form__details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.reservation-form--compact .reservation-details.hidden {
    display: none !important;
}

.reservation-form--compact .reservation-field {
    width: 100% !important;
    min-width: 0;
    border: 0;
    outline: 0;
}

.reservation-form--compact textarea.reservation-field {
    grid-column: 1 / -1;
}

.ui-datepicker {
    z-index: 100000 !important;
    width: 320px;
    padding: 14px;
    background: #fff;
    color: #111;
    border: 1px solid #e4d5d5;
    box-shadow: 0 18px 45px rgba(0,0,0,.18);
    font-family: Poppins, Arial, sans-serif;
}

.ui-datepicker-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    color: #111;
    font-weight: 700;
}

.ui-datepicker-prev,
.ui-datepicker-next {
    cursor: pointer;
    color: #d32080;
    font-weight: 700;
}

.ui-datepicker-next { order: 3; }
.ui-datepicker-title { order: 2; text-align: center; flex: 1; }

.ui-datepicker-calendar {
    width: 100%;
    border-collapse: collapse;
    text-align: center;
    font-size: 13px;
}

.ui-datepicker-calendar th,
.ui-datepicker-calendar td {
    padding: 5px;
}

.ui-datepicker-calendar a {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    margin: 0 auto;
    color: #111;
    text-decoration: none;
}

.ui-datepicker-calendar a:hover,
.ui-datepicker-calendar .ui-state-active {
    background: #d32080;
    color: #fff;
}

.ui-datepicker-unselectable span {
    color: #c7c7c7;
}

@media (max-width: 900px) {
    .responsive-page .plats-group {
        display: block !important;
        margin-top: 26px !important;
    }

    .responsive-page .plats-group > h3 {
        position: static !important;
        margin: 28px 0 18px !important;
    }

    .responsive-page .plats-grid {
        position: static !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        width: auto !important;
    }

    .responsive-page .carte-dish-card,
    .responsive-page .plat-card {
        width: 100% !important;
        max-width: 100% !important;
    }

    .responsive-page .carte-dish-card .image-box,
    .responsive-page .plat-card .image-box {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 4 / 3;
    }

    .responsive-page .carte-dish-card img,
    .responsive-page .plat-card img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .responsive-page .plats-group .carte-carousel-arrow {
        display: grid !important;
    }

    .responsive-page #reserver-table .reservation-form--compact {
        width: 100% !important;
    }

    .responsive-page #reserver-table .reservation-form__row,
    .responsive-page #reserver-table .reservation-form__details {
        grid-template-columns: 1fr !important;
    }
}

.reservation-ajax-message {
    min-height: 20px;
    margin: 2px 0 0;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600;
    color: #fff;
}

.reservation-ajax-message--success {
    color: #fff;
}

.reservation-ajax-message--error {
    color: #111;
    background: #fff;
    padding: 8px 10px;
}

.reservation-submit:disabled {
    opacity: .65;
    cursor: wait;
}

@media (min-width: 901px) {
    #reserver-table {
        min-height: 760px;
    }

    #reserver-table .reservation-form--compact > label {
        width: 100%;
    }
}

/* La carte selection: restore mockup dish cards and PNG carousel arrows. */
.carte-page .carte-dish-card {
    display: block !important;
    width: 333px !important;
    min-height: 440px !important;
    text-align: center !important;
    background: transparent !important;
    overflow: visible !important;
}

.carte-page .carte-dish-card .image-box,
.carte-page .plat-card .image-box {
    display: block !important;
    width: 333px !important;
    height: 333px !important;
    background: #f3e5e5 !important;
    border: 10px solid #fff !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.carte-page .carte-dish-card img,
.carte-page .plat-card img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.carte-page .carte-dish-card h3,
.carte-page .plat-card h3 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 26px 0 0 !important;
    color: #1f1f1f !important;
    font-family: var(--font-serif), Georgia, serif !important;
    font-size: 24px !important;
    line-height: 30px !important;
    letter-spacing: -0.48px !important;
    text-align: center !important;
}

.carte-page .plats-grid {
    overflow: visible !important;
}

.carte-page .carte-carousel-arrow {
    display: block !important;
    width: 75px !important;
    height: 60px !important;
    border: 0 !important;
    padding: 0 !important;
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    color: transparent !important;
    font-size: 0 !important;
    z-index: 80 !important;
    cursor: pointer !important;
}

.carte-page .carte-carousel-arrow::before,
.carte-page .carte-carousel-arrow::after {
    content: none !important;
    display: none !important;
}

.carte-page .carte-carousel-arrow-left {
    background-image: url('/wp-content/themes/auberge/assets/custom-extra/left-arrow.png') !important;
}

.carte-page .carte-carousel-arrow-right {
    background-image: url('/wp-content/themes/auberge/assets/custom-extra/right-arrow.png') !important;
}

@media (max-width: 900px) {
    .responsive-page .carte-dish-card,
    .responsive-page .plat-card {
        width: 100% !important;
        min-height: 0 !important;
    }

    .responsive-page .carte-dish-card .image-box,
    .responsive-page .plat-card .image-box {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        background: #f3e5e5 !important;
        border: 10px solid #fff !important;
    }

    .responsive-page .carte-dish-card h3,
    .responsive-page .plat-card h3 {
        display: block !important;
        margin-top: 16px !important;
        color: #1f1f1f !important;
        font-size: 22px !important;
        line-height: 28px !important;
    }
}


/* Reservation form interaction and spacing fixes. */
#reserver-table {
    height: 900px !important;
    min-height: 900px !important;
    overflow: visible !important;
}

#reserver-table > div:nth-child(2) {
    top: 54px !important;
}

.reservation-form--compact {
    gap: 10px !important;
}

.reservation-form--compact .reservation-form__row,
.reservation-form--compact .reservation-form__details {
    gap: 10px !important;
}

.reservation-form--compact .reservation-field {
    height: 48px !important;
    min-height: 48px !important;
}

.reservation-form--compact textarea.reservation-field {
    height: 72px !important;
    min-height: 72px !important;
}

.reservation-date-display,
.reservation-submit {
    cursor: pointer !important;
    pointer-events: auto !important;
}

.reservation-submit:disabled {
    cursor: wait !important;
    opacity: 0.72 !important;
}

.ui-datepicker {
    pointer-events: auto !important;
    z-index: 99999 !important;
}

@media (max-width: 900px) {
    #reserver-table {
        height: auto !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    #reserver-table > div:nth-child(2) {
        top: auto !important;
    }

    .reservation-form--compact .reservation-form__row,
    .reservation-form--compact .reservation-form__details {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 900px) {
    .responsive-page #reserver-table-mobile {
        display: block !important;
        width: auto !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        color: #fff !important;
        overflow: visible !important;
        scroll-margin-top: 0 !important;
    }

    .responsive-page #reserver-table-mobile > div {
        position: static !important;
        width: auto !important;
        height: auto !important;
    }

    .responsive-page #reserver-table-mobile > div:first-child {
        display: none !important;
    }

    .responsive-page #reserver-table-mobile img,
    .responsive-page #reserver-table-mobile p,
    .responsive-page #reserver-table-mobile h2 {
        display: none !important;
    }

    .responsive-page #reserver-table-mobile .reservation-form {
        display: grid !important;
        gap: 14px !important;
        margin-top: 0 !important;
    }

    .responsive-page #reserver-table-mobile .reservation-details {
        gap: 14px !important;
    }

    .responsive-page #reserver-table-mobile .reservation-form input,
    .responsive-page #reserver-table-mobile .reservation-form select,
    .responsive-page #reserver-table-mobile .reservation-form textarea {
        width: 100% !important;
    }
}


/* Robust carousel state for desktop and mobile. */
.plats-grid .plat-card.is-hidden,
.gallery .gallery__item.is-hidden,
.responsive-page .plats-grid .plat-card.is-hidden,
.responsive-page .gallery .gallery__item.is-hidden {
    display: none !important;
}

.plats-grid .plat-card:not(.is-hidden),
.gallery .gallery__item:not(.is-hidden),
.responsive-page .plats-grid .plat-card:not(.is-hidden),
.responsive-page .gallery .gallery__item:not(.is-hidden) {
    display: block !important;
}

.carte-carousel-arrow:not([hidden]),
.gallery__arrow:not([hidden]) {
    pointer-events: auto !important;
}

@media (max-width: 900px) {
    .responsive-page .plats-group {
        display: block !important;
    }

    .responsive-page .plats-grid,
    .responsive-page .gallery {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .responsive-page .plats-group .carte-carousel-arrow {
        position: relative !important;
        display: inline-grid !important;
        vertical-align: top !important;
    }
}


/* Clickable language switcher. */
.lang__btn {
    appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-transform: inherit;
    cursor: pointer;
}

.lang__btn.is-active,
.lang__btn[aria-pressed="true"] {
    color: #d32080;
}

.lang__btn:focus-visible {
    outline: 2px solid #d32080;
    outline-offset: 4px;
}


/* Actualités archive and single article refinements. */
.actus-story-eyebrow {
    margin: 0 0 12px !important;
    color: #d32080 !important;
    font-family: var(--font-serif), Georgia, serif !important;
    font-size: 26px !important;
    line-height: 34px !important;
}

.actus-flow--posts {
    padding-top: 96px !important;
}

.actus-flow--posts .small-diamond-divider {
    margin-bottom: 0 !important;
}

.actus-flow--posts .actus-past-list {
    align-items: center !important;
    justify-items: center !important;
}

.actus-past-card {
    overflow: hidden !important;
    box-shadow: 0 20px 55px rgba(17, 17, 17, 0.08) !important;
}

.actus-past-card img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

.single-actualite {
    background: #fff !important;
    padding: 82px 0 110px !important;
}

.single-actualite__inner {
    width: min(920px, calc(100% - 40px)) !important;
    margin: 0 auto !important;
}

.single-actualite__meta {
    color: #9aa4b2 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .6px !important;
    text-transform: uppercase !important;
}

.single-actualite__title {
    margin: 16px 0 34px !important;
    color: #111 !important;
    font-family: var(--font-serif), Georgia, serif !important;
    font-size: clamp(38px, 4vw, 58px) !important;
    font-weight: 400 !important;
    line-height: 1.08 !important;
    letter-spacing: 0 !important;
}

.single-actualite__image {
    margin: 0 0 42px !important;
    background: #f3e5e5 !important;
}

.single-actualite__image img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

.single-actualite__content {
    color: #5c6574 !important;
    font-size: 17px !important;
    line-height: 1.85 !important;
}

.single-actualite__content p,
.single-actualite__content ul,
.single-actualite__content ol,
.single-actualite__content blockquote {
    margin: 0 0 24px !important;
}

.single-actualite__content h2,
.single-actualite__content h3 {
    margin: 42px 0 18px !important;
    color: #111 !important;
    font-family: var(--font-serif), Georgia, serif !important;
    font-weight: 400 !important;
    line-height: 1.15 !important;
}

.single-actualite__content h2 { font-size: 36px !important; }
.single-actualite__content h3 { font-size: 28px !important; }

.single-actualite__back {
    margin-top: 34px !important;
}

@media (max-width: 900px) {
    .actus-story-eyebrow {
        font-size: 24px !important;
        line-height: 30px !important;
    }

    .actus-flow--posts {
        padding-top: 54px !important;
    }

    .single-actualite {
        padding: 48px 0 72px !important;
    }
}


/* Commander page: resa mockup filters, product buttons, cart and checkout polish. */
.resa-page .resa-filters {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.resa-page .resa-filters button {
    appearance: none !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 18px !important;
    color: #1f1f1f !important;
    font: inherit !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
}

.resa-page .resa-filters button.is-active,
.resa-page .resa-filters button:hover,
.resa-page .resa-filters button:focus-visible {
    color: #d32080 !important;
}

.resa-page .resa-filters button::after {
    content: none !important;
}

.resa-filter-separator {
    color: #1f1f1f !important;
    opacity: .7 !important;
}

.resa-order-card.resa-item {
    min-height: 360px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.resa-item__photo,
.resa-order-card.resa-item > img.food {
    position: absolute !important;
    left: 70px !important;
    top: 54px !important;
    width: 210px !important;
    height: 210px !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    background: #f3e5e5 !important;
}

.resa-item__photo img,
.resa-order-card.resa-item > img.food {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.resa-add-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 178px !important;
    height: 48px !important;
    padding: 0 22px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #111 !important;
    color: #fff !important;
    font-family: var(--font-serif), Georgia, serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.resa-add-button:hover,
.resa-add-button:focus-visible {
    background: #d32080 !important;
    color: #fff !important;
}

.resa-add-button.is-loading {
    opacity: .7 !important;
}

.resa-page .quantity-control {
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #fff !important;
    cursor: pointer !important;
}

.cart-summary__lines {
    width: min(720px, calc(100% - 80px)) !important;
}

.cart-summary__line {
    display: grid !important;
    grid-template-columns: minmax(180px, 1fr) auto minmax(72px, max-content) !important;
    column-gap: 18px !important;
    align-items: center !important;
}

.cart-summary__price {
    min-width: 72px !important;
    text-align: right !important;
}

.cart-summary__total {
    display: block !important;
    width: min(720px, calc(100% - 80px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-right: 0 !important;
    text-align: right !important;
}

.cart-summary__checkout {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.theme-auberge.woocommerce-checkout input.input-text,
body.theme-auberge.woocommerce-checkout textarea.input-text,
body.theme-auberge.woocommerce-checkout select,
body.theme-auberge.woocommerce-checkout .select2-container--default .select2-selection--single,
body.theme-auberge.woocommerce-checkout .wc-block-components-text-input input,
body.theme-auberge.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
body.theme-auberge.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input input,
body.theme-auberge.woocommerce-checkout .wc-block-components-form .wc-block-components-textarea {
    border: 1px solid #6f7782 !important;
    background: #fff !important;
    color: #111 !important;
    box-shadow: inset 0 0 0 1px rgba(17,17,17,.08) !important;
}

body.theme-auberge.woocommerce-checkout input.input-text:focus,
body.theme-auberge.woocommerce-checkout textarea.input-text:focus,
body.theme-auberge.woocommerce-checkout select:focus,
body.theme-auberge.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
    border-color: #111 !important;
    outline: 2px solid rgba(211,32,128,.22) !important;
    outline-offset: 2px !important;
}

body.theme-auberge.woocommerce-checkout #place_order,
body.theme-auberge.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.theme-auberge.woocommerce-checkout button[type="submit"].button,
body.theme-auberge.woocommerce-checkout .woocommerce #payment #place_order {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 56px !important;
    min-width: 220px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #d32080 !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    cursor: pointer !important;
    opacity: 1 !important;
}

body.theme-auberge.woocommerce-checkout #payment,
body.theme-auberge.woocommerce-checkout .woocommerce-checkout-payment {
    background: #fff !important;
    border: 1px solid #d8d8d8 !important;
    color: #111 !important;
}

body.theme-auberge.woocommerce-checkout #payment div.payment_box {
    background: #f7f7f7 !important;
    color: #111 !important;
}

@media (max-width: 900px) {
    .resa-page .resa-filters {
        gap: 8px 0 !important;
        font-size: 12px !important;
        line-height: 18px !important;
    }

    .resa-page .resa-filters button {
        padding: 0 10px !important;
    }

    .resa-order-card.resa-item {
        min-height: 0 !important;
        padding: 18px !important;
    }

    .resa-item__photo,
    .resa-order-card.resa-item > img.food {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        width: 96px !important;
        height: 96px !important;
    }

    .cart-summary__line {
        grid-template-columns: 1fr !important;
        row-gap: 8px !important;
        text-align: center !important;
    }

    .cart-summary__price,
    .cart-summary__total {
        text-align: center !important;
    }
}


/* Commander product price and post-add scroll target fixes. */
.resa-order-card.resa-item > p.absolute.left-\[88px\] {
    left: 86px !important;
    top: 274px !important;
    width: 178px !important;
    margin: 0 !important;
    text-align: center !important;
    color: #d32080 !important;
    z-index: 3 !important;
}

.resa-order-card.resa-item .woocommerce-Price-amount {
    color: #d32080 !important;
}

@media (max-width: 900px) {
    .resa-order-card.resa-item > p.absolute.left-\[88px\] {
        position: static !important;
        width: auto !important;
        text-align: left !important;
        margin: 10px 0 0 !important;
    }
}


/* Checkout privacy text and Commander price placement. */
.woocommerce-privacy-policy-text {
    display: none !important;
}

.resa-order-card.resa-item .resa-item__price-display {
    left: 86px !important;
    top: 274px !important;
    width: 178px !important;
    margin: 0 !important;
    text-align: center !important;
    color: #d32080 !important;
    z-index: 5 !important;
}

@media (max-width: 900px) {
    .resa-order-card.resa-item .resa-item__price-display {
        position: static !important;
        width: auto !important;
        text-align: left !important;
        margin: 10px 0 0 !important;
    }
}


/* French checkout fields matching payment mockup. */
body.theme-auberge.woocommerce-checkout .woocommerce-billing-fields > h3,
body.theme-auberge.woocommerce-checkout #order_review::before {
    letter-spacing: .45em !important;
    text-transform: uppercase !important;
    font-family: var(--font-sans), Poppins, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #111 !important;
}

body.theme-auberge.woocommerce-checkout .form-row label,
body.theme-auberge.woocommerce-checkout label {
    color: #c01772 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

body.theme-auberge.woocommerce-checkout input.input-text,
body.theme-auberge.woocommerce-checkout textarea.input-text,
body.theme-auberge.woocommerce-checkout select,
body.theme-auberge.woocommerce-checkout .select2-container--default .select2-selection--single {
    border: 0 !important;
    border-radius: 0 !important;
    background: #f7f7f7 !important;
    min-height: 50px !important;
}

body.theme-auberge.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body.theme-auberge.woocommerce-checkout #billing_first_name_field,
body.theme-auberge.woocommerce-checkout #billing_last_name_field {
    grid-column: auto !important;
}

body.theme-auberge.woocommerce-checkout #auberge_accommodation_stay_field,
body.theme-auberge.woocommerce-checkout #billing_address_1_field,
body.theme-auberge.woocommerce-checkout #billing_city_field,
body.theme-auberge.woocommerce-checkout #billing_postcode_field,
body.theme-auberge.woocommerce-checkout #billing_phone_field,
body.theme-auberge.woocommerce-checkout #billing_email_field {
    grid-column: 1 / -1 !important;
}

body.theme-auberge.woocommerce-checkout .woocommerce-additional-fields {
    margin-top: 24px !important;
    padding: clamp(1.25rem, 2vw, 2rem) !important;
    border: 1px solid #d8d8d8 !important;
    background: #fff !important;
}

body.theme-auberge.woocommerce-checkout #order_comments_field label {
    color: #c01772 !important;
}

body.theme-auberge.woocommerce-checkout #place_order {
    width: 100% !important;
    margin-top: 22px !important;
    background: #c01772 !important;
}

body.theme-auberge.woocommerce-checkout .woocommerce-privacy-policy-text {
    display: none !important;
}

@media (max-width: 640px) {
    body.theme-auberge.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
        grid-template-columns: 1fr !important;
    }
}

/* Commander page image placement requested from live page. */
.resa-order-card .food {
    left: 0px !important;
    top: 0px !important;
}

/* Restaurant founder image: keep full photo width without distortion. */
.qsn-founders-photo-b img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
}
/* Actualites video and expandable gallery. */
.actus-story-media video,
.actus-story-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.actus-photo-grid figure[hidden] {
    display: none !important;
}

.actus-photos-more {
    border: 0 !important;
    background: transparent !important;
    color: #111 !important;
    cursor: pointer !important;
    padding: 0 !important;
}

.actus-photos-more:hover,
.actus-photos-more:focus-visible {
    color: #d32080 !important;
}

.actus-photos-section.is-expanded {
    height: auto !important;
    min-height: 760px !important;
    padding-bottom: 90px !important;
}

.actus-photos-section.is-expanded .actus-photos-inner {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 818px !important;
    margin: 0 auto !important;
    padding-top: 70px !important;
}

.actus-photos-section.is-expanded .actus-photos-rule {
    margin-top: 38px !important;
}
/* Lightbox previous and next controls. */
.image-lightbox__nav {
    position: fixed !important;
    top: 50% !important;
    z-index: 10001 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 58px !important;
    height: 58px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(17, 17, 17, .86) !important;
    color: #fff !important;
    font-size: 46px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transform: translateY(-50%) !important;
}

.image-lightbox__prev {
    left: 34px !important;
}

.image-lightbox__next {
    right: 34px !important;
}

.image-lightbox__nav:hover,
.image-lightbox__nav:focus-visible {
    background: #d32080 !important;
    outline: 2px solid #fff !important;
    outline-offset: 3px !important;
}

.image-lightbox__nav[hidden] {
    display: none !important;
}

.actus-photos-more {
    margin-left: auto !important;
}

@media (max-width: 768px) {
    .image-lightbox__nav {
        width: 46px !important;
        height: 46px !important;
        font-size: 36px !important;
    }

    .image-lightbox__prev {
        left: 12px !important;
    }

    .image-lightbox__next {
        right: 12px !important;
    }
}
/* Actualites view more and centered lightbox nav overrides. */
.actus-photos-section .actus-photo-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 250px) !important;
    gap: 20px 34px !important;
    width: 818px !important;
}

.actus-photos-section .actus-photo-grid figure,
.actus-photos-section .actus-photo-grid button,
.actus-photos-section .actus-photo-grid img {
    width: 250px !important;
    height: 170px !important;
}

.actus-photos-section .actus-photo-grid button {
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    cursor: pointer !important;
}

.actus-photos-section .actus-photo-grid img {
    display: block !important;
    object-fit: cover !important;
}

.actus-photos-actions {
    display: flex !important;
    align-items: center !important;
    gap: 28px !important;
    width: 818px !important;
    margin-top: 34px !important;
}

.actus-photos-actions .actus-photos-rule {
    flex: 1 1 auto !important;
    width: auto !important;
}

.actus-photos-more {
    position: static !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    border: 0 !important;
    background: transparent !important;
    color: #111 !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none !important;
}

.image-lightbox {
    --lightbox-nav-offset: clamp(14px, calc((100vw - min(1100px, 92vw)) / 2 - 84px), 120px);
}

.image-lightbox__nav {
    top: 50% !important;
    z-index: 100001 !important;
    transform: translateY(-50%) !important;
}

.image-lightbox__prev {
    left: var(--lightbox-nav-offset) !important;
}

.image-lightbox__next {
    right: var(--lightbox-nav-offset) !important;
}

@media (max-width: 900px) {
    .actus-photos-section .actus-photo-grid {
        grid-template-columns: 1fr 1fr !important;
        width: 100% !important;
        gap: 14px !important;
    }

    .actus-photos-section .actus-photo-grid figure,
    .actus-photos-section .actus-photo-grid button,
    .actus-photos-section .actus-photo-grid img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1.35 / 1 !important;
    }

    .actus-photos-actions {
        width: 100% !important;
    }

    .image-lightbox {
        --lightbox-nav-offset: 12px;
    }
}
/* Actualites gallery final placement and lightbox nav alignment. */
.actus-photos-section {
    overflow: visible !important;
}

.actus-photos-section .actus-photos-actions {
    position: relative !important;
    z-index: 3 !important;
    display: flex !important;
    align-items: center !important;
    gap: 28px !important;
    width: 818px !important;
    margin-top: 34px !important;
}

.actus-photos-section .actus-photos-actions .actus-photos-rule {
    flex: 1 1 auto !important;
    width: auto !important;
    margin: 0 !important;
}

.actus-photos-section .actus-photos-more {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #111 !important;
    cursor: pointer !important;
    text-decoration: none !important;
}

.image-lightbox__figure {
    position: relative !important;
}

.image-lightbox .image-lightbox__nav {
    position: absolute !important;
    top: 50% !important;
    z-index: 2 !important;
    transform: translateY(-50%) !important;
}

.image-lightbox .image-lightbox__prev {
    left: -78px !important;
}

.image-lightbox .image-lightbox__next {
    right: -78px !important;
}

@media (max-width: 900px) {
    .actus-photos-section .actus-photos-actions {
        width: 100% !important;
        gap: 18px !important;
    }

    .image-lightbox .image-lightbox__prev {
        left: 10px !important;
    }

    .image-lightbox .image-lightbox__next {
        right: 10px !important;
    }
}
/* Responsive hamburger menu. */
@media (max-width: 900px) {
    .responsive-header {
        position: sticky;
        top: 0;
        z-index: 1000;
    }

    .responsive-header__top {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 18px !important;
        padding-top: 14px !important;
        padding-bottom: 12px !important;
    }

    .responsive-header__logo img {
        width: 168px !important;
        max-width: 54vw !important;
        height: auto !important;
    }

    .responsive-nav-toggle {
        display: inline-flex !important;
        flex: 0 0 46px !important;
        width: 46px !important;
        height: 46px !important;
        border: 1px solid rgba(255,255,255,.55) !important;
        background: transparent !important;
        color: #fff !important;
        cursor: pointer !important;
    }

    .responsive-header__ctas {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        padding-bottom: 12px !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        text-transform: uppercase !important;
    }

    .responsive-header__ctas a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 38px !important;
        border: 1px solid rgba(255,255,255,.7) !important;
        padding: 8px 10px !important;
        text-align: center !important;
    }

    .responsive-page .responsive-nav {
        display: flex !important;
        flex-direction: column !important;
        gap: 0 !important;
        max-height: 0 !important;
        overflow: hidden !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        border-top: 1px solid rgba(255,255,255,.25) !important;
        opacity: 0 !important;
        transform: translateY(-10px) !important;
        transition: max-height .32s ease, opacity .22s ease, transform .32s ease, padding .32s ease !important;
    }

    .responsive-page .responsive-nav.is-open {
        max-height: 360px !important;
        padding-top: 8px !important;
        padding-bottom: 12px !important;
        opacity: 1 !important;
        transform: translateY(0) !important;
    }

    .responsive-page .responsive-nav a {
        display: block !important;
        padding: 13px 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.14) !important;
        color: #fff !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        text-transform: uppercase !important;
    }
}
/* Mobile commander and hamburger final fixes. */
@media (max-width: 900px) {
    .responsive-page .responsive-nav-toggle,
    .responsive-page button.responsive-nav-toggle.nav-toggle {
        background: transparent !important;
        border-color: rgba(255,255,255,.75) !important;
        box-shadow: none !important;
    }

    .responsive-page .responsive-nav-toggle .nav-toggle__bar,
    .responsive-page button.responsive-nav-toggle.nav-toggle .nav-toggle__bar {
        background: #fff !important;
    }

    body.resa-page .responsive-page .resa-add-button {
        min-width: 0 !important;
        width: auto !important;
        min-height: 34px !important;
        height: 34px !important;
        padding: 0 12px !important;
        font-size: 13px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    body.resa-page .responsive-page .quantity-control {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        font-size: 16px !important;
    }

    body.resa-page .responsive-page .resa-order-card .qty,
    body.resa-page .responsive-page .resa-order-card > div.qty {
        gap: 8px !important;
    }

    body.resa-page .responsive-page .cart-summary__checkout,
    body.resa-page .responsive-page a.cart-summary__checkout.figma-header-button {
        box-sizing: border-box !important;
        width: min(100%, 280px) !important;
        max-width: calc(100vw - 72px) !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 46px !important;
        padding: 12px 18px !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        text-align: center !important;
        line-height: 1.2 !important;
    }
}
/* Mobile nav bars and cart checkout offset. */
@media (max-width: 900px) {
    .responsive-page .responsive-nav-toggle .nav-toggle__bar,
    .responsive-page button.responsive-nav-toggle.nav-toggle .nav-toggle__bar {
        display: block !important;
        width: 24px !important;
        height: 2px !important;
        min-height: 2px !important;
        margin: 0 auto !important;
        border-radius: 999px !important;
        background-color: #fff !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    body.resa-page .responsive-page .cart-summary__checkout,
    body.resa-page .responsive-page a.cart-summary__checkout.figma-header-button {
        margin-left: 180px !important;
    }
}
/* Mobile hamburger rendered independently from child spans. */
@media (max-width: 900px) {
    .responsive-page button.responsive-nav-toggle.nav-toggle,
    .responsive-page .responsive-nav-toggle {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-direction: column !important;
        gap: 0 !important;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        padding: 0 !important;
        border: 1px solid rgba(255,255,255,.75) !important;
        border-radius: 4px !important;
        background-color: transparent !important;
        background-image: linear-gradient(#fff,#fff), linear-gradient(#fff,#fff), linear-gradient(#fff,#fff) !important;
        background-repeat: no-repeat !important;
        background-size: 24px 2px, 24px 2px, 24px 2px !important;
        background-position: center calc(50% - 8px), center 50%, center calc(50% + 8px) !important;
        appearance: none !important;
        cursor: pointer !important;
        font-size: 0 !important;
        line-height: 0 !important;
    }

    .responsive-page button.responsive-nav-toggle.nav-toggle .nav-toggle__bar,
    .responsive-page .responsive-nav-toggle .nav-toggle__bar {
        display: none !important;
    }

    .responsive-page button.responsive-nav-toggle.nav-toggle[aria-expanded="true"],
    .responsive-page .responsive-nav-toggle[aria-expanded="true"] {
        background-image: linear-gradient(#fff,#fff), linear-gradient(#fff,#fff) !important;
        background-size: 24px 2px, 24px 2px !important;
        background-position: center center, center center !important;
    }

    .responsive-page button.responsive-nav-toggle.nav-toggle[aria-expanded="true"]::before,
    .responsive-page button.responsive-nav-toggle.nav-toggle[aria-expanded="true"]::after,
    .responsive-page .responsive-nav-toggle[aria-expanded="true"]::before,
    .responsive-page .responsive-nav-toggle[aria-expanded="true"]::after {
        content: "" !important;
        position: absolute !important;
        left: 10px !important;
        top: 22px !important;
        width: 24px !important;
        height: 2px !important;
        background: #fff !important;
        border-radius: 999px !important;
    }

    .responsive-page button.responsive-nav-toggle.nav-toggle[aria-expanded="true"]::before,
    .responsive-page .responsive-nav-toggle[aria-expanded="true"]::before {
        transform: rotate(45deg) !important;
    }

    .responsive-page button.responsive-nav-toggle.nav-toggle[aria-expanded="true"]::after,
    .responsive-page .responsive-nav-toggle[aria-expanded="true"]::after {
        transform: rotate(-45deg) !important;
    }
}
/* Mobile checkout/order page hardening. */
@media (max-width: 900px) {
    body.theme-auberge.woocommerce-checkout,
    body.theme-auberge.woocommerce-cart,
    body.theme-auberge.woocommerce-order-received {
        background: #fff !important;
        overflow-x: hidden !important;
    }

    body.theme-auberge.woocommerce-checkout .desktop-page,
    body.theme-auberge.woocommerce-cart .desktop-page,
    body.theme-auberge.woocommerce-order-received .desktop-page {
        display: none !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page,
    body.theme-auberge.woocommerce-cart .responsive-page,
    body.theme-auberge.woocommerce-order-received .responsive-page {
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
        background: #fff !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page main,
    body.theme-auberge.woocommerce-cart .responsive-page main,
    body.theme-auberge.woocommerce-order-received .responsive-page main {
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
        background: #fff !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page main > section,
    body.theme-auberge.woocommerce-cart .responsive-page main > section,
    body.theme-auberge.woocommerce-order-received .responsive-page main > section {
        width: 100% !important;
        max-width: 100vw !important;
        padding: 28px 0 42px !important;
        overflow-x: hidden !important;
        background: #fff !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page .mobile-container,
    body.theme-auberge.woocommerce-cart .responsive-page .mobile-container,
    body.theme-auberge.woocommerce-order-received .responsive-page .mobile-container {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100vw !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        overflow-x: hidden !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce,
    body.theme-auberge.woocommerce-cart .responsive-page .woocommerce,
    body.theme-auberge.woocommerce-order-received .responsive-page .woocommerce {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        background: transparent !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page form.checkout.woocommerce-checkout,
    body.theme-auberge.woocommerce-checkout .responsive-page #customer_details,
    body.theme-auberge.woocommerce-checkout .responsive-page #order_review,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-checkout-payment,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-form-coupon,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-form-coupon-toggle,
    body.theme-auberge.woocommerce-cart .responsive-page .woocommerce-cart-form,
    body.theme-auberge.woocommerce-cart .responsive-page .cart-collaterals,
    body.theme-auberge.woocommerce-order-received .responsive-page .woocommerce-order {
        box-sizing: border-box !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        overflow-x: hidden !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page form.checkout.woocommerce-checkout {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #customer_details,
    body.theme-auberge.woocommerce-checkout .responsive-page #order_review,
    body.theme-auberge.woocommerce-order-received .responsive-page .woocommerce-order {
        padding: 18px !important;
        border-radius: 4px !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #customer_details {
        background: #f7f7f7 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #order_review {
        background: #f3e5e5 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page .col2-set,
    body.theme-auberge.woocommerce-checkout .responsive-page .col-1,
    body.theme-auberge.woocommerce-checkout .responsive-page .col-2,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-billing-fields__field-wrapper,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-additional-fields__field-wrapper {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page .form-row,
    body.theme-auberge.woocommerce-cart .responsive-page .form-row {
        box-sizing: border-box !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        float: none !important;
        clear: both !important;
        margin: 0 0 14px !important;
        padding: 0 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page input.input-text,
    body.theme-auberge.woocommerce-checkout .responsive-page textarea.input-text,
    body.theme-auberge.woocommerce-checkout .responsive-page select,
    body.theme-auberge.woocommerce-checkout .responsive-page .select2-container,
    body.theme-auberge.woocommerce-cart .responsive-page input.input-text,
    body.theme-auberge.woocommerce-cart .responsive-page input.qty {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page table,
    body.theme-auberge.woocommerce-cart .responsive-page table,
    body.theme-auberge.woocommerce-order-received .responsive-page table {
        width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
        overflow-wrap: anywhere !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page table.shop_table th,
    body.theme-auberge.woocommerce-checkout .responsive-page table.shop_table td,
    body.theme-auberge.woocommerce-order-received .responsive-page table.shop_table th,
    body.theme-auberge.woocommerce-order-received .responsive-page table.shop_table td {
        box-sizing: border-box !important;
        padding: 10px 6px !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
        overflow-wrap: anywhere !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page table.shop_table td:last-child,
    body.theme-auberge.woocommerce-checkout .responsive-page table.shop_table th:last-child {
        width: 96px !important;
        text-align: right !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #payment,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-checkout-payment,
    body.theme-auberge.woocommerce-checkout .responsive-page .payment_box,
    body.theme-auberge.woocommerce-checkout .responsive-page .wc-stripe-elements-field,
    body.theme-auberge.woocommerce-checkout .responsive-page .stripe-card-group,
    body.theme-auberge.woocommerce-checkout .responsive-page .wc-payment-form,
    body.theme-auberge.woocommerce-checkout .responsive-page .form-row-wide {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #place_order,
    body.theme-auberge.woocommerce-checkout .responsive-page button[type="submit"].button,
    body.theme-auberge.woocommerce-cart .responsive-page .checkout-button,
    body.theme-auberge.woocommerce-cart .responsive-page button[name="update_cart"] {
        box-sizing: border-box !important;
        display: flex !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 50px !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 14px 18px !important;
        border-radius: 0 !important;
        background: #d32080 !important;
        color: #fff !important;
        text-align: center !important;
        white-space: normal !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-message,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-info,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-error,
    body.theme-auberge.woocommerce-cart .responsive-page .woocommerce-message,
    body.theme-auberge.woocommerce-cart .responsive-page .woocommerce-info,
    body.theme-auberge.woocommerce-cart .responsive-page .woocommerce-error {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 16px !important;
        padding: 14px 16px !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-message .button,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-info .button,
    body.theme-auberge.woocommerce-cart .responsive-page .woocommerce-message .button,
    body.theme-auberge.woocommerce-cart .responsive-page .woocommerce-info .button {
        float: none !important;
        display: block !important;
        width: 100% !important;
        margin-top: 10px !important;
        text-align: center !important;
    }
}
/* Mobile checkout grid overlap fix. */
@media (max-width: 900px) {
    body.theme-auberge.woocommerce-checkout .responsive-page form.checkout.woocommerce-checkout {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 20px !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #customer_details,
    body.theme-auberge.woocommerce-checkout .responsive-page #order_review_heading,
    body.theme-auberge.woocommerce-checkout .responsive-page #order_review {
        grid-column: auto !important;
        grid-row: auto !important;
        position: static !important;
        float: none !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        transform: none !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #customer_details {
        order: 1 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #order_review_heading {
        order: 2 !important;
        display: block !important;
        margin: 8px 0 0 !important;
        font-family: var(--font-serif), Georgia, serif !important;
        font-size: 28px !important;
        line-height: 1.15 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #order_review {
        order: 3 !important;
        margin-top: 0 !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page #order_review::before {
        content: none !important;
        display: none !important;
    }

    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-billing-fields,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-additional-fields,
    body.theme-auberge.woocommerce-checkout .responsive-page .woocommerce-shipping-fields {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}
/* Mobile Woo checkout uses the single desktop wrapper, not duplicate responsive markup. */
@media (max-width: 900px) {
    body.theme-auberge.woocommerce-checkout .desktop-page,
    body.theme-auberge.woocommerce-cart .desktop-page,
    body.theme-auberge.woocommerce-order-received .desktop-page {
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        height: auto !important;
        overflow-x: hidden !important;
        background: #fff !important;
    }

    body.theme-auberge.woocommerce-checkout .page-shell,
    body.theme-auberge.woocommerce-cart .page-shell,
    body.theme-auberge.woocommerce-order-received .page-shell,
    body.theme-auberge.woocommerce-checkout .page-shell .page,
    body.theme-auberge.woocommerce-cart .page-shell .page,
    body.theme-auberge.woocommerce-order-received .page-shell .page {
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        height: auto !important;
        min-height: 0 !important;
        transform: none !important;
        zoom: 1 !important;
        overflow-x: hidden !important;
        background: #fff !important;
    }

    body.theme-auberge.woocommerce-checkout .page-title-band,
    body.theme-auberge.woocommerce-cart .page-title-band,
    body.theme-auberge.woocommerce-order-received .page-title-band,
    body.theme-auberge.woocommerce-checkout header[role="banner"],
    body.theme-auberge.woocommerce-cart header[role="banner"],
    body.theme-auberge.woocommerce-order-received header[role="banner"],
    body.theme-auberge.woocommerce-checkout .desktop-footer-full,
    body.theme-auberge.woocommerce-cart .desktop-footer-full,
    body.theme-auberge.woocommerce-order-received .desktop-footer-full {
        display: none !important;
    }

    body.theme-auberge.woocommerce-checkout main#main,
    body.theme-auberge.woocommerce-cart main#main,
    body.theme-auberge.woocommerce-order-received main#main {
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        padding: 24px 16px 46px !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        background: #fff !important;
    }

    body.theme-auberge.woocommerce-checkout .resa-list,
    body.theme-auberge.woocommerce-cart .resa-list,
    body.theme-auberge.woocommerce-order-received .resa-list,
    body.theme-auberge.woocommerce-checkout .resa-list__inner,
    body.theme-auberge.woocommerce-cart .resa-list__inner,
    body.theme-auberge.woocommerce-order-received .resa-list__inner {
        position: static !important;
        box-sizing: border-box !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden !important;
        background: transparent !important;
    }

    body.theme-auberge.woocommerce-checkout form.checkout.woocommerce-checkout {
        display: flex !important;
        flex-direction: column !important;
        gap: 20px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    body.theme-auberge.woocommerce-checkout #customer_details,
    body.theme-auberge.woocommerce-checkout #order_review_heading,
    body.theme-auberge.woocommerce-checkout #order_review {
        grid-column: auto !important;
        grid-row: auto !important;
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        transform: none !important;
    }

    body.theme-auberge.woocommerce-checkout #customer_details {
        order: 1 !important;
    }

    body.theme-auberge.woocommerce-checkout #order_review_heading {
        order: 2 !important;
        display: block !important;
    }

    body.theme-auberge.woocommerce-checkout #order_review {
        order: 3 !important;
    }

    body.theme-auberge.woocommerce-checkout #payment,
    body.theme-auberge.woocommerce-checkout .woocommerce-checkout-payment,
    body.theme-auberge.woocommerce-checkout .payment_box,
    body.theme-auberge.woocommerce-checkout .wc-payment-form,
    body.theme-auberge.woocommerce-checkout #wc-stripe-upe-form,
    body.theme-auberge.woocommerce-checkout .wc-stripe-upe-element {
        display: block !important;
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        height: auto !important;
        overflow: visible !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}
/* Hide online order CTA after disabling online ordering entry points. */
@media (max-width: 900px) {
    .responsive-header__ctas {
        grid-template-columns: 1fr !important;
    }
}

/* Mobile reservation form right edge fix. */
@media (max-width: 900px) {
    .responsive-page #reserver-table-mobile-wrap,
    .responsive-page #reserver-table-mobile-wrap .mobile-container,
    .responsive-page #reserver-table-mobile,
    .responsive-page #reserver-table-mobile > div,
    .responsive-page #reserver-table-mobile .reservation-form,
    .responsive-page #reserver-table-mobile .reservation-form__row,
    .responsive-page #reserver-table-mobile .reservation-form__details {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
    }

    .responsive-page #reserver-table-mobile-wrap {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .responsive-page #reserver-table-mobile-wrap .mobile-container {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .responsive-page #reserver-table-mobile .reservation-form {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .responsive-page #reserver-table-mobile .reservation-form label,
    .responsive-page #reserver-table-mobile .reservation-field {
        display: block !important;
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .responsive-page #reserver-table-mobile .reservation-field {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .ui-datepicker {
        box-sizing: border-box !important;
        width: calc(100vw - 28px) !important;
        max-width: calc(100vw - 28px) !important;
        left: 14px !important;
        right: 14px !important;
    }
}
