.npe-events{
    --npe-text:#3f4348;
    --npe-muted:#96999d;
    --npe-line:#dfe4df;
    width:100%;
}
.npe-event-item{
    display:grid;
    grid-template-columns:minmax(200px,245px) minmax(0,1fr) 74px;
    gap:24px;
    align-items:start;
    padding:28px 0 44px;
}
.npe-event-thumb a{display:block;text-decoration:none}
.npe-event-thumb img,
.npe-thumb-placeholder{
    width:100%;
    aspect-ratio:4/3;
    display:flex;
    align-items:center;
    justify-content:center;
    object-fit:cover;
    border-radius:12px;
    overflow:hidden;
}
.npe-thumb-placeholder{
    flex-direction:column;
    gap:8px;
    background:#eef3eb;
    color:var(--npe-accent);
    font-size:13px;
    font-weight:700;
    letter-spacing:.08em;
}
.npe-thumb-placeholder .npe-icon{width:30px;height:30px}
.npe-event-content{min-width:0;padding-top:0}
.npe-event-title{
    margin:0 0 6px;
    font-size:clamp(24px,2.1vw,34px);
    line-height:1.03;
    font-weight:700;
    letter-spacing:-.02em;
}
.npe-event-title a{color:var(--npe-text);text-decoration:none}
.npe-event-title a:hover{color:var(--npe-accent)}
.npe-event-type{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:18px;
    margin:5px 0 14px;
    color:var(--npe-muted);
    font-size:13px;
    line-height:1.2;
    text-transform:uppercase;
}
.npe-type-bar{width:4px;height:16px;background:var(--npe-accent);display:inline-block;flex:0 0 auto}
.npe-event-meta{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.npe-meta-row{display:flex;align-items:center;gap:9px;color:var(--npe-text);font-size:17px;line-height:1.35}
.npe-icon{flex:0 0 auto;color:currentColor}
.npe-calendar-row{color:var(--npe-accent)}
.npe-calendar-row a{color:var(--npe-accent);text-decoration:none}
.npe-calendar-row a:hover{text-decoration:underline}
.npe-event-excerpt{max-width:620px;color:var(--npe-muted);font-size:17px;line-height:1.55}
.npe-date-rail{display:flex;flex-direction:column;align-items:center;width:70px;padding-top:0}
.npe-date-card{
    width:70px;
    border:1px solid var(--npe-accent);
    border-radius:10px;
    overflow:hidden;
    background:#fff;
    text-align:center;
    color:var(--npe-text);
    line-height:1;
    box-sizing:border-box;
}
.npe-date-month{display:block;padding:6px 3px 2px;font-size:14px;font-weight:700}
.npe-date-day{display:block;padding:0 3px 5px;font-size:26px;font-weight:700}
.npe-date-year{display:block;padding:5px 3px 4px;background:var(--npe-accent);color:#fff;font-size:12px;font-weight:700}
.npe-date-connector{display:block;width:1px;height:28px;background:var(--npe-accent);opacity:.8}
.npe-month-separator{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    margin:0 0 5px;
}
.npe-month-separator span{
    display:inline-block;
    min-width:180px;
    padding:4px 18px 5px;
    border-radius:999px;
    background:var(--npe-accent);
    color:#fff;
    text-align:center;
    font-size:15px;
    font-weight:700;
    line-height:1.2;
}
.npe-empty{padding:20px 0;color:var(--npe-muted)}

@media (max-width:900px){
    .npe-event-item{grid-template-columns:190px minmax(0,1fr) 70px;gap:18px}
    .npe-event-title{font-size:26px}
    .npe-event-excerpt,.npe-meta-row{font-size:16px}
}
@media (max-width:700px){
    .npe-event-item{grid-template-columns:120px minmax(0,1fr);gap:15px;padding:22px 0 34px}
    .npe-event-title{font-size:22px;line-height:1.1}
    .npe-event-type{margin-bottom:10px}
    .npe-event-excerpt{font-size:15px}
    .npe-meta-row{font-size:15px;gap:7px}
    .npe-date-rail{
        grid-column:1/-1;
        width:100%;
        flex-direction:row;
        justify-content:flex-end;
        align-items:center;
        margin-top:-4px;
    }
    .npe-date-connector{width:28px;height:1px}
    .npe-date-card{width:64px}
    .npe-date-day{font-size:23px}
}
@media (max-width:480px){
    .npe-event-item{grid-template-columns:1fr}
    .npe-event-thumb{max-width:100%}
    .npe-event-thumb img,.npe-thumb-placeholder{aspect-ratio:16/9}
    .npe-date-rail{grid-column:1;justify-content:flex-start}
    .npe-month-separator span{min-width:155px}
}


/* Compact upcoming-events sidebar */
.npe-upcoming-sidebar{
    --npe-sidebar-divider:#dfe5dd;
    width:100%;
}
.npe-sidebar-event{
    position:relative;
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:16px;
    align-items:start;
    padding:0 0 24px;
}
/* A restrained neutral divider separates events without competing with the green date rail.
   The line is centered within the card and intentionally shorter than the full content width. */
.npe-sidebar-event + .npe-sidebar-event{
    padding-top:24px;
}
.npe-sidebar-event + .npe-sidebar-event::before{
    content:"";
    position:absolute;
    top:0;
    left:8%;
    right:8%;
    height:1px;
    background:var(--npe-sidebar-divider);
}
.npe-sidebar-event:last-child{padding-bottom:0}
.npe-sidebar-date-rail{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:70px;
}
.npe-upcoming-sidebar .npe-date-card{
    width:70px;
    border-radius:9px;
}
.npe-upcoming-sidebar .npe-date-month{
    padding:6px 3px 2px;
    font-size:13px;
}
.npe-upcoming-sidebar .npe-date-day{
    padding:0 3px 5px;
    font-size:25px;
}
.npe-upcoming-sidebar .npe-date-year{
    padding:5px 3px 4px;
    font-size:11px;
}
.npe-upcoming-sidebar .npe-date-connector{
    width:1px;
    height:22px;
}
.npe-sidebar-event-content{
    min-width:0;
    padding-top:2px;
}
.npe-sidebar-event-title{
    margin:0 0 8px;
    font-size:15px;
    line-height:1.35;
    font-weight:650;
    letter-spacing:0;
}
.npe-sidebar-event-title a{
    color:var(--npe-text);
    text-decoration:none;
}
.npe-sidebar-event-title a:hover{color:var(--npe-accent)}
.npe-sidebar-event-type{
    display:flex;
    align-items:flex-start;
    gap:7px;
    color:var(--npe-muted);
    font-size:11px;
    line-height:1.25;
    text-transform:uppercase;
}
.npe-sidebar-event-type .npe-type-bar{
    width:3px;
    height:13px;
}
.npe-sidebar-empty{
    padding:4px 0;
    font-size:14px;
}
@media (max-width:480px){
    .npe-sidebar-event{
        grid-template-columns:64px minmax(0,1fr);
        gap:14px;
    }
    .npe-sidebar-date-rail,
    .npe-upcoming-sidebar .npe-date-card{width:64px}
}


/* Upcoming / Past status switch (ToR requirement) */
.npe-events-view{
    width:100%;
}
.npe-status-tabs{
    display:flex;
    align-items:flex-end;
    gap:34px;
    margin:0 0 24px;
    border-bottom:1px solid var(--npe-line,#dfe4df);
}
.npe-status-tab{
    position:relative;
    display:inline-block;
    padding:0 0 13px;
    color:var(--npe-text,#3f4348);
    font-size:18px;
    font-weight:600;
    line-height:1.3;
    text-decoration:none !important;
    white-space:nowrap;
}
.npe-status-tab:hover,
.npe-status-tab:focus-visible{
    color:var(--npe-accent);
    outline:none;
}
.npe-status-tab.is-active{
    color:var(--npe-accent);
}
.npe-status-tab.is-active::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-1px;
    height:3px;
    border-radius:999px 999px 0 0;
    background:var(--npe-accent);
}
.npe-event-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:4px;
    padding:3px 7px 2px;
    border:1px solid currentColor;
    border-radius:999px;
    font-size:10px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.03em;
    text-transform:uppercase;
}
.npe-event-status--upcoming{
    color:var(--npe-accent);
    background:color-mix(in srgb, var(--npe-accent) 7%, white);
}
.npe-event-status--past{
    color:#7b817e;
    background:#f4f5f4;
}
@supports not (background:color-mix(in srgb, #000 7%, white)){
    .npe-event-status--upcoming{background:#f3f7f1}
}
@media (max-width:700px){
    .npe-status-tabs{gap:24px;margin-bottom:18px}
    .npe-status-tab{font-size:16px;padding-bottom:11px}
}
@media (max-width:380px){
    .npe-status-tabs{gap:18px}
    .npe-status-tab{font-size:15px}
}


/* Sidebar Upcoming / Past filter (v1.3.0) */
.npe-status-filter{
    --npe-status-filter-text:#1f2b26;
    --npe-status-filter-line:#e2e7e4;
    --npe-status-filter-hover:#f4f7f3;
    --npe-status-filter-active:#eef5ea;
    width:100%;
    color:var(--npe-status-filter-text);
    font-family:inherit;
    font-size:16px;
    line-height:1.45;
}
.npe-status-filter__heading{
    margin:0 0 22px;
}
.npe-status-filter__title{
    margin:0 !important;
    padding:0 !important;
    font-family:inherit !important;
    font-size:28px !important;
    font-weight:400 !important;
    line-height:1.2 !important;
    letter-spacing:-.015em;
    white-space:nowrap;
    color:var(--npe-status-filter-text);
}
.npe-status-filter__accent{
    display:block;
    width:60px;
    height:3px;
    margin-top:26px;
    border-radius:999px;
    background:var(--npe-accent);
}
.npe-status-filter__list{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    border-top:1px solid var(--npe-status-filter-line);
}
.npe-status-filter__item{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    border-bottom:1px solid var(--npe-status-filter-line);
}
.npe-status-filter__link{
    position:relative;
    display:block;
    min-height:48px;
    padding:12px 14px 12px 18px;
    box-sizing:border-box;
    font-family:inherit !important;
    font-size:16px !important;
    font-weight:400 !important;
    line-height:1.45 !important;
    color:var(--npe-status-filter-text) !important;
    text-decoration:none !important;
    background:transparent;
    transition:background-color .18s ease,color .18s ease,padding-left .18s ease;
}
.npe-status-filter__link::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:3px;
    height:0;
    border-radius:999px;
    background:var(--npe-accent);
    transform:translateY(-50%);
    transition:height .18s ease;
}
.npe-status-filter__link:hover,
.npe-status-filter__link:focus-visible{
    color:var(--npe-accent) !important;
    background:var(--npe-status-filter-hover);
    padding-left:22px;
    outline:none;
}
.npe-status-filter__link:hover::before,
.npe-status-filter__link:focus-visible::before{
    height:22px;
}
.npe-status-filter__item.is-active .npe-status-filter__link{
    color:var(--npe-accent) !important;
    font-weight:600 !important;
    background:var(--npe-status-filter-active);
}
.npe-status-filter__item.is-active .npe-status-filter__link::before{
    height:28px;
}
@media (max-width:767px){
    .npe-status-filter__title{
        font-size:26px !important;
    }
    .npe-status-filter__accent{
        margin-top:20px;
    }
    .npe-status-filter__link{
        min-height:46px;
    }
}
@media (max-width:340px){
    .npe-status-filter__title{
        font-size:24px !important;
        white-space:normal;
    }
}


/* v1.3.0 — Event location and Event Information */
.npe-location-row{
    color:#4f5a54;
}

.npe-event-information{
    --npe-info-text:#1f2b26;
    --npe-info-muted:#68716c;
    --npe-info-line:#e2e7e4;
    width:100%;
    color:var(--npe-info-text);
    font-family:inherit;
}
.npe-event-information__heading{
    margin:0 0 22px;
}
.npe-event-information__title{
    margin:0 !important;
    padding:0 !important;
    font-family:inherit !important;
    font-size:28px !important;
    font-weight:400 !important;
    line-height:1.2 !important;
    letter-spacing:-.015em;
    color:var(--npe-info-text);
}
.npe-event-information__accent{
    display:block;
    width:60px;
    height:3px;
    margin-top:26px;
    border-radius:999px;
    background:var(--npe-accent);
}
.npe-event-information__items{
    border-top:1px solid var(--npe-info-line);
}
.npe-event-information__item{
    padding:13px 0;
    border-bottom:1px solid var(--npe-info-line);
}
.npe-event-information__label{
    margin-bottom:3px;
    color:var(--npe-info-muted);
    font-size:12px;
    font-weight:600;
    line-height:1.3;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.npe-event-information__value{
    color:var(--npe-info-text);
    font-size:15px;
    line-height:1.5;
}
.npe-event-information__calendar{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:16px;
}
.npe-event-information__calendar .npe-icon{
    color:var(--npe-accent);
}
.npe-event-information__calendar a{
    color:var(--npe-accent) !important;
    font-weight:600;
    text-decoration:none !important;
}
.npe-event-information__calendar a:hover,
.npe-event-information__calendar a:focus-visible{
    text-decoration:underline !important;
}
@media(max-width:767px){
    .npe-event-information__title{
        font-size:26px !important;
    }
    .npe-event-information__accent{
        margin-top:20px;
    }
}


/* Homepage upcoming events grid */
.npe-upcoming-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:32px;
    width:100%;
}
.npe-grid-event{
    min-width:0;
}
.npe-grid-thumb a{
    display:block;
}
.npe-grid-thumb img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:12px;
}
.npe-grid-meta{
    display:flex;
    align-items:flex-start;
    gap:16px;
    margin-top:22px;
}
.npe-grid-meta .npe-date-card{
    flex:0 0 70px;
}
.npe-grid-content{
    min-width:0;
}
.npe-grid-title{
    margin:0 0 8px;
    font-size:22px;
    line-height:1.18;
    font-weight:700;
}
.npe-grid-title a{
    color:var(--npe-text);
    text-decoration:none;
}
.npe-grid-title a:hover{
    color:var(--npe-accent);
}
.npe-grid-type{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--npe-muted);
    font-size:13px;
    text-transform:uppercase;
}

@media(max-width:900px){
    .npe-upcoming-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .npe-upcoming-grid{
        grid-template-columns:1fr;
    }
}
