:root {
    --layout-width: 1440px;
    --max-content-width: calc(100vw - 55px);

}

@media (max-width: 1200px) {
    
    :root {
        --max-content-width: 100vw;
    }

}

.xplan-reservation {
    --accent: var(--e-global-color-primary);
    --contrast: var(--e-global-color-accent);
    --border: #DDD;
    --font-brand: 'Monologue';
    --font-text: 'Helvetica', Sans-serif;
    /*  Menu width : 55px + Sidebar : 25% + Small offset : 14px - Beats me where that comes from */
    --sidebar-width: calc(25% + 55px - 12px);

    margin-bottom: 48px;
}

@media (max-width: 1200px) {
    .xplan-reservation {
        --sidebar-width: 0px;
    }
}

@media (max-width: 520px) {
    .xplan-reservation {
        margin-bottom: 170px;
    }
}

/*
 * Layout
 */

body.xplan {
    background-color: #F6F6F6;
}

#content {
    padding-block-start: clamp(1.875rem, 1.189rem + 2.9268vw, 3.75rem);
    padding-block-end: clamp(1.875rem, 1.189rem + 2.9268vw, 3.75rem);
    padding-inline: clamp(1rem, 0.6341rem + 1.561vw, 2rem);
    margin: 0;
    max-width: unset !important;
}

#content > .page-header .entry-title,
#content > .page-content {
    max-width: var(--layout-width);
    margin-inline: auto;
}

h1.entry-title {
    font-family: "Monologue", Sans-serif;
    font-size: 50px;
    font-weight: 400;
    color: var(--e-global-color-primary);
    text-transform: uppercase;
    padding: 0 !important;
}

.xplan-reservation .container-fluid {
    padding: 0;
}

.xplan-reservation .container-fluid .inner .col-sm-5,
.xplan-reservation .container-fluid .inner .col-sm-8 {
    flex: 1;
    max-width: unset;
    padding: 0;
}

.xplan-reservation .container-fluid .inner  .reservation > .row {
    margin: 0;
    column-gap: 32px;
}

@media (max-width: 930px) {

    .xplan-reservation .container-fluid .inner .flow-page + .col-sm-4  {
        flex: 100% !important;
        max-width: unset !important;
    }

}

@media (max-width: 768px) {

    .xplan-reservation .container-fluid .inner .col-sm-5,
    .xplan-reservation .container-fluid .inner .col-sm-8,
    .xplan-reservation .container-fluid .inner .col-sm-4  {
        flex: 100% !important;
        max-width: unset !important;
    }


}

/*
 * Products from current group
 */

/* General styling */

.xplan-reservation .product-group > h2.product-cat {
    display: none;
}

.xplan-reservation table.productgroup-table {
    display: flex;
    margin-bottom: 84px;
}

.xplan-reservation table.productgroup-table,
.xplan-reservation table.productgroup-table tbody {
    max-width: 100%;
    width: 100%;
}

.xplan-reservation table.productgroup-table tr {
    display: flex;
    flex-direction: row;
    column-gap: 24px;
    align-items: center;
}

.xplan-reservation table.productgroup-table tr th,
.xplan-reservation table.productgroup-table tr td {
    background-color: transparent !important;
    padding: 0 !important;
}

.xplan-reservation .products_list .btn_resa,
.xplan-reservation .products_list .btn_resa:hover,
.xplan-reservation .products_list .btn_resa:focus,
.xplan-reservation .products_list .btn_resa:active,
.xplan-reservation table.productgroup-table tr.productgroup-row.title button,
.xplan-reservation table.productgroup-table tr.productgroup-row.title button:hover,
.xplan-reservation table.productgroup-table tr.productgroup-row.title button:focus,
.xplan-reservation table.productgroup-table tr.productgroup-row.title button:active,
.xplan-reservation .xplan_button_navigation input[type="button"],
.xplan-reservation .xplan_button_navigation input[type="button"]:hover,
.xplan-reservation .xplan_button_navigation input[type="button"]:focus,
.xplan-reservation .xplan_button_navigation input[type="button"]:active,
.xplan-reservation .xplan_button_navigation .continue button[type="button"],
.xplan-reservation .xplan_button_navigation .continue button[type="button"]:hover,
.xplan-reservation .xplan_button_navigation .continue button[type="button"]:focus,
.xplan-reservation .xplan_button_navigation .continue button[type="button"]:active,
.xplan-reservation .xplan_button_navigation .continue > a > button,
.xplan-reservation .xplan_button_navigation .continue > a > button:hover,
.xplan-reservation .xplan_button_navigation .continue > a > button:focus,
.xplan-reservation .xplan_button_navigation .continue > a > button:active,
.xplan-reservation .xplan_button_navigation button.cancel,
.xplan-reservation .xplan_button_navigation button.cancel:hover,
.xplan-reservation .xplan_button_navigation button.cancel:focus,
.xplan-reservation .xplan_button_navigation button.cancel:active,
.xplan-reservation .customer-form form.xplan.login p input[type=button],
.xplan-reservation .customer-form form.xplan.login p input[type=button]:hover
.xplan-reservation .customer-form form.xplan.login p input[type=button]:focus
.xplan-reservation .customer-form form.xplan.login p input[type=button]:active,
.xplan-reservation .modal-footer button, 
.xplan-reservation .modal-footer button:hover,
.xplan-reservation .modal-footer button:focus,
.xplan-reservation .modal-footer button:active,
.xplan-reservation .modal-footer input[type="button"], 
.xplan-reservation .modal-footer input[type="button"]:hover,
.xplan-reservation .modal-footer input[type="button"]:focus,
.xplan-reservation .modal-footer input[type="button"]:active,
.xplan-reservation .summary #reservation_review .side_recap > button,
.xplan-reservation .summary #reservation_review .side_recap > button:hover,
.xplan-reservation .summary #reservation_review .side_recap > button:focus,
.xplan-reservation .summary #reservation_review .side_recap > button:active {
    border: 2px solid var(--contrast) !important;
    border-radius: 3px;;
    font-family: var(--font-text);
    font-size: 18px !important;
    font-weight: 400;
    line-height: 20px;
    padding: 10px 24px !important;
    color: #ffffff !important;
    background-color: var(--contrast) !important;
    text-transform: none !important;
    height: auto !important;
    line-height: unset !important;
}

