/*
 * Home rail rhythm (title row → rule → cards): one scale site-wide.
 * Inherited by descendants; each block uses var() with these fallbacks.
 */
.rcm-home-featured,
.rcm-home-latest,
.rcm-home-directories,
.rcm-home-guides,
.rcm-home-articles,
.rcm-trending-places,
.rcm-explore-places,
.rcm-editors-picks {
    --rcm-home-rail-gap-title-rule: 15px;
    --rcm-home-rail-gap-rule-content: 34px;
}

@media (max-width: 767px) {
    .rcm-home-featured,
    .rcm-home-latest,
    .rcm-home-directories,
    .rcm-home-guides,
    .rcm-home-articles,
    .rcm-trending-places,
    .rcm-explore-places,
    .rcm-editors-picks {
        --rcm-home-rail-gap-title-rule: 16px;
        --rcm-home-rail-gap-rule-content: 24px;
    }
}

/* Empty states: Coming soon + optional mailto (see hello_elementor_rcm_empty_state_markup) */
.rcm-home-section-empty {
    box-sizing: border-box;
    width: 100%;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
    padding: 28px 28px 24px;
    border-radius: 16px;
    background: #fff;
    text-align: center;
    box-shadow: 0 2px 12px rgba(113, 83, 176, 0.10);
    border: 1.5px solid rgba(113, 83, 176, 0.14);
}

.rcm-home-section-empty__icon {
    display: flex;
    justify-content: center;
    margin-bottom: 14px;
}

.rcm-home-section-empty__title {
    margin: 0 0 8px;
    color: #183354;
    font-family: "Manrope", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.rcm-home-section-empty__sub {
    margin: 0 0 18px;
    color: #5c656f;
    font-family: "Inter", sans-serif;
    font-size: 15px;
    line-height: 1.55;
}

a.rcm-home-section-empty__cta {
    display: inline-block;
    padding: 10px 22px;
    border-radius: 24px;
    background: #7153b0;
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 180ms ease, transform 180ms ease;
}

a.rcm-home-section-empty__cta:hover,
a.rcm-home-section-empty__cta:focus-visible {
    background: #5f3f96;
    transform: translateY(-1px);
    text-decoration: none;
}

/* Coming soon badge for shortcode fallback */
.rcm-shortcode-coming-soon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px 6px 10px;
    border-radius: 20px;
    background: rgba(113, 83, 176, 0.08);
    border: 1px solid rgba(113, 83, 176, 0.2);
    font-family: "Manrope", sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #7153b0;
}

.rcm-shortcode-coming-soon::before {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #7153b0;
    animation: rcm-pulse 1.6s ease-in-out infinite;
}

@keyframes rcm-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.85); }
}

.rcm-trending-places__grid .rcm-trending-places__empty {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
}

.rcm-trending-places__empty .rcm-home-section-empty {
    max-width: none;
}

.rcm-trending-places.rcm-trending-places--no-topics {
    box-sizing: border-box;
    width: min(1263px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
    padding: 24px 0 32px;
}

.rcm-editors-picks--empty .rcm-editors-picks__layout--empty {
    align-items: stretch;
}

.rcm-editors-picks__main--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    padding: 8px 0 16px;
}

