/*
 * =========================================================
 * DEWPOINT PLAYER BOOKING
 * STICKY DATE + STICKY COURT/TIME HEADER
 *
 * CLEAN VERSION:
 * - solid white sticky date box
 * - no transparent bleed-through
 * - solid white sticky TIME / COURT header
 * =========================================================
 */

body
.dp-site:has(
    .dp-home-booking
    .dp-pm-booking
){
    overflow:clip !important;
}


/* =========================================================
   DATE STICKY WRAPPER
   ========================================================= */

body
.dp-site
.dp-home-booking
.dp-pm-booking
.swipe-date-shell{

    position:sticky !important;

    /*
     * JS sets this to the real nav height.
     * No extra transparent outside gap.
     */
    top:var(--dp-booking-sticky-top, 88px) !important;

    z-index:120;

    margin-top:0 !important;

    padding:8px 0 10px !important;

    background:#ffffff !important;

    border-radius:18px 18px 0 0;

    box-shadow:
        0 8px 18px rgba(18,28,55,.08);

    overflow:hidden;

    isolation:isolate;
}


/*
 * Force the sticky date area to paint an opaque white layer
 * under its full box, so schedule rows cannot show through.
 */
body
.dp-site
.dp-home-booking
.dp-pm-booking
.swipe-date-shell::before{

    content:"";

    position:absolute;

    inset:0;

    background:#ffffff;

    /*
     * Keep the opaque mask inside the sticky stacking context.
     * z-index:-1 can composite behind the sticky surface in
     * mobile Safari and allow schedule text to bleed through.
     */
    z-index:0;
    pointer-events:none;
}


/*
 * Keep date strip layout working normally.
 */
body
.dp-site
.dp-home-booking
.dp-pm-booking
.tap-date-strip{

    position:relative;

    z-index:1;
}


/* =========================================================
   STICKY COURT/TIME HEADER
   ========================================================= */

body
.dp-site
.dp-home-booking
.dp-pm-booking
.dp-booking-sticky-court-head{

    position:fixed;

    display:none;

    overflow:hidden;

    box-sizing:border-box;

    z-index:119;

    pointer-events:none;

    background:#ffffff;

    border:1px solid #edf1f7;

    border-radius:12px;

    box-shadow:
        0 10px 22px rgba(18,28,55,.10);
}

body
.dp-site
.dp-home-booking
.dp-pm-booking
.dp-booking-sticky-court-head.is-visible{

    display:block;
}

body
.dp-site
.dp-home-booking
.dp-pm-booking
.dp-booking-sticky-court-head-grid{

    display:grid;

    box-sizing:border-box;

    background:#ffffff;

    will-change:transform;
}

body
.dp-site
.dp-home-booking
.dp-pm-booking
.dp-booking-sticky-court-head
.tap-grid-head{

    margin:0 !important;

    box-sizing:border-box;

    background:#ffffff !important;

    opacity:1 !important;
}


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

@media(max-width:760px){

    body
    .dp-site
    .dp-home-booking
    .dp-pm-booking
    .swipe-date-shell{

        top:var(--dp-booking-sticky-top, 62px) !important;

        padding:8px 0 8px !important;

        border-radius:14px 14px 0 0;
    }

}