.xplan-reservation .modal-footer input[type="button"], 
.xplan-reservation .modal-footer input[type="button"]:hover,
.xplan-reservation .modal-footer input[type="button"]:focus,
.xplan-reservation .modal-footer input[type="button"]:active {
    border: 2px solid #8888 !important;
    background: transparent !important;
    color: black !important;
}

@media (max-width: 700px) {

    .xplan-reservation .products_list .btn_resa,
    .xplan-reservation .products_list .btn_resa:hover,
    .xplan-reservation .products_list .btn_resa:focus,
    .xplan-reservation .products_list .btn_resa:active,
    .xplan-reservation table.productgroup-table tr.productgroup-row.title button,
    .xplan-reservation table.productgroup-table tr.productgroup-row.title button:hover,
    .xplan-reservation table.productgroup-table tr.productgroup-row.title button:focus,
    .xplan-reservation table.productgroup-table tr.productgroup-row.title button:active,
    .xplan-reservation .xplan_button_navigation input[type="button"],
    .xplan-reservation .xplan_button_navigation input[type="button"]:hover,
    .xplan-reservation .xplan_button_navigation input[type="button"]:focus,
    .xplan-reservation .xplan_button_navigation input[type="button"]:active,
    .xplan-reservation .xplan_button_navigation .continue button[type="button"],
    .xplan-reservation .xplan_button_navigation .continue button[type="button"]:hover,
    .xplan-reservation .xplan_button_navigation .continue button[type="button"]:focus,
    .xplan-reservation .xplan_button_navigation .continue button[type="button"]:active,
    .xplan-reservation .xplan_button_navigation .continue > a > button,
    .xplan-reservation .xplan_button_navigation .continue > a > button:hover,
    .xplan-reservation .xplan_button_navigation .continue > a > button:focus,
    .xplan-reservation .xplan_button_navigation .continue > a > button:active,
    .xplan-reservation .xplan_button_navigation button.cancel,
    .xplan-reservation .xplan_button_navigation button.cancel:hover,
    .xplan-reservation .xplan_button_navigation button.cancel:focus,
    .xplan-reservation .xplan_button_navigation button.cancel:active,
    .xplan-reservation .customer-form form.xplan.login p input[type=button],
    .xplan-reservation .customer-form form.xplan.login p input[type=button]:hover
    .xplan-reservation .customer-form form.xplan.login p input[type=button]:focus
    .xplan-reservation .customer-form form.xplan.login p input[type=button]:active,
    .xplan-reservation .modal-footer button, 
    .xplan-reservation .modal-footer button:hover,
    .xplan-reservation .modal-footer button:focus,
    .xplan-reservation .modal-footer button:active,
    .xplan-reservation .summary #reservation_review .side_recap > button,
    .xplan-reservation .summary #reservation_review .side_recap > button:hover,
    .xplan-reservation .summary #reservation_review .side_recap > button:focus,
    .xplan-reservation .summary #reservation_review .side_recap > button:active {
        font-size: 0.8em !important;
        padding: 0.5em 1em !important;
    }

}

.xplan-reservation .overlay_load {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(255, 255, 255, 0.5) !important;
}

.xplan-reservation .overlay_load .loader {
    display: none !important;
}

/* Mobile changes override */

.xplan-reservation.mobile .productgroup-row.title.more {
    display: flex !important;
    width: 100% !important;
}

.xplan-reservation.mobile .xplan_button_navigation .container button.btn, 
.xplan-reservation.mobile .xplan_button_navigation .container input.btn {
    margin-bottom: 0px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    margin-left: 0px !important;
    margin-right: 0px !important;
    width: fit-content !important;
}

.xplan-reservation div.xplan-mobile-cart {
    display: none !important;
}

.xplan-reservation.mobile #reservation_review .col-sm-4,
.xplan-reservation.mobile #reservation_review .row.product .col-sm-4 .prodprice,
.xplan-reservation.mobile #reservation_review .total .value {
    position: static !important;
}

.xplan-reservation.mobile #reservation_review .person .product_info .product .prodname {
    width: auto !important;
}

/* Title row */

.xplan-reservation table.productgroup-table tr.productgroup-row.title {
    padding-top: 24px;
    font-family: 'Monologue';
    text-transform: uppercase;
    font-size: 24px;
    color: var(--contrast);
    margin-bottom: 12px;
}

.xplan-reservation table.productgroup-table tr.productgroup-row.title:hover {
    background-color: transparent !important;
}

.xplan-reservation table.productgroup-table tr td.more-info {
    display: none;
}

.xplan-reservation table.productgroup-table tr.productgroup-row.title th {
    flex: 1;
    font-weight: normal;
    color: var(--accent);
    cursor: default;
    pointer-events: none;
}

@media (max-width: 768px) {
    
    .xplan-reservation table.productgroup-table tr.productgroup-row.title {
        display: grid;
        grid-template-columns: 1fr auto;
    }

    .xplan-reservation table.productgroup-table tr.productgroup-row.title th {
        width: 100%;
        flex: unset;
    }

    .xplan-reservation table.productgroup-table tr.productgroup-row.title td:nth-child(3) {
        grid-column: 1;
        grid-row: 2;
    }

    .xplan-reservation.mobile .productgroup-row.title.more {
        display: grid !important;
    }

    .xplan-reservation table.productgroup-table tr.productgroup-row.title td:last-child {
        grid-column: 2;
        grid-row-start: 1;
        grid-row-end: 2;
        grid-row: span 2;
    }


}

