.rh-welcome-banner{
    display:flex;
    align-items:center;
    gap:16px;
}
.rh-welcome-banner__avatar{
    flex:0 0 auto;
    width:64px;
    height:64px;
    border-radius:50%;
    overflow:hidden;
}
.rh-welcome-banner__avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    border-radius:inherit;
}
.rh-welcome-banner__text{
    min-width:0;
}
.rh-welcome-banner__text p{
    margin:0 0 4px 0;
}
.rh-welcome-banner__text h2{
    margin:0;
    line-height:1.2;
}
.rh-welcome-banner--empty{
    color:#94A3B8;
    font-family:'Inter',sans-serif;
    font-size:14px;
}

/* Membership Status — structural only; the pill is the only surface, no section background */
.rh-mstatus-wrap{
    display:flex;
}
.rh-mstatus{
    display:inline-flex;
    align-items:center;
    max-width:100%;
}
.rh-mstatus__icon{
    display:inline-flex;
    align-items:center;
    line-height:1;
}
.rh-mstatus__icon--line svg{
    fill:none !important;
    stroke:currentColor;
}
.rh-mstatus__label,
.rh-mstatus__value{
    white-space:nowrap;
}
.rh-mstatus__divider{
    flex:0 0 auto;
    width:1px;
}
.rh-mstatus__status{
    display:inline-flex;
    align-items:center;
}
.rh-mstatus__dot{
    flex:0 0 auto;
    border-radius:50%;
}

/* Dashboard Tabs — structural only, colors/typography come from widget Style controls */
.rh-tabs{
    position:relative; /* offsetParent for JS keep-in-view scrolling */
    display:flex;
    flex-wrap:wrap;
    gap:28px;
}
.rh-tabs__item{
    align-items:center;
    text-decoration:none;
    display:inline-flex;
    border-bottom:2px solid transparent;
    white-space:nowrap;
    transition:color .15s ease, background-color .15s ease, border-color .15s ease;
}
.rh-tabs__icon{
    display:inline-flex;
    line-height:1;
}
.rh-tabs__icon svg{ display:block; }
.rh-tabs__sr{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
}
.rh-tabs__item:focus-visible{
    outline:2px solid currentColor;
    outline-offset:2px;
}
@media(max-width:767px){
    .rh-tabs--scroll{
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .rh-tabs--scroll::-webkit-scrollbar{ display:none; }
}
/* Panels switched by the Dashboard Tabs widget */
.rh-tab-panel--hidden{
    display:none !important;
}
.rh-tab-panel--enter{
    animation:rh-tab-panel-in .22s ease-out;
}
@keyframes rh-tab-panel-in{
    from{ opacity:0; transform:translateY(6px); }
    to{ opacity:1; transform:none; }
}
@media(prefers-reduced-motion:reduce){
    .rh-tab-panel--enter{ animation:none; }
}

/* My Registration — structural only */
.rh-myreg{
    container-type:inline-size;
    container-name:rh-myreg;
}
.rh-myreg__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
    flex-wrap:wrap;
}
.rh-myreg__header-left{
    display:flex;
    align-items:center;
    gap:10px;
}
.rh-myreg__badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:6px;
    font-size:12px;
    font-weight:600;
}
.rh-myreg__link{
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
}
.rh-myreg__cols{
    display:flex;
    align-items:center;
    gap:16px;
}
.rh-myreg__col--date{ min-width:56px; flex:0 0 auto; }
.rh-myreg__col--event{ flex:1 1 200px; padding-left:72px; } /* thumb 56px + 16px gap; follows the Thumbnail size control */
.rh-myreg__col--venue{ flex:0 0 auto; width:170px; }
.rh-myreg__col--action{ flex:0 0 auto; width:120px; } /* mirrors the View Details button */
.rh-myreg__row{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
}
.rh-myreg__row:last-child{
    border-bottom:none !important;
}
.rh-myreg__date{
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:56px;
}
.rh-myreg__thumb{
    object-fit:cover;
    flex:0 0 auto;
}
.rh-myreg__body{
    flex:1 1 200px;
    min-width:0;
}
.rh-myreg__venue{
    flex:0 0 auto;
    width:170px;
    display:flex;
    flex-direction:column;
}
.rh-myreg__btn{
    text-decoration:none;
    white-space:nowrap;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:120px;
    box-sizing:border-box;
}
.rh-myreg__empty{
    margin:0;
    padding:8px 0;
}

/* Mobile: card-style rows — thumb left; month + day range on top, then title/sub;
   venue and button share the bottom line. Column labels are dropped. */
@container rh-myreg (max-width:600px){
    .rh-myreg__cols{ display:none; }
    .rh-myreg__row{
        display:grid !important;
        grid-template-columns:auto minmax(0,1fr) auto;
        grid-template-areas:
            "thumb month day"
            "thumb body body"
            "venue venue btn";
        align-items:center;
        column-gap:12px;
        row-gap:6px !important;
    }
    .rh-myreg__date{ display:contents; }
    .rh-myreg__month{ grid-area:month; text-align:left; }
    .rh-myreg__day{ grid-area:day; text-align:right; }
    .rh-myreg__thumb{ grid-area:thumb; align-self:start; }
    .rh-myreg__body{ grid-area:body; align-self:start; }
    .rh-myreg__venue{
        grid-area:venue;
        display:flex;
        flex-direction:row;
        flex-wrap:wrap;
        align-items:baseline;
        width:auto !important;
        min-width:0 !important;
        column-gap:8px;
        margin-top:6px;
        text-align:left !important;
    }
    .rh-myreg__btn{
        grid-area:btn;
        width:auto !important;
        margin-top:6px;
    }
}

/* Forum Activity — structural only */
.rh-forum__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
    flex-wrap:wrap;
}
.rh-forum__header-left{
    display:flex;
    align-items:center;
    gap:10px;
}
.rh-forum__badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:6px;
    font-size:12px;
    font-weight:600;
}
.rh-forum__link{
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
}

/* Forum Activity list — structural only */
.rh-forum__item{
    display:flex;
    align-items:flex-start;
    border-bottom:1px solid transparent;
}
.rh-forum__avatar{
    flex:0 0 auto;
    overflow:hidden;
}
.rh-forum__avatar img{
    display:block;
    object-fit:cover;
}
.rh-forum__body{
    flex:1 1 auto;
    min-width:0;
}
.rh-forum__title{
    margin:0;
}
.rh-forum__title a{
    text-decoration:none;
}
.rh-forum__meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
}
.rh-forum__dot{
    flex:0 0 auto;
    border-radius:50%;
}
.rh-forum__empty{
    margin:0;
    padding:8px 0;
}


/* Event Spotlight — structural only */
.rh-espot{
    container-type:inline-size;
    container-name:rh-espot;
    display:flex;
    flex-direction:column;
    align-items:stretch;
}
.rh-espot__eyebrow{
    display:flex;
    align-items:center;
}
.rh-espot__eyebrow-dot{
    flex:0 0 auto;
    border-radius:50%;
}
.rh-espot__title,
.rh-espot__desc{
    margin:0;
}
.rh-espot__facts{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
}
.rh-espot__fact{
    display:flex;
    align-items:center;
}
.rh-espot__fact-icon{
    display:inline-flex;
    line-height:1;
}
.rh-espot__fact-icon--line svg{
    fill:none !important;
    stroke:currentColor;
}
.rh-espot__fact-text{
    display:flex;
    flex-direction:column;
}
.rh-espot__divider{
    flex:0 0 auto;
    width:1px;
}
.rh-espot__buttons{
    /* both buttons share the width of the wider one */
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:1fr;
    width:max-content;
    max-width:100%;
}
.rh-espot__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    white-space:nowrap;
    border:1px solid transparent;
    transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
/* Narrow widget (phone / slim column): date + time stay on one row; the two
   buttons share one row at equal width. Keyed to the widget width (phone-sized, ~400px or less). */
@container rh-espot (max-width:400px){
    .rh-espot__facts{ flex-wrap:nowrap; justify-content:space-between; column-gap:12px !important; }
    .rh-espot__fact{ gap:8px !important; min-width:0; }
    .rh-espot__fact-value{ white-space:nowrap; }
    .rh-espot-btnfull-yes .rh-espot__buttons{ width:100%; }
    .rh-espot-btnfull-yes .rh-espot__btn{ min-width:0; padding-left:12px; padding-right:12px; }
}
/* Same rules keyed to the viewport, for browsers without container queries */
@media(max-width:480px){
    .rh-espot__facts{ flex-wrap:nowrap; justify-content:space-between; column-gap:12px !important; }
    .rh-espot__fact{ gap:8px !important; min-width:0; }
    .rh-espot__fact-value{ white-space:nowrap; }
    .rh-espot-btnfull-yes .rh-espot__buttons{ width:100%; }
    .rh-espot-btnfull-yes .rh-espot__btn{ min-width:0; padding-left:12px; padding-right:12px; }
}


/* Perks Banner — structural only; background/colors come from Style controls */
.rh-perks{
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
    position:relative;
    overflow:hidden;
    text-decoration:none;
}
.rh-perks__badge{
    align-self:flex-start;
    display:inline-block;
    line-height:1.2;
}
.rh-perks__headline,
.rh-perks__sub,
.rh-perks__desc{
    margin:0;
}
.rh-perks--link{ cursor:pointer; }