/* Empty state: full-width main cell when the rail stacks below (single column). */
@media (max-width: 1199px) {
    .rcm-editors-picks--empty .rcm-editors-picks__main--empty {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
}

@media (max-width: 640px) {
    .rcm-editors-picks--empty .rcm-home-section-empty {
        max-width: 100%;
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* Directory rails: same title → rule → cards scale as home sections */
.rcm-trending-places__header {
    margin-bottom: var(--rcm-home-rail-gap-title-rule, 15px);
}

.rcm-trending-places__border {
    margin-bottom: var(--rcm-home-rail-gap-rule-content, 34px);
}

.rcm-explore-places__header {
    margin-bottom: var(--rcm-home-rail-gap-title-rule, 15px);
}

.rcm-explore-places__header--single {
    margin-bottom: var(--rcm-home-rail-gap-title-rule, 15px) !important;
}

.rcm-explore-places__border {
    margin-bottom: var(--rcm-home-rail-gap-rule-content, 34px);
}

/* Match plugin mobile breakpoints (768px) to home rail tokens */
@media (max-width: 768px) {
    .rcm-trending-places,
    .rcm-explore-places,
    .rcm-editors-picks {
        --rcm-home-rail-gap-title-rule: 16px;
        --rcm-home-rail-gap-rule-content: 24px;
    }
}

.rcm-home-featured,
.rcm-home-guides {
    width: min(1263px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
}

/* Theme Builder topic archive: keep Featured block full width of column (tabs stay aligned). */
.elementor-location-archive .e-con:has(.rcm-home-featured) > .e-con-inner {
    align-items: flex-start !important;
}

.elementor-location-archive .elementor-widget-shortcode:has(.rcm-home-featured) > .elementor-widget-container,
.elementor-location-archive .elementor-widget-shortcode .elementor-shortcode:has(.rcm-home-featured) {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/*
 * Topic archive: Featured, Guides, Articles, Directories share the same centered rail as Featured.
 * Directories: full-viewport #fbf9f9 via ::before (100vw breakout misaligns inside Elementor columns).
 */
.elementor-location-archive .rcm-home-featured,
.elementor-location-archive .rcm-home-guides,
.elementor-location-archive .rcm-home-articles,
.elementor-location-archive .rcm-home-directories {
    width: 100% !important;
    max-width: min(1263px, calc(100% - 32px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.elementor-location-archive .rcm-home-guides,
.elementor-location-archive .rcm-home-featured,
.elementor-location-archive .rcm-home-articles {
    padding-left: 16px !important;
    padding-right: 16px !important;
}

.elementor-location-archive .rcm-home-directories {
    position: relative;
    padding: 46.58px 16px 52px !important;
    background: transparent !important;
    /* Base .rcm-home-directories uses overflow-x: clip — kills full-bleed ::before */
    overflow-x: visible !important;
}

.elementor-location-archive .rcm-home-directories::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    transform: translateX(-50%);
    background: #fbf9f9;
    z-index: -1;
    pointer-events: none;
}

@media (max-width: 1180px) {
    .elementor-location-archive .e-con.e-flex > .e-con-inner:has(.elementor-widget-shortcode) {
        align-items: flex-start !important;
        align-content: flex-start !important;
    }

    .elementor-location-archive .elementor-widget-shortcode:has(.rcm-home-featured) > .elementor-widget-container,
    .elementor-location-archive .elementor-widget-shortcode .elementor-shortcode:has(.rcm-home-featured),
    .elementor-location-archive .elementor-widget-shortcode:has(.rcm-home-directories) > .elementor-widget-container,
    .elementor-location-archive .elementor-widget-shortcode .elementor-shortcode:has(.rcm-home-directories),
    .elementor-location-archive .elementor-widget-shortcode:has(.rcm-home-guides) > .elementor-widget-container,
    .elementor-location-archive .elementor-widget-shortcode .elementor-shortcode:has(.rcm-home-guides),
    .elementor-location-archive .elementor-widget-shortcode:has(.rcm-home-articles) > .elementor-widget-container,
    .elementor-location-archive .elementor-widget-shortcode .elementor-shortcode:has(.rcm-home-articles) {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
}

/* Topic archive: keep 4 guide cards across where global CSS drops to 2 columns (768–1180px). */
@media (max-width: 1180px) and (min-width: 768px) {
    .elementor-location-archive .rcm-home-guides__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: clamp(8px, 1.25vw, 12px);
    }

    .elementor-location-archive .rcm-home-guides__image {
        min-height: min(360px, 42vw);
    }
}

.rcm-home-featured,
.rcm-home-guides,
.rcm-home-directories,
.rcm-editors-picks {
    font-family: "Inter", sans-serif;
}

.rcm-home-featured__rule-accent,
.rcm-home-guides__rule-accent,
.rcm-home-articles__rule-accent,
.rcm-home-directories__rule-accent {
    background: var(--rcm-topic-color, var(--rcm-home-featured-accent, #7153b0));
}

.rcm-home-guides__view-all svg,
.rcm-home-directories__view-all svg {
    color: var(--rcm-topic-color, #7153b0) !important;
}

.rcm-home-directories {
    overflow-x: clip;
}

.rcm-home-featured__layout {
    row-gap: 24px;
}

.rcm-home-directories__rule {
    margin-bottom: var(--rcm-home-rail-gap-rule-content, 34px);
}

.rcm-home-directories__grid {
    gap: 12px;
}

.rcm-editors-picks {
    padding: 46px 0 52px;
    background-color: #fbf9f9;
}

.rcm-editors-picks .rcm-editors-picks__container {
    box-sizing: border-box;
    max-width: min(1263px, calc(100% - 32px));
    row-gap: 0;
}

/* Empty state: restore plugin grid row rhythm (theme clears row-gap for the Figma rail). */
.rcm-editors-picks.rcm-editors-picks--empty .rcm-editors-picks__container {
    row-gap: var(--rcm-ep-gap, clamp(14px, 3vw, 26px));
}

/*
 * Wide viewports (e.g. 1920px): default calc(100% - 32px) leaves only 16px viewport gutters —
 * title/ads feel glued to the edges. Widen outer margin (plugin bumps --rcm-ep-pad-x on empty).
 */
@media (min-width: 1200px) {
    .rcm-editors-picks.rcm-editors-picks--empty .rcm-editors-picks__container {
        max-width: min(1263px, calc(100% - clamp(48px, 6vw, 160px)));
    }
}

.rcm-editors-picks .rcm-editors-picks__title {
    margin: 0;
    color: #183354;
    font-family: "Manrope", sans-serif;
    font-size: 21.33px;
    font-weight: 700;
    line-height: 25.6px;
}

.rcm-editors-picks .rcm-editors-picks__view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 34.909px;
    padding: 0 16px;
    border: 0.97px solid #cfcfcf;
    border-radius: 3.879px;
    color: #183354;
    font-size: 13.576px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    text-transform: uppercase;
    text-decoration: none;
}

.rcm-editors-picks .rcm-editors-picks__border.rcm-section-border {
    position: relative !important;
    width: min(100%, 665px) !important;
    height: 6px !important;
    margin-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    background-image: none !important;
    background-color: transparent !important;
}

@media (max-width: 1439px) {
    .rcm-editors-picks .rcm-editors-picks__header {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 15px);
    }

    .rcm-editors-picks .rcm-editors-picks__border.rcm-section-border {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 34px) !important;
    }
}

@media (min-width: 1440px) {
    .rcm-editors-picks .rcm-editors-picks__border.rcm-section-border {
        margin: 0 !important;
    }

    /* Empty state uses fluid grid (not Figma artboard) — restore rule → content gap. */
    .rcm-editors-picks--empty .rcm-editors-picks__border.rcm-section-border {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 34px) !important;
    }
}

.rcm-editors-picks .rcm-editors-picks__label {
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rcm-editors-picks .rcm-editors-picks__ad-label {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    margin: 0;
    color: #232323;
    font-size: 28px;
    font-weight: 500;
}

/* rcm_explore_* / rcm_trending_* : same rail width and section border as home (site-wide). */
.rcm-explore-places__container {
    width: min(1263px, calc(100% - 32px));
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.rcm-explore-places__title {
    font-family: "Manrope", sans-serif;
}

.rcm-explore-places__border.rcm-section-border {
    position: relative;
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 6px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background-image: none !important;
    background-size: auto !important;
    background-color: transparent !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
    .rcm-explore-places {
        padding-top: 40px;
        padding-bottom: 44px;
    }

    .rcm-explore-places__header {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 15px) !important;
    }

    .rcm-explore-places__header--single {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 15px) !important;
    }

    .rcm-explore-places__border {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 34px) !important;
    }

    .rcm-explore-places__container {
        width: calc(100% - 40px);
    }
}

.rcm-trending-places__container {
    width: min(1263px, calc(100% - 32px));
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.rcm-trending-places__title {
    font-family: "Manrope", sans-serif;
}

.rcm-trending-places__border.rcm-section-border {
    position: relative;
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 6px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background-image: none !important;
    background-size: auto !important;
    background-color: transparent !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
    .rcm-trending-places {
        padding-top: 40px;
        padding-bottom: 44px;
    }

    .rcm-trending-places__header {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 15px) !important;
    }

    .rcm-trending-places__border {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 34px) !important;
    }

    .rcm-trending-places__border.rcm-section-border {
        max-width: 100% !important;
    }

    .rcm-trending-places--all-topics .rcm-trending-places__grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        overflow: visible;
        padding: 0;
        scroll-snap-type: none;
    }

    .rcm-trending-places--all-topics .rcm-trending-places__card {
        width: 100%;
        max-width: none;
        height: 360px;
    }

    .rcm-trending-places__container {
        width: calc(100% - 40px);
    }
}

@media (max-width: 1024px) {
    .rcm-home-featured__layout {
        gap: 20px;
    }

    /* Explore featured grid: same stacked-column rhythm as .rcm-home-featured__layout */
    .rcm-explore-places__grid-mixed {
        gap: 20px;
    }

    .rcm-home-featured__column {
        gap: 14px;
    }

    .rcm-explore-places__column:not(.rcm-explore-places__column--center) {
        gap: 14px;
    }

    .rcm-home-guides__grid {
        gap: 14px;
    }

    .rcm-editors-picks {
        padding-top: 36px;
        padding-bottom: 40px;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .rcm-editors-picks {
        padding-top: 40px;
        padding-bottom: 44px;
    }

    .rcm-editors-picks .rcm-editors-picks__border {
        max-width: none;
    }
}

@media (max-width: 767px) {
    /*
     * Elementor document for WP page ID 7 (.elementor-7): shortcodes sit in column flex containers that
     * often combine height:100% chains with space-between, inflating the whole page (elementor-7 ~8k px)
     * and leaving huge gaps. Fix any inner that wraps shortcode widgets; keep scoped to this page only.
     */
    .elementor.elementor-7 .e-con.e-flex > .e-con-inner:has(.elementor-widget-shortcode) {
        justify-content: flex-start !important;
        align-content: flex-start !important;
    }

    .elementor.elementor-7 .elementor-widget.elementor-widget-shortcode > .elementor-widget-container {
        height: auto !important;
        min-height: 0 !important;
    }

    .elementor.elementor-7 .elementor-widget.elementor-widget-shortcode .elementor-shortcode {
        height: auto !important;
        min-height: 0 !important;
    }

    .elementor.elementor-7 .elementor-widget.elementor-widget-shortcode {
        flex-grow: 0 !important;
        min-height: 0 !important;
    }

    /*
     * Guides landing (Elementor document 270): same shortcode / flex chain fixes as home (elementor-7).
     */
    .elementor.elementor-270 .e-con.e-flex > .e-con-inner:has(.elementor-widget-shortcode) {
        justify-content: flex-start !important;
        align-content: flex-start !important;
    }

    .elementor.elementor-270 .elementor-widget.elementor-widget-shortcode > .elementor-widget-container {
        height: auto !important;
        min-height: 0 !important;
    }

    .elementor.elementor-270 .elementor-widget.elementor-widget-shortcode .elementor-shortcode {
        height: auto !important;
        min-height: 0 !important;
    }

    .elementor.elementor-270 .elementor-widget.elementor-widget-shortcode {
        flex-grow: 0 !important;
        min-height: 0 !important;
    }

    .elementor.elementor-270 .e-con:has(.rcm-explore-places) > .e-con-inner,
    .elementor.elementor-270 .e-con:has(.rcm-trending-places) > .e-con-inner,
    .elementor.elementor-270 .e-con:has(.rcm-latest-guides) > .e-con-inner,
    .elementor.elementor-270 .e-con:has(.rcm-editors-picks) > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
        flex-grow: 0 !important;
    }

    /*
     * Topic archive (Theme Builder .elementor-location-archive): same shortcode / flex fixes as home.
     */
    .elementor-location-archive .e-con.e-flex > .e-con-inner:has(.elementor-widget-shortcode) {
        justify-content: flex-start !important;
        align-content: flex-start !important;
        align-items: flex-start !important;
    }

    .elementor-location-archive .elementor-widget.elementor-widget-shortcode > .elementor-widget-container {
        height: auto !important;
        min-height: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .elementor-location-archive .elementor-widget.elementor-widget-shortcode .elementor-shortcode {
        height: auto !important;
        min-height: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .elementor-location-archive .elementor-widget.elementor-widget-shortcode {
        flex-grow: 0 !important;
        min-height: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .elementor-location-archive .e-con:has(.rcm-home-featured) > .e-con-inner,
    .elementor-location-archive .e-con:has(.rcm-home-directories) > .e-con-inner,
    .elementor-location-archive .e-con:has(.rcm-home-guides) > .e-con-inner,
    .elementor-location-archive .e-con:has(.rcm-home-articles) > .e-con-inner,
    .elementor-location-archive .e-con:has(.rcm-home-latest) > .e-con-inner,
    .elementor-location-archive .e-con:has(.rcm-editors-picks) > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
        flex-grow: 0 !important;
    }

    /*
     * Break Elementor’s height:100% + flex-grow:1 chain on the containers that wrap these rails
     * so parents don’t reserve a tall column of dead space.
     */
    .elementor.elementor-7 .e-con:has(.rcm-home-latest) > .e-con-inner,
    .elementor.elementor-7 .e-con:has(.rcm-home-directories) > .e-con-inner {
        height: auto !important;
        min-height: 0 !important;
        flex-grow: 0 !important;
    }

    /*
     * Latest (left) + Directories (right) as sibling .e-con columns: align-items:stretch forces tall
     * columns—the short side grows empty space under the ads; flex-start stops equal-height stretch.
     */
    .elementor.elementor-7 .e-con.e-flex > .e-con-inner:has(> .e-con .rcm-home-latest):has(> .e-con .rcm-home-directories) {
        align-items: flex-start !important;
    }

    .elementor.elementor-7 .rcm-home-latest {
        margin-block-start: 0 !important;
        margin-block-end: 0 !important;
    }

    .elementor.elementor-7 .rcm-home-directories {
        margin-block-start: 0 !important;
    }

    .rcm-home-featured,
    .rcm-home-guides,
    .rcm-home-articles {
        width: min(100%, calc(100% - 24px));
    }

    .rcm-editors-picks .rcm-editors-picks__container {
        max-width: min(1263px, calc(100% - 24px));
    }

    .rcm-home-featured__header {
        row-gap: var(--rcm-home-rail-gap-title-rule, 16px);
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 24px);
    }

    .rcm-home-featured__tabs {
        gap: 20px;
    }

    .rcm-home-featured__layout {
        gap: 16px;
    }

    .rcm-home-featured__column {
        gap: 10px;
    }

    /*
     * Image/title caps live in featured-explore-shortcode.css (188px small / 280px main).
     * Avoid duplicating shorter heights here — they were overriding the featured stylesheet.
     */

    .rcm-home-guides__header {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 24px);
    }

    .rcm-home-guides__header-top {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 16px);
    }

    .rcm-home-guides__grid {
        gap: 14px;
    }

    .rcm-home-guides__image {
        min-height: 320px;
    }

    .rcm-home-directories {
        width: 100%;
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
        padding: 16px 12px 34px;
    }

    .rcm-home-directories__header {
        gap: 12px;
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 16px);
    }

    .rcm-home-directories__rule {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 24px);
    }

    .rcm-home-directories__grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .rcm-home-directories__image {
        height: 320px;
    }

    .rcm-mobile-inline-ad {
        width: min(100%, calc(100% - 24px));
        margin: 16px auto;
        padding: 0;
    }

    .rcm-mobile-inline-ad > .rcm-home-latest__ad,
    .rcm-mobile-inline-ad > .rcm-home-articles__bottom-ad,
    .rcm-mobile-inline-ad > .rcm-home-articles__sidebar-ad {
        width: 100% !important;
        height: auto !important;
        min-height: 90px;
        max-height: 120px;
        aspect-ratio: 320 / 100;
        margin: 0 !important;
        border-radius: 10px;
    }

    .rcm-mobile-inline-ad iframe,
    .rcm-mobile-inline-ad img,
    .rcm-mobile-inline-ad ins {
        max-width: 100% !important;
        max-height: 100% !important;
    }

    .rcm-mobile-ad-parent--empty {
        display: none !important;
    }

    .rcm-editors-picks {
        padding-top: 30px;
        padding-bottom: 34px;
    }

    .rcm-editors-picks .rcm-editors-picks__title {
        font-size: 22px;
    }

    .rcm-editors-picks .rcm-editors-picks__item-title {
        font-size: 18px;
    }

}

