/**
 * MoroccoPlan tour detail layout.
 * Scoped to single st_tours. Does not restyle Traveler booking internals.
 */

/* Hide Traveler scroll-to-top (#gotop) on tour pages only */
.single-st_tours #gotop {
    display: none !important;
}

.single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery {
    margin-bottom: 24px;
}

/*
 * Quick Facts (.st-service-feature) — visual polish only.
 * Same icons, sizes, grid, and spacing. Colors/typography only.
 * Scoped to tour singles so other Traveler services are untouched.
 */
.single-st_tours #st-content-wrapper.st-style-elementor .st-service-feature .item .icon {
    background: #eef3f8;
    border: none;
    box-shadow: none;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-service-feature .item .icon i {
    color: #1b5f8a;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-service-feature .item .info .name {
    color: #1a2b48;
    font-family: inherit;
    font-weight: 700;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-service-feature .item .info .value {
    color: #898a8e;
    font-family: inherit;
    font-weight: 400;
}

/*
 * Traveler applies .st-gallery.style-masonry { margin-top: 40px; } in this layout.
 * That inherited top margin pushes the gallery down under the review line.
 * Keep gallery dimensions intact; only remove the inherited vertical offset.
 */
.single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry,
.single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery {
    margin-top: 0;
}

/*
 * Intentional separation between top header (title/review) and gallery row.
 * Previous fixes targeted gallery inherited margin; this adds the desired
 * small gap at the structural boundary where spacing actually collapses to 0.
 */
.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 {
    margin-bottom: 12px;
}

/*
 * MoroccoPlan — compact top review line (title -> review -> gallery).
 * Keep Traveler markup, only tighten spacing/typography.
 */
.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .left .st-heading {
    margin-bottom: 4px;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading {
    margin: 0;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading .reviews {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    line-height: 1.2;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading .reviews i {
    font-size: 14px;
    line-height: 1;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading .reviews .rate {
    font-size: 16px;
    line-height: 1.2;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading .reviews .summary {
    font-size: 15px;
    line-height: 1.2;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading .st-address:empty {
    display: none;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading:has(.st-address:empty) .st-dot {
    display: none;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .sub-heading.moroccoplan-tour-meta {
    margin: 0;
}

/* Desktop: rating + Top Rated + cancellation on one inline row. */
.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-row {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 4px 10px;
    max-width: 100%;
}

/*
 * Indivisible rating + Top Rated group.
 * Nested Traveler .st-review-score/.head/.left are flattened with display:contents
 * so star, count, separator and badge are true siblings in one nowrap flex line.
 */
.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-primary {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    max-width: 100%;
    white-space: nowrap;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-primary .st-review-score,
.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-primary .st-review-score .head,
.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-primary .st-review-score .left {
    /* Beat Bootstrap d-inline-block / d-sm-flex utilities so the group stays flat. */
    display: contents !important;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-separator {
    color: #9aa7b6;
    line-height: 1;
    flex: 0 0 auto;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-badge {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 6px 10px;
    border-radius: 8px;
    background: #eef3fb;
    color: var(--heading-color, #1a2b48);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.1;
    white-space: nowrap;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-secondary {
    color: var(--grey-color, #898a8e);
    font-size: 15px;
    line-height: 1.3;
    flex: 0 1 auto;
    min-width: 0;
    word-break: break-word;
}

.single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-primary .reviews {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    white-space: nowrap;
    flex: 0 0 auto;
}

/* Mobile: primary group on line 1; cancellation on line 2 (no trailing bullet). */
@media screen and (max-width: 767px) {
    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-row {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: flex-start;
        gap: 6px;
        max-width: 100%;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-separator--before-secondary {
        display: none;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-primary {
        display: inline-flex;
        flex-wrap: nowrap;
        white-space: nowrap;
        max-width: 100%;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .moroccoplan-tour-meta-secondary {
        max-width: 100%;
    }
}

@media screen and (max-width: 767px) {
    /*
     * Mobile only: free the title to full width, then overlay the existing
     * Favorite (.wistlist-single) on the gallery top-right. Uses display:contents
     * so .left / .right participate in the same grid as the gallery row — same
     * DOM node and Traveler wishlist logic, no second button.
     */
    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        /* Traveler sets margin-top: 40px (≤768px) — that is the header→title gap. */
        margin-top: 12px;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .left .st-heading {
        /* Traveler sets margin-top: 12px on mobile — drop to avoid double spacing. */
        margin-top: 0;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 {
        display: contents !important;
        margin-bottom: 0;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 > .left {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        width: 100%;
        margin-bottom: 12px;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .moroccoplan-tour-gallery-booking {
        grid-column: 1;
        grid-row: 2;
        position: relative;
        /*
         * Do NOT use z-index: 0 here. That traps the fixed mobile booking bar
         * (.hotel-target-book-mobile) in a stacking context below later siblings
         * (related tours, Traveler Trust), so those sections paint/click on top of the bar.
         * Wishlist stays above the gallery via .right { z-index: 5 } on this same grid.
         */
        z-index: auto;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 > .right {
        grid-column: 1;
        grid-row: 2;
        justify-self: end;
        align-self: start;
        z-index: 5;
        margin: 12px 12px 0 0;
        display: flex;
        align-items: flex-start;
        pointer-events: none;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .right .wistlist-single {
        pointer-events: auto;
        margin-left: 0;
    }

    /* Video stays off; Favorite + Share both overlay the gallery (OTA pair). */
    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .right .st-video {
        display: none;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .right .shares {
        display: block;
        position: relative;
        pointer-events: auto;
        margin: 0;
    }

    /* Beat Traveler mobile rule that hides .share-item ≤767px. */
    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 .right .shares .share-item {
        display: block !important;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .st-single-service-content > .st-service-header2 > .right {
        gap: 8px;
    }
}

/*
 * Mobile only — OTA horizontal gallery carousel.
 * Reuses Traveler .st-gallery.style-masonry markup + magnificPopup lightbox.
 * Desktop/tablet (≥768) rules below remain the sole desktop gallery layout.
 */
@media screen and (max-width: 767px) {
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking {
        overflow-x: clip;
        max-width: 100%;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] {
        max-width: 100%;
        overflow-x: clip;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry {
        position: relative;
        display: block;
        width: 100%;
        max-width: 100%;
        margin-top: 0;
        margin-bottom: 16px;
        overflow: visible;
        border-radius: 0;
        clear: both;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .st-list-item-gallery {
        --mp-gallery-slide: 93%;
        --mp-gallery-gap: 10px;
        display: flex !important;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: var(--mp-gallery-gap);
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        float: none;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .st-list-item-gallery::-webkit-scrollbar {
        display: none;
    }

    /*
     * Override Traveler mobile: hide all but first image.
     * Also unhide .item-hide so pagination reflects the full gallery.
     */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery,
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery:not(:nth-child(1)),
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery.item-hide {
        display: block !important;
        float: none !important;
        flex: 0 0 var(--mp-gallery-slide);
        width: var(--mp-gallery-slide) !important;
        max-width: var(--mp-gallery-slide);
        height: auto !important;
        min-height: 0;
        margin: 0;
        padding: 0 !important;
        scroll-snap-align: center;
        scroll-snap-stop: always;
        border-radius: 14px;
        overflow: hidden;
        position: relative;
        background: #e8eef3;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery img {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        object-position: center;
        border-radius: 0;
    }

    /* All photos pill — swipe + dots on mobile; lightbox still via image tap. */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry > .shares.dropdown {
        display: none !important;
    }

    /* Pagination dots — injected by tour-gallery-mobile.js */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .moroccoplan-gallery-dots {
        position: absolute;
        left: 50%;
        bottom: 12px;
        z-index: 4;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        transform: translateX(-50%);
        padding: 6px 10px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.72);
        box-shadow: 0 1px 3px rgba(26, 43, 72, 0.12);
        pointer-events: auto;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .moroccoplan-gallery-dot {
        appearance: none;
        -webkit-appearance: none;
        display: block;
        width: 6px;
        height: 6px;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: rgba(26, 43, 72, 0.28);
        cursor: pointer;
        transition: width 0.2s ease, background-color 0.2s ease;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .moroccoplan-gallery-dot.is-active {
        width: 18px;
        background: #1a2b48;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry.moroccoplan-gallery--single .moroccoplan-gallery-dots {
        display: none;
    }
}

/*
 * Desktop/tablet OTA gallery — compact 1 large + 2×2 grid.
 * Markup stays Traveler .st-gallery.style-masonry (lightbox / All photos unchanged).
 * Scoped from 768px up so mobile (≤767) uses the carousel above.
 */
@media screen and (min-width: 768px) {
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry {
        position: relative;
        display: block;
        width: 100%;
        overflow: visible;
        border-radius: 0;
        clear: both;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .st-list-item-gallery {
        display: grid;
        /* ~54% hero | ~46% split into two equal columns */
        grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.5fr) minmax(0, 0.5fr);
        grid-template-rows: 1fr 1fr;
        gap: 10px;
        width: 100%;
        /* Compact vs Traveler's 630px masonry stack */
        height: clamp(280px, 32vw, 380px);
        max-height: 380px;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery {
        float: none;
        width: auto;
        height: auto;
        min-width: 0;
        min-height: 0;
        padding: 0;
        margin: 0;
        display: block;
        overflow: hidden;
        border-radius: 12px;
        position: relative;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery:nth-child(1) {
        grid-column: 1;
        grid-row: 1 / span 2;
        height: auto;
        padding: 0;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery:nth-child(3) {
        grid-column: 3;
        grid-row: 1;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery:nth-child(4) {
        grid-column: 2;
        grid-row: 2;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery:nth-child(5) {
        grid-column: 3;
        grid-row: 2;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .item-gallery.item-hide {
        display: none;
    }

    /* All photos — keep over last cell, smaller premium pill */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .shares.dropdown {
        top: auto !important;
        right: 12px !important;
        bottom: 12px !important;
        z-index: 2;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .shares.dropdown .btn-group a.st-gallery-popup {
        background: #fff !important;
        border: 1px solid rgba(26, 43, 72, 0.12) !important;
        border-radius: 999px !important;
        box-shadow: 0 1px 3px rgba(26, 43, 72, 0.12);
        color: #1a2b48 !important;
        font-size: 13px;
        font-weight: 600;
        line-height: 1.2;
        padding: 8px 12px;
    }

    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-8"] > .st-gallery.style-masonry .shares.dropdown .btn-group a.st-gallery-popup span {
        color: #1a2b48 !important;
        margin-right: 6px;
        font-size: 14px;
    }
}

@media screen and (min-width: 992px) {
    /*
     * Stretch the booking column to the left-column height so Bootstrap
     * position:sticky on .widgets.sticky-top can travel with the content
     * and stop at the end of the tour row (before relate/footer).
     */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking {
        align-items: stretch;
    }

    /*
     * INITIAL ALIGNMENT
     * Traveler .single.st-mod-style .st-gallery.style-masonry { margin-top: 40px }
     * only offsets the gallery. In this shared row that leaves the booking card
     * at the row top (beside the rating) while the gallery starts 40px lower.
     * Remove the gallery-only offset so gallery top = booking top on load.
     *
     * Sticky offset: sit below the OTA sticky header (not under it).
     * --mp-site-header-height is set on <html> by header.js (live measured).
     * z-index stays below .moroccoplan-site-header (1000) so the header wins.
     */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking .widgets.sticky-top {
        top: calc(var(--mp-site-header-height, 109px) + 12px);
        z-index: 900;
        margin-top: 0;
    }

    .admin-bar.single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking .widgets.sticky-top {
        top: calc(32px + var(--mp-site-header-height, 109px) + 12px);
    }

    /*
     * Traveler v2/js/custom.js sets inline position:fixed on .fixed-on-mobile
     * once scroll passes the card (top: 0). That fights column sticky and
     * can overlap the header. Keep the class for the mobile overlay, but on
     * desktop let the parent .sticky-top own sticking.
     */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking .fixed-on-mobile.st-fixed-form-booking {
        position: relative !important;
        top: auto !important;
        width: auto !important;
        z-index: auto !important;
    }
}

/*
 * PHASE 2B — collapsed date selector only.
 * Click target remains Traveler .date-wrapper (opens existing daterangepicker).
 * Values remain in check_in / check_out / check_in_out.
 * Do not use .form-date-search here: that class also wraps Adult/Child.
 */
.single-st_tours #form-booking-inpage .form-group.form-date-field.moroccoplan-date-field {
    position: relative;
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0 0 14px;
    border: 0;
    background: transparent;
    min-height: 0;
    cursor: pointer;
}

.single-st_tours #form-booking-inpage .form-group.form-date-field.moroccoplan-date-field .date-wrapper {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 10px 18px;
    background: #f4f6f8;
    border-radius: 999px;
    box-sizing: border-box;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #form-booking-inpage .form-group.form-date-field.moroccoplan-date-field .moroccoplan-date-icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    color: var(--heading-color, #1a2b48);
    pointer-events: none;
}

.single-st_tours #form-booking-inpage .form-group.form-date-field.moroccoplan-date-field .check-in-wrapper {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    min-width: 0;
}

.single-st_tours #form-booking-inpage .form-group.form-date-field.moroccoplan-date-field .check-in-wrapper label {
    margin: 0;
    padding: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #form-booking-inpage .form-group.form-date-field.moroccoplan-date-field .check-in-render {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.single-st_tours #form-booking-inpage .form-group.form-date-field.moroccoplan-date-field .stt-icon-arrow-down {
    margin-left: auto;
    flex-shrink: 0;
    font-size: 12px;
    color: var(--heading-color, #1a2b48);
}

/*
 * Start time — matches moroccoplan-date-field pill row (icon + label + chevron).
 * Keeps Traveler hooks: .st-form-starttime, #starttime_box, #starttime_tour.
 */
.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field {
    position: relative;
    display: flex;
    width: 100%;
    margin: 0;
    padding: 14px 0 0;
    border: 0;
    border-top: 1px solid #eceff3;
    background: transparent;
    min-height: 0;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .starttime_box {
    width: 100%;
    margin: 0;
    padding: 0 0 14px;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-wrapper {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 10px 18px;
    background: #f4f6f8;
    border-radius: 999px;
    box-sizing: border-box;
    color: var(--heading-color, #1a2b48);
    cursor: pointer;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    color: var(--heading-color, #1a2b48);
    pointer-events: none;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-control {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    min-width: 0;
    pointer-events: none;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-display {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-control label {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-render {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-wrapper:not(.has-value) .moroccoplan-starttime-render {
    display: none;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field #starttime_tour {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field #starttime_tour:focus {
    outline: none;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field #starttime_tour:focus-visible {
    outline: none;
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .moroccoplan-starttime-wrapper:focus-within {
    box-shadow: 0 0 0 2px rgba(27, 95, 138, 0.12);
}

.single-st_tours #form-booking-inpage .form-group.st-form-starttime.moroccoplan-starttime-field .stt-icon-arrow-down {
    margin-left: auto;
    flex-shrink: 0;
    font-size: 12px;
    color: var(--heading-color, #1a2b48);
    pointer-events: none;
}

/*
 * MoroccoPlan — Booking card containment
 * .st-form-book-wrapper is the outer card (price + form + button).
 * .st-group-form is the inner date/guest card.
 * Neutralize Traveler's extra 24px insets so padding is not stacked.
 */
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper {
    padding: 20px 18px 22px;
    box-sizing: border-box;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .st-form-head-book,
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .st-form-booking-action {
    padding-left: 0;
    padding-right: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .st-form-head-book {
    padding-top: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .form-booking-price .st-review-score {
    display: none;
}

/* Kill Traveler diagonal sale ribbon if any markup remains */
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .tour-sale-box,
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .form-booking-price .st_sale_class,
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .form-booking-price .box_sale {
    display: none !important;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .form-booking-price {
    overflow: visible;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: flex-start;
    gap: 4px;
    width: 100%;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price .st-unit {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.3;
    color: var(--grey-color, #898a8e);
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price__main {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 8px;
    row-gap: 4px;
    max-width: 100%;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price__old {
    margin: 0;
    padding: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    color: #9aa5b1;
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price__current {
    margin: 0;
    padding: 0;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price--sale .moroccoplan-booking-price__current {
    color: var(--moroccoplan-sale-price-color, #C7293D);
}

/*
 * Mobile sticky booking bar (#mobile-price) — separate markup from the booking card.
 * Traveler get_price_html(): .item.onsale (old) + .item (final).
 * Final price was black via: .hotel-target-book-mobile .price-wrapper .price { color: var(--heading-color) }
 */
.single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile #mobile-price .price .item.onsale + .item {
    color: var(--moroccoplan-sale-price-color, #C7293D);
}

/*
 * Mobile sticky booking bar — OTA-style: price + Free cancellation | Check availability
 *
 * Overlap causes (mobile only):
 * 1) Traveler pads #st-content-wrapper by only 50px; MoroccoPlan’s bar is ~79px tall.
 * 2) A former z-index:0 on .moroccoplan-tour-gallery-booking trapped the fixed bar
 *    so Related / Trust painted and received clicks on top of it.
 *
 * Clearance uses measured bar height (--moroccoplan-mobile-book-bar-clearance)
 * from assets/js/mobile-book-bar-clearance.js (80px CSS fallback + safe-area).
 * Bar z-index stays Traveler’s 9; stacking is fixed by not trapping it.
 * Desktop (≥992px) unchanged.
 */
@media screen and (max-width: 991px) {
    body.single-st_tours {
        --moroccoplan-mobile-book-bar-clearance: 80px;
        scroll-padding-bottom: calc(
            var(--moroccoplan-mobile-book-bar-clearance) + env(safe-area-inset-bottom, 0px)
        );
    }

    body.single-st_tours #st-content-wrapper {
        padding-bottom: calc(
            var(--moroccoplan-mobile-book-bar-clearance) + env(safe-area-inset-bottom, 0px)
        ) !important;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar {
        gap: 12px;
        padding: 12px 15px;
        padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        align-items: center;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar .price-wrapper {
        flex: 1 1 auto;
        min-width: 0;
        margin: 0;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar #mobile-price {
        margin-bottom: 6px;
        flex-wrap: wrap;
        row-gap: 2px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar .moroccoplan-mobile-book-bar__note {
        display: inline-flex;
        align-items: center;
        max-width: 100%;
        padding: 3px 8px;
        border-radius: 6px;
        background: #f0f3f6;
        color: var(--heading-color, #1a2b48);
        font-size: 11px;
        font-weight: 500;
        line-height: 1.3;
        white-space: nowrap;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar .moroccoplan-mobile-book-bar__cta {
        flex: 0 0 auto;
        max-width: 52%;
        padding: 12px 14px;
        border-radius: 999px;
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
        background: #1B5F8A;
        color: #fff !important;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.2;
        text-align: center;
        white-space: normal;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar .moroccoplan-mobile-book-bar__cta:hover,
    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar .moroccoplan-mobile-book-bar__cta:focus,
    .single-st_tours #st-content-wrapper.st-style-elementor .hotel-target-book-mobile.moroccoplan-mobile-book-bar .moroccoplan-mobile-book-bar__cta:active {
        background: #154a6c;
        border: none !important;
        outline: none !important;
        box-shadow: none !important;
        color: #fff !important;
    }
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price .moroccoplan-price-person {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--grey-color, #898a8e);
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price__badge {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid rgba(27, 95, 138, 0.18);
    background: rgba(27, 95, 138, 0.08);
    color: #1B5F8A;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

@media screen and (max-width: 767px) {
    .single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price {
        gap: 2px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price__main {
        column-gap: 6px;
        row-gap: 2px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price__old {
        font-size: 13px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price__current {
        font-size: 24px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-price .moroccoplan-price-person {
        font-size: 13px;
    }
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .st-group-form {
    padding: 14px 16px 8px;
    box-sizing: border-box;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .submit-group {
    padding-left: 0;
    padding-right: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-check-availability {
    background: #1B5F8A;
    border-color: #1B5F8A;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-check-availability:hover,
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-check-availability:focus,
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-check-availability:active {
    background: #154a6c;
    border-color: #154a6c;
}

/*
 * MoroccoPlan — Booking Guest Counter
 * Styles Traveler .prev / .next / .st-input-number only.
 * Quantity values and JS remain Traveler's.
 */
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage {
    --moroccoplan-counter-blue: #006fe6;
    --moroccoplan-counter-border: #d8dee6;
    --moroccoplan-counter-muted: #c5ccd6;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search {
    border-top: 0;
    padding: 0;
    background: #fff;
    overflow: visible;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .guest-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    max-width: 100%;
    box-sizing: border-box;
    border-bottom: 1px solid #eceff3;
    overflow: visible;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .guest-wrapper:last-child {
    border-bottom: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .guest-wrapper .check-in-wrapper {
    min-width: 0;
    flex: 1 1 auto;
    padding: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .guest-wrapper .check-in-wrapper label {
    display: block;
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .guest-wrapper .check-in-wrapper .render {
    margin-top: 2px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.3;
    color: #a5a6ab;
    white-space: nowrap;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .select-wrapper {
    flex: 0 0 auto;
    width: auto !important;
    min-width: 0;
    overflow: visible !important;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper {
    display: flex !important;
    float: none;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px;
    width: max-content;
    max-width: 100%;
    overflow: visible !important;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper > span {
    float: none;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .next {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    left: auto !important;
    top: auto !important;
    float: none;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    width: 30px;
    min-width: 30px;
    max-width: 30px;
    height: 30px;
    max-height: 30px;
    margin: 0;
    padding: 0;
    background: #fff;
    border: 2px solid var(--moroccoplan-counter-blue);
    border-radius: 50%;
    box-sizing: border-box;
    box-shadow: none;
    cursor: pointer;
    line-height: 1;
    overflow: visible;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev svg,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .next svg {
    display: block;
    width: 14px;
    height: 14px;
    max-width: none;
    overflow: visible;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev svg {
    /* Traveler minus SVG is viewBox 18x2; square box + scaleY matches plus weight. */
    transform: scaleY(1.4);
    transform-origin: center;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev svg g,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .next svg g,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev svg path,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .next svg path {
    stroke: var(--moroccoplan-counter-blue) !important;
    stroke-width: 2.2px !important;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper.is-at-min .prev,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev.is-at-min {
    border-color: var(--moroccoplan-counter-muted);
    cursor: default;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper.is-at-min .prev svg g,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper.is-at-min .prev svg path,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev.is-at-min svg g,
.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .prev.is-at-min svg path {
    stroke: var(--moroccoplan-counter-muted) !important;
}

.single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper .st-input-number {
    appearance: none;
    -webkit-appearance: none;
    display: block;
    float: none;
    flex: 0 0 52px;
    width: 52px !important;
    min-width: 52px;
    max-width: 52px;
    height: 36px;
    margin: 0 !important;
    padding: 0;
    border: 1px solid var(--moroccoplan-counter-border);
    border-radius: 4px;
    background: #fff !important;
    box-shadow: none;
    font-family: inherit;
    font-size: 18px !important;
    font-weight: 600;
    line-height: 36px;
    text-align: center;
    color: var(--heading-color, #1a2b48);
}

@media screen and (max-width: 991px) {
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking {
        align-items: flex-start;
    }

    /*
     * Keep the booking column in the DOM for the existing mobile overlay.
     * Collapse leftover gap when .fixed-on-mobile is display:none.
     */
    .single-st_tours #st-content-wrapper.st-single-tour .moroccoplan-tour-gallery-booking > [class*="col-lg-4"] {
        min-height: 0;
        padding-top: 0;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper {
        padding: 18px 16px 20px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .st-group-form {
        padding: 12px 14px 8px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .guest-wrapper {
        padding: 10px 0;
        gap: 10px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor #form-booking-inpage .form-guest-search .st-number-wrapper {
        gap: 8px;
    }
}

/*
 * MoroccoPlan — booking-card trust notes under Check availability.
 */
.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #eceff3;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust-item + .moroccoplan-booking-trust-item {
    margin-top: 14px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust-icon {
    display: flex;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    color: #1f9d55;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust-icon svg {
    display: block;
    width: 20px;
    height: 20px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust-copy {
    min-width: 0;
    flex: 1 1 auto;
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust-title {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #st-content-wrapper.st-style-elementor .st-form-book-wrapper .moroccoplan-booking-trust-desc {
    margin-top: 2px;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.35;
    color: #a5a6ab;
}

/*
 * MoroccoPlan — "About this tour" See more/less.
 * Full content stays server-rendered in DOM; we only limit initial viewport.
 */
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description-content :is(p, li, div, ul, ol, strong, b, em),
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description-content :is(p, li) span,
.single-st_tours #st-content-wrapper.st-style-elementor .st-highlight ul li,
.single-st_tours #st-content-wrapper.st-style-elementor .st-inexclude .include li,
.single-st_tours #st-content-wrapper.st-style-elementor .st-inexclude .exclude li,
.single-st_tours #st-content-wrapper.st-style-elementor .st-inexclude ul li {
    color: #1a2b48 !important;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description {
    --moroccoplan-tour-description-collapsed: 320px;
    --moroccoplan-tour-description-expanded: none;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description .moroccoplan-tour-description-content {
    position: relative;
    max-height: none;
    overflow: visible;
    transition: max-height 0.3s ease;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description.is-collapsible.is-collapsed .moroccoplan-tour-description-content {
    max-height: var(--moroccoplan-tour-description-collapsed);
    overflow: clip;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description.is-collapsible.is-expanded .moroccoplan-tour-description-content {
    max-height: var(--moroccoplan-tour-description-expanded);
    overflow: visible;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description.is-collapsible.is-collapsed .moroccoplan-tour-description-content::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 84px;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #ffffff 70%);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description .moroccoplan-tour-description-toggle {
    margin-top: 10px;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: #1b5f8a;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

@media screen and (max-width: 991px) {
    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description {
        --moroccoplan-tour-description-collapsed: 160px;
    }

    /* Shorter fade so the 2–4 line preview stays readable on mobile. */
    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-tour-description.is-collapsible.is-collapsed .moroccoplan-tour-description-content::after {
        height: 40px;
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #ffffff 85%);
    }
}

/*
 * MoroccoPlan — optional WhatsApp contact card (replaces Information Contact on tours).
 * Premium compact OTA-style card. Link/number/copy content unchanged.
 */
.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card {
    margin-top: 20px;
    padding: 18px 18px 16px;
    background: #fff;
    border: 1px solid #e8edf2;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(26, 43, 72, 0.04), 0 6px 18px rgba(26, 43, 72, 0.05);
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__header {
    display: flex;
    align-items: center;
    gap: 12px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #e8f8ef;
    color: #25d366;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__icon svg {
    display: block;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__heading {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__eyebrow {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.2;
    color: #1b5f8a;
    text-transform: none;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__title {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
    color: #1a2b48;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__copy {
    display: block;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__subtitle {
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    color: #898a8e;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 46px;
    padding: 11px 16px;
    border: none;
    border-radius: 12px;
    background: #25d366;
    color: #fff !important;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 1px 2px rgba(26, 43, 72, 0.06);
    transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button-icon {
    display: inline-flex;
    color: #fff;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button-icon svg {
    display: block;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button:hover,
.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button:focus {
    background: #1ebe57;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(37, 211, 102, 0.35);
    outline: none;
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button:focus-visible {
    box-shadow: 0 0 0 3px rgba(27, 95, 138, 0.25), 0 2px 8px rgba(37, 211, 102, 0.3);
}

.single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button:active {
    transform: translateY(1px);
    background: #19a84d;
}

@media screen and (max-width: 767px) {
    .single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card {
        padding: 16px;
        margin-top: 16px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .widgets .moroccoplan-whatsapp-card__button {
        min-height: 48px;
    }
}

/*
 * MoroccoPlan Operator Trust — premium compact block under Quick Facts.
 * Dividers: top border here + existing .st-hr below (before About).
 */
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust {
    margin-top: 24px;
    padding: 20px 0 4px;
    border-top: 1px solid #e8edf2;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__inner {
    max-width: 100%;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__eyebrow {
    margin: 0 0 8px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
    color: #8a97a6;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__lead {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 8px;
    margin: 0 0 14px;
    font-size: 16px;
    line-height: 1.4;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__brand {
    font-weight: 700;
    color: var(--heading-color, #1a2b48);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__sep {
    color: #c2cad3;
    font-weight: 400;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__place {
    font-weight: 400;
    color: var(--grey-color, #898a8e);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__points {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__point {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid #e6ebf0;
    border-radius: 999px;
    background: #f7f9fb;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__check {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: rgba(31, 157, 85, 0.12);
    color: #1f9d55;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__check svg {
    display: block;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__point-text {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--heading-color, #1a2b48);
    white-space: nowrap;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__cta-label {
    font-size: 13px;
    font-weight: 400;
    line-height: 1.35;
    color: var(--grey-color, #898a8e);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid rgba(37, 211, 102, 0.35);
    background: rgba(37, 211, 102, 0.1);
    color: #128c4a;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__whatsapp-icon {
    display: inline-flex;
    flex: 0 0 auto;
    color: #25d366;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__whatsapp-icon svg {
    display: block;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__whatsapp:hover,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__whatsapp:focus {
    background: rgba(37, 211, 102, 0.16);
    border-color: rgba(37, 211, 102, 0.5);
    color: #0f7a3f;
}

@media screen and (max-width: 767px) {
    /* Pull divider (operator-trust border-top) closer to the 2×2 info grid. */
    .single-st_tours #st-content-wrapper.st-style-elementor .st-service-feature {
        margin-bottom: 0;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust {
        margin-top: 10px;
        padding: 16px 0 2px;
    }

    /* Compact mobile: skip eyebrow, start with Operated by… */
    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__eyebrow {
        display: none;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__lead {
        margin-bottom: 12px;
        font-size: 15px;
        row-gap: 2px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__sep {
        display: none;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__place {
        flex: 1 1 100%;
        font-size: 14px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__points {
        gap: 8px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__point-text {
        white-space: normal;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-operator-trust__cta {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        margin-top: 12px;
    }
}


/*
 * MoroccoPlan — OTA-style Location card + Leaflet/OSM map (tour single).
 * Tile provider URL lives in tour-location.js (MoroccoPlanLocationMapConfig).
 */
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location {
    margin-top: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card {
    padding: 20px;
    background: #fff;
    border: 1px solid #e8edf2;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(26, 43, 72, 0.04), 0 6px 18px rgba(26, 43, 72, 0.05);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__title {
    margin: 0 0 14px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
    color: #1a2b48;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__meta {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__pin {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #eef3f8;
    color: #1b5f8a;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__pin svg {
    display: block;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__labels {
    min-width: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__primary {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: #1a2b48;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__secondary {
    margin: 2px 0 0;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.35;
    color: #898a8e;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__map {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    border: 1px solid #e8edf2;
    background: #eef3f8;
    box-shadow: inset 0 0 0 1px rgba(26, 43, 72, 0.02);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-leaflet {
    width: 100%;
    max-width: 100%;
    height: 300px;
    min-height: 300px;
    border-radius: 12px;
    z-index: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-gmaps-embed {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 300px;
    min-height: 300px;
    border: 0;
    border-radius: 12px;
    background: #eef3f8;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-leaflet.leaflet-container {
    font: inherit;
    background: #eef3f8;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-leaflet .leaflet-control-attribution {
    font-size: 10px;
    line-height: 1.3;
    background: rgba(255, 255, 255, 0.88);
    color: #898a8e;
    max-width: 70%;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-leaflet .leaflet-control-attribution a {
    color: #1b5f8a;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-leaflet .leaflet-control-zoom {
    border: none !important;
    box-shadow: 0 1px 4px rgba(26, 43, 72, 0.14);
    border-radius: 10px;
    overflow: hidden;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-leaflet .leaflet-control-zoom a {
    width: 34px;
    height: 34px;
    line-height: 34px;
    color: #1a2b48;
    border-bottom-color: #e8edf2 !important;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-marker-wrap {
    background: transparent;
    border: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-marker {
    display: block;
    width: 48px;
    height: 56px;
    line-height: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-marker svg {
    display: block;
    width: 100%;
    height: 100%;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-fullscreen,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-recenter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    border: 0;
    cursor: pointer;
    color: #1a2b48;
    background: #fff;
    box-shadow: 0 1px 4px rgba(26, 43, 72, 0.14);
    transition: background-color 0.15s ease, color 0.15s ease;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-fullscreen {
    width: 36px;
    height: 36px;
    border-radius: 10px;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-recenter {
    height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    color: #1b5f8a;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-fullscreen:hover,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-fullscreen:focus,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-recenter:hover,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-recenter:focus {
    background: #f4f7fa;
    color: #154a6d;
    outline: none;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-fullscreen:focus-visible,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-recenter:focus-visible {
    box-shadow: 0 0 0 3px rgba(27, 95, 138, 0.28);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__map:fullscreen,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__map:-webkit-full-screen {
    width: 100%;
    height: 100%;
    border-radius: 0;
    background: #fff;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__map:fullscreen .moroccoplan-location-leaflet,
.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__map:-webkit-full-screen .moroccoplan-location-leaflet {
    height: 100%;
    min-height: 100%;
    border-radius: 0;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 160px;
    padding: 24px 16px;
    border-radius: 12px;
    border: 1px solid #e8edf2;
    background: #f7fafc;
    text-align: center;
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__fallback-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    color: #1b5f8a;
    box-shadow: 0 1px 3px rgba(26, 43, 72, 0.08);
}

.single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__fallback-text {
    margin: 0;
    font-size: 14px;
    line-height: 1.4;
    color: #898a8e;
}

@media screen and (max-width: 767px) {
    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card {
        padding: 16px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-card__title {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-leaflet {
        height: 240px;
        min-height: 240px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-location-gmaps-embed {
        height: 240px;
        min-height: 240px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-marker {
        width: 42px;
        height: 49px;
    }

    .single-st_tours #st-content-wrapper.st-style-elementor .moroccoplan-map-recenter {
        min-height: 40px;
        padding: 0 16px;
    }
}
