/* ======================================================
   BOOKING APPLE STYLE — BALANCED MOBILE VERSION
====================================================== */

.ba-item-post-title,
h1 {
    text-align: center !important;
    margin-bottom: 18px !important;
}

/* ---------- CAMPO DATA ---------- */

.open-calendar-dialog {
    border: 1px solid #e8e8e8 !important;
    border-radius: 18px !important;
    background: #fafafa !important;
    height: 54px !important;
    padding: 0 18px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #111 !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.03);
    transition: all .25s ease;
    margin-bottom: 10px !important;
}

.open-calendar-dialog:hover {
    border-color: #d5d5d5 !important;
    background: #fff !important;
}

.open-calendar-dialog:focus {
    border-color: #111 !important;
    box-shadow: 0 0 0 4px rgba(0,0,0,.08);
}

/* ---------- LABEL ---------- */

.ba-add-to-cart-booking-hours-row-label {
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #111 !important;
}

/* ---------- SLOT WRAPPER ---------- */

.add-to-cart-booking-hours-wrapper,
.add-to-cart-booking-available-hours-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    width: 100% !important;
    justify-content: center !important;
    margin-top: 8px !important;
    margin-bottom: 26px !important;
}

/* ---------- SLOT ---------- */

.add-to-cart-booking-available-hours {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 96px !important;
    height: 54px !important;

    border-radius: 16px !important;
    border: 1px solid #e7e7e7 !important;

    background: #fafafa !important;
    color: #111 !important;

    font-size: 15px !important;
    font-weight: 500 !important;

    transition: all .2s ease !important;
    cursor: pointer;
    white-space: nowrap !important;
}

.add-to-cart-booking-available-hours:hover {
    background: #111 !important;
    color: #fff !important;
    border-color: #111 !important;
    transform: translateY(-2px);
}

.add-to-cart-booking-available-hours.active,
.add-to-cart-booking-available-hours.selected,
.add-to-cart-booking-available-hours.ba-selected,
.add-to-cart-booking-available-hours[aria-selected="true"] {
    background: #111 !important;
    color: #fff !important;
    border-color: #111 !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.12);
}

/* ---------- BOTTONE ---------- */

.ba-add-to-cart-button-wrapper {
    text-align: center !important;
}

.ba-add-to-cart-button-wrapper a,
.ba-add-to-cart-button-wrapper button {
    border-radius: 18px !important;
    height: 56px !important;
    padding: 0 34px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: .5px;
    transition: all .25s ease !important;
}

.ba-add-to-cart-button-wrapper a:hover,
.ba-add-to-cart-button-wrapper button:hover {
    transform: translateY(-2px);
}

/* ---------- SPAZI ---------- */

.ba-add-to-cart-booking-calendar-wrapper {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.ba-add-to-cart-wrapper {
    margin-bottom: 70px !important;
    padding-bottom: 50px !important;
}

/* ---------- FOOTER ---------- */

footer,
.ba-footer,
.footer {
    clear: both !important;
    position: relative !important;
    z-index: 1 !important;
}

/* ======================================================
   MOBILE
====================================================== */

@media (max-width: 768px) {

    .ba-item-post-title,
    h1 {
        text-align: center !important;
        margin-top: 42px !important;
        margin-bottom: 20px !important;
        font-size: 32px !important;
        line-height: 1.15 !important;
        font-weight: 400 !important;
        letter-spacing: -.5px !important;
    }

    .open-calendar-dialog {
        width: 92% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        height: 52px !important;
        font-size: 15px !important;
    }

    .ba-add-to-cart-booking-hours-row-label {
        width: 92% !important;
        margin: 12px auto 8px !important;
    }

    .add-to-cart-booking-hours-wrapper,
    .add-to-cart-booking-available-hours-wrapper {
        width: 92% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        gap: 10px !important;
        justify-content: center !important;
        margin-bottom: 18px !important;
    }

    .add-to-cart-booking-available-hours {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        height: 52px !important;
        font-size: 15px !important;
        border-radius: 14px !important;
    }

    .ba-add-to-cart-button-wrapper {
        width: 92% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        margin-top: 18px !important;
    }

    .ba-add-to-cart-button-wrapper a,
    .ba-add-to-cart-button-wrapper button {
        width: 100% !important;
        max-width: 100% !important;
        background: #C9A134 !important;
        border-color: #C9A134 !important;
        color: #fff !important;
    }

    .ba-add-to-cart-wrapper {
        padding-bottom: 80px !important;
        margin-bottom: 50px !important;
    }
}

/* ---------- APP INSTALL CARDS ---------- */

.app-card {
    background: #fff;
    border-radius: 28px;
    padding: 28px 24px;
    box-shadow: 0 18px 50px rgba(0,0,0,.08);
    text-align: center;
    height: 100%;
}

.app-card h3 {
    font-size: 28px;
    margin-bottom: 18px;
    color: #111;
}

.app-card p {
    color: #555;
    line-height: 1.8;
    font-size: 16px;
}

@media (max-width:768px){
    .app-card{
        margin-bottom: 18px;
    }
}

/* ==========================
   AREAMODA PRELOADER
========================== */

#am-preloader {
    position: fixed;
    inset: 0;
    background: #ffffff;
    z-index: 9999999;
    display: flex;
    align-items: center;
    justify-content: center;
}