/* Perks Button — structural only */
.rh-pbtn-wrap{
    display:flex;
}
.rh-pbtn{
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    text-decoration:none;
    border:0 solid transparent;
    transition:background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.rh-pbtn__icon{
    display:inline-flex;
    line-height:1;
    transition:transform .2s ease;
}
.rh-pbtn__icon--line svg{
    fill:none !important;
    stroke:currentColor;
}
.rh-pbtn-nudge-yes .rh-pbtn:hover .rh-pbtn__icon{
    transform:translateX(3px);
}
@media(prefers-reduced-motion:reduce){
    .rh-pbtn, .rh-pbtn__icon{ transition:none; }
    .rh-pbtn-nudge-yes .rh-pbtn:hover .rh-pbtn__icon{ transform:none; }
}


/* Recommendations — structural only */
.rh-rec{
    container-type:inline-size;
    container-name:rh-rec;
    --rh-rec-card-w:172px;
}
.rh-rec__header{
    box-sizing:border-box;
    border-bottom:0 solid transparent;
}
.rh-rec__header--line{
    border-bottom-width:1px;
}
.rh-rec__heading{
    margin:0;
}
.rh-rec__list{
    display:grid;
    box-sizing:border-box;
    grid-template-columns:repeat(4,minmax(0,1fr));
}
/* default dark base so a card without a photo (or while it loads) is never white */
.rh-rec__card{
    position:relative;
    display:block;
    overflow:hidden;
    text-decoration:none;
    isolation:isolate;
    background-color:#1E293B;
    --rh-rec-overlay:#000;
    --rh-rec-overlay-o:.85;
    --rh-rec-overlay-h:55%;
}
/* Doubled class + !important: Elementor/theme set `img{height:auto;max-width:100%}`, which would leave the photo short and the rest of the card blank. */
.rh-rec .rh-rec__card > .rh-rec__img{
    position:absolute;
    inset:0;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    margin:0 !important;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
    z-index:-2;
}
/* bottom gradient behind the label */
.rh-rec__card::before{
    content:"";
    position:absolute;
    left:0; right:0; bottom:0;
    height:var(--rh-rec-overlay-h);
    /* eased fade: photo stays clear up top, then deepens smoothly to the label */
    background:linear-gradient(to top,
        color-mix(in srgb, var(--rh-rec-overlay) calc(var(--rh-rec-overlay-o) * 100%), transparent) 0%,
        color-mix(in srgb, var(--rh-rec-overlay) calc(var(--rh-rec-overlay-o) * 62%), transparent) 35%,
        color-mix(in srgb, var(--rh-rec-overlay) calc(var(--rh-rec-overlay-o) * 22%), transparent) 70%,
        transparent 100%);
    z-index:-1;
    pointer-events:none;
}
/* optional flat tint over the whole photo */
.rh-rec__card::after{
    content:"";
    position:absolute;
    inset:0;
    background:var(--rh-rec-overlay);
    opacity:var(--rh-rec-tint, 0);
    z-index:-1;
    pointer-events:none;
    transition:opacity .25s ease;
}
.rh-rec__card:hover::after{
    opacity:var(--rh-rec-tint-hover, var(--rh-rec-tint, 0));
}
.rh-rec-zoom-yes .rh-rec__card:hover > .rh-rec__img{
    transform:scale(1.05);
}
.rh-rec__caption{
    position:absolute;
    left:0; right:0; bottom:0;
    display:flex;
    align-items:center;
    box-sizing:border-box;
}
.rh-rec__label{
    min-width:0;
}
.rh-rec__arrow{
    display:inline-flex;
    flex:0 0 auto;
    line-height:1;
}
.rh-rec__arrow--line svg{
    fill:none !important;
    stroke:currentColor;
}
.rh-rec__empty{
    margin:0;
    padding:16px 18px;
}
@media(prefers-reduced-motion:reduce){
    .rh-rec__img{ transition:none; }
    .rh-rec-zoom-yes .rh-rec__card:hover > .rh-rec__img{ transform:none; }
}

/* Narrow widget (phone): one swipeable row instead of the column grid */
@container rh-rec (max-width:520px){
    .rh-rec-scroll-yes .rh-rec__list{
        grid-template-columns:none !important;
        grid-auto-flow:column;
        grid-auto-columns:var(--rh-rec-card-w);
        overflow-x:auto;
        scroll-snap-type:x proximity;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .rh-rec-scroll-yes .rh-rec__list::-webkit-scrollbar{ display:none; }
    .rh-rec-scroll-yes .rh-rec__card{ scroll-snap-align:start; }
}
/* Same, keyed to the viewport for browsers without container queries */
@media(max-width:520px){
    .rh-rec-scroll-yes .rh-rec__list{
        grid-template-columns:none !important;
        grid-auto-flow:column;
        grid-auto-columns:var(--rh-rec-card-w);
        overflow-x:auto;
        scroll-snap-type:x proximity;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
    }
    .rh-rec-scroll-yes .rh-rec__list::-webkit-scrollbar{ display:none; }
    .rh-rec-scroll-yes .rh-rec__card{ scroll-snap-align:start; }
}


/* Event Cards — structural only; colours/typography come from Style controls */
.rh-ecards{
    container-type:inline-size;
    container-name:rh-ecards;
    display:flex;
    flex-direction:column;
}
.rh-ecards__empty{ margin:0; padding:12px 0; }
.rh-ecard{
    --rh-ecard-img-w:156px;
    --rh-ecard-img-h-top:150px;
    --rh-ecard-actions-w:108px;
    --rh-ecard-divider-pad:20px;
    display:grid;
    grid-template-columns:var(--rh-ecard-img-w) minmax(0,1fr) auto;
    grid-template-areas:"media body actions";
    align-items:center;
    box-sizing:border-box;
}
.rh-ecard--no-image{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"body actions";
}
.rh-ecard--no-actions{
    grid-template-columns:var(--rh-ecard-img-w) minmax(0,1fr);
    grid-template-areas:"media body";
}
.rh-ecard--no-image.rh-ecard--no-actions{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"body";
}
.rh-ecard__media{
    grid-area:media;
    display:block;
    overflow:hidden;
    border-radius:inherit;
}
.rh-ecard .rh-ecard__img{
    display:block;
    width:100% !important;
    max-width:none !important;
    height:102px;
    object-fit:cover;
    margin:0 !important;
}
.rh-ecard__body{
    grid-area:body;
    display:flex;
    flex-direction:column;
    min-width:0;
}
.rh-ecard__title,
.rh-ecard__desc{ margin:0; }
.rh-ecard__title a{ text-decoration:none; }
.rh-ecard__meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
}
.rh-ecard__meta-item{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-width:0;
}
.rh-ecard__meta-item--pin{ flex-basis:100%; }
.rh-ecard__meta-icon{
    display:inline-flex;
    flex:0 0 auto;
    line-height:1;
}
.rh-ecard__meta-icon svg{ display:block; width:14px; height:14px; }

/* actions area = optional price + buttons */
.rh-ecard__actions{
    grid-area:actions;
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:center;
    box-sizing:border-box;
    width:calc(var(--rh-ecard-actions-w) + var(--rh-ecard-divider-pad));
    padding-left:var(--rh-ecard-divider-pad);
    border-left-width:var(--rh-ecard-divider-w,1px) !important;
}
.rh-ecard__price{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
}
.rh-ecard__price-old{ text-decoration:line-through; }
.rh-ecard__buttons{
    display:flex;
    flex-direction:column;
    width:100%;
}
.rh-ecard__btn{
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    text-decoration:none;
    box-sizing:border-box;
    transition:background-color .15s ease, color .15s ease;
}

/* Wide layout "price top-right, buttons bottom-right" (no divider) */
.rh-ecards--inline .rh-ecard__actions{
    width:auto;
    padding-left:0;
    padding-top:var(--rh-ecard-act-pad-y, 18px);
    padding-bottom:var(--rh-ecard-act-pad-y, 18px);
    border-left-width:0 !important;
    align-items:flex-end;
    justify-content:space-between;
}
.rh-ecards--inline .rh-ecard__price{ justify-content:flex-end; }
.rh-ecards--inline .rh-ecard__buttons{
    flex-direction:row;
    width:auto;
}
.rh-ecards--inline .rh-ecard__btn{ white-space:nowrap; }

/* Narrow (phone / slim column). Keyed to the list's own width. */
@container rh-ecards (max-width:560px){
    .rh-ecard{
        grid-template-columns:var(--rh-ecard-img-w) minmax(0,1fr);
        grid-template-areas:
            "media body"
            "actions actions";
        align-items:start;
        row-gap:14px;
    }
    .rh-ecard--no-image{
        grid-template-columns:minmax(0,1fr);
        grid-template-areas:"body" "actions";
    }
    .rh-ecard--no-actions{ grid-template-areas:"media body"; }
    .rh-ecard--no-image.rh-ecard--no-actions{ grid-template-areas:"body"; }

    .rh-ecards--mleft .rh-ecard__meta{ flex-direction:column; align-items:flex-start; }
    .rh-ecards--mleft .rh-ecard__meta-item{ flex-basis:auto; }

    /* large image on top */
    .rh-ecards--mtop .rh-ecard{
        grid-template-columns:minmax(0,1fr);
        grid-template-areas:
            "media"
            "body"
            "actions";
    }
    .rh-ecards--mtop .rh-ecard--no-image{ grid-template-areas:"body" "actions"; }
    .rh-ecards--mtop .rh-ecard--no-actions{ grid-template-areas:"media" "body"; }
    .rh-ecards--mtop .rh-ecard--no-image.rh-ecard--no-actions{ grid-template-areas:"body"; }
    .rh-ecards--mtop .rh-ecard .rh-ecard__img{ height:var(--rh-ecard-img-h-top); }

    .rh-ecard__actions{
        width:auto;
        align-items:stretch;
        justify-content:flex-start;
        padding-left:0;
        padding-top:var(--rh-ecard-divider-pad);
        border-left-width:0 !important;
        border-top-width:var(--rh-ecard-divider-w,1px) !important;
    }
    .rh-ecards--inline .rh-ecard__actions{
        align-items:stretch;
        padding-top:0;
        padding-bottom:0;
        border-top-width:0 !important;
    }
    .rh-ecards--inline .rh-ecard__price{ justify-content:flex-start; }
    .rh-ecard__buttons,
    .rh-ecards--inline .rh-ecard__buttons{
        flex-direction:row;
        width:100%;
    }
    .rh-ecard__btn{ flex:1 1 0; min-width:0; }
}

/* Event Calendar — structural only; colours/typography come from Style controls */
.rh-cal{
    container-type:inline-size;
    container-name:rh-cal;
    --rh-cal-panel-w:38%;
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--rh-cal-panel-w);
    align-items:start;
}
.rh-cal [hidden]{ display:none !important; }
.rh-cal__main,
.rh-cal__panel{
    box-sizing:border-box;
    min-width:0;
}
.rh-cal__head{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:12px;
}
.rh-cal__nav,
.rh-cal__arrow{
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    background:transparent;
    padding:4px;
    margin:0;
    cursor:pointer;
    font-size:18px;
    line-height:1;
}
.rh-cal__nav svg,
.rh-cal__arrow svg{ display:block; }
.rh-cal__title{ min-width:0; }
.rh-cal__weekdays,
.rh-cal__grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:6px;
}
.rh-cal__weekdays{ margin-bottom:8px; }
.rh-cal__weekday{ text-align:center; }
.rh-cal__day{
    appearance:none;
    -webkit-appearance:none;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    box-sizing:border-box;
    min-width:0;
    min-height:62px;
    padding:6px;
    margin:0;
    border:1px solid #DDE3EC;
    font:inherit;
    cursor:pointer;
    transition:border-color .15s ease, box-shadow .15s ease;
}
.rh-cal__day:focus-visible{ outline:2px solid #0B4EA2; outline-offset:1px; }
.rh-cal__num{
    align-self:flex-end;
    line-height:1;
}
.rh-cal__chips{
    margin-top:auto;
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
}
.rh-cal__chip{
    display:block;
    padding:2px 6px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-align:left;
    line-height:1.3;
}
.rh-cal__more{
    font-size:10px;
    line-height:1.2;
    opacity:.7;
    text-align:left;
}
.rh-cal__panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:14px;
}
.rh-cal__arrows{ display:inline-flex; gap:6px; }
.rh-cal__arrow{
    width:26px;
    height:26px;
    border-radius:50%;
    font-size:14px;
}
.rh-cal__cards{
    container-type:inline-size;
    container-name:rh-ecards;
}
.rh-cal__empty{ margin:0; padding:12px 0; }

/* Stack: calendar on top, event panel below */
@container rh-cal (max-width:720px){
    .rh-cal{ grid-template-columns:minmax(0,1fr); }
}
/* Phone: event labels become dots, tighter cells */
@container rh-cal (max-width:520px){
    .rh-cal__day{ padding:4px; }
    .rh-cal__chips{ flex-direction:row; flex-wrap:wrap; justify-content:center; gap:3px; margin-top:auto; }
    .rh-cal .rh-cal__day .rh-cal__chip{
        font-size:0 !important;
        width:6px;
        height:6px;
        padding:0;
        border-radius:50%;
        background-color:currentColor;
    }
    .rh-cal__more{ display:none; }
    .rh-cal__weekdays,
    .rh-cal__grid{ gap:4px; }
}

/* Sort Dropdown — structural only */
.rh-sort-wrap{ display:flex; }
.rh-sort{
    position:relative;
    display:inline-flex;
    align-items:center;
    box-sizing:border-box;
    cursor:pointer;
}
.rh-sort__icon,
.rh-sort__caret{
    display:inline-flex;
    flex:0 0 auto;
    line-height:1;
}
.rh-sort__icon svg,
.rh-sort__caret svg{ display:block; }
.rh-sort__select{
    appearance:none;
    -webkit-appearance:none;
    border:0 !important;
    background:transparent !important;
    color:inherit !important;
    padding:0 !important;
    margin:0;
    box-shadow:none !important;
    outline:0;
    cursor:pointer;
    width:auto;
    min-width:0;
    height:auto;
}
/* No UA focus box on the select itself; show one soft ring on the whole control, keyboard focus only */
.rh-sort .rh-sort__select,
.rh-sort .rh-sort__select:focus,
.rh-sort .rh-sort__select:focus-visible{
    outline:0 !important;
    box-shadow:none !important;
    border:0 !important;
    background-image:none !important;
}
.rh-sort:has(.rh-sort__select:focus-visible){
    outline:2px solid #93B4E8;
    outline-offset:2px;
}
/* the open list (the OS draws it; these only set what browsers allow) */
.rh-sort__select option{
    color:#0F172A;
    background:#fff;
    font-weight:500;
}

/* Icon-only on phones: the select stays as an invisible overlay so tapping still opens the native picker */
@media(max-width:560px){
    .rh-sort-collapse-yes .rh-sort{ padding:10px !important; }
    .rh-sort-collapse-yes .rh-sort__caret{ display:none; }
    .rh-sort-collapse-yes .rh-sort__select{ position:absolute; inset:0; width:100%; height:100%; opacity:0; }
}

/* These widgets measure their own width (container queries) — keep their wrapper full width so a shrink-to-fit parent can't collapse them to nothing. */
.elementor-widget-rh-event-cards,
.elementor-widget-rh-event-calendar,
.elementor-widget-rh-recommendations,
.elementor-widget-rh-event-spotlight,
.elementor-widget-rh-my-registration{
    width:100%;
    min-width:0;
}

/* Tab Panels — the panel wrappers the Dashboard Tabs widget shows/hides */
.rh-panel__hint{
    margin:0;
    padding:16px;
    color:#94A3B8;
    font-size:14px;
    border:1px dashed #CBD5E1;
}
.elementor-widget-rh-tab-panels{ width:100%; }

/* Events Board — toolbar (tabs + sort) above the lists */
.elementor-widget-rh-events-board{ width:100%; min-width:0; }
.rh-board__toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
}
.rh-board__tabs{
    display:inline-flex;
    align-items:center;
    box-sizing:border-box;
    max-width:100%;
}
.rh-board__tab{
    display:inline-flex;
    align-items:center;
    text-decoration:none;
    white-space:nowrap;
    transition:background-color .15s ease, color .15s ease;
}
.rh-board__tab:focus-visible{ outline:2px solid currentColor; outline-offset:2px; }
.rh-board__panel[hidden]{ display:none !important; }