@media (max-width: 520px) {

    .xplan-reservation table.productgroup-table tr.productgroup-row.title {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .xplan-reservation.mobile .productgroup-row.title.more {
        display: flex !important;
        flex-direction: column;
        align-items: flex-start;
        margin-bottom: 24px;
    }

}

@media (max-width: 479px) {

    .xplan-reservation table.productgroup-table tr.productgroup-row.info {
        flex-direction: column;
        align-items: flex-start;
        row-gap: 16px;
    }

    .xplan-reservation table.productgroup-table tr.productgroup-row.info td.product-image,
    .xplan-reservation table.productgroup-table tr.productgroup-row.info td.product-description {
        width: 100% !important;
        flex: unset !important;
    }
}

/* Infos row */

.xplan-reservation table.productgroup-table tr.productgroup-row.info {
    display: flex !important;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--border);
}

.xplan-reservation table.productgroup-table tr.productgroup-row.info td.product-description {
    flex: 1 !important;
    width: unset;
}

.xplan-reservation table.productgroup-table tr.productgroup-row.info td.product-image {
    width: auto !important;
}

.xplan-reservation table.productgroup-table tr.productgroup-row.info td.product-image img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
    max-width: 200px;
    margin: 0;
}

@media (max-width: 520px) {

    .xplan-reservation table.productgroup-table tr.productgroup-row.info td.product-image img {
        max-width: 100%;
        width: 100%;
    }

}

/* Footer */

.xplan-reservation .xplan_button_navigation {
    /*width: calc(100% - var(--sidebar-width)); */
    width: var(--max-content-width);
    margin: 0 auto;
    left: unset;
    border: 0 !important;
    background-color: white !important;
    padding-inline: 40px;
}

.xplan-reservation .xplan_button_navigation .container,
.xplan-reservation .xplan_button_navigation .container-fluid {
    padding: 0;
    display: flex;
    justify-content: space-between;
    max-width: unset !important;
    flex-direction: row !important;
    margin-block: 0 !important;
}

.xplan-reservation .xplan_button_navigation .container-fluid,
.xplan-reservation.mobile .xplan_button_navigation .container-fluid  {
    padding-block: 1rem !important;
}

.xplan-reservation .xplan_button_navigation .container {
    max-width: var(--layout-width) !important;
}

.xplan-reservation .xplan_button_navigation input[type="button"].btn.return,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return:hover,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return:focus,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return:active,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return_modal,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return_modal:hover,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return_modal:focus,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return_modal:active {
    background-color: transparent !important;
    color: var(--contrast) !important;
    margin-right: 0;
    padding: 0 0 0 24px !important;
    border: 0 !important;
    font-weight: 700;
    display: flex;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Cpath fill='%237DB92E' d='M10 21.308L.692 12L10 2.692l1.064 1.064L2.819 12l8.244 8.244z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: 20px;
    background-position: left center;
    transition: all 0.3s;
}

.xplan-reservation .xplan_button_navigation input[type="button"].btn.return:hover,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return:focus,
.xplan-reservation .xplan_button_navigation input[type="button"].btn.return:active {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M10 21.308L.692 12L10 2.692l1.064 1.064L2.819 12l8.244 8.244z'/%3E%3C/svg%3E");
    color: #000 !important;
}

.xplan-reservation .xplan_button_navigation .container-fluid .btn.single-prod-book {
    margin: 0;
}

.xplan-reservation .xplan_button_navigation.fixed-bottom input.btn {
    margin-right: 0 ;
}

@media (max-width: 1696px) {

    .xplan-reservation .xplan_button_navigation {
        padding-inline: 40px;
    }

}

@media (max-width: 520px) {

    .xplan-reservation .xplan_button_navigation {
        padding-inline: 16px;
    }

    .xplan-reservation .xplan_button_navigation .container-fluid {
        flex-direction: column-reverse !important;
        row-gap: 8px;
    }

    .xplan-reservation .xplan_button_navigation .continue > a,
    .xplan-reservation.mobile .xplan_button_navigation .container input.btn {
        display: block !important;
        width: 100% !important;
    }

    .xplan-reservation .xplan_button_navigation .continue > a > button,
    .xplan-reservation.mobile .xplan_button_navigation .container button.btn {
        width: 100% !important;
        margin: 0 !important;
    }

}

/*
 * Product page
 */

body.xplan-product .content-box {
    background-color: transparent !important;
    /* background-image: linear-gradient(to bottom, rgba(245, 245, 245, 0), rgba(245, 245, 245, 1)); */
}

body.xplan-product .content-box h1 {
    display: none;
}

.xplan-reservation div.single-prod.content {
    display: flex;
    flex-direction: column;
    padding: 0 !important;
    row-gap: 32px;
}

.xplan-reservation div.single-prod.content .product-info .product-image {
    margin: 0;
    padding: 0;
}

.xplan-reservation div.single-prod.content .product-info div.product-description {
    margin: 0 !important;
}

.xplan-reservation .single-prod .product-image img {
    position: fixed;
    top: 0;
    left: var(--sidebar-width);
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.25;
    filter: blur(10px);
    pointer-events: none;
    z-index: -1;
}

.xplan-reservation div.single-prod.content .product-info div.product-text h3 {
    border: 0;
    display: flex;
    justify-content: space-between;
    margin: 0;
    font-family: var(--font-brand);
    font-size: 40px;
    column-gap: 1em;
    color: var(--accent);
    text-transform: uppercase;
}