#am-preloader img {
    width: 170px;
    animation: amPulse .9s ease;
}

#am-preloader.hide {
    opacity: 0;
    transition: opacity 1.2s ease;
    pointer-events: none;
}

@keyframes amPulse {
    from {
        opacity: 0;
        transform: scale(.94);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* ======================================================
   SOLO PAGINA SERVIZI
====================================================== */

.servizi-page h1,
.servizi-page .ba-category-title {
    font-size: 34px !important;
    line-height: 1.15 !important;
    font-weight: 400 !important;
    text-align: center !important;
    margin-top: 24px !important;
    margin-bottom: 10px !important;
}

.servizi-page .ba-category-description {
    text-align: center !important;
    font-size: 16px !important;
    color: #8b8b8b !important;
    margin-bottom: 28px !important;
}

/* card servizi */
.servizi-page .ba-blog-post,
.servizi-page .ba-post,
.servizi-page .ba-item {
    background: #fff !important;
    border-radius: 26px !important;
    box-shadow: 0 12px 35px rgba(0,0,0,.06) !important;
    overflow: hidden !important;
    margin-bottom: 16px !important;
}

/* titolo servizio */
.servizi-page .ba-blog-post-title,
.servizi-page .ba-post-title {
    font-size: 22px !important;
    line-height: 1.3 !important;
    font-weight: 400 !important;
    color: #111 !important;
    text-align: center !important;
    padding: 30px 20px !important;
}

/* mobile */
@media (max-width:768px) {
    .servizi-page .ba-blog-posts-wrapper,
    .servizi-page .ba-items-wrapper {
        width: 92% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}
body.am-closed-day .ba-add-to-cart-button-wrapper,
body.am-closed-day .ba-add-to-cart-buttons-wrapper,
body.am-closed-day .ba-add-to-cart-button-wrapper a,
body.am-closed-day .ba-add-to-cart-button-wrapper button {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
/* ---------- HIDE BOOK BUTTON WHEN SALON IS CLOSED ---------- */

body.am-closed-day .ba-add-to-cart-button-wrapper,
body.am-closed-day .ba-add-to-cart-button-wrapper a,
body.am-closed-day .ba-add-to-cart-button-wrapper button {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
/* ---------- FIX DATA BOOKING ---------- */

.open-calendar-dialog {
    width: 100% !important;
    min-width: 100% !important;
    white-space: nowrap !important;
}

.open-calendar-dialog span,
.open-calendar-dialog div {
    white-space: nowrap !important;
    overflow: visible !important;
}

@media (max-width:768px) {
    .open-calendar-dialog {
        width: 92% !important;
        min-width: 92% !important;
        font-size: 15px !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
}
/* ---------- FIX NUMERO DATA COPERTO DA ICONA ---------- */

.open-calendar-dialog {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
}

.open-calendar-dialog i,
.open-calendar-dialog svg,
.open-calendar-dialog .zmdi,
.open-calendar-dialog .ba-icons {
    flex: 0 0 auto !important;
    margin-right: 12px !important;
    position: relative !important;
    z-index: 1 !important;
}

.open-calendar-dialog span,
.open-calendar-dialog div {
    padding-left: 8px !important;
    position: relative !important;
    z-index: 2 !important;
}

@media (max-width:768px) {
    .open-calendar-dialog {
        padding-left: 24px !important;
        padding-right: 20px !important;
    }
}
/* ======================================================
   SERVIZI — CLEAN PREMIUM LIST
====================================================== */

.servizi-page .ba-items-wrapper,
.servizi-page .ba-blog-posts-wrapper {
    width: 90% !important;
    margin: auto !important;
}

.servizi-page .ba-item,
.servizi-page .ba-post,
.servizi-page .ba-blog-post {
    background: #fff !important;
    border-radius: 26px !important;
    margin-bottom: 16px !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.055);
    overflow: hidden !important;
    transition: transform .2s ease, box-shadow .2s ease;
}

.servizi-page .ba-item:active,
.servizi-page .ba-post:active,
.servizi-page .ba-blog-post:active {
    transform: scale(.98);
}

.servizi-page .ba-blog-post-title,
.servizi-page .ba-post-title {
    display: block !important;
    text-align: center !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    color: #111 !important;
    line-height: 1.3 !important;
    padding: 26px 24px !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

.servizi-page h1,
.servizi-page .ba-category-title {
    text-align: center !important;
    font-size: 32px !important;
    font-weight: 400 !important;
    margin-top: 24px !important;
    margin-bottom: 12px !important;
    line-height: 1.15 !important;
}

.servizi-page .ba-category-description {
    text-align: center !important;
    color: #8b8b8b !important;
    font-size: 16px !important;
    margin-bottom: 28px !important;
}

@media (max-width:768px){
    .servizi-page .ba-blog-post-title,
    .servizi-page .ba-post-title {
        font-size: 21px !important;
        padding: 24px 20px !important;
    }
}
/* ---------- STICKY BOOKING BAR MOBILE ---------- */

@media (max-width:768px){

    /* banda bianca */

    .ba-add-to-cart-button-wrapper {

        position: fixed !important;

        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;

        width: 100% !important;

        z-index: 99999 !important;

        background: #fff !important;

        padding:
        14px 0
        calc(env(safe-area-inset-bottom) + 18px)
        0 !important;

        box-shadow:
        0 -8px 30px rgba(0,0,0,.08);

        border-radius: 0 !important;
    }

    /* bottone centrato */

    .ba-add-to-cart-button-wrapper a,
    .ba-add-to-cart-button-wrapper button {

        display: block !important;

        width: 90% !important;
        max-width: 420px !important;

        margin: 0 auto !important;

        height: 58px !important;

        border-radius: 18px !important;

        box-shadow:
        0 10px 28px rgba(0,0,0,.16) !important;
    }

    /* spazio fondo pagina */

    .ba-add-to-cart-wrapper {

        padding-bottom: 170px !important;
    }
}
/* ---------- TESTO BOTTONE CENTRATO ---------- */

.ba-add-to-cart-button-wrapper a,
.ba-add-to-cart-button-wrapper button {

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;
    line-height: 1 !important;
}
/* ---------- DATE FIELD WIDER ---------- */

.open-calendar-dialog {

    padding-left: 70px !important;
    padding-right: 28px !important;

    min-height: 64px !important;
}

/* icona più ordinata */

.open-calendar-dialog i,
.open-calendar-dialog svg,
.open-calendar-dialog .zmdi,
.open-calendar-dialog .ba-icons {

    left: 26px !important;
    font-size: 20px !important;
    opacity: .7 !important;
}
/* ---------- DATE FIELD CLEAN CARD ---------- */

.open-calendar-dialog {
    border: none !important;
    background: #f8f8f8 !important;
    border-radius: 22px !important;

    height: 62px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 24px !important;

    box-shadow: 0 8px 28px rgba(0,0,0,.05) !important;

    text-align: center !important;
}

.open-calendar-dialog i,
.open-calendar-dialog svg,
.open-calendar-dialog .zmdi,
.open-calendar-dialog .ba-icons {
    display: none !important;
}

.open-calendar-dialog span,
.open-calendar-dialog div,
.open-calendar-dialog input {
    width: 100% !important;
    text-align: center !important;
    padding: 0 !important;
    margin: 0 !important;
}