/* Event card placeholder (no featured image) */
.rh-ecard .rh-ecard__img--ph{
    display:flex !important;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    background:linear-gradient(135deg,#EEF2F8 0%,#DCE4F1 100%);
    color:#94A3B8;
}
.rh-ecard__img--ph svg{ display:block; max-width:40%; height:auto; }
.rh-sort__select{ font-family:inherit; }

/* Events Board — List / Calendar switch */
.rh-board__viewbar{
    display:flex;
    justify-content:flex-end;
}
.rh-board__views{ gap:0; }
.rh-board__view{ gap:8px; }
.rh-board__view-icon{
    display:inline-flex;
    font-size:16px;
    line-height:1;
}
.rh-board__view-icon svg{ display:block; }
.rh-board[data-view="list"] [data-rh-board-view-panel="calendar"],
.rh-board[data-view="calendar"] [data-rh-board-view-panel="list"]{
    display:none !important;
}
/* sorting only applies to the list */
.rh-board[data-view="calendar"] .rh-sort{ display:none; }
/* phones: the switch shows icons only */
@media(max-width:560px){
    .rh-board-viewicons-yes .rh-board__view-label{
        position:absolute;
        width:1px;
        height:1px;
        overflow:hidden;
        clip:rect(0 0 0 0);
        white-space:nowrap;
    }
}

/* Events Board — header (title + subtitle on the left, view switch on the right) */
.rh-board__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    box-sizing:border-box;
    border-bottom:0 solid transparent;
}
.rh-board__header--line{ border-bottom-width:1px; }
.rh-board__headtext{ min-width:0; }
.rh-board__title,
.rh-board__subtitle{ margin:0; }
.rh-board__header .rh-board__viewbar{
    margin:0 !important;
    flex:0 0 auto;
}