.xplan-reservation div.single-prod.content .product-info div.product-text h3 .prod-price {
    color: var(--contrast);
    white-space: nowrap;
}

@media (max-width: 1024px) {

    body.xplan-product .content-box h1 {
        display: block;
    }
    

}

@media (max-width: 520px) {

    .xplan-reservation div.single-prod.content .product-info div.product-text h3 {
        flex-direction: column;
        row-gap: 0.3em;
    }

}

.xplan-reservation div.single-prod.content > div.product-options {
    width: 100% !important;
}

.xplan-reservation div.single-prod.content > div.product-options .giftcard {
    display: flex;
    flex-direction: column;
    row-gap: 8px;
}

.xplan-reservation div.single-prod.content .product-info div.product-image, 
.xplan-reservation div.single-prod.content .product-info div.product-description, 
.xplan-reservation div.single-prod.content > div.product-options .giftcard input, 
.xplan-reservation div.single-prod.content > div.product-options .giftcard select, 
.xplan-reservation div.single-prod.content > div.product-options .giftcard textarea, 
.xplan-reservation div.single-prod.content > div.product-options .giftcard button {
    margin-bottom: 0 !important;
    width: 100%;
}

.xplan-reservation div.single-prod.content > div.product-options .giftcard input, 
.xplan-reservation div.single-prod.content > div.product-options .giftcard select, 
.xplan-reservation div.single-prod.content > div.product-options .giftcard textarea, 
.xplan-reservation div.single-prod.content > div.product-options .giftcard button {
    border: 2px solid var(--contrast) !important;
    border-radius: 3px;
}

.xplan-reservation div.single-prod.content > div.product-options .giftcard label {
    color: var(--accent);
}

.xplan-reservation div.single-prod.content .product-options form.single-product {
    display: flex;
    flex-direction: column;
    row-gap: 32px;
}

.xplan-reservation.mobile div.single-prod.content .product-info div.product-text,
.xplan-reservation.mobile div.single-prod.content .product-info div.product-image,
.xplan-reservation.mobile div.single-prod.content .product-info .prod.error {
    padding: 0 !important;
    margin: 0 !important;
}

/* 
 * Recap
 */

.xplan-reservation.xplan-reservation .summary {
    padding: 0 !important;
}

.xplan-reservation > .main > .container-fluid > .inner > .row {
    column-gap: 32px;
    flex-wrap: nowrap;
    margin-inline: 0;
}

.xplan-reservation > .main > .container-fluid > .inner > .row .summary {
    padding: 0;
    flex: unset;
}

.xplan-reservation.mobile .customer-form {
    flex: 1;
    max-width: unset;
}

.xplan-reservation.mobile .reservation > .row {
    column-gap: 30px;
}

@media(max-width: 768px) {

    .xplan-reservation > .main > .container-fluid > .inner > .row,
    .xplan-reservation .customer-form > .row {
        flex-direction: column;
        row-gap: 32px;
    }

    .xplan-reservation > .main > .container-fluid > .inner > .row div.single-prod.content,
    .xplan-reservation > .main > .container-fluid > .inner > .row div.summary,
    .xplan-reservation .customer-form > .row > * {
        width: 100% !important;
        max-width: 600px;
        margin: 0 auto;
        padding: 0;
    }

    .xplan-reservation .customer-form > .row > .summary {
        padding: 0 !important;
    }

    .xplan-reservation > .main > .container-fluid > .inner > .row div.summary {
        padding-bottom: 64px;
    }

}

@media (max-width: 520px) {

    .xplan-reservation > .main > .container-fluid > .inner > .row div.summary {
        padding-bottom: 154px;
    }
}

.xplan-reservation .summary #reservation_review .side_recap {
    border: 2px solid #DDD !important;
    display: flex;
    flex-direction: column;
    row-gap: 16px;
    position: relative;
}

.xplan-reservation .summary #reservation_review .side_recap h3 {
    font-family: var(--font-brand);
    font-size: 24px;
    text-transform: uppercase;
    margin: 0;
}

.xplan-reservation .summary #reservation_review .side_recap > *,
.xplan-reservation .summary #reservation_review .side_recap p,
.xplan-reservation .summary #reservation_review .side_recap .col-sm-12 {
    margin: 0 !important;
    padding: 0 !important;
}

.xplan-reservation .summary #reservation_review .side_recap #session_timer:not(:empty) {
    position: absolute;
    right: 0;
    top: 0;
    background: var(--border);
    padding: 4px 6px !important;
    font-size: 0.9em;
    border-radius: 0 0 0 5px;
    display: flex;
    align-items: center;
    column-gap: 4px;
}

@media (max-width: 768px) {
    .xplan-reservation .summary #reservation_review .side_recap #session_timer:not(:empty) {
        font-size: 0.7em;
    }
}