@media (max-width: 767px) {
    .rcm-directories-page,
    body.page-id-246,
    body.page-id-270 {
        --rcm-page-mobile-gutter: 12px;
    }

    /*
     * Explore mixed grid (site-wide): match .rcm-home-featured mobile — gaps, hero width, titles, no excerpt.
     */
    .rcm-explore-places {
        padding-top: 30px;
        padding-bottom: 34px;
    }

    .rcm-explore-places__container {
        width: min(100%, calc(100% - 24px)) !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .rcm-explore-places__header {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 16px) !important;
    }

    .rcm-explore-places__header--single {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 16px) !important;
        padding: 0 !important;
    }

    .rcm-explore-places__header--single .rcm-explore-places__title {
        margin: 0 !important;
    }

    .rcm-explore-places__border {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 24px) !important;
    }

    .rcm-explore-places__grid-mixed {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .rcm-explore-places__column {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        align-items: stretch;
    }

    .rcm-explore-places__column > .rcm-explore-places__card:not(.rcm-explore-places__card--large) {
        display: flex;
        flex-direction: column;
        min-height: 0;
        height: 100%;
        overflow: hidden;
    }

    .rcm-explore-places__column > .rcm-explore-places__card:not(.rcm-explore-places__card--large) .rcm-explore-places__card-link {
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        min-height: 0;
        height: 100%;
        overflow: hidden;
    }

    .rcm-explore-places__column > .rcm-explore-places__card:not(.rcm-explore-places__card--large) .rcm-explore-places__card-content {
        min-width: 0;
        overflow: hidden;
    }

    .rcm-explore-places__column > .rcm-explore-places__card:not(.rcm-explore-places__card--large) .rcm-explore-places__card-image {
        flex: 0 0 auto;
        height: 188px;
        min-height: 188px;
        max-height: 188px;
    }

    .rcm-explore-places__column--center {
        grid-column: auto;
        grid-template-columns: 1fr;
    }

    .rcm-explore-places__card-image {
        height: 188px;
    }

    .rcm-explore-places__card--large .rcm-explore-places__card-image {
        height: 232px;
    }

    .rcm-explore-places__card-content {
        padding: 0 !important;
    }

    .rcm-explore-places__card--large .rcm-explore-places__card-content {
        padding: 0 !important;
    }

    .rcm-explore-places__card-title {
        padding: 0;
        margin: 0;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.2;
        max-width: 100%;
        text-align: center;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden;
        overflow-wrap: anywhere;
    }

    .rcm-explore-places__column--left .rcm-explore-places__card:not(.rcm-explore-places__card--large) .rcm-explore-places__card-title,
    .rcm-explore-places__column--right .rcm-explore-places__card:not(.rcm-explore-places__card--large) .rcm-explore-places__card-title {
        flex-shrink: 0;
        min-width: 0;
        min-height: 0;
        max-height: 36px;
        font-size: 15px !important;
        line-height: 1.2 !important;
        word-break: break-word;
    }

    .rcm-explore-places__card--large .rcm-explore-places__card-title {
        font-size: 20px;
        line-height: calc(24 / 20);
        max-width: 100%;
        text-align: center;
        margin-top: 10px;
        display: block;
        -webkit-line-clamp: unset;
        line-clamp: unset;
        overflow: visible;
    }

    .rcm-trending-places {
        padding-top: 30px;
        padding-bottom: 34px;
    }

    .rcm-trending-places__container {
        width: min(100%, calc(100% - 24px)) !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .rcm-trending-places__header {
        margin-bottom: var(--rcm-home-rail-gap-title-rule, 16px) !important;
    }

    .rcm-trending-places__border {
        margin-bottom: var(--rcm-home-rail-gap-rule-content, 24px) !important;
    }

    .rcm-trending-places__grid,
    .rcm-trending-places--all-topics .rcm-trending-places__grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 0;
        overflow: visible;
        scroll-snap-type: none;
    }

    .rcm-trending-places__card,
    .rcm-trending-places--all-topics .rcm-trending-places__card {
        width: 100%;
        max-width: none;
        height: 360px;
        flex: none;
    }

    .rcm-trending-places__card-content {
        left: 18px;
        right: 18px;
        bottom: 20px;
    }
}

/* Before columns stack (~tablet), equal-height stretch can still create the Latest/AD gap. */
@media (max-width: 1024px) {
    .elementor.elementor-7 .e-con.e-flex > .e-con-inner:has(> .e-con .rcm-home-latest):has(> .e-con .rcm-home-directories) {
        align-items: flex-start !important;
    }
}