/* Resources — structural only; colours/typography come from Style controls */
.elementor-widget-rh-resources{ width:100%; min-width:0; }
.rh-res__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    box-sizing:border-box;
    border-bottom:0 solid transparent;
}
.rh-res__header--line{ border-bottom-width:1px; }
.rh-res__headtext{ min-width:0; }
.rh-res__title,
.rh-res__subtitle{ margin:0; }
.rh-res__tabbar{ display:flex; }
.rh-res__tabs{
    display:inline-flex;
    align-items:center;
    box-sizing:border-box;
    max-width:100%;
    overflow-x:auto;
    scrollbar-width:none;
}
.rh-res__tabs::-webkit-scrollbar{ display:none; }
.rh-res__tab{
    display:inline-flex;
    align-items:center;
    text-decoration:none;
    white-space:nowrap;
    flex:0 0 auto;
    transition:background-color .15s ease, color .15s ease;
}
.rh-res__tab:focus-visible{ outline:2px solid currentColor; outline-offset:2px; }
.rh-res__grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.rh-res__item[hidden]{ display:none !important; }
.rh-res__card{
    display:flex;
    flex-direction:column;
    height:100%;
    box-sizing:border-box;
    text-decoration:none;
    color:inherit;
    transition:box-shadow .2s ease, transform .2s ease;
}
.rh-res-lift-yes .rh-res__card:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(15,23,42,.10);
}
.rh-res__media{
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:16 / 9;
    background-color:#E8EDF5;
}
.rh-res .rh-res__media > .rh-res__img{
    position:absolute;
    inset:0;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    margin:0 !important;
    object-fit:cover;
    display:block;
}
.rh-res__ph{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#94A3B8;
}
.rh-res__play{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border-radius:50%;
    -webkit-backdrop-filter:blur(2px);
    backdrop-filter:blur(2px);
}
.rh-res__play svg{ margin-left:3px; }
.rh-res__body{
    display:flex;
    flex-direction:column;
    min-width:0;
    box-sizing:border-box;
}
.rh-res__card-title{ display:block; }
.rh-res__meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 8px;
}
.rh-res__dot{
    display:inline-block;
    flex:0 0 auto;
    width:3px;
    height:3px;
    border-radius:50%;
}
.rh-res__empty{ margin:0; padding:20px 0; text-align:center; }
.rh-res__empty[hidden]{ display:none; }
.rh-res__pager{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
}
.rh-res__pager[hidden]{ display:none; }
.rh-res__page{
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-width:30px;
    height:30px;
    padding:0 6px;
    margin:0;
    border:1px solid #E2E8F0;
    background:#fff;
    cursor:pointer;
    line-height:1;
    transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.rh-res__page:disabled{ opacity:.45; cursor:default; }
/* "…" is a circle like the page buttons, just not clickable */
.rh-res__page--gap{ cursor:default; user-select:none; }
/* neutralise the theme's generic button focus/active colours */
.rh-res .rh-res__page:focus{ outline:0; }
.rh-res .rh-res__page:focus-visible{ outline:2px solid #0B4EA2; outline-offset:2px; }
.rh-res .rh-res__page:disabled,
.rh-res .rh-res__page:disabled:hover{ opacity:.45; cursor:default; }
.rh-res__page:focus-visible{ outline:2px solid #0B4EA2; outline-offset:2px; }
@media(prefers-reduced-motion:reduce){
    .rh-res__card{ transition:none; }
    .rh-res-lift-yes .rh-res__card:hover{ transform:none; }
}

/* Resources — Vimeo popup player */
.rh-res-modal-open{ overflow:hidden; }
.rh-res-modal{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}
.rh-res-modal__backdrop{
    position:absolute;
    inset:0;
    background:rgba(8,15,30,.82);
}
.rh-res-modal__box{
    position:relative;
    width:min(1000px,100%);
}
.rh-res-modal__frame{
    position:relative;
    aspect-ratio:16 / 9;
    background:#000;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.rh-res-modal__frame iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}
.rh-res-modal__close{
    position:absolute;
    right:0;
    top:-44px;
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.16);
    color:#fff;
    cursor:pointer;
}
.rh-res-modal__close:hover{ background:rgba(255,255,255,.28); }

/* Directory — structural only; colours/typography come from Style controls */
.elementor-widget-rh-directory{ width:100%; min-width:0; }
.rh-dir{
    container-type:inline-size;
    container-name:rh-dir;
}
.rh-dir [hidden]{ display:none !important; }

/* hero */
.rh-dir__hero{
    --rh-dir-hero-px:20px;
    box-sizing:border-box;
    text-align:center;
    padding-left:var(--rh-dir-hero-px);
    padding-right:var(--rh-dir-hero-px);
}
.rh-dir__hero-inner{
    max-width:1200px;
    margin-left:auto;
    margin-right:auto;
}
/* Full-width background: the hero is as wide as the screen and re-centred on the container;
   its side padding is widened by the amount it overhangs, so the content lines up with the page. */
.rh-dir-herofull-yes .rh-dir__hero{
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding-left:calc(50vw - 50% + var(--rh-dir-hero-px));
    padding-right:calc(50vw - 50% + var(--rh-dir-hero-px));
}
/* 100vw includes the scrollbar; stop it from adding a sideways scroll */
body:has(.rh-dir-herofull-yes){ overflow-x:clip; }
.rh-dir__hero-title{ margin:0; }
.rh-dir__form{
    display:flex;
    align-items:stretch;
    gap:12px;
    max-width:760px;
    margin:0 auto;
}
.rh-dir__field{
    display:flex;
    align-items:center;
    gap:8px;
    box-sizing:border-box;
    height:44px;
    padding:0 12px;
    border:1px solid #D5DCE7;
    color:#64748B;
    cursor:text;
    min-width:0;
}
.rh-dir__field--q{ flex:1 1 auto; }
.rh-dir__field--loc{ flex:0 0 200px; }
.rh-dir__field:focus-within{ border-color:#0B4EA2 !important; box-shadow:0 0 0 3px rgba(11,78,162,.15); }
.rh-dir__field-icon,
.rh-dir__submit-icon,
.rh-dir__add-icon,
.rh-dir__loc-icon,
.rh-dir__btn-icon{
    display:inline-flex;
    flex:0 0 auto;
    line-height:1;
}
.rh-dir__field-icon{ font-size:16px; }
.rh-dir .rh-dir__input{
    flex:1 1 auto;
    min-width:0;
    width:100%;
    height:auto;
    padding:0;
    margin:0;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:0;
    -webkit-appearance:none;
    appearance:none;
}
.rh-dir .rh-dir__input::placeholder{ color:#64748B; opacity:1; }
.rh-dir__submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    box-sizing:border-box;
    height:44px;
    padding:0 22px;
    border:0;
    cursor:pointer;
    white-space:nowrap;
    transition:background-color .15s ease;
}
.rh-dir__submit-icon{ font-size:15px; }
.rh-dir__chips{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
}
.rh-dir__chip{
    appearance:none;
    -webkit-appearance:none;
    margin:0;
    border:1px solid #D5DCE7;
    cursor:pointer;
    line-height:1.2;
    transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.rh-dir__chip:hover{ border-color:#0B4EA2; }
.rh-dir__chip:focus-visible{ outline:2px solid #0B4EA2; outline-offset:2px; }

/* results bar */
.rh-dir__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    box-sizing:border-box;
    border-bottom:1px solid #E5E9F0;
    padding-block:16px;
}
.rh-dir__bar-right{ display:flex; align-items:center; gap:10px; }
.rh-dir__toggle{
    --rh-dir-tg-bg:#F9F9F9;
    --rh-dir-tg-color:#4A4A4A;
    --rh-dir-tg-a-bg:#FFFFFF;
    --rh-dir-tg-a-color:#0B4EA2;
    --rh-dir-tg-border:#D6D6D6;
    --rh-dir-tg-bw:2px;
    display:inline-flex;
    box-sizing:border-box;
    border:var(--rh-dir-tg-bw) solid var(--rh-dir-tg-border);
    border-radius:10px;
    overflow:hidden;
    background:var(--rh-dir-tg-bg);
    box-shadow:0 1px 2px rgba(15,23,42,.10);
}
/* !important: the theme / Elementor kit style every <button> (pink border + hover fill) */
.rh-dir .rh-dir__toggle .rh-dir__toggle-btn{
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    width:46px;
    height:40px;
    margin:0;
    padding:0;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    outline:0;
    background:var(--rh-dir-tg-bg) !important;
    color:var(--rh-dir-tg-color) !important;
    cursor:pointer;
    font-size:20px;
    line-height:1;
    text-transform:none;
    transition:background-color .15s ease, color .15s ease;
}
.rh-dir .rh-dir__toggle .rh-dir__toggle-btn + .rh-dir__toggle-btn{
    border-left:var(--rh-dir-tg-bw) solid var(--rh-dir-tg-border) !important;
}
.rh-dir .rh-dir__toggle-btn svg{ display:block; stroke-width:2.3; }
/* design: the map button is the highlighted (white / blue) one */
.rh-dir-tg-design .rh-dir .rh-dir__toggle .rh-dir__toggle-btn[data-rh-dir-view="map"],
.rh-dir-tg-state .rh-dir .rh-dir__toggle .rh-dir__toggle-btn--active{
    background:var(--rh-dir-tg-a-bg) !important;
    color:var(--rh-dir-tg-a-color) !important;
}
.rh-dir .rh-dir__toggle .rh-dir__toggle-btn:hover{ filter:brightness(.97); }
.rh-dir .rh-dir__toggle .rh-dir__toggle-btn:focus-visible{ outline:2px solid #0B4EA2 !important; outline-offset:-3px; }
.rh-dir__add-icon{ font-size:18px; }
.rh-dir__add{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:11px 20px 11px 18px;
    border-radius:10px;
    text-decoration:none;
    white-space:nowrap;
    transition:background-color .15s ease;
}

/* list + map */
.rh-dir__split{
    --rh-dir-map-w:50%;
    --rh-dir-pin:#D93025;
    --rh-dir-pin-active:#0B4EA2;
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--rh-dir-map-w);
    gap:22px;
    align-items:start;
    padding-top:20px;
}
.rh-dir__list{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.rh-dir__item[hidden]{ display:none !important; }
.rh-dir__card{
    --rh-dir-img-w:104px;
    display:grid;
    grid-template-columns:var(--rh-dir-img-w) minmax(0,1fr);
    box-sizing:border-box;
    overflow:hidden;
    cursor:pointer;
    transition:border-color .15s ease, box-shadow .15s ease;
}
.rh-dir__media{
    display:block;
    position:relative;
    min-height:100%;
    background:#E8EDF5;
}
.rh-dir .rh-dir__media > .rh-dir__img{
    position:absolute;
    inset:0;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    margin:0 !important;
    object-fit:cover;
    display:block;
}
.rh-dir__ph{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:34px;
    color:#94A3B8;
}
.rh-dir__body{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
    box-sizing:border-box;
}
.rh-dir__loc{
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.rh-dir__loc-icon{ font-size:14px; }
.rh-dir__title{ margin:0; }
.rh-dir__title a{ color:inherit; text-decoration:none; }
.rh-dir__desc{
    margin:0;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.rh-dir__btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    margin-top:auto;
    padding:8px 10px;
    text-decoration:none;
    box-sizing:border-box;
    transition:background-color .15s ease, color .15s ease;
}
.rh-dir__btn-icon{ font-size:13px; }
.rh-dir__empty{ margin:0; padding:24px 0; text-align:center; color:#64748B; }
.rh-dir__pager{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}
.rh-dir__page{
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-width:32px;
    height:32px;
    padding:0 6px;
    margin:0;
    border:1.5px solid #CBD5E1;
    border-radius:50%;
    background:#fff;
    color:#4B5563;
    font-size:14px;
    font-weight:500;
    line-height:1;
    cursor:pointer;
    transition:background-color .15s ease, color .15s ease;
}
/* previous / next are plain white circles (no outline) */
.rh-dir__page--nav{ border-color:transparent; background:#fff; color:#3F4651; }
.rh-dir .rh-dir__page--nav:hover:not(:disabled){ color:#0B4EA2; background:#fff; }
.rh-dir__page--gap{ cursor:default; }
.rh-dir__page:disabled{ opacity:.45; cursor:default; }
.rh-dir__page:focus-visible{ outline:2px solid #0B4EA2; outline-offset:2px; }

/* map */
.rh-dir__mapwrap{
    position:sticky;
    top:16px;
    align-self:start;
    isolation:isolate;
    z-index:0;
}
.rh-dir__map{
    width:100%;
    min-height:520px;
    height:70vh;
    max-height:760px;
    box-sizing:border-box;
    overflow:hidden;
    background:#E8EDF5;
}
.rh-dir .leaflet-container{ font-family:inherit; }
.rh-dir__pin{
    background:none;
    border:0;
    color:var(--rh-dir-pin,#D93025);
}
.rh-dir__pin--active{ color:var(--rh-dir-pin-active,#0B4EA2); }
.rh-dir__pin svg{
    display:block;
    filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));
}

/* LIST VIEW: a grid of vertical cards, no map */
.rh-dir[data-view="list"] .rh-dir__split{ grid-template-columns:minmax(0,1fr); }
.rh-dir[data-view="list"] .rh-dir__mapwrap{ display:none; }
.rh-dir[data-view="list"] .rh-dir__list{
    display:grid;
    grid-template-columns:repeat(var(--rh-dir-cols,3),minmax(0,1fr));
    align-items:stretch;
}
/* a phone-width space always gets one card per row */
@container rh-dir (max-width:520px){
    .rh-dir[data-view="list"] .rh-dir__list{ grid-template-columns:minmax(0,1fr); }
}
.rh-dir[data-view="list"] .rh-dir__card{
    grid-template-columns:minmax(0,1fr);
    height:100%;
}
.rh-dir[data-view="list"] .rh-dir__media{
    min-height:0;
    aspect-ratio:16 / 9;
}
.rh-dir[data-view="list"] .rh-dir__body{
    padding:12px 14px 14px;
}
.rh-dir[data-view="list"] .rh-dir__item{ min-width:0; }

/* MAP VIEW: cards on the left (image beside the text), map on the right */
@container rh-dir (max-width:760px){
    .rh-dir__split{ grid-template-columns:minmax(0,1fr); }
    .rh-dir__mapwrap{ position:static; }
    .rh-dir__map{ min-height:260px; height:42vh; }
}
/* Phone: search fields side by side, button full width; count + switch on one row,
   the "Add" button full width under them; cards stack with the image on top. */
@container rh-dir (max-width:600px){
    .rh-dir__form{ flex-wrap:wrap; gap:10px; }
    .rh-dir__field--q,
    .rh-dir__field--loc{ flex:1 1 0; min-width:0; }
    .rh-dir__form:not(:has(.rh-dir__field--loc)) .rh-dir__field--q{ flex:1 1 100%; }
    .rh-dir__submit{ flex:1 1 100%; }
    .rh-dir__chips{ gap:8px; }

    .rh-dir__bar{ gap:10px; }
    .rh-dir__bar-right{ display:contents; }
    .rh-dir__toggle{ order:1; }
    .rh-dir__add{ order:2; flex:1 1 100%; justify-content:center; }

    .rh-dir__card{ grid-template-columns:minmax(0,1fr); }
    .rh-dir__media{
        min-height:0;
        height:var(--rh-dir-img-h-m,130px);
    }
}
@media(prefers-reduced-motion:reduce){
    .rh-dir__card, .rh-dir__btn, .rh-dir__chip, .rh-dir__submit, .rh-dir__add{ transition:none; }
}

/* Community Hub — structural only; colours/typography come from Style controls */
.elementor-widget-rh-community-hub{ width:100%; min-width:0; }
.rh-hub{
    container-type:inline-size;
    container-name:rh-hub;
}
.rh-hub *{ box-sizing:border-box; }
.rh-hub [hidden]{ display:none !important; }

/* header */
.rh-hub__header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    border-bottom:0 solid transparent;
}
.rh-hub__header--line{ border-bottom-width:1px; }
.rh-hub__headtext{ min-width:0; }
.rh-hub__title,
.rh-hub__subtitle{ margin:0; }
.rh-hub__search{
    display:flex;
    align-items:center;
    gap:8px;
    width:230px;
    height:38px;
    padding:0 12px;
    border:1px solid #E2E8F0;
    background:#fff;
    color:#64748B;
    flex:0 0 auto;
}
.rh-hub__search-icon{ display:inline-flex; font-size:16px; line-height:1; }
.rh-hub .rh-hub__search input[type="search"]{
    flex:1 1 auto;
    min-width:0;
    width:100%;
    height:auto;
    margin:0;
    padding:0;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:0;
    font:inherit;
    color:#0F172A;
    -webkit-appearance:none;
    appearance:none;
}
.rh-hub .rh-hub__search input::placeholder{ color:#64748B; opacity:1; }
.rh-hub__search:focus-within{ border-color:#0B4EA2 !important; box-shadow:0 0 0 3px rgba(11,78,162,.12); }

/* tabs row */
.rh-hub__tabbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
}
.rh-hub__tabs{
    display:inline-flex;
    align-items:center;
    max-width:100%;
    padding:3px;
    border:1px solid #DDE3EC;
    background:#fff;
    overflow-x:auto;
    scrollbar-width:none;
}
.rh-hub__tabs::-webkit-scrollbar{ display:none; }
.rh-hub__tab{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    white-space:nowrap;
    text-decoration:none;
    color:#475569;
    transition:background-color .15s ease, color .15s ease;
}
.rh-hub__tab:focus-visible{ outline:2px solid currentColor; outline-offset:2px; }
.rh-hub__add{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:9px 16px;
    text-decoration:none;
    white-space:nowrap;
    transition:background-color .15s ease;
}
.rh-hub__add-icon{ display:inline-flex; font-size:16px; line-height:1; }

/* layout: forum cards + sidebar */
.rh-hub__layout{
    --rh-hub-side-w:300px;
    display:grid;
    grid-template-columns:minmax(0,1fr) var(--rh-hub-side-w);
    gap:20px;
    align-items:start;
}
.rh-hub__layout--nosidebar{ grid-template-columns:minmax(0,1fr); }
.rh-hub__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.rh-hub__item{ min-width:0; }
.rh-hub__card{
    display:flex;
    flex-direction:column;
    height:100%;
    overflow:hidden;
    text-decoration:none;
    color:inherit;
    transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.rh-hub__card:hover{ box-shadow:0 8px 20px rgba(15,23,42,.10); }
.rh-hub__cover{
    display:block;
    position:relative;
    height:140px;
    overflow:hidden;
    background:linear-gradient(135deg,#E3EAF4,#CFDBEC);
}
.rh-hub .rh-hub__cover > img{
    position:absolute;
    inset:0;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    margin:0 !important;
    object-fit:cover;
    display:block;
}
.rh-hub__card-body{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    gap:6px;
    padding:12px 14px;
}
.rh-hub__avatar{
    display:inline-block;
    width:28px;
    height:28px;
    border-radius:50%;
    overflow:hidden;
    flex:0 0 auto;
    background:#E2E8F0;
}
.rh-hub__avatar img{
    display:block;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover;
    border-radius:50%;
}
.rh-hub__card-title{ display:block; }
.rh-hub__card-desc{ display:block; }
.rh-hub__counts{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:auto;
    padding-top:10px;
    border-top:1px solid #EEF1F5;
}
.rh-hub__count{
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.rh-hub__count svg{ width:15px; height:15px; }
.rh-hub__empty{ padding:24px 0; text-align:center; }

/* sidebar */
.rh-hub__side{
    display:flex;
    flex-direction:column;
    gap:14px;
    min-width:0;
}
.rh-hub__side-card{
    padding:14px 16px;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:10px;
}
.rh-hub__side-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:10px;
}
.rh-hub__side-title{
    margin:0 0 10px;
    font-size:14px;
    font-weight:600;
    color:#0F172A;
}
.rh-hub__side-head .rh-hub__side-title{ margin:0; }
.rh-hub__bell{
    display:inline-flex;
    font-size:16px;
    color:#64748B;
    text-decoration:none;
}
.rh-hub__me-row{
    display:flex;
    align-items:center;
    gap:10px;
}
.rh-hub__avatar--me{ width:34px; height:34px; }
.rh-hub__avatar--sm{ width:30px; height:30px; }
.rh-hub__me-text{
    display:flex;
    flex-direction:column;
    min-width:0;
    flex:1 1 auto;
}
.rh-hub__me-name{
    font-size:12.5px;
    font-weight:600;
    color:#334155;
    text-decoration:none;
}
.rh-hub__me-email{
    font-size:11.5px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.rh-hub__role{
    flex:0 0 auto;
    align-self:flex-start;
    font-size:10px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#0B4EA2;
}
.rh-hub__muted{ color:#64748B; }
.rh-hub__side-text{ margin:0; font-size:13px; }
.rh-hub__link{ color:#334155; text-decoration:none; }
.rh-hub__link:hover{ color:#0B4EA2; }
.rh-hub__list,
.rh-hub__recent{
    list-style:none;
    margin:0;
    padding:0;
}
.rh-hub__list li + li{ margin-top:8px; }
.rh-hub__list-link{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
}
.rh-hub__list-icon{ display:inline-flex; font-size:15px; color:#64748B; line-height:1; }
.rh-hub__tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.rh-hub__tag{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:3px 9px;
    font-size:11px;
    color:#475569;
    background:#F5F7FB;
    border:1px solid #E5E9F0;
    border-radius:6px;
    text-decoration:none;
}
.rh-hub__tag:hover{ border-color:#0B4EA2; color:#0B4EA2; }
.rh-hub__tag-count{ opacity:.7; }
.rh-hub__recent-item{
    display:flex;
    align-items:flex-start;
    gap:10px;
}
.rh-hub__recent-item + .rh-hub__recent-item{ margin-top:12px; }
.rh-hub__recent-text{
    display:flex;
    flex-direction:column;
    gap:1px;
    min-width:0;
}
.rh-hub__recent-title{ font-size:11.5px; line-height:1.35; color:#0B4EA2; }
.rh-hub__recent-meta{ font-size:11px; }

/* stack the sidebar under the cards; phone: one card per row, search full width */
@container rh-hub (max-width:860px){
    .rh-hub__layout{ grid-template-columns:minmax(0,1fr); }
    .rh-hub__side{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
}
@container rh-hub (max-width:600px){
    /* header: title + subtitle, then the search box full width */
    .rh-hub__header{ flex-direction:column; align-items:stretch; gap:12px; }
    .rh-hub .rh-hub__search{ width:100% !important; }
    /* tabs row: one full-width pill box that scrolls sideways; "Add Topic" full width under it */
    .rh-hub__tabbar{ flex-direction:column; align-items:stretch; gap:12px; }
    .rh-hub__tabs{ display:flex; width:100%; }
    .rh-hub__add{ justify-content:center; width:100%; }
    /* one forum card per row, sidebar cards stacked in the design's order */
    .rh-hub .rh-hub__grid{ grid-template-columns:minmax(0,1fr) !important; }
    .rh-hub__side{ display:flex; flex-direction:column; }
}
@media(prefers-reduced-motion:reduce){
    .rh-hub__card, .rh-hub__tab, .rh-hub__add{ transition:none; }
}

/* Community Hub — in-page tab panels */
.rh-hub__panel[hidden]{ display:none !important; }
.rh-hub__panel-card{
    padding:6px 16px;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:10px;
}
.rh-hub__rows{ list-style:none; margin:0; padding:0; }
.rh-hub__row{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 0;
}
.rh-hub__row + .rh-hub__row{ border-top:1px solid #EEF1F5; }
.rh-hub__avatar--md{ width:40px; height:40px; }
.rh-hub__avatar--lg{ width:64px; height:64px; }
.rh-hub__avatar--xl{ width:84px; height:84px; }
.rh-hub__row-main{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
    flex:1 1 auto;
}
.rh-hub__row-title{ font-size:14px; font-weight:600; line-height:1.35; }
.rh-hub__row-meta{ font-size:12px; line-height:1.4; }
.rh-hub__row-side{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
    flex:0 0 auto;
    font-size:12px;
}
.rh-hub__row-ago{ white-space:nowrap; }
.rh-hub__members{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.rh-hub__member{
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:10px;
}
.rh-hub__member-link{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    padding:18px 12px;
    text-align:center;
    text-decoration:none;
}
.rh-hub__member-link:hover .rh-hub__me-name{ color:#0B4EA2; }
.rh-hub__member-group{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; }
.rh-hub__member-stats{ font-size:12px; }
.rh-hub__profile{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:18px;
    padding:14px 0;
}
.rh-hub__profile-main{
    display:flex;
    flex-direction:column;
    gap:3px;
    flex:1 1 200px;
    min-width:0;
    font-size:13px;
}
.rh-hub__profile-name{ font-size:18px; font-weight:600; color:#0F172A; }
.rh-hub__role--inline{ align-self:flex-start; }
.rh-hub__stats{ display:flex; gap:24px; }
.rh-hub__stat{ display:flex; flex-direction:column; align-items:center; }
.rh-hub__stat strong{ font-size:20px; color:#0F172A; }
.rh-hub__profile-btn{ background:#0B4EA2; color:#fff; border-radius:8px; }
@container rh-hub (max-width:600px){
    .rh-hub__row-side{ display:none; }
    .rh-hub__profile{ flex-direction:column; align-items:flex-start; }
}

/* Community Hub — What's New: Recent Activity Timeline */
.rh-hub__tl{
    --rh-tl-line:#D6DEEA;
    --rh-tl-node:#2563EB;
    --rh-tl-node-size:36px;
    --rh-tl-gap:14px;
}
.rh-hub__tl [hidden]{ display:none !important; }
.rh-hub__tl-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:18px;
}
.rh-hub__tl-title{ margin:0; }
.rh-hub__tl-filters{ display:flex; gap:10px; flex-wrap:wrap; }
.rh-hub__tl-filter{ min-width:128px; }
.rh-hub__tl-filter .rh-sort__select{ flex:1 1 auto; }
.rh-hub__tl-list{
    list-style:none;
    margin:0;
    padding:0;
}
.rh-hub__tl-item{
    display:grid;
    grid-template-columns:96px var(--rh-tl-node-size) minmax(0,1fr);
    column-gap:14px;
    align-items:start;
    padding-bottom:var(--rh-tl-gap);
}
.rh-hub__tl-user{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    text-align:center;
    min-width:0;
}
.rh-hub__tl-name{
    font-size:11.5px;
    font-weight:600;
    line-height:1.3;
    color:#0F172A;
    word-break:break-word;
}
.rh-hub__tl-ago{ font-size:11px; line-height:1.3; }
.rh-hub__tl-node{
    position:relative;
    align-self:stretch;
    display:flex;
    justify-content:center;
}
/* the vertical line runs through every node to the next entry */
.rh-hub__tl-node::before{
    content:"";
    position:absolute;
    top:calc(var(--rh-tl-node-size) / 2);
    bottom:calc(var(--rh-tl-gap) * -1 - 6px);
    left:50%;
    width:2px;
    margin-left:-1px;
    background:var(--rh-tl-line);
}
.rh-hub__tl-item:last-child .rh-hub__tl-node::before{ bottom:0; }
.rh-hub__tl-dot{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    width:var(--rh-tl-node-size);
    height:var(--rh-tl-node-size);
    border:2px solid var(--rh-tl-node);
    border-radius:50%;
    background:#fff;
    color:var(--rh-tl-node);
    font-size:calc(var(--rh-tl-node-size) * .5);
    line-height:1;
}
.rh-hub__tl-dot svg{ display:block; stroke-width:2; }
.rh-hub__tl-card{
    min-width:0;
    padding:12px 14px;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:8px;
}
.rh-hub__tl-line,
.rh-hub__tl-body{ margin:0; }
.rh-hub__tl-line{
    font-size:12.5px;
    line-height:1.5;
    color:#1E293B;
}
.rh-hub__tl-link{
    font-weight:500;
    color:#0B4EA2;
    text-decoration:none;
}
.rh-hub__tl-link:hover{ text-decoration:underline; }
.rh-hub__tl-body{
    margin-top:6px;
    font-size:12px;
    line-height:1.55;
    color:#64748B;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
@container rh-hub (max-width:600px){
    .rh-hub__tl-item{ grid-template-columns:64px var(--rh-tl-node-size) minmax(0,1fr); column-gap:10px; }
    .rh-hub__tl-filters{ width:100%; }
    .rh-hub__tl-filter{ flex:1 1 0; min-width:0; }
}

/* Community Hub — Recent Posts tab */
.rh-hub__rp-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:16px;
}
.rh-hub__rp-list{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.rh-hub__rp-item{
    overflow:hidden;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:8px;
}
.rh-hub__rp-top{
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:12px 14px;
}
.rh-hub__initials{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:34px;
    height:34px;
    border-radius:50%;
    background:#BFD0EA;
    color:#1E3A66;
    font-size:12px;
    font-weight:600;
    letter-spacing:.02em;
}
.rh-hub__rp-main{
    display:flex;
    flex-direction:column;
    gap:3px;
    min-width:0;
}
.rh-hub__rp-title{
    display:inline-flex;
    align-items:flex-start;
    gap:8px;
    font-size:13px;
    font-weight:600;
    line-height:1.4;
    color:#0F172A;
    text-decoration:none;
}
.rh-hub__rp-title:hover{ color:#0B4EA2; }
.rh-hub__rp-doc{ display:inline-flex; font-size:15px; line-height:1.4; color:#64748B; }
.rh-hub__rp-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:4px 10px;
    font-size:11.5px;
}
.rh-hub__rp-sep{
    display:inline-block;
    width:1px;
    height:11px;
    background:#CBD5E1;
}
.rh-hub__rp-replies{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:10px 14px 10px 58px;
    background:#F6F8FB;
    border-top:1px solid #EEF1F5;
}
.rh-hub__rp-reply{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:11.5px;
    color:#475569;
    text-decoration:none;
}
.rh-hub__rp-reply:hover .rh-hub__rp-snippet{ color:#0B4EA2; }
.rh-hub__rp-ricon{ display:inline-flex; font-size:14px; color:#64748B; flex:0 0 auto; }
.rh-hub__rp-snippet{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#475569;
}
.rh-hub__rp-rmeta{ flex:0 0 auto; white-space:nowrap; font-size:11.5px; color:#0F172A; }
.rh-hub__rp-all{
    align-self:flex-end;
    font-size:11.5px;
    color:#0B4EA2;
    text-decoration:none;
}
.rh-hub__rp-all:hover{ text-decoration:underline; }
@container rh-hub (max-width:600px){
    .rh-hub__rp-replies{ padding-left:14px; }
    .rh-hub__rp-rmeta{ display:none; }
}

/* Community Hub — Forum Members cards */
.rh-hub__mem-item{ min-width:0; }
.rh-hub__mem-card{
    display:flex;
    flex-direction:column;
    height:100%;
    overflow:hidden;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:10px;
    text-decoration:none;
    color:inherit;
    transition:box-shadow .2s ease;
}
.rh-hub__mem-card:hover{ box-shadow:0 8px 20px rgba(15,23,42,.10); }
.rh-hub__mem-cover{
    display:block;
    height:84px;
    background-color:#C9D3E1;
    background-size:cover;
    background-position:center;
}
.rh-hub__mem-avatar{
    position:relative;
    display:block;
    width:52px;
    height:52px;
    margin:-26px 0 0 14px;
    flex:0 0 auto;
}
.rh-hub__mem-avatar img,
.rh-hub__mem-initials{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    border-radius:50%;
    border:3px solid #fff;
    object-fit:cover;
    box-sizing:border-box;
}
.rh-hub__mem-initials{
    background:#BFD0EA;
    color:#1E3A66;
    font-size:15px;
    font-weight:600;
    letter-spacing:.02em;
}
.rh-hub__mem-dot{
    position:absolute;
    right:1px;
    bottom:2px;
    width:12px;
    height:12px;
    border-radius:50%;
    background:#CBD5E1;
    border:2px solid #fff;
}
.rh-hub__mem-dot--on{ background:#22C55E; }
.rh-hub__mem-body{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:10px 14px 14px;
    min-width:0;
}
.rh-hub__mem-name{
    font-size:14px;
    font-weight:600;
    color:#0F172A;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.rh-hub__mem-card:hover .rh-hub__mem-name{ color:#0B4EA2; }
.rh-hub__mem-row,
.rh-hub__mem-stats{ font-size:12.5px; color:#1E293B; }
.rh-hub__mem-stats{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
@container rh-hub (max-width:600px){
    .rh-hub .rh-hub__members{ grid-template-columns:minmax(0,1fr) !important; }
}

/* Community Hub — Forum Profile */
.rh-hub__pf{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.rh-hub__pf-head{ position:relative; }
.rh-hub__pf-cover{
    display:block;
    height:190px;
    border-radius:10px;
    background-color:#C9D3E1;
    background-size:cover;
    background-position:center;
}
.rh-hub__pf-id{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:0 6px;
}
.rh-hub__pf-avatar{
    position:relative;
    display:block;
    flex:0 0 auto;
    width:72px;
    height:72px;
    margin-top:-36px;
}
.rh-hub__pf-avatar img,
.rh-hub__pf-initials{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    border-radius:50%;
    border:4px solid #fff;
    object-fit:cover;
    box-sizing:border-box;
}
.rh-hub__pf-initials{ font-size:20px; }
.rh-hub__pf-avatar .rh-hub__mem-dot{ right:3px; bottom:4px; width:13px; height:13px; }
.rh-hub__pf-text{
    display:flex;
    flex-direction:column;
    gap:1px;
    padding-top:8px;
    min-width:0;
    flex:1 1 auto;
}
.rh-hub__pf-name{ font-size:15px; font-weight:600; color:#0F172A; line-height:1.3; }
.rh-hub__pf-login{ font-size:12px; word-break:break-all; }
.rh-hub__pf-dates{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:1px;
    padding-top:8px;
    font-size:11.5px;
    color:#1E293B;
    text-align:right;
    flex:0 0 auto;
}
.rh-hub__pf-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-bottom:10px;
    border-bottom:1px solid #E5E9F0;
}
.rh-hub__pf-tabs{ display:flex; gap:6px; }
.rh-hub__pf-tab{
    padding:5px 12px;
    font-size:12px;
    font-weight:500;
    color:#475569;
    text-decoration:none;
    border-radius:6px;
}
.rh-hub__pf-tab--active{ background:#0B4EA2; color:#fff; }
a.rh-hub__pf-tab:hover{ color:#0B4EA2; }
.rh-hub__pf-follow{ display:flex; gap:18px; font-size:12px; }
.rh-hub__pf-follow a{ text-decoration:none; }
.rh-hub__pf-follow a:hover{ color:#0B4EA2; }
.rh-hub__pf-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}
.rh-hub__pf-stat{
    display:flex;
    flex-direction:column;
    gap:3px;
    padding:12px 14px;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:8px;
}
.rh-hub__pf-icon{ display:inline-flex; font-size:15px; color:#334155; line-height:1; margin-bottom:4px; }
.rh-hub__pf-num{ font-size:14px; font-weight:500; color:#0F172A; line-height:1.2; }
.rh-hub__pf-label{ font-size:11.5px; line-height:1.3; }
@container rh-hub (max-width:600px){
    .rh-hub .rh-hub__pf-stats{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
    .rh-hub__pf-id{ flex-wrap:wrap; }
    .rh-hub__pf-dates{ align-items:flex-start; text-align:left; padding-top:0; width:100%; }
    .rh-hub .rh-hub__pf-cover{ height:130px; }
}

/* Jobs — structural only; colours/typography come from Style controls */
.elementor-widget-rh-jobs{ width:100%; min-width:0; }
.rh-jobs{
    container-type:inline-size;
    container-name:rh-jobs;
}
.rh-jobs *{ box-sizing:border-box; }
.rh-jobs [hidden]{ display:none !important; }

/* hero */
.rh-jobs__hero{
    --rh-jobs-hero-px:20px;
    text-align:center;
    padding:30px var(--rh-jobs-hero-px);
    background:#EEF3FA;
}
.rh-jobs__hero-inner{
    max-width:1100px;
    margin-left:auto;
    margin-right:auto;
}
.rh-jobs__hero-title{ margin:0 0 22px; }
/* full-width background: as wide as the screen, re-centred on the container, side padding widened by the overhang */
.rh-jobs-herofull-yes .rh-jobs__hero{
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    padding-left:calc(50vw - 50% + var(--rh-jobs-hero-px));
    padding-right:calc(50vw - 50% + var(--rh-jobs-hero-px));
}
body:has(.rh-jobs-herofull-yes){ overflow-x:clip; }

.rh-jobs__form{
    display:flex;
    align-items:stretch;
    gap:12px;
}
.rh-jobs__field{
    position:relative;
    display:flex;
    align-items:center;
    gap:8px;
    height:42px;
    padding:0 12px;
    border:1px solid #D5DCE7;
    background:#fff;
    color:#64748B;
    cursor:text;
    min-width:0;
}
.rh-jobs__field--q{ flex:1.3 1 0; }
.rh-jobs__field--loc{ flex:1 1 0; }
.rh-jobs__field--select{ flex:1 1 0; cursor:pointer; }
.rh-jobs__field:focus-within{ border-color:#0B4EA2 !important; box-shadow:0 0 0 3px rgba(11,78,162,.14); }
.rh-jobs__field-icon,
.rh-jobs__caret,
.rh-jobs__post-icon,
.rh-jobs__meta-icon,
.rh-jobs__view-icon{
    display:inline-flex;
    flex:0 0 auto;
    line-height:1;
}
.rh-jobs__field-icon{ font-size:16px; }
.rh-jobs__caret{ font-size:15px; pointer-events:none; }
.rh-jobs .rh-jobs__input{
    flex:1 1 auto;
    min-width:0;
    width:100%;
    height:auto;
    padding:0;
    margin:0;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    outline:0;
    font:inherit;
    font-size:14px;
    color:#0F172A;
    text-align:left;
    -webkit-appearance:none;
    appearance:none;
}
.rh-jobs select.rh-jobs__input{ cursor:pointer; color:#64748B; }
.rh-jobs select.rh-jobs__input:valid,
.rh-jobs select.rh-jobs__input.is-set{ color:#0F172A; }
.rh-jobs .rh-jobs__input::placeholder{ color:#64748B; opacity:1; }
.rh-jobs__submit{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:42px;
    padding:0 40px;
    margin:0;
    border:0;
    border-radius:8px;
    background:#0B4EA2;
    color:#fff;
    font-size:14px;
    font-weight:500;
    cursor:pointer;
    white-space:nowrap;
    transition:background-color .15s ease;
}

/* results bar */
.rh-jobs__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-block:20px;
    margin-bottom:18px;
    border-bottom:1px solid #E5E9F0;
}
.rh-jobs__count{ font-size:20px; font-weight:500; color:#0F172A; }
.rh-jobs__post{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:9px 16px;
    border-radius:8px;
    background:#0B4EA2;
    color:#fff;
    font-size:13px;
    font-weight:500;
    text-decoration:none;
    white-space:nowrap;
    transition:background-color .15s ease;
}
.rh-jobs__post-icon{ font-size:16px; }

/* job cards */
.rh-jobs__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.rh-jobs__item{ min-width:0; }
.rh-jobs__card{
    display:flex;
    flex-direction:column;
    gap:6px;
    height:100%;
    padding:14px;
    background:#fff;
    border:1px solid #E2E8F0;
    border-radius:10px;
    color:inherit;
    text-decoration:none;
    transition:border-color .15s ease, box-shadow .15s ease;
}
.rh-jobs__card:hover{ box-shadow:0 6px 18px rgba(15,23,42,.08); }
.rh-jobs__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.rh-jobs__label,
.rh-jobs__view{
    font-size:11.5px;
    font-weight:500;
    color:#0B4EA2;
}
.rh-jobs__view{ display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.rh-jobs__view-icon{ font-size:13px; }
.rh-jobs__titlerow{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}
.rh-jobs__title{
    font-size:14px;
    font-weight:600;
    line-height:1.35;
    color:#0F172A;
}
.rh-jobs__card:hover .rh-jobs__title{ color:#0B4EA2; }
.rh-jobs__chip{
    display:inline-block;
    padding:2px 9px;
    border-radius:999px;
    background:#EEF1F6;
    color:#475569;
    font-size:11px;
    font-weight:500;
    white-space:nowrap;
}
.rh-jobs__desc{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    margin-top:2px;
    font-size:12px;
    line-height:1.5;
    color:#475569;
}
.rh-jobs__metas{
    display:flex;
    flex-wrap:wrap;
    gap:6px 18px;
    margin-top:auto;
    padding-top:8px;
}
.rh-jobs__meta{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:11.5px;
    color:#64748B;
}
.rh-jobs__meta-icon{ font-size:14px; }
.rh-jobs__empty{ margin:0; padding:24px 0; text-align:center; color:#64748B; }

/* pagination */
.rh-jobs__pager{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
}
.rh-jobs__page{
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    height:28px;
    padding:0 6px;
    margin:0;
    border:1.5px solid #CBD5E1;
    border-radius:50%;
    background:#fff;
    color:#4B5563;
    font-size:12px;
    font-weight:500;
    line-height:1;
    cursor:pointer;
    transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.rh-jobs .rh-jobs__page:not(.rh-jobs__page--active):not(.rh-jobs__page--gap):not(.rh-jobs__page--nav):not(:disabled):hover{
    color:#0B4EA2;
    background:#EEF3FB;
    border-color:#0B4EA2;
}
.rh-jobs__page--nav{ border-color:transparent; background:#fff; color:#3F4651; }
.rh-jobs__page--gap{ cursor:default; }
.rh-jobs__page--active{ background:#0B4EA2; border-color:#0B4EA2; color:#fff; }
.rh-jobs__page:disabled{ opacity:.45; cursor:default; }
.rh-jobs__page:focus-visible{ outline:2px solid #0B4EA2; outline-offset:2px; }

/* narrower: search fields wrap, one card per row */
/* Tablet / phone: search and location full width, category + type side by side, button full width */
@container rh-jobs (max-width:900px){
    .rh-jobs__form{ flex-wrap:wrap; gap:10px; }
    .rh-jobs__field--q,
    .rh-jobs__field--loc{ flex:1 1 100%; }
    .rh-jobs__field--select{ flex:1 1 calc(50% - 5px); }
    .rh-jobs__submit{ flex:1 1 100%; }
}
/* Phone: one job card per row; the count and "Post Job" stay on one row, the button a little smaller */
@container rh-jobs (max-width:640px){
    .rh-jobs .rh-jobs__grid{ grid-template-columns:minmax(0,1fr) !important; }
    .rh-jobs__bar{ flex-wrap:nowrap; padding-block:16px; margin-bottom:14px; }
    .rh-jobs__count{ font-size:18px; }
    .rh-jobs__post{ padding:8px 12px; font-size:12.5px; }
    .rh-jobs__field-icon{ font-size:15px; }
}
@media(prefers-reduced-motion:reduce){
    .rh-jobs__card, .rh-jobs__submit, .rh-jobs__post, .rh-jobs__page{ transition:none; }
}

/* Account Layout — structural only; colours/typography come from Style controls */
.elementor-widget-rh-account{ width:100%; min-width:0; }
.rh-acct{
    --rh-acct-side-w:250px;
    container-type:inline-size;
    container-name:rh-acct;
    display:grid;
    grid-template-columns:var(--rh-acct-side-w) minmax(0,1fr);
    gap:24px;
    align-items:start;
}
.rh-acct *{ box-sizing:border-box; }
.rh-acct [hidden]{ display:none !important; }
.rh-acct__login{ margin:0; padding:16px 0; }

/* sidebar */
.rh-acct__side{
    padding:20px 14px 16px;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:12px;
}
.rh-acct__profile{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    margin-bottom:18px;
    text-align:center;
}
.rh-acct__avatar{
    display:block;
    width:88px;
    height:88px;
    border-radius:50%;
    overflow:hidden;
    background:#E2E8F0;
}
.rh-acct__avatar img{
    display:block;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover;
    border-radius:50%;
}
.rh-acct__name{ margin-top:8px; font-size:15px; font-weight:600; color:#0F172A; }
.rh-acct__email{ font-size:12px; color:#64748B; word-break:break-all; }
.rh-acct__nav{
    display:flex;
    flex-direction:column;
    gap:4px;
}
.rh-acct__nav-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border-radius:8px;
    font-size:13px;
    font-weight:500;
    color:#334155;
    text-decoration:none;
    transition:background-color .15s ease, color .15s ease;
}
.rh-acct__nav-item:hover{ background:#F5F7FB; }
.rh-acct__nav-item--active,
.rh-acct__nav-item--active:hover{ background:#EEF2F8; color:#0B4EA2; }
.rh-acct__nav-item:focus-visible{ outline:2px solid #0B4EA2; outline-offset:2px; }
.rh-acct__nav-icon{
    display:inline-flex;
    flex:0 0 auto;
    font-size:17px;
    line-height:1;
}
.rh-acct__nav-label{ flex:1 1 auto; min-width:0; }
.rh-acct__chevron{
    display:none;
    flex:0 0 auto;
    font-size:15px;
    line-height:1;
}
.rh-acct__nav-item--active .rh-acct__chevron{ display:inline-flex; }

/* content card */
.rh-acct__card{
    padding:18px 22px 22px;
    background:#fff;
    border:1px solid #E7EBF1;
    border-radius:12px;
}
.rh-acct__heading{
    margin:0 0 16px;
    padding-bottom:14px;
    font-size:15px;
    font-weight:500;
    color:#0F172A;
    border-bottom:1px solid #E5E9F0;
}
.rh-acct__hint{
    margin:0;
    padding:14px;
    font-size:13px;
    color:#94A3B8;
    border:1px dashed #CBD5E1;
    border-radius:8px;
}

/* forms inside the card */
.rh-acct--forms .rh-acct__panel form{ margin:0; }
.rh-acct--forms .rh-acct__panel label{
    display:block;
    margin:0 0 4px;
    font-size:12px;
    font-weight:500;
    color:#334155;
}
.rh-acct--forms .rh-acct__panel input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]):not([type="hidden"]),
.rh-acct--forms .rh-acct__panel select,
.rh-acct--forms .rh-acct__panel textarea{
    width:100%;
    min-height:40px;
    padding:8px 12px;
    font-family:inherit;
    font-size:14px;
    line-height:1.4;
    color:#0F172A;
    background:#fff;
    border:1px solid #D5DCE7;
    border-radius:6px;
    box-shadow:none;
    transition:border-color .15s ease, box-shadow .15s ease;
}
.rh-acct--forms .rh-acct__panel textarea{ min-height:96px; resize:vertical; }
.rh-acct--forms .rh-acct__panel input::placeholder,
.rh-acct--forms .rh-acct__panel textarea::placeholder{ color:#94A3B8; opacity:1; }
.rh-acct--forms .rh-acct__panel input:focus,
.rh-acct--forms .rh-acct__panel select:focus,
.rh-acct--forms .rh-acct__panel textarea:focus{
    outline:0;
    border-color:#0B4EA2;
    box-shadow:0 0 0 3px rgba(11,78,162,.14);
}
.rh-acct--forms .rh-acct__panel input[type="checkbox"],
.rh-acct--forms .rh-acct__panel input[type="radio"]{ accent-color:#0B4EA2; }
.rh-acct--forms .rh-acct__panel button[type="submit"],
.rh-acct--forms .rh-acct__panel input[type="submit"],
.rh-acct--forms .rh-acct__panel .mepr-submit{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 20px;
    font-family:inherit;
    font-size:14px;
    font-weight:500;
    color:#fff;
    background:#0B4EA2;
    border:0;
    border-radius:8px;
    cursor:pointer;
    transition:background-color .15s ease;
}
.rh-acct--forms .rh-acct__panel button[type="submit"]:hover,
.rh-acct--forms .rh-acct__panel input[type="submit"]:hover,
.rh-acct--forms .rh-acct__panel .mepr-submit:hover{ background:#093F82; color:#fff; }

/* narrower: sidebar card on top, content card under it */
@container rh-acct (max-width:760px){
    .rh-acct{ grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce){
    .rh-acct__nav-item, .rh-acct--forms .rh-acct__panel button[type="submit"]{ transition:none; }
}

/* Account Layout — UsersWP's own forms inside the card */
.rh-acct__avatar--uwp{ width:auto; height:auto; background:transparent; border-radius:0; overflow:visible; }
.rh-acct__avatar--uwp img{ border-radius:50%; width:88px !important; height:88px !important; object-fit:cover; }
.rh-acct__avatar--uwp .uwp-profile-avatar-change,
.rh-acct__avatar--uwp .uwp-change-avatar{ margin-top:6px; font-size:12px; }
.rh-acct__notices{ margin-bottom:14px; }
.rh-acct--forms .uwp_form,
.rh-acct--forms .uwp-account-form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px 20px;
    align-items:start;
    margin:0 !important;
}
.rh-acct--forms .uwp_form > *{ margin:0; min-width:0; }
.rh-acct--forms .uwp_form > h1,
.rh-acct--forms .uwp_form > h2,
.rh-acct--forms .uwp_form > h3,
.rh-acct--forms .uwp_form > h4,
.rh-acct--forms .uwp_form > h5,
.rh-acct--forms .uwp_form > fieldset,
.rh-acct--forms .uwp_form > :has(textarea),
.rh-acct--forms .uwp_form > :has(input[type="file"]),
.rh-acct--forms .uwp_form > :has(.dropzone),
.rh-acct--forms .uwp_form > p,
.rh-acct--forms .uwp_form > input[type="submit"],
.rh-acct--forms .uwp_form > button,
.rh-acct--forms .uwp_form > .uwp-captcha,
.rh-acct--forms .uwp_form > .uwp-privacy-field{
    grid-column:1 / -1;
}
/* UsersWP prints a wide block "UPDATE ACCOUNT" button; the design has a compact one on the right */
.rh-acct--forms .uwp_form input[type="submit"],
.rh-acct--forms .uwp_form .btn-block,
.rh-acct--forms .uwp_form .btn-primary{
    grid-column:1 / -1;
    justify-self:end;
    width:auto !important;
    min-height:40px;
    padding:0 22px;
    text-transform:none !important;
    letter-spacing:0;
    font-size:14px;
    font-weight:500;
    color:#fff;
    background:#0B4EA2;
    border:0;
    border-radius:8px;
}
.rh-acct--forms .uwp_form input[type="submit"]:hover,
.rh-acct--forms .uwp_form .btn-primary:hover{ background:#093F82; color:#fff; }
/* horizontal bootstrap rows: label above the field */
.rh-acct--forms .uwp_form .row{ display:flex; flex-direction:column; gap:4px; margin:0; }
.rh-acct--forms .uwp_form .row > [class*="col-"]{ flex:0 0 auto; width:100%; max-width:100%; padding:0; }
.rh-acct--forms .uwp_form .form-group,
.rh-acct--forms .uwp_form .mb-3{ margin-bottom:0 !important; }
@container rh-acct (max-width:620px){
    .rh-acct--forms .uwp_form,
    .rh-acct--forms .uwp-account-form{ grid-template-columns:minmax(0,1fr); }
}

/* Account Layout — UsersWP fixes (Bootstrap isn't loaded on this page, so its pieces are rebuilt here) */

/* round photo with the camera as a small badge on its corner */
.rh-acct .rh-acct__avatar--uwp{
    width:auto;
    height:auto;
    overflow:visible;
    background:transparent;
    border-radius:0;
}
.rh-acct .rh-acct__avatar--uwp .card,
.rh-acct .rh-acct__avatar--uwp .card-body{
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}
.rh-acct .rh-acct__avatar--uwp .row{
    display:flex;
    justify-content:center;
    margin:0;
}
.rh-acct .rh-acct__avatar--uwp .col{
    position:relative;
    display:inline-block;
    flex:0 0 auto;
    width:auto;
    max-width:none;
    padding:0;
    line-height:0;
}
.rh-acct .rh-acct__avatar--uwp img{
    display:block;
    width:88px !important;
    height:88px !important;
    max-width:none !important;
    object-fit:cover;
    border-radius:50% !important;
    border:3px solid #fff !important;
    box-shadow:0 1px 4px rgba(15,23,42,.18) !important;
    padding:0 !important;
    background:#E2E8F0;
}
.rh-acct .rh-acct__avatar--uwp .card-img-overlay{
    position:absolute;
    inset:auto 0 0 auto;
    display:block;
    padding:0;
    width:auto;
}
.rh-acct .rh-acct__avatar--uwp .uwp-banner-change-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    padding:0;
    margin:0;
    border:2px solid #fff !important;
    border-radius:50%;
    background:#0B4EA2;
    color:#fff;
    font-size:12px;
    line-height:1;
    box-shadow:0 1px 3px rgba(15,23,42,.25);
}
.rh-acct .rh-acct__avatar--uwp .uwp-banner-change-icon:hover{ background:#093F82; color:#fff; }

/* password fields: the eye sits inside the field, at the right */
.rh-acct .input-group{
    position:relative;
    display:flex;
    flex-wrap:nowrap;
    align-items:stretch;
    width:100%;
}
.rh-acct .input-group > input,
.rh-acct .input-group > .form-control{
    flex:1 1 auto;
    min-width:0;
    padding-right:44px !important;
}
.rh-acct .input-group > .input-group-text,
.rh-acct .input-group > .input-group-append,
.rh-acct .input-group > .input-group-addon{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    padding:0 !important;
    margin:0;
    border:0 !important;
    background:transparent !important;
    color:#64748B;
    cursor:pointer;
}
.rh-acct .input-group .input-group-text i{ font-size:15px; }

/* the privacy / notification forms: UsersWP nests a .uwp-account-form inside another one — only the real <form> is a grid */
.rh-acct--forms div.uwp-account-form,
.rh-acct--forms .uwp-profile-extra,
.rh-acct--forms .uwp-profile-extra-div{
    display:block;
    grid-template-columns:none;
}
/* the bold "Tab Name | Privacy" / "Field | Is Public?" header rows are noise in a card form */
.rh-acct--forms .uwp-profile-extra-wrap:has(> .uwp-profile-extra-key[style*="bold"]){ display:none; }
.rh-acct--forms .uwp-profile-extra-wrap{
    display:flex;
    flex-direction:column;
    gap:5px;
    margin:0 !important;
}
.rh-acct--forms .uwp-profile-extra-wrap > .col{ flex:0 0 auto; width:100%; max-width:100%; padding:0; }
.rh-acct--forms .uwp-profile-extra-key{
    font-size:12px;
    font-weight:500;
    color:#334155;
}
.rh-acct--forms .uwp-profile-extra-sep{ display:none; }
.rh-acct--forms .uwp-profile-extra-wrap:has(#uwp_hide_from_listing),
.rh-acct--forms .uwp-profile-extra-wrap:has(input[type="checkbox"]){ grid-column:1 / -1; }
.rh-acct--forms .uwp_hide_from_listing,
.rh-acct--forms .uwp_hide_from_listing input{ font-size:13px; color:#334155; }
.rh-acct--forms .uwp_hide_from_listing input[type="checkbox"]{ margin:0 8px 0 0; vertical-align:-2px; }

/* selects (also the select2 versions) look like the text inputs */
.rh-acct .select2-container{ width:100% !important; }
.rh-acct .select2-container .select2-selection--single{
    display:flex;
    align-items:center;
    height:40px;
    border:1px solid #D5DCE7;
    border-radius:6px;
}
.rh-acct .select2-container .select2-selection--single .select2-selection__rendered{ padding-left:12px; color:#0F172A; font-size:14px; }
.rh-acct .select2-container .select2-selection--single .select2-selection__arrow{ height:100%; right:8px; }

/* the Submit button sits on the right, whatever wrapper UsersWP puts it in */
.rh-acct--forms .uwp_form :has(> input[type="submit"]),
.rh-acct--forms .uwp_form :has(> button[type="submit"]){
    grid-column:1 / -1;
    display:flex;
    justify-content:flex-end;
    text-align:right !important;
}
.rh-acct--forms .uwp_form .text-center{ text-align:right !important; }

/* Account Layout — the directory listing form inside the account card */
body .rh-acct #geodirectory-add-post{
    max-width:none;
    padding:0;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
}
/* the card already has the heading; hide GeoDirectory's own "Enter Listing Details" */
.rh-acct #geodirectory-add-post #geodir_fieldset_details{ display:none; }

/* Account Layout — fields the account form marks as full width (css class "rh-full") */
.rh-acct--forms .uwp_form .rh-full,
.rh-acct--forms .uwp_form :has(> .rh-full){ grid-column:1 / -1; }


/* Perks Banner + Button — defaults in plain CSS, so they still look right when Elementor's
   generated page CSS lacks them (not regenerated yet / cached). Any value set in the
   widget's Style tab is more specific and wins. */
.rh-perks{
    background:linear-gradient(120deg,#06173F,#0B57B7);
    padding:22px;
    border-radius:14px;
    gap:10px;
    color:#fff;
}
.rh-perks__badge{
    color:#DCE8FB;
    background:rgba(255,255,255,.16);
    border-radius:6px;
    padding:6px 10px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.6px;
    text-transform:uppercase;
}
.rh-perks__headline{ color:#fff; font-size:30px; font-weight:500; line-height:1.15; }
.rh-perks__sub{ color:#fff; font-size:18px; font-weight:600; }
.rh-perks__desc{ color:#D5E2F7; font-size:14px; line-height:1.5; }

.rh-pbtn{
    display:inline-flex;
    flex-direction:row-reverse;
    gap:8px;
    width:100%;
    padding:16px 24px;
    border-radius:12px;
    background:linear-gradient(90deg,#0B4EA2,#1266C8);
    color:#fff;
    font-size:18px;
    font-weight:600;
}
.rh-pbtn:hover{ color:#fff; }
.rh-pbtn__icon svg{ width:18px; height:18px; }


/* ---- Perks Cards (Member Perks page) ---- */
.rh-pcards__head{ box-sizing:border-box; padding-bottom:14px; margin-bottom:20px; border-bottom:1px solid transparent; }
.rh-pcards__head.has-rule{ border-bottom-color:#E5E7EB; }
.rh-pcards .rh-pcards__title{ margin:0 0 4px; font-size:22px; font-weight:600; line-height:1.2; color:#111827; }
.rh-pcards .rh-pcards__sub{ margin:0; font-size:13px; color:#6B7280; }
.rh-pcards__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:stretch; }
.rh-pcard{ display:flex; flex-direction:column; gap:12px; box-sizing:border-box; min-width:0; padding:16px; background:#fff; border:1px solid #E5E7EB; border-radius:12px; }
.rh-pcard .rh-pcard__logo{ display:block; height:48px; width:auto; max-width:100%; object-fit:contain; object-position:left center; align-self:flex-start; }
.rh-pcard__offer-row{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px; }
.rh-pcard__offer{ font-size:13px; font-weight:600; color:#111827; }
.rh-pcard__badge{ display:inline-block; padding:2px 6px; border-radius:4px; background:#F3F4F6; color:#4B5563; font-size:10px; font-weight:500; line-height:1.4; text-transform:uppercase; }
.rh-pcard .rh-pcard__desc{ margin:0; font-size:12px; line-height:1.5; color:#6B7280; }
.rh-pcard__code{ display:flex; align-items:center; justify-content:space-between; gap:8px; box-sizing:border-box; padding:8px 10px; border:1px solid #E5E7EB; border-radius:8px; background:#fff; font-size:12px; }
.rh-pcard__code-label{ color:#6B7280; margin-right:6px; }
.rh-pcard__code--text .rh-pcard__code-label{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.rh-pcard__code-value{ font-weight:600; color:#111827; letter-spacing:.02em; }
body .rh-pcard .rh-pcard__copy{ display:inline-flex; align-items:center; gap:4px; padding:2px !important; margin:0; border:0 !important; background:transparent !important; box-shadow:none !important; color:#0B4EA2; font-size:11px; line-height:1; cursor:pointer; }
body .rh-pcard .rh-pcard__copy:hover{ background:transparent !important; opacity:.75; }
.rh-pcard__copy.is-copied{ color:#15803D; }
.rh-pcard .rh-pcard__btn{ display:flex; align-items:center; justify-content:center; gap:6px; box-sizing:border-box; min-height:40px; padding:0 14px; border-radius:8px; background:#EEF2FA; color:#0B4EA2; font-size:12px; font-weight:600; text-decoration:none; transition:background .2s ease,color .2s ease; }
.rh-pcard .rh-pcard__btn:hover{ background:#0B4EA2; color:#fff; }
@media(max-width:1024px){ .rh-pcards__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px){ .rh-pcards__grid{ grid-template-columns:1fr; } }

.rh-pcard{ aspect-ratio:auto; }
.rh-pcard .rh-pcard__btn{ margin-top:auto; }
.rh-pcard__code{ margin-top:auto; }
.rh-pcard__code + .rh-pcard__btn{ margin-top:0; }
@media(max-width:767px){ .rh-pcard{ aspect-ratio:auto; } }

/* copied toast */
.rh-toast{ position:fixed; left:50%; bottom:28px; z-index:99999; display:flex; align-items:center; gap:8px; max-width:calc(100vw - 32px); padding:12px 16px; border-radius:10px; background:#111827; color:#fff; font-size:14px; font-weight:500; box-shadow:0 10px 30px rgba(0,0,0,.25); opacity:0; transform:translate(-50%,16px); pointer-events:none; transition:opacity .2s ease,transform .2s ease; }
.rh-toast svg{ flex:none; color:#4ADE80; }
.rh-toast.is-on{ opacity:1; transform:translate(-50%,0); }
@media(prefers-reduced-motion:reduce){ .rh-toast{ transition:none; } }


/* Event Spotlight — optional image beside the text, and registration states */
.rh-espot-card{ display:flex; align-items:stretch; gap:32px; }
.rh-espot-card__body{ flex:1 1 0; min-width:0; display:flex; align-items:center; }
.rh-espot-card__body > .rh-espot{ width:100%; }
.rh-espot-card__media{ flex:0 0 46%; min-height:260px; overflow:hidden; border-radius:12px; }
.rh-espot-card__media img{ display:block; width:100%; height:100% !important; object-fit:cover; }
.rh-espot-card--left .rh-espot-card__media{ order:-1; }
@media(max-width:767px){
    .rh-espot-card{ flex-direction:column; gap:16px; }
    .rh-espot-card__media,
    .rh-espot-card--left .rh-espot-card__media{ order:-1; flex:0 0 auto !important; width:100%; min-height:200px; }
}
.elementor-widget .rh-espot__btn--primary.is-registered{ background:#E8F5EC !important; border-color:#B7DFC4 !important; color:#166534 !important; cursor:default; pointer-events:none; }
.elementor-widget .rh-espot__btn--primary.is-join{ background:#15803D !important; border-color:#15803D !important; color:#fff !important; }
.rh-espot__btn.is-busy{ opacity:.6; pointer-events:none; }

/* Perks Cards — tuned to the design: larger text, spare room sits between description and code */
.rh-pcard{ gap:14px; border-radius:10px; }
.rh-pcard .rh-pcard__logo{ height:44px; }
.rh-pcard__offer{ font-size:14px; font-weight:600; }
.rh-pcard__badge{ font-size:10px; padding:3px 7px; }
.rh-pcard .rh-pcard__desc{ font-size:13px; line-height:1.55; flex:1 1 auto; }
.rh-pcard__code{ margin-top:0; padding:8px 10px; font-size:13px; border-radius:6px; }
.rh-pcard__code-value{ font-size:13px; }
.rh-pcard .rh-pcard__btn{ margin-top:0; min-height:32px; border-radius:6px; font-size:13px; font-weight:500; }
.rh-pcard__code + .rh-pcard__btn{ margin-top:2px; }
.rh-pcards .rh-pcards__title{ font-size:22px; }
@media(max-width:767px){ .rh-pcard .rh-pcard__desc{ flex:0 0 auto; } }


/* Jobs — "Post Job" form in a popup */
.rh-jobs__embed{ position:fixed; inset:0; z-index:99990; display:flex; align-items:flex-start; justify-content:center; padding:32px 16px; overflow-y:auto; background:rgba(15,23,42,.55); }
.rh-jobs__embed[hidden]{ display:none; }
.rh-jobs__embed-panel{ position:relative; width:100%; max-width:960px; margin:auto 0; border-radius:14px; background:#F8FAFC; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.rh-jobs__embed iframe{ display:block; width:100%; height:520px; min-height:320px; border:0; border-radius:14px; background:transparent; }
body .rh-jobs__embed-close{ position:absolute; top:10px; right:12px; z-index:2; width:32px; height:32px; padding:0 !important; border:0 !important; border-radius:50% !important; background:#fff !important; color:#111827 !important; font-size:22px; line-height:1; box-shadow:0 1px 4px rgba(0,0,0,.2) !important; cursor:pointer; }
html.rh-modal-open{ overflow:hidden; }
@media(max-width:767px){ .rh-jobs__embed{ padding:0; } .rh-jobs__embed-panel{ border-radius:0; min-height:100%; margin:0; } .rh-jobs__embed iframe{ border-radius:0; } }


/* Post Job popup: fixed 80vh panel, the form scrolls inside the frame; spinner while it loads */
.rh-jobs__embed{ align-items:center; overflow:hidden; }
.rh-jobs__embed-panel{ height:80vh; max-height:calc(100vh - 32px); margin:0; overflow:hidden; background:#fff; }
.rh-jobs__embed iframe{ height:100%; min-height:0; }
.rh-jobs__embed.is-loading iframe{ visibility:hidden; }
.rh-jobs__embed.is-loading .rh-jobs__embed-panel::after{
    content:""; position:absolute; top:50%; left:50%; width:34px; height:34px; margin:-17px 0 0 -17px;
    border:3px solid #E5E7EB; border-top-color:#0B4EA2; border-radius:50%; animation:rh-spin .8s linear infinite;
}
@keyframes rh-spin{ to{ transform:rotate(360deg); } }
@media(max-width:767px){ .rh-jobs__embed-panel{ height:100vh; max-height:none; } }
@media(prefers-reduced-motion:reduce){ .rh-jobs__embed.is-loading .rh-jobs__embed-panel::after{ animation-duration:2s; } }


/* Post Job form opened in place of the Jobs section */
.rh-jobs.is-posting > :not(.rh-jobs__embed){ display:none !important; }
.rh-jobs__embed--inline{ position:static; inset:auto; z-index:auto; display:block; padding:0; overflow:visible; background:transparent; }
.rh-jobs__embed--inline[hidden]{ display:none; }
.rh-jobs__embed--inline .rh-jobs__embed-panel{ height:auto; max-height:none; overflow:visible; border-radius:0; background:transparent; box-shadow:none; max-width:none; }
.rh-jobs__embed--inline iframe{ height:480px; border-radius:0; }
.rh-jobs__embed--inline .rh-jobs__embed-close{ display:none; }


/* Post Job form in place: light-grey band edge to edge, white card inside (like the design) */
body:has(.rh-jobs__embed--inline:not([hidden])){ overflow-x:clip; }
.rh-jobs__embed--inline{ position:relative; isolation:isolate; padding:28px 0 44px; }
.rh-jobs__embed--inline::before{ content:""; position:absolute; z-index:-1; top:0; bottom:0; left:50%; width:100vw; transform:translateX(-50%); background:#F4F5F7; }


/* in-place form for the Directory widget (reuses the Jobs embed styles) */
.rh-dir.is-posting > :not(.rh-jobs__embed){ display:none !important; }


/* ================= Site Header ================= */
.rh-hdr{ position:relative; z-index:50; width:100%; }
.rh-hdr--sticky{ position:sticky; top:0; }
.rh-hdr, .rh-hdr *{ box-sizing:border-box; }
.rh-hdr__inner{ width:100%; margin:0 auto; padding:0 20px; }

/* announcement */
.rh-hdr__ann{ background:linear-gradient(90deg,#0A2F7A,#06205A); color:#fff; font-size:13px; font-weight:500; }
.rh-hdr__ann-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:40px; }
.rh-hdr__ann-items{ min-width:0; }
.rh-hdr__ann-item{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; }
.rh-hdr__ann-item[hidden]{ display:none; }
.rh-hdr__ann-icon{ display:inline-flex; font-size:16px; }
.rh-hdr__ann-meta{ color:#DCE8FB; }
.rh-hdr__ann-dot, .rh-hdr__ann-sep{ opacity:.6; }
.rh-hdr .rh-hdr__ann-link{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.rh-hdr__ann-nav{ display:flex; gap:8px; flex:none; }
body .rh-hdr .rh-hdr__ann-btn{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; padding:0 !important; border:0 !important; border-radius:50% !important; background:rgba(255,255,255,.18) !important; color:#fff !important; font-size:14px; cursor:pointer; box-shadow:none !important; }
@media(max-width:767px){ .rh-hdr__ann{ font-size:12px; } .rh-hdr__ann-sep{ display:none; } }

/* bar */
.rh-hdr__bar{ background:#fff; border-bottom:1px solid #E5E7EB; }
.rh-hdr__row{ display:flex; align-items:center; gap:28px; min-height:64px; }
.rh-hdr__logo{ display:inline-flex; align-items:center; flex:none; text-decoration:none; }
.rh-hdr__logo img{ display:block; height:32px; width:auto; max-width:none; }
.rh-hdr__logo-text{ font-weight:700; font-size:18px; color:#0B2A66; }
.rh-hdr__nav{ flex:1 1 auto; display:flex; justify-content:center; min-width:0; }
.rh-hdr .rh-hdr__menu{ display:flex; align-items:center; flex-wrap:wrap; gap:28px; margin:0; padding:0; list-style:none; }
.rh-hdr .rh-hdr__menu li{ margin:0; padding:0; list-style:none; }
.rh-hdr .rh-hdr__menu a{ display:inline-block; padding:6px 0; color:#374151; font-size:15px; text-decoration:none; transition:color .15s ease; }
.rh-hdr .rh-hdr__menu a:hover{ color:#0B4EA2; }
.rh-hdr .rh-hdr__menu .current-menu-item > a{ color:#0B4EA2; }

/* search */
.rh-hdr__search{ position:relative; flex:none; width:190px; }
.rh-hdr__search-field{ display:flex; align-items:center; gap:8px; height:40px; padding:0 12px; border:1px solid transparent; border-radius:8px; background:#F1F4F9; cursor:text; }
.rh-hdr__search-icon{ display:inline-flex; font-size:16px; color:#6B7280; flex:none; }
body .rh-hdr .rh-hdr__search-input{ flex:1; min-width:0; width:100%; height:100%; padding:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; outline:0; font-size:14px; color:#111827; }
.rh-hdr__search-input::placeholder{ color:#6B7280; opacity:1; }
.rh-hdr__results{ position:absolute; left:0; top:calc(100% + 8px); z-index:60; width:max(100%,320px); max-height:360px; overflow-y:auto; padding:6px; background:#fff; border:1px solid #E5E7EB; border-radius:12px; box-shadow:0 12px 30px rgba(15,23,42,.14); }
.rh-hdr__results[hidden]{ display:none; }
.rh-hdr .rh-hdr__result{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border-radius:8px; color:#111827; font-size:14px; text-decoration:none; }
.rh-hdr .rh-hdr__result:hover, .rh-hdr .rh-hdr__result.is-active{ background:#F3F6FB; }
.rh-hdr__result mark{ background:transparent; color:#0B4EA2; font-weight:600; }
.rh-hdr__result-type{ flex:none; font-size:11px; color:#6B7280; text-transform:uppercase; letter-spacing:.04em; }
.rh-hdr__result-none{ padding:12px; font-size:13px; color:#6B7280; }
.rh-hdr .rh-hdr__result-all{ display:block; margin-top:4px; padding:10px; border-top:1px solid #EEF1F6; font-size:13px; font-weight:500; color:#0B4EA2; text-decoration:none; }

/* buttons + member */
.rh-hdr__actions{ display:flex; align-items:center; gap:12px; flex:none; }
.rh-hdr .rh-hdr__btn{ display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 18px; border:1px solid transparent; border-radius:8px; font-size:14px; font-weight:500; line-height:1; text-decoration:none; white-space:nowrap; transition:background .15s ease,color .15s ease; }
.rh-hdr .rh-hdr__btn--signin{ color:#0B4EA2; background:#fff; border-color:#0B4EA2; }
.rh-hdr .rh-hdr__btn--signin:hover{ background:#EEF4FC; }
.rh-hdr .rh-hdr__btn--join{ color:#fff; background:#0B4EA2; border-color:#0B4EA2; }
.rh-hdr .rh-hdr__btn--join:hover{ background:#093F82; }
.rh-hdr__user{ position:relative; }
body .rh-hdr .rh-hdr__user-btn{ display:inline-flex; align-items:center; gap:10px; padding:0 !important; border:0 !important; background:transparent !important; box-shadow:none !important; color:#374151; font-size:14px; cursor:pointer; }
.rh-hdr__avatar{ display:block; width:36px; height:36px; border-radius:50%; object-fit:cover; flex:none; }
.rh-hdr__user-name{ max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rh-hdr__chev{ display:inline-flex; font-size:14px; color:#6B7280; }
.rh-hdr__dropdown{ position:absolute; right:0; top:calc(100% + 10px); z-index:60; min-width:220px; padding:6px; background:#fff; border:1px solid #E5E7EB; border-radius:12px; box-shadow:0 12px 30px rgba(15,23,42,.14); }
.rh-hdr__dropdown[hidden]{ display:none; }
.rh-hdr .rh-hdr__dd-list{ margin:0; padding:0; list-style:none; }
.rh-hdr .rh-hdr__dropdown a{ display:block; padding:10px 12px; border-radius:8px; color:#111827; font-size:14px; text-decoration:none; }
.rh-hdr .rh-hdr__dropdown a:hover{ background:#F3F6FB; }
.rh-hdr .rh-hdr__logout{ margin-top:4px; border-top:1px solid #EEF1F6; border-radius:0 0 8px 8px !important; color:#B42318 !important; }

/* mobile: burger + slide-in panel */
body .rh-hdr .rh-hdr__burger{ display:none; margin-left:auto; padding:6px !important; border:0 !important; background:transparent !important; box-shadow:none !important; color:#111827; cursor:pointer; line-height:0; }
.rh-hdr__burger svg{ width:26px; height:auto; }
.rh-hdr__drawer{ position:fixed; inset:0; z-index:99995; }
.rh-hdr__drawer[hidden]{ display:none; }
.rh-hdr__overlay{ position:absolute; inset:0; background:rgba(2,10,30,.55); }
.rh-hdr__panel{ position:absolute; top:0; bottom:0; width:240px; max-width:88vw; overflow-y:auto; padding:22px 20px 28px; background:#02224D; color:#fff; box-shadow:-10px 0 30px rgba(0,0,0,.3); animation:rh-hdr-in .22s ease; }
.rh-hdr__drawer--right .rh-hdr__panel{ right:0; }
.rh-hdr__drawer--left .rh-hdr__panel{ left:0; animation-name:rh-hdr-in-l; box-shadow:10px 0 30px rgba(0,0,0,.3); }
@keyframes rh-hdr-in{ from{ transform:translateX(100%); } to{ transform:none; } }
@keyframes rh-hdr-in-l{ from{ transform:translateX(-100%); } to{ transform:none; } }
.rh-hdr__panel-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; }
.rh-hdr__panel-title{ font-size:20px; font-weight:500; }
body .rh-hdr .rh-hdr__panel-close{ padding:4px !important; border:0 !important; background:transparent !important; box-shadow:none !important; color:#fff !important; font-size:22px; line-height:0; cursor:pointer; }
.rh-hdr__panel .rh-hdr__menu{ flex-direction:column; align-items:flex-start; flex-wrap:nowrap; gap:22px; }
.rh-hdr__panel .rh-hdr__menu a{ color:#fff; font-size:16px; padding:0; }
.rh-hdr__panel .rh-hdr__menu a:hover, .rh-hdr__panel .rh-hdr__menu .current-menu-item > a{ color:#8DB8FF; }
.rh-hdr__panel .rh-hdr__search{ width:100%; margin:0 0 22px; }
.rh-hdr__panel .rh-hdr__search-field{ background:rgba(255,255,255,.1); }
.rh-hdr__panel .rh-hdr__search-icon{ color:rgba(255,255,255,.7); }
body .rh-hdr .rh-hdr__panel .rh-hdr__search-input{ color:#fff; }
.rh-hdr__panel .rh-hdr__search-input::placeholder{ color:rgba(255,255,255,.7); }
.rh-hdr__panel .rh-hdr__results{ position:static; width:100%; margin-top:8px; }
.rh-hdr__panel-sec{ margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); }
.rh-hdr__panel-btns{ display:flex; flex-direction:column; gap:10px; }
.rh-hdr__panel-btns .rh-hdr__btn{ width:100%; }
.rh-hdr__panel .rh-hdr__btn--signin{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.rh-hdr__panel .rh-hdr__btn--signin:hover{ background:rgba(255,255,255,.1); }
.rh-hdr__panel-who{ display:flex; align-items:center; gap:12px; margin-bottom:16px; font-weight:500; }
.rh-hdr .rh-hdr__panel-logout{ display:inline-block; margin-top:18px; color:#FFB4A9; font-size:15px; text-decoration:none; }
html.rh-hdr-lock{ overflow:hidden; }
@media(max-width:1024px){ .rh-hdr__row{ min-height:56px; } }
@media(prefers-reduced-motion:reduce){ .rh-hdr__panel{ animation:none; } }