.xplan-reservation .summary #reservation_review .side_recap #session_timer:not(:empty):before {
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 13 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.5 1.5C5.35833 1.5 5.23967 1.452 5.144 1.356C5.04833 1.26 5.00033 1.14133 5 1C4.99967 0.858667 5.04767 0.74 5.144 0.644C5.24033 0.548 5.359 0.5 5.5 0.5H7.5C7.64167 0.5 7.7605 0.548 7.8565 0.644C7.9525 0.74 8.00033 0.858667 8 1C7.99967 1.14133 7.95167 1.26017 7.856 1.3565C7.76033 1.45283 7.64167 1.50067 7.5 1.5H5.5ZM6.5 7C6.64167 7 6.7605 6.952 6.8565 6.856C6.9525 6.76 7.00033 6.64133 7 6.5V4.5C7 4.35833 6.952 4.23967 6.856 4.144C6.76 4.04833 6.64133 4.00033 6.5 4C6.35867 3.99967 6.24 4.04767 6.144 4.144C6.048 4.24033 6 4.359 6 4.5V6.5C6 6.64167 6.048 6.7605 6.144 6.8565C6.24 6.9525 6.35867 7.00033 6.5 7ZM6.5 11C5.88333 11 5.302 10.8813 4.756 10.644C4.21 10.4067 3.733 10.0837 3.325 9.675C2.917 9.26633 2.59417 8.78917 2.3565 8.2435C2.11883 7.69783 2 7.11667 2 6.5C2 5.88333 2.11883 5.302 2.3565 4.756C2.59417 4.21 2.917 3.733 3.325 3.325C3.733 2.917 4.21017 2.59417 4.7565 2.3565C5.30283 2.11883 5.884 2 6.5 2C7.01667 2 7.5125 2.08333 7.9875 2.25C8.4625 2.41667 8.90833 2.65833 9.325 2.975L9.675 2.625C9.76667 2.53333 9.88333 2.4875 10.025 2.4875C10.1667 2.4875 10.2833 2.53333 10.375 2.625C10.4667 2.71667 10.5125 2.83333 10.5125 2.975C10.5125 3.11667 10.4667 3.23333 10.375 3.325L10.025 3.675C10.3417 4.09167 10.5833 4.5375 10.75 5.0125C10.9167 5.4875 11 5.98333 11 6.5C11 7.11667 10.8812 7.698 10.6435 8.244C10.4058 8.79 10.083 9.267 9.675 9.675C9.267 10.083 8.78983 10.406 8.2435 10.644C7.69717 10.882 7.116 11.0007 6.5 11ZM6.5 10C7.46667 10 8.29167 9.65833 8.975 8.975C9.65833 8.29167 10 7.46667 10 6.5C10 5.53333 9.65833 4.70833 8.975 4.025C8.29167 3.34167 7.46667 3 6.5 3C5.53333 3 4.70833 3.34167 4.025 4.025C3.34167 4.70833 3 5.53333 3 6.5C3 7.46667 3.34167 8.29167 4.025 8.975C4.70833 9.65833 5.53333 10 6.5 10Z'/%3E%3C/svg%3E%0A");
    content: "";
    width: 14px;
    height: 14px;
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
}

.xplan-reservation .summary #reservation_review .side_recap .row.date {
    column-gap: 0.5em;
    flex-wrap: nowrap;
    margin: 0;
}

.xplan-reservation .summary #reservation_review .side_recap .row.time {
    display: flex;
    flex-direction: row;
}

.xplan-reservation .summary #reservation_review .side_recap .row.time .col-sm-3 {
    max-width: unset;
    padding: 0;
    flex: 1;
}

.xplan-reservation .summary #reservation_review .side_recap .row.time .col-sm-9 {
    flex: unset;
    width: fit-content;
}

.xplan-reservation .summary #reservation_review .side_recap .person-highlight {
    font-weight: normal;
    border-bottom: 1px solid var(--border);
}

.xplan-reservation .summary #reservation_review .side_recap .row.person {
    row-gap: 16px;
}

.xplan-reservation .summary #reservation_review .side_recap .row.date > .col-sm-3 {
    max-width: unset;
    padding: 0;
}

.xplan-reservation .summary #reservation_review .side_recap .row.date > .col-sm-9 {
    max-width: unset;
    padding: 0;
}

.xplan-reservation .summary #reservation_review .side_recap .product_info {
    padding: 0;
}

.xplan-reservation .summary #reservation_review .side_recap .product_info .product,
.xplan-reservation .summary #reservation_review .side_recap .product_info .product * {
    margin: 0;
    padding: 0;
}

.xplan-reservation .summary #reservation_review .side_recap .product_info .product {
    row-gap: 8px;
    justify-content: space-between;
}

.xplan-reservation .summary #reservation_review .side_recap .product_info .product .col-sm-6 {
    width: 100% !important;
    flex: unset;
    max-width: unset;
}

.xplan-reservation .summary #reservation_review .side_recap .product_info .product .col-sm-4,
.xplan-reservation .summary #reservation_review .side_recap .product_info .product .col-sm-2 {
    width: fit-content !important;
    flex: unset;
    max-width: unset;
}

.xplan-reservation .summary #reservation_review .side_recap .product_info .product span.del {
    position: static;
}

.xplan-reservation .summary #reservation_review .side_recap > .total {
    border-top: 1px solid #DDD;
    padding-top: 4px !important;
}

.xplan-reservation .summary #reservation_review .side_recap > button {
    text-wrap: auto;
}

/*
 * Ordered product in cart
 */

.xplan-reservation .xplan_button_navigation button.cancel,
.xplan-reservation .xplan_button_navigation button.cancel:hover,
.xplan-reservation .xplan_button_navigation button.cancel:focus,
.xplan-reservation .xplan_button_navigation button.cancel:active {
    background-color: transparent !important;
    margin: 0 !important;
}

/*
 * Checkout
 */

.xplan-reservation .customer-form {
    padding: 0;
}

/* Login + Register plus / minus */

.xplan-reservation div.customer-form.reservation #xplan-customerform-choice {
    margin-top: -14px;
}

.xplan-reservation div.customer-form.reservation #xplan-customerform-choice h3 {
    margin: 0;
    padding: 0;
    border: 0;
    display: flex;
    justify-content: space-between;
    font-size: 1.2em;
    border-bottom: 1px solid #DDD;
    padding: 0.3em 0;
}

.xplan-reservation div.customer-form.reservation div#xplan-login-block,
.xplan-reservation div.customer-form.reservation .checkout-form {
    border: 0;
    background: white;
    border-radius: 0 0 3px 3px;
    border: 2px solid #ddd;
    margin-top: -1px;
    padding: 20px;
}

.xplan-reservation div.customer-form.reservation div#xplan-login-block .xplan.login {
    padding: 0;
}

.xplan-reservation div.customer-form.reservation div#xplan-login-block p:last-child {
    margin-bottom: 0;
}

/*
.xplan-reservation .customer-form .thumbs {
    border: 0;
    margin: 0;
    overflow: visible;
    display: flex;
    margin-bottom: 1em;
}

.xplan-reservation .customer-form .thumbs .thumb {
    font-family: var(--font-brand);
    font-size: 40px;
    color: var(--accent);
    text-transform: uppercase;
    padding: 0;
    border: 0;
    background-color: transparent;
    height: auto;
}

.xplan-reservation .customer-form .thumbs .thumb .arrow {
    display: none;
}*/

.xplan-reservation .customer-form a {
    color: var(--accent);
}

.xplan-reservation.mobile div.customer-form form.xplan.login input {
    margin-bottom: 0 !important;
}

.xplan-reservation.mobile div.customer-form form.xplan.login a.forgotten {
    margin-top: 0 !important;
    min-width: fit-content !important;
}

.xplan-reservation .customer-form form.xplan.login {
    background: #fff;
    padding: 16px;
}

.xplan-reservation .customer-form form.xplan.login p {
    display: flex;
    column-gap: 16px;
    align-items: center;
}

.xplan-reservation .customer-form form.xplan.login p input {
    width: 100%;
}

.xplan-reservation .customer-form form.xplan.login p input[type=button] {
    width: fit-content;
}

.xplan-reservation .customer-form form.xplan.login p:last-child {
    margin: 0;
}

.xplan-reservation .customer-form .checkout-form {
    margin: 0;
}

.xplan-reservation .customer-form form#checkout {
    padding-top: 24px;
    border-top: 1px solid var(--border);
}

.xplan-reservation .customer-form form#checkout .customerForm {
    display: flex;
    flex-wrap: wrap;
    row-gap: 16px;
    column-gap: 16px;
}

.xplan-reservation .customer-form form#checkout p.form-row,
.xplan-reservation .customer-form form#checkout p.form-row.form-row-wide {
    padding: 0;
    margin: 0;
}

.xplan-reservation .customer-form form#checkout p.form-row {
    width: calc(50% - 8px);
}

.xplan-reservation .customer-form form#checkout p.form-row.form-row-wide {
    width: 100%;
}

.xplan-reservation .customer-form form#checkout p.form-row label {
    display: flex;
    flex-direction: column;
    row-gap: 8px;
    height: auto;
    margin-bottom: 0;
    color: var(--accent);
}

.xplan-reservation .customer-form form#checkout p.form-row label,
.xplan-reservation .customer-form form#checkout p.form-row input,
.xplan-reservation .customer-form form#checkout p.form-row select {
    width: 100%;
}

.xplan-reservation .customer-form form#checkout p.form-row label#password_label {
   flex-direction: row;
   flex-wrap: wrap;
}

.xplan-reservation .customer-form form p input,
.xplan-reservation .customer-form form p select  {
    border: 2px solid var(--contrast) !important;
    border-radius: 3px;
    color: #000;
}

.xplan-reservation .customer-form form#checkout p.form-row.newsletter {
    position: static;
    margin-bottom: 1em;
}

.xplan-reservation .customer-form form#checkout p.form-row.radio-selection,
.xplan-reservation .customer-form form#checkout p.form-row.newsletter > label,
.xplan-reservation .customer-form form#checkout .conditions {
    align-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
    column-gap: 8px;
    display: flex;
    padding: 0;
    position: static;
    color: #000;
}

.xplan-reservation .customer-form form#checkout p.form-row.radio-selection label {
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: flex-end;
    column-gap: 8px;
    width: fit-content;
}

.xplan-reservation .customer-form form#checkout p.form-row.radio-selection label input,
.xplan-reservation .customer-form form#checkout p.form-row.newsletter > label input {
    width: fit-content;
}

.xplan-reservation .customer-form form#checkout .conditions label {
    margin: 0;
    padding: 0;
    height: fit-content;
}

@media (max-width: 479px) {
    
    .xplan-reservation .customer-form form.xplan.login p:last-child {
        flex-direction: column;
        row-gap: 12px;
    }

}

/*
 * Popup
 */

body > .modal-backdrop.show {
    display: none !important;
}

.xplan-reservation #reservation_review .modal {
    top: 0 !important;
    right: 0 !important;
    background-color: rgba(0,0,0,0.7);
}

.xplan-reservation #reservation_review div.modal-content {
    min-height: unset;
    border: 2px solid var(--contrast);
}

.xplan-reservation #reservation_review div.modal-content .modal-header {
    display: flex;
    align-items: flex-start;
}

.xplan-reservation #reservation_review div.modal-content .modal-header button.close {
    padding: 0 !important;
    border: 0 !important;
    width: fit-content !important;
    margin: 0 !important;
    height: fit-content !important;
    top: 0;
    right: 0 !important;
    left: unset;
    position: static !important;
    opacity: 0.5;
}

.xplan-reservation #reservation_review div.modal-content .modal-header button.close span {
    font-size: 0;
}

.xplan-reservation #reservation_review div.modal-content .modal-header button.close span:before {
    content: "";
    width: 28px;
    height: 28px;
    display: block;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3C!-- Icon from Material Symbols Light by Google - https://github.com/google/material-design-icons/blob/master/LICENSE --%3E%3Cpath fill='currentColor' d='m12 12.708l-5.246 5.246q-.14.14-.344.15t-.364-.15t-.16-.354t.16-.354L11.292 12L6.046 6.754q-.14-.14-.15-.344t.15-.364t.354-.16t.354.16L12 11.292l5.246-5.246q.14-.14.345-.15q.203-.01.363.15t.16.354t-.16.354L12.708 12l5.246 5.246q.14.14.15.345q.01.203-.15.363t-.354.16t-.354-.16z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.xplan-reservation #reservation_review div.modal-content .modal-header button.close:hover {
    color: #000;
    background: transparent !important;
    opacity: 1;
}

.xplan-reservation #reservation_review .modal-dialog {
    justify-content: center;
}

/*
 * Product's groups
 */

.gift-vouchers {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 16px;
    row-gap: 16px;
    list-style-type: none;
    margin: 0;
    padding: 0;
    margin-top: 16px;
}

.gift-vouchers h2 {
    text-transform: uppercase;
    font-size: 30px !important;
    text-align: center;
}

.gift-voucher a:hover h2 {
    color: black;
}

.gift-vouchers figure,
.gift-vouchers img {
    border-radius: 4px;
    overflow: hidden;
    transition: all 0.5s;
    display: flex;
    position: relative;
}

.gift-voucher figure:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-shadow: inset 0 0 100px rgba(0, 0, 0, 0.5);
    transition: all 0.5s;
}

.gift-voucher a:hover img {
    transform: scale(1.1);
}

.gift-voucher a:hover figure:after {
    opacity: 0;
}

@media (max-width: 520px) {
    .gift-vouchers {
        grid-template-columns: 1fr;
    }
}

/*
 * Overrides
 */

.post.type-post.status-publish.format-standard.hentry {
    /* Full width */
    width: 100% !important;
}

@font-face {
    font-family: 'Monologue';
    font-style: normal;
    font-weight: normal;
    font-display: auto;
    src: url('/wp-content/uploads/2023/10/monologue-regular-webfont.woff2') format('woff2'), url('/wp-content/uploads/2023/10/monologue-regular-webfont.woff') format('woff');
}

@font-face {
    font-family: 'Helvetica';
    font-style: normal;
    font-weight: normal;
    font-display: auto;
    src: url('/wp-content/uploads/2023/10/helvetica_neue_lt_w05_33_th_ex-webfont.woff2') format('woff2'), url('/wp-content/uploads/2023/10/helvetica_neue_lt_w05_33_th_ex-webfont.woff') format('woff');
}

/*
 * Flows design
 */

.flow-page.col-sm-5 {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
}

.xplan-reservation.mobile .flow-page.col-sm-5 {
    flex: 0 0 100%;
    max-width: 100%;
}

@media (max-width: 575px ) {
    .flow-page.col-sm-5 {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

.xplan-reservation .reservation .thumbs {
    border: 0;
    display: flex;
    align-items: center;
    column-gap: 0.5em;
    border-bottom: 1px solid #DDD;
    padding-bottom: 0.5em;
    margin-bottom: 1em;
    flex-wrap: wrap;
}

.xplan-reservation .reservation .thumbs .thumb,
.xplan-reservation .reservation .thumbs .thumb.link {
    color: var(--header--thumb-active-text-color);
    border: 0;
    background: transparent;
    padding: 0;
    font-weight: 700;
    display: flex;
    align-items: center;
    margin: 0;
    column-gap: 0.3em;
}

.xplan-reservation .reservation .thumbs .thumb.link > a {
    color: var(--header--thumb-active-text-color);
    text-decoration: none;
    font-weight: 700;
}

.xplan-reservation .reservation .thumbs .thumb i.arrow {
    background-color: transparent;
    padding: 4px;
    height: 8px;
    position: static;
}

.xplan-reservation .reservation .thumbs .thumb.after {
    color: #AAA;
}

.xplan-reservation .reservation .thumbs .thumb.after i.arrow {
    border-color: #AAA;
}

.xplan-reservation .reservation .thumbs .thumb:last-child i.arrow {
    display: none
}

.xplan-reservation .reservation #dates-people {
    background-color: transparent;
}

.xplan-reservation div#datepicker-calendar {
    border: 2px solid #DDD !important;
    border-radius: var(--main--border-radius);
    background-color: white;
}

.xplan-reservation .options_list {
    display: flex !important;
    flex-direction: column;
}

.xplan-reservation .reservation #dates-people .hour.time-selection .row .col-sm-4:last-child {
    pointer-events: none;
    opacity: 0.5;
}

/*
 * Datepicker
 */

div.datepicker.datepicker-dropdown.dropdown-menu.datepicker-orient-bottom {
    margin-top: 42px;
}

/*
 * Options list
 */

.xplan-reservation .reservation form.entry-selection h2,
.xplan-reservation.mobile .treatment-all.content h2.product-cat.active, 
.xplan-reservation .treatment-all.content h2.product-cat, 
.xplan-reservation .products_list.retail h2.product-cat, 
.xplan-reservation .quicktm h2.product-cat {
    text-transform: uppercase;
    font-size: 30px !important;
    color: black !important;
    font-family: var(--font-brand);
    font-weight: 700;
    background-color: transparent !important;
    text-align: left;
    padding: 0;
    margin: 0;
    border: 0 !important;
}

.xplan-reservation .treatment-all.content h2.product-cat {
    font-weight: normal !important;
}

.xplan-reservation .reservation .options_list .options_list .product.option .toggle .plusminus, 
.xplan-reservation .reservation .options_list .product.option .toggle .plusminus, 
.xplan-reservation .reservation .options_list .option .options .person.option .toggle .plusminus, 
.xplan-reservation .reservation .options_list .options .option .options .person.option .toggle .plusminus, 
.xplan-reservation .reservation .options_list .options .single-person.entry .plusminus, 
.xplan-reservation .reservation #single-prod-availabilities .plusminus, 
.xplan-reservation .reservation #single-coll-availabilities .plusminus, 
.xplan-reservation .reservation .voucher.option .toggle .plusminus {
    background: transparent;
    color: black;
    display: flex;
    justify-content: center;
    border: 0;
    align-items: center;
    vertical-align: middle;
    line-height: unset;
    height: auto;
    width: unset;
}

.xplan-reservation .reservation .options .options_list .product.option .toggle .plusminus .dashicons-plus,
.xplan-reservation .reservation .options_list .product.option .toggle .plusminus .dashicons-plus, 
.xplan-reservation .reservation .options_list .option .options .person.option .toggle .plusminus .dashicons-plus, 
.xplan-reservation .reservation .options_list .options .option .options .person.option .toggle .plusminus .dashicons-plus, 
.xplan-reservation .reservation .voucher.option .toggle .plusminus .dashicons-plus, 
.xplan-reservation .reservation #single-prod-availabilities .person.option .plusminus .dashicons-plus, 
.xplan-reservation .reservation #single-coll-availabilities .person.option .plusminus .dashicons-plus,
.xplan-reservation .reservation .options .options_list .product.option .toggle .plusminus .dashicons-minus,
.xplan-reservation .reservation .options_list .product.option .toggle .plusminus .dashicons-minus, 
.xplan-reservation .reservation .options_list .option .options .person.option .toggle .plusminus .dashicons-minus, 
.xplan-reservation .reservation .options_list .options .option .options .person.option .toggle .plusminus .dashicons-minus, 
.xplan-reservation .reservation .voucher.option .toggle .plusminus .dashicons-minus, 
.xplan-reservation .reservation #single-prod-availabilities .person.option .plusminus .dashicons-minus, 
.xplan-reservation .reservation #single-coll-availabilities .person.option .plusminus .dashicons-minus {
    padding-top: 0;
    font-size: 1rem;
    width: auto;
    height: auto;
}

.xplan-reservation .reservation .options_list .product.option {
    border-bottom: 1px solid #DDD;
}

.xplan-reservation .reservation .options_list .product.option:last-child {
    border-bottom: 0;
}

.xplan-reservation .reservation .options_list .product.option .toggle,
.xplan-reservation .reservation .single-person.entry  {
    display: flex;
    gap: 0.5em;
    align-items: center;
    width: 100%;
    padding-block: 0.3em;
}

.xplan-reservation .reservation .options_list .product.option .toggle .text,
.xplan-reservation .options_list .option .single-person.entry .text {
    padding: 0 !important;
    display: flex;
    gap: 1em;
    background-color: transparent !important;
    flex: 1;
    align-items: center;
}

.xplan-reservation .reservation .options_list .option .toggle .text span.option_name,
.xplan-reservation .options_list .option .single-person.entry .text span.option_name {
    width: auto !important;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 700;
    height: auto;
    flex: 1;
}

.xplan-reservation .reservation .options_list .option .toggle .text span.prix {
    height: auto;
}

.xplan-reservation .reservation .options_list .product.option .toggle .clearfix {
    display: none !important;
}

.xplan-reservation .reservation .options_list .product.option .options {
    background-color: transparent;
    border-top: 1px solid #DDD;
    padding: 1em 0;
}

.xplan-reservation .reservation div.photo_description.row {
    margin-inline: 0;
}

.xplan-reservation .reservation .options p,
.xplan-reservation .reservation .options a {
    padding: 0;
    margin: 0;
    font-size: 0.9em;
}

.xplan-reservation .reservation .options a {
    color: var(--accent);
}

.xplan-reservation .reservation div.photo_description.row + div {
    background: white;
    border-radius: 3px;
    border: 1px solid #DDD
}

.xplan-reservation .reservation .single-person.entry {
    padding: 0 8px;
    border-bottom: 1px dotted #DDD;
}

.xplan-reservation .reservation .single-person.entry:last-child {
    border-bottom: 0;
}

@media (max-width: 479px) {

    .xplan-reservation .reservation .options_list .product.option .toggle .text  {
        flex-direction: column;
        row-gap: 0;
        margin-bottom: 0;
    }

    .xplan-reservation.mobile .options_list .product.option .toggle .text span.option_name,
    .xplan-reservation .reservation .options_list .option .toggle .text span.prix {
        width: 100% !important;
        text-align: left;
    }

}

/*
 * Tratments flow list
 */

.xplan-reservation .reservation .options_list .single-treatment + .options .photo_description {
    margin-bottom: 10px;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment {
    background: white;
    border-radius: 5px;
    padding: 20px;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment > .row {
    margin: 0;
    display: flex;
    flex-direction: column;
    row-gap: 0.5em;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person {
    display: flex;
    align-items: center;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person .single-person {
    width: 160px;
    padding: 0;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person select.treatment-availability-select {
    font-size: 0.9em;
    padding: 0.3em 0.5em;
    max-width: 100%;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person .single-person .plusminus {
    display: none;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person .single-person .text {
    margin-bottom: 0;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person .options {
    border: 0;
    flex: 1;
    padding: 0;
}

.xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment  input[type="submit"] {
    font-family: 'Helvetica';
    margin: 0 !important;
    background: transparent !important;
    border: 2px solid #7db92e !important;
    color: #7db92e !important;
}

@media (max-width: 768px) {

    .xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person .single-person {
        width: 120px;
    }

}

@media (max-width: 479px) {

    .xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person {
        flex-direction: column;
    }

    .xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person .single-person,
    .xplan-reservation .reservation .options_list .single-treatment + .options form.add_treatment .person .options {
        width: 100%;
    }

}