/**
 * EventFlow Public Application
 */

:root {
    --eventflow-content-width: 1200px;
    --eventflow-space-1: 0.25rem;
    --eventflow-space-2: 0.5rem;
    --eventflow-space-3: 0.75rem;
    --eventflow-space-4: 1rem;
    --eventflow-space-5: 1.5rem;
    --eventflow-space-6: 2rem;
    --eventflow-space-7: 3rem;
    --eventflow-space-8: 4rem;
    --eventflow-radius-sm: 0.375rem;
    --eventflow-radius-md: 0.75rem;
    --eventflow-radius-lg: 1rem;
    --eventflow-color-text: #0f172a;
    --eventflow-color-muted: #64748b;
    --eventflow-color-surface: #ffffff;
    --eventflow-color-surface-alt: #f8fafc;
    --eventflow-color-border: rgba(15, 23, 42, 0.14);
    --eventflow-color-primary: #2563eb;
    --eventflow-color-primary-contrast: #ffffff;
    --eventflow-color-open: #15803d;
    --eventflow-color-limited: #a16207;
    --eventflow-color-waitlist: #1d4ed8;
    --eventflow-color-sold-out: #b91c1c;
    --eventflow-color-closed: #475569;
    --eventflow-shadow-card: 0 12px 30px rgba(15, 23, 42, 0.08);
    --eventflow-transition: 180ms ease;
}

.eventflow-public,
.eventflow-directory {
    box-sizing: border-box;
    color: var(--eventflow-color-text);
}

.eventflow-public *,
.eventflow-public *::before,
.eventflow-public *::after,
.eventflow-directory *,
.eventflow-directory *::before,
.eventflow-directory *::after {
    box-sizing: inherit;
}

.eventflow-public {
    padding: var(--eventflow-space-8) 1.25rem;
}

.eventflow-public__container {
    margin: 0 auto;
    max-width: var(--eventflow-content-width);
    width: 100%;
}

.eventflow-public__header {
    margin-bottom: var(--eventflow-space-7);
}

.eventflow-public__eyebrow {
    color: var(--eventflow-color-muted);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin: 0 0 var(--eventflow-space-2);
    text-transform: uppercase;
}

.eventflow-public__title {
    font: inherit;
    font-size: clamp(2rem, 5vw, 4rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.05;
    margin: 0;
}

.eventflow-public__intro {
    color: var(--eventflow-color-muted);
    font-size: 1.05rem;
    line-height: 1.7;
    margin: var(--eventflow-space-5) 0 0;
    max-width: 48rem;
}

.eventflow-directory__grid {
    display: grid;
    gap: var(--eventflow-space-6);
    grid-template-columns: repeat(
        var(--eventflow-directory-columns, 3),
        minmax(0, 1fr)
    );
}

.eventflow-event-card {
    background: var(--eventflow-color-surface);
    border: 1px solid var(--eventflow-color-border);
    border-radius: var(--eventflow-radius-lg);
    box-shadow: var(--eventflow-shadow-card);
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition:
        box-shadow var(--eventflow-transition),
        transform var(--eventflow-transition);
}

.eventflow-event-card:hover {
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.13);
    transform: translateY(-2px);
}

.eventflow-event-card__media {
    aspect-ratio: 16 / 9;
    background: var(--eventflow-color-surface-alt);
    display: block;
    overflow: hidden;
}

.eventflow-event-card__media img {
    height: 100%;
    object-fit: cover;
    transition: transform var(--eventflow-transition);
    width: 100%;
}

.eventflow-event-card:hover .eventflow-event-card__media img {
    transform: scale(1.025);
}

.eventflow-event-card__media--placeholder {
    align-items: center;
    background:
        radial-gradient(
            circle at top right,
            rgba(37, 99, 235, 0.18),
            transparent 48%
        ),
        var(--eventflow-color-surface-alt);
    color: var(--eventflow-color-muted);
    display: flex;
    font-size: 0.75rem;
    font-weight: 700;
    justify-content: center;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.eventflow-event-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: var(--eventflow-space-5);
}

.eventflow-event-card__date {
    color: var(--eventflow-color-primary);
    font-size: 0.875rem;
    font-weight: 700;
    margin: 0 0 var(--eventflow-space-3);
}

.eventflow-event-card__title {
    font: inherit;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.eventflow-event-card__title a {
    color: inherit;
    text-decoration: none;
}

.eventflow-event-card__title a:hover {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.eventflow-event-card__location {
    color: var(--eventflow-color-muted);
    font-size: 0.9rem;
    line-height: 1.5;
    margin: var(--eventflow-space-3) 0 0;
}

.eventflow-event-card__excerpt {
    color: var(--eventflow-color-muted);
    line-height: 1.65;
    margin: var(--eventflow-space-4) 0 0;
}

.eventflow-event-card__footer {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--eventflow-space-4);
    justify-content: space-between;
    margin-top: auto;
    padding-top: var(--eventflow-space-5);
}

.eventflow-status {
    border: 1px solid currentColor;
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
    padding: 0.5rem 0.7rem;
}

.eventflow-status--open {
    color: var(--eventflow-color-open);
}

.eventflow-status--limited {
    color: var(--eventflow-color-limited);
}

.eventflow-status--waitlist {
    color: var(--eventflow-color-waitlist);
}

.eventflow-status--sold-out {
    color: var(--eventflow-color-sold-out);
}

.eventflow-status--closed,
.eventflow-status--completed {
    color: var(--eventflow-color-closed);
}

.eventflow-event-card__link {
    align-items: center;
    color: var(--eventflow-color-primary);
    display: inline-flex;
    font-weight: 700;
    gap: var(--eventflow-space-2);
    text-decoration: none;
}

.eventflow-event-card__link:hover {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.eventflow-event-card a:focus-visible,
.eventflow-pagination a:focus-visible {
    outline: 3px solid var(--eventflow-color-primary);
    outline-offset: 3px;
}

.eventflow-empty-state {
    background: var(--eventflow-color-surface-alt);
    border: 1px solid var(--eventflow-color-border);
    border-radius: var(--eventflow-radius-lg);
    padding: var(--eventflow-space-7);
    text-align: center;
}

.eventflow-empty-state h2 {
    font: inherit;
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0;
}

.eventflow-empty-state p {
    color: var(--eventflow-color-muted);
    margin: var(--eventflow-space-3) 0 0;
}

.eventflow-pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--eventflow-space-2);
    justify-content: center;
    margin-top: var(--eventflow-space-7);
}

.eventflow-pagination .page-numbers {
    align-items: center;
    border: 1px solid var(--eventflow-color-border);
    border-radius: var(--eventflow-radius-sm);
    color: var(--eventflow-color-text);
    display: inline-flex;
    justify-content: center;
    min-height: 2.75rem;
    min-width: 2.75rem;
    padding: 0.5rem 0.75rem;
    text-decoration: none;
}

.eventflow-pagination .page-numbers.current {
    background: var(--eventflow-color-primary);
    border-color: var(--eventflow-color-primary);
    color: var(--eventflow-color-primary-contrast);
}

.eventflow-framework-placeholder {
    align-items: flex-start;
    background: var(--eventflow-color-surface);
    border: 1px dashed var(--eventflow-color-border);
    border-radius: var(--eventflow-radius-md);
    display: flex;
    flex-direction: column;
    gap: var(--eventflow-space-2);
    padding: var(--eventflow-space-5);
}

.eventflow-framework-placeholder span {
    color: var(--eventflow-color-muted);
}

@media (max-width: 1023px) {
    .eventflow-directory__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 639px) {
    .eventflow-public {
        padding: var(--eventflow-space-7) 1rem;
    }

    .eventflow-directory__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .eventflow-event-card__footer {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .eventflow-event-card,
    .eventflow-event-card__media img {
        transition: none;
    }

    .eventflow-event-card:hover,
    .eventflow-event-card:hover .eventflow-event-card__media img {
        transform: none;
    }
}

/* EF-FE.002B.3 — Event Card 2.0 */
.eventflow-event-card__media {
    position: relative;
}

.eventflow-event-card__placeholder {
    align-items: center;
    background: radial-gradient(circle at top right, rgba(37, 99, 235, 0.2), transparent 48%), var(--eventflow-color-surface-alt);
    color: var(--eventflow-color-muted);
    display: flex;
    font-size: 0.8rem;
    font-weight: 800;
    height: 100%;
    justify-content: center;
    letter-spacing: 0.14em;
    width: 100%;
}

.eventflow-event-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    left: 0.875rem;
    position: absolute;
    right: 0.875rem;
    top: 0.875rem;
}

.eventflow-event-card__badge {
    backdrop-filter: blur(8px);
    background: rgba(15, 23, 42, 0.82);
    border-radius: 999px;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
    padding: 0.55rem 0.7rem;
    text-transform: uppercase;
}

.eventflow-event-card__badge--featured { background: #f59e0b; color: #111827; }
.eventflow-event-card__badge--open { background: #15803d; }
.eventflow-event-card__badge--limited { background: #b45309; }
.eventflow-event-card__badge--waitlist { background: #6d28d9; }
.eventflow-event-card__badge--sold-out,
.eventflow-event-card__badge--closed,
.eventflow-event-card__badge--completed { background: #475569; }

.eventflow-event-card__date,
.eventflow-event-card__location {
    align-items: flex-start;
    display: flex;
    gap: 0.5rem;
}

.eventflow-event-card__excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.eventflow-event-card__capacity {
    margin-top: var(--eventflow-space-5);
}

.eventflow-event-card__capacity-label {
    color: var(--eventflow-color-muted);
    display: flex;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 0.55rem;
}

.eventflow-event-card__capacity-track {
    background: var(--eventflow-color-surface-alt);
    border-radius: 999px;
    display: block;
    height: 0.5rem;
    overflow: hidden;
}

.eventflow-event-card__capacity-fill {
    background: var(--eventflow-color-primary);
    border-radius: inherit;
    display: block;
    height: 100%;
    transition: width var(--eventflow-transition);
}

.eventflow-event-card__footer {
    padding-top: var(--eventflow-space-5);
}

.eventflow-event-card__cta {
    align-items: center;
    border: 1px solid var(--eventflow-color-primary);
    border-radius: 0.65rem;
    display: inline-flex;
    font-weight: 800;
    gap: 0.6rem;
    justify-content: center;
    min-height: 2.85rem;
    padding: 0.7rem 1rem;
    text-decoration: none;
    transition: transform var(--eventflow-transition), box-shadow var(--eventflow-transition), background var(--eventflow-transition);
    width: 100%;
}

.eventflow-event-card__cta--primary,
.eventflow-event-card__cta--waitlist {
    background: var(--eventflow-color-primary);
    color: #fff;
}

.eventflow-event-card__cta--secondary {
    background: transparent;
    color: var(--eventflow-color-primary);
}

.eventflow-event-card__cta:hover {
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.14);
    transform: translateY(-1px);
}

.eventflow-event-card__cta:focus-visible {
    outline: 3px solid var(--eventflow-color-primary);
    outline-offset: 3px;
}

/* EF-FE.002B.4 — Responsive Event Card Polish */

.eventflow-directory--featured-shortcode {
    margin-inline: 50%;
    max-width: 1200px;
    transform: translateX(-50%);
    width: min(1200px, calc(100vw - 48px));
}

.eventflow-directory--featured-shortcode .eventflow-directory__grid {
    align-items: stretch;
    gap: clamp(1.25rem, 2.25vw, 2rem);
}

.eventflow-event-card {
    border-radius: 1rem;
    height: 100%;
    min-width: 0;
}

.eventflow-event-card__media {
    aspect-ratio: 16 / 9;
    min-height: 0;
}

.eventflow-event-card__image,
.eventflow-event-card__placeholder {
    height: 100%;
    width: 100%;
}

.eventflow-event-card__placeholder {
    background:
        radial-gradient(circle at 78% 12%, rgba(37, 99, 235, 0.22), transparent 42%),
        linear-gradient(145deg, #f8fafc 0%, #eef4ff 100%);
    font-size: 1rem;
}

.eventflow-event-card__badges {
    align-items: flex-start;
    gap: 0.45rem;
    left: 1rem;
    right: 1rem;
    top: 1rem;
}

.eventflow-event-card__badge {
    font-size: 0.68rem;
    padding: 0.5rem 0.68rem;
}

.eventflow-event-card__body {
    gap: 0;
    padding: clamp(1.15rem, 2vw, 1.5rem);
}

.eventflow-event-card__date {
    font-size: 0.9rem;
    line-height: 1.45;
    margin-bottom: 0.65rem;
}

.eventflow-event-card__date > span,
.eventflow-event-card__location > span {
    flex: 0 0 auto;
    margin-top: 0.08em;
}

.eventflow-event-card__title {
    font-size: clamp(1.2rem, 1.55vw, 1.45rem);
    line-height: 1.2;
}

.eventflow-event-card__location {
    font-size: 0.9rem;
    line-height: 1.55;
    margin-top: 0.8rem;
}

.eventflow-event-card__excerpt {
    font-size: 0.98rem;
    line-height: 1.55;
    margin-top: 1rem;
    min-height: calc(1.55em * 3);
}

.eventflow-event-card__capacity {
    margin-top: 1.1rem;
    min-height: 2.35rem;
}

.eventflow-event-card__capacity-label {
    font-size: 0.76rem;
    margin-bottom: 0.45rem;
}

.eventflow-event-card__capacity-track {
    height: 0.42rem;
}

.eventflow-event-card__footer {
    margin-top: auto;
    padding-top: 1.15rem;
}

.eventflow-event-card__cta {
    border-radius: 0.65rem;
    font-size: 0.98rem;
    min-height: 2.9rem;
    padding: 0.72rem 0.9rem;
    width: 100%;
}

.eventflow-event-card__cta > span {
    margin-left: auto;
}

@media (min-width: 1024px) {
    .eventflow-directory--featured-shortcode .eventflow-directory__grid {
        grid-template-columns:
            repeat(
                var(--eventflow-directory-columns, 3),
                minmax(280px, 1fr)
            );
    }
}

@media (min-width: 640px) and (max-width: 1023px) {
    .eventflow-directory--featured-shortcode {
        width: min(760px, calc(100vw - 36px));
    }

    .eventflow-directory--featured-shortcode .eventflow-directory__grid {
        grid-template-columns: repeat(2, minmax(260px, 1fr));
    }
}

@media (max-width: 639px) {
    .eventflow-directory--featured-shortcode {
        margin-inline: 0;
        max-width: none;
        transform: none;
        width: 100%;
    }

    .eventflow-directory--featured-shortcode .eventflow-directory__grid {
        gap: 1.25rem;
        grid-template-columns: minmax(0, 1fr);
    }

    .eventflow-event-card__excerpt,
    .eventflow-event-card__capacity {
        min-height: 0;
    }

    .eventflow-event-card__footer,
    .eventflow-event-card__cta {
        width: 100%;
    }
}

/* /EF-FE.002B.4 */

/* EF-FE.002B.4A — Featured Grid Justification */

/*
 * Full-bleed shortcode wrapper centered on the browser viewport.
 * This replaces the previous margin/transform centering trick that
 * could pull the first card off-screen inside narrow theme containers.
 */
.eventflow-directory--featured-shortcode {
    box-sizing: border-box;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-width: none;
    transform: none;
    width: 100vw;
}

.eventflow-directory--featured-shortcode .eventflow-directory__grid {
    box-sizing: border-box;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
    max-width: 1200px;
    padding-left: 24px;
    padding-right: 24px;
    width: 100%;
}

@media (min-width: 1024px) {
    .eventflow-directory--featured-shortcode .eventflow-directory__grid {
        grid-template-columns:
            repeat(
                var(--eventflow-directory-columns, 3),
                minmax(280px, 360px)
            );
    }
}

@media (min-width: 640px) and (max-width: 1023px) {
    .eventflow-directory--featured-shortcode {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        width: 100vw;
    }

    .eventflow-directory--featured-shortcode .eventflow-directory__grid {
        grid-template-columns: repeat(2, minmax(260px, 340px));
        padding-left: 18px;
        padding-right: 18px;
    }
}

@media (max-width: 639px) {
    .eventflow-directory--featured-shortcode {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        width: 100vw;
    }

    .eventflow-directory--featured-shortcode .eventflow-directory__grid {
        grid-template-columns: minmax(0, 1fr);
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* /EF-FE.002B.4A */

/* EF-FE.003A.2A — Directory UX Foundation */

.eventflow-directory__toolbar {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin: 0 0 1.25rem;
}

.eventflow-directory__results {
    align-items: baseline;
    color: #475569;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    line-height: 1.35;
}

.eventflow-directory__results strong {
    color: #172033;
    font-size: 1rem;
    font-weight: 750;
}

.eventflow-directory__results span {
    font-size: 0.84rem;
}

@media (max-width: 640px) {
    .eventflow-directory__toolbar {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* /EF-FE.003A.2A */

/* EF-FE.003A.3A — Hide Public Results Counter */

.eventflow-directory__results {
    display: none !important;
}

.eventflow-directory__toolbar:has(.eventflow-directory__results:only-child) {
    display: none !important;
    margin: 0 !important;
}

/* /EF-FE.003A.3A */

/* EF-FE.003A.3B — Align Filter + Directory */

.eventflow-directory {
    box-sizing: border-box;
    left: 50%;
    max-width: 1144px;
    position: relative;
    transform: translateX(-50%);
    width: min(1144px, calc(100vw - 48px));
}

@media (max-width: 1023px) {
    .eventflow-directory {
        width: min(1144px, calc(100vw - 36px));
    }
}

@media (max-width: 639px) {
    .eventflow-directory {
        width: calc(100vw - 24px);
    }
}

/* /EF-FE.003A.3B */

/* EF-FE.003A.3C — Viewport Alignment Fix */

.eventflow-directory {
    box-sizing: border-box !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    max-width: none !important;

    width: min(1144px, calc(100vw - 48px)) !important;

    margin-left:
        calc(
            50% - 50vw
            + (
                100vw
                - min(1144px, calc(100vw - 48px))
            ) / 2
        ) !important;

    margin-right: 0 !important;
}

@media (max-width: 1023px) {
    .eventflow-directory {
        width: min(1144px, calc(100vw - 36px)) !important;

        margin-left:
            calc(
                50% - 50vw
                + (
                    100vw
                    - min(1144px, calc(100vw - 36px))
                ) / 2
            ) !important;
    }
}

@media (max-width: 639px) {
    .eventflow-directory {
        width: calc(100vw - 24px) !important;

        margin-left:
            calc(
                50% - 50vw + 12px
            ) !important;
    }
}

/* /EF-FE.003A.3C */

/* EF-FE.003B.1D — Compact Event Card */

.eventflow-compact-card {
    background: var(--eventflow-tile-card-background, #fff);
    border: 1px solid var(--eventflow-tile-card-border, #cfd5dc);
    border-radius: var(--eventflow-tile-card-radius, 14px);
    box-shadow: var(--eventflow-tile-card-shadow, 0 1px 2px rgba(15, 23, 42, .04));
    color: #29495a;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 250px;
    overflow: hidden;
    transition:
        transform 180ms ease,
        box-shadow 180ms ease,
        border-color 180ms ease;
}

.eventflow-compact-card:hover {
    border-color: var(--eventflow-tile-card-border-hover, #aeb9c4);
    box-shadow: var(--eventflow-tile-card-shadow-hover, 0 10px 25px rgba(15, 23, 42, .10));
    transform: translateY(-4px);
}

.eventflow-compact-card__main {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: var(--eventflow-tile-main-padding, 18px 20px 16px);
}

.eventflow-compact-card__eyebrow {
    color: var(--eventflow-tile-eyebrow-color, #49aaa7);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .055em;
    margin-bottom: 7px;
    text-transform: uppercase;
}

.eventflow-compact-card__title {
    font-size: 20px;
    font-weight: 750;
    line-height: 1.22;
    margin: 0 0 14px;
    min-height: 48px;
}

.eventflow-compact-card__title a {
    color: var(--eventflow-tile-title-color, #29495a);
    display: -webkit-box;
    overflow: hidden;
    text-decoration: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.eventflow-compact-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--eventflow-tile-facts-gap, 7px);
}

.eventflow-compact-card__pill {
    background: var(--eventflow-tile-pill-background, #e7edf2);
    border-radius: var(--eventflow-tile-pill-radius, 999px);
    color: var(--eventflow-tile-pill-text, #355568);
    display: inline-flex;
    font-size: var(--eventflow-tile-pill-font-size, 12px);
    font-weight: var(--eventflow-tile-pill-font-weight, 700);
    line-height: var(--eventflow-tile-pill-line-height, 1);
    min-height: 28px;
    padding: var(--eventflow-tile-pill-padding, 8px 10px);
}

.eventflow-compact-card__badges {
    display: flex;
    gap: var(--eventflow-tile-badges-gap, 7px);
    margin-top: var(--eventflow-tile-badges-margin-top, 13px);
}

.eventflow-compact-card__badge {
    background: #168a49;
    border-radius: 999px;
    color: var(--eventflow-tile-offering-text, #fff);
    font-size: var(--eventflow-tile-badge-font-size, 11px);
    font-weight: var(--eventflow-tile-badge-font-weight, 800);
    letter-spacing: var(--eventflow-tile-badge-letter-spacing, .055em);
    padding: var(--eventflow-tile-badge-padding, 5px 10px);
    text-transform: uppercase;
}

.eventflow-compact-card__badge--limited {
    background: #c47c08;
}

.eventflow-compact-card__badge--waitlist {
    background: #7654a7;
}

.eventflow-compact-card__badge--sold-out,
.eventflow-compact-card__badge--closed {
    background: #6b7280;
}

.eventflow-compact-card__footer {
    align-items: center;
    background: var(--eventflow-tile-footer-background, #dfe4ec);
    display: flex;
    gap: var(--eventflow-tile-footer-gap, 16px);
    justify-content: space-between;
    min-height: var(--eventflow-tile-footer-min-height, 58px);
    padding: var(--eventflow-tile-footer-padding, 11px 18px);
}

.eventflow-compact-card__capacity {
    color: var(--eventflow-tile-capacity-color, #29495a);
    font-size: 13px;
}

.eventflow-compact-card__cta {
    background: var(--eventflow-tile-cta-background, #294f61);
    border-radius: var(--eventflow-tile-cta-radius, 8px);
    color: var(--eventflow-tile-cta-text, #fff);
    display: inline-flex;
    font-size: var(--eventflow-tile-cta-font-size, 13px);
    font-weight: var(--eventflow-tile-cta-font-weight, 750);
    justify-content: center;
    min-height: var(--eventflow-tile-cta-min-height, 34px);
    padding: var(--eventflow-tile-cta-padding, 9px 16px);
    text-decoration: none;
    white-space: nowrap;
}

.eventflow-compact-card__cta:hover,
.eventflow-compact-card__cta:focus-visible {
    background: var(--eventflow-tile-cta-background-hover, #1f4050);
    color: var(--eventflow-tile-cta-text, #fff);
}

/* /EF-FE.003B.1D */

/* EF-FE.003B.2A — Empty Description Behavior */

.eventflow-compact-card__title {
    display: block;
    min-height: 48px;
}

.eventflow-compact-card__title a {
    min-height: 48px;
}

.eventflow-compact-card__title a:empty {
    display: block;
    min-height: 48px;
}

/* /EF-FE.003B.2A */

/* EF-FE.003B.2B — Designer Mapping Catch-Up */

.eventflow-compact-card__eyebrow {
    color: var(--eventflow-tile-eyebrow-color, #49aaa7);
    font-size: var(--eventflow-tile-eyebrow-font-size, 13px);
    font-weight: var(--eventflow-tile-eyebrow-font-weight, 800);
    letter-spacing: var(--eventflow-tile-eyebrow-letter-spacing, 0.045em);
    line-height: var(--eventflow-tile-eyebrow-line-height, 1.2);
    margin-bottom: 8px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.eventflow-compact-card__title {
    display: block;
    font-size: var(--eventflow-tile-title-font-size, 20px);
    font-weight: var(--eventflow-tile-title-font-weight, 750);
    line-height: var(--eventflow-tile-title-line-height, 1.22);
    margin: 0 0 var(--eventflow-tile-title-margin-bottom, 14px);
    min-height: 48px;
}

.eventflow-compact-card__title a {
    color: var(--eventflow-tile-title-color, #29495a);
    display: -webkit-box;
    min-height: 48px;
    overflow: hidden;
    text-decoration: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.eventflow-compact-card__title a:empty {
    display: block;
    min-height: 48px;
}

.eventflow-compact-card__title a:hover,
.eventflow-compact-card__title a:focus-visible {
    color: var(--eventflow-tile-title-color, #29495a);
    text-decoration: none;
}

/* /EF-FE.003B.2B */

/* EF-ADM.006C / EF-FE.003C — Event Offerings */

.eventflow-offerings-options {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.eventflow-compact-card__badge--offering {
    background: var(--eventflow-tile-offering-default, #53b5b1);
}

.eventflow-compact-card__badge--certification {
    background: var(--eventflow-tile-offering-certification, #53b5b1);
}

.eventflow-compact-card__badge--ce-credits {
    background: var(--eventflow-tile-offering-ce-credits, #4c89a8);
}

.eventflow-compact-card__badge--lunch-and-learn {
    background: var(--eventflow-tile-offering-lunch-learn, #7d6aa8);
}

@media (max-width: 782px) {
    .eventflow-offerings-options {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* /EF-ADM.006C / EF-FE.003C */

/* EF-FE.003D — Venue City Location Pill */

.eventflow-compact-card__pill--location {
    flex-basis: auto;
}

.eventflow-compact-card__pill-icon {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 14px;
    justify-content: center;
    line-height: 1;
    margin-right: 5px;
}

/* Encourage location to begin a new metadata row,
   matching the approved designer card. */
.eventflow-compact-card__pill--location {
    margin-right: 100%;
}

/* /EF-FE.003D */

/* EF-FE.003E — Designer SVG Icon System */
.eventflow-compact-card__pill { align-items: center; }

.eventflow-compact-card__pill-icon {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    height: 18px;
    justify-content: center;
    margin-right: 6px;
    width: 18px;
}

.eventflow-compact-card__svg,
.eventflow-compact-card__cta-svg {
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.eventflow-compact-card__svg {
    height: 18px;
    width: 18px;
}

.eventflow-compact-card__cta {
    align-items: center;
    gap: var(--eventflow-tile-cta-icon-gap, 8px);
}

.eventflow-compact-card__cta-svg {
    height: 15px;
    width: 15px;
}

.eventflow-compact-card__badge--offering {
    align-items: center;
    display: inline-flex;
    gap: 5px;
}

.eventflow-compact-card__badge--offering .eventflow-compact-card__pill-icon {
    height: 15px;
    margin-right: 0;
    width: 15px;
}

.eventflow-compact-card__badge--offering .eventflow-compact-card__svg {
    height: 15px;
    width: 15px;
}
/* /EF-FE.003E */

/* EF-FE.003G — Smart Registration CTA */
.eventflow-compact-card__cta--disabled {
    cursor: default;
    opacity: 0.62;
    pointer-events: none;
}

.eventflow-compact-card__cta[data-eventflow-cta-state="waitlist"] {
    white-space: nowrap;
}
/* /EF-FE.003G */

/* EF-FE.003H — Compact Card Seat Availability */

.eventflow-compact-card__capacity {
    align-items: baseline;
    color: var(--eventflow-tile-capacity-color, #29495a);
    display: inline-flex;
    font-size: var(--eventflow-tile-capacity-font-size, 13px);
    gap: var(--eventflow-tile-capacity-gap, 4px);
    line-height: var(--eventflow-tile-capacity-line-height, 1.2);
    white-space: nowrap;
}

.eventflow-compact-card__capacity strong {
    font-weight: var(--eventflow-tile-capacity-font-weight, 700);
}

/* /EF-FE.003H */

/* EF-FE.004B.1 — Single Event Hero Structure */

.eventflow-event-hero__content {
    max-width: 980px;
}

.eventflow-event-hero__title {
    max-width: 900px;
}

.eventflow-event-hero__subtitle {
    max-width: 760px;
}

.eventflow-event-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
    max-width: 900px;
}

.eventflow-event-hero__pill {
    align-items: center;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 999px;
    color: #29495a;
    display: inline-flex;
    font-size: 13px;
    font-weight: 750;
    gap: 7px;
    line-height: 1;
    min-height: 34px;
    padding: 8px 12px;
}

.eventflow-event-hero__pill-icon {
    display: block;
    fill: none;
    height: 16px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    width: 16px;
}

.eventflow-event-hero__offerings {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.eventflow-event-hero__offering {
    align-items: center;
    background: #53b5b1;
    border-radius: 999px;
    color: #ffffff;
    display: inline-flex;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.055em;
    line-height: 1;
    min-height: 28px;
    padding: 7px 11px;
    text-transform: uppercase;
}

.eventflow-event-hero__actions {
    margin-top: 26px;
}

.eventflow-event-hero .eventflow-event-button {
    border-radius: 8px;
    min-height: 44px;
    padding: 10px 18px;
}

@media (max-width: 639px) {
    .eventflow-event-hero__meta {
        gap: 8px;
    }

    .eventflow-event-hero__pill {
        font-size: 12px;
        min-height: 32px;
        padding: 7px 10px;
    }

    .eventflow-event-hero__actions {
        margin-top: 22px;
    }
}

/* /EF-FE.004B.1 */

/* EF-FE.004B.2 — Hero Visual Polish & Responsive Design */

.eventflow-event-hero__inner {
    padding-top: clamp(72px, 8vw, 118px);
    padding-bottom: clamp(70px, 8vw, 112px);
}

.eventflow-event-hero__content {
    max-width: 920px;
}

.eventflow-event-hero__title {
    font-size: clamp(48px, 6vw, 76px);
    letter-spacing: -0.04em;
    line-height: 0.98;
    max-width: 820px;
}

.eventflow-event-hero__subtitle {
    font-size: clamp(17px, 2vw, 21px);
    line-height: 1.45;
    margin-top: 14px;
    max-width: 720px;
}

.eventflow-event-hero__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
    max-width: 760px;
}

.eventflow-event-hero__pill {
    flex: 0 0 auto;
    max-width: 100%;
    min-height: 34px;
    width: auto;
}

.eventflow-event-hero__offerings {
    margin-top: 10px;
}

.eventflow-event-hero__offering {
    min-height: 27px;
    padding: 7px 12px;
}

.eventflow-event-hero__actions {
    gap: 10px;
    margin-top: 22px;
}

.eventflow-event-hero .eventflow-event-button {
    min-height: 42px;
    padding: 9px 17px;
}

.eventflow-event-hero .eventflow-event-button--primary {
    font-size: 16px;
}

.eventflow-event-hero .eventflow-event-button--secondary {
    font-size: 15px;
}

.eventflow-event-hero__signals {
    align-items: center;
    gap: 18px;
    margin-top: 20px;
}

.eventflow-event-countdown,
.eventflow-event-hero__capacity {
    font-size: 13px;
}

.eventflow-event-countdown__label {
    margin-right: 6px;
}

@media (min-width: 768px) {
    .eventflow-event-hero__meta {
        max-width: none;
    }

    .eventflow-event-hero__pill {
        white-space: nowrap;
    }
}

@media (max-width: 767px) {
    .eventflow-event-hero__inner {
        padding: 54px 20px 52px;
    }

    .eventflow-event-hero__title {
        font-size: clamp(40px, 12vw, 58px);
        max-width: 100%;
    }

    .eventflow-event-hero__subtitle {
        font-size: 17px;
    }

    .eventflow-event-hero__meta {
        align-items: flex-start;
        gap: 8px;
        margin-top: 20px;
    }

    .eventflow-event-hero__pill {
        font-size: 12px;
        min-height: 32px;
        padding: 7px 10px;
    }

    .eventflow-event-hero__offerings {
        margin-top: 9px;
    }

    .eventflow-event-hero__actions {
        gap: 9px;
        margin-top: 20px;
    }

    .eventflow-event-hero .eventflow-event-button {
        min-height: 42px;
        padding: 9px 15px;
        width: 100%;
    }

    .eventflow-event-hero__signals {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
        margin-top: 16px;
    }
}

@media (max-width: 420px) {
    .eventflow-event-hero__meta {
        display: grid;
        grid-template-columns: 1fr;
    }

    .eventflow-event-hero__pill {
        justify-content: flex-start;
        width: fit-content;
    }
}

/* /EF-FE.004B.2 */

/* EF-FE.004B.3 — Hero Content Safe Zone */

/*
 * Desktop/tablet design standard:
 * - Left side = protected content zone
 * - Right side = photography zone
 * - Existing image focal-position controls remain active
 */

.eventflow-event-hero--with-image .eventflow-event-hero__overlay {
    background:
        linear-gradient(
            90deg,
            rgb(11 28 42 / 92%) 0%,
            rgb(11 28 42 / 88%) 28%,
            rgb(11 28 42 / 72%) 42%,
            rgb(11 28 42 / 42%) 58%,
            rgb(11 28 42 / 16%) 74%,
            rgb(11 28 42 / 4%) 100%
        );
}

.eventflow-event-hero__content {
    max-width: 590px;
}

.eventflow-event-hero__title {
    max-width: 590px;
}

.eventflow-event-hero__subtitle {
    max-width: 560px;
}

.eventflow-event-hero__meta,
.eventflow-event-hero__offerings,
.eventflow-event-hero__actions,
.eventflow-event-hero__signals {
    max-width: 590px;
}

/*
 * Preserve readable contrast even when uploaded artwork is
 * white, high-key, snowy, or otherwise very bright.
 */
.eventflow-event-hero--with-image .eventflow-event-hero__content {
    position: relative;
    z-index: 2;
}

/*
 * Tablet:
 * retain a left-side safe zone but allow a little more
 * overlay coverage because the viewport is narrower.
 */
@media (max-width: 1024px) {
    .eventflow-event-hero--with-image .eventflow-event-hero__overlay {
        background:
            linear-gradient(
                90deg,
                rgb(11 28 42 / 94%) 0%,
                rgb(11 28 42 / 90%) 36%,
                rgb(11 28 42 / 68%) 58%,
                rgb(11 28 42 / 28%) 78%,
                rgb(11 28 42 / 10%) 100%
            );
    }

    .eventflow-event-hero__content,
    .eventflow-event-hero__title,
    .eventflow-event-hero__meta,
    .eventflow-event-hero__offerings,
    .eventflow-event-hero__actions,
    .eventflow-event-hero__signals {
        max-width: 540px;
    }
}

/*
 * Mobile:
 * there is no practical left/right split, so use a
 * stronger full-frame overlay to protect readability.
 */
@media (max-width: 767px) {
    .eventflow-event-hero--with-image .eventflow-event-hero__overlay {
        background:
            linear-gradient(
                0deg,
                rgb(11 28 42 / 94%) 0%,
                rgb(11 28 42 / 82%) 60%,
                rgb(11 28 42 / 58%) 100%
            );
    }

    .eventflow-event-hero__content,
    .eventflow-event-hero__title,
    .eventflow-event-hero__subtitle,
    .eventflow-event-hero__meta,
    .eventflow-event-hero__offerings,
    .eventflow-event-hero__actions,
    .eventflow-event-hero__signals {
        max-width: 100%;
    }
}

/* /EF-FE.004B.3 */

/* EF-FE.004C.1 — Single Event Layout Simplification */

/*
 * The hero now owns:
 * - Date
 * - Time
 * - Venue city
 * - Registration status
 * - Registration CTA
 * - Countdown
 * - Capacity
 *
 * Remove duplicate below-the-fold presentations.
 */

.eventflow-public--single .eventflow-event-facts {
    display: none !important;
}

.eventflow-public--single .eventflow-event-sidebar {
    display: none !important;
}

/*
 * Collapse the legacy two-column body layout into the
 * permanent single-column event experience.
 */
.eventflow-public--single .eventflow-event-layout {
    display: block;
    max-width: 1280px;
    width: 100%;
}

.eventflow-public--single .eventflow-event-main {
    min-width: 0;
    width: 100%;
}

/*
 * Allow the full single-event experience to breathe beneath
 * the wide hero instead of collapsing back into a narrow column.
 */
.eventflow-public--single .eventflow-public__container {
    max-width: 1280px;
    width: min(1280px, calc(100% - 40px));
}

/*
 * Create a consistent vertical rhythm for permanent sections.
 */
.eventflow-public--single .eventflow-event-description,
.eventflow-public--single .eventflow-event-information,
.eventflow-public--single .eventflow-event-venue,
.eventflow-public--single .eventflow-related-events {
    margin-bottom: clamp(28px, 4vw, 52px);
}

/*
 * About/Event content should become a strong primary section
 * rather than a small card floating beside registration UI.
 */
.eventflow-public--single .eventflow-event-description {
    padding: clamp(28px, 4vw, 48px);
}

.eventflow-public--single .eventflow-event-description h2 {
    font-size: clamp(28px, 3vw, 38px);
    letter-spacing: -0.025em;
    margin-bottom: 18px;
}

.eventflow-public--single .eventflow-event-description,
.eventflow-public--single .eventflow-event-description p,
.eventflow-public--single .eventflow-event-description li {
    line-height: 1.65;
}

/*
 * Tablet/mobile:
 * retain the simplified one-column experience and reduce
 * outer gutter cleanly.
 */
@media (max-width: 767px) {
    .eventflow-public--single .eventflow-public__container {
        width: min(100% - 24px, 1280px);
    }

    .eventflow-public--single .eventflow-event-description {
        padding: 24px 20px;
    }
}

/* /EF-FE.004C.1 */

/* EF-FE.004C.2 — About This Event Content Experience */

.eventflow-public--single .eventflow-event-description {
    background: #ffffff;
    border: 1px solid #e3e8ef;
    border-radius: 18px;
    box-shadow: none;
}

.eventflow-public--single .eventflow-event-description h2 {
    color: #101828;
    font-size: clamp(30px, 3.4vw, 42px);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: 1.08;
    margin: 0 0 26px;
}

.eventflow-public--single .eventflow-event-description__content {
    color: #344054;
    font-size: 17px;
    line-height: 1.72;
    max-width: 980px;
}

.eventflow-public--single .eventflow-event-description__content > :first-child {
    margin-top: 0;
}

.eventflow-public--single .eventflow-event-description__content > :last-child {
    margin-bottom: 0;
}

.eventflow-public--single .eventflow-event-description__content p {
    margin: 0 0 1.35em;
}

.eventflow-public--single .eventflow-event-description__content h2,
.eventflow-public--single .eventflow-event-description__content h3,
.eventflow-public--single .eventflow-event-description__content h4 {
    color: #101828;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.eventflow-public--single .eventflow-event-description__content h2 {
    font-size: clamp(26px, 3vw, 34px);
    margin: 1.8em 0 0.65em;
}

.eventflow-public--single .eventflow-event-description__content h3 {
    font-size: clamp(22px, 2.4vw, 28px);
    margin: 1.65em 0 0.6em;
}

.eventflow-public--single .eventflow-event-description__content h4 {
    font-size: 20px;
    margin: 1.5em 0 0.55em;
}

.eventflow-public--single .eventflow-event-description__content ul,
.eventflow-public--single .eventflow-event-description__content ol {
    margin: 0 0 1.5em;
    padding-left: 1.4em;
}

.eventflow-public--single .eventflow-event-description__content li {
    margin-bottom: 0.55em;
    padding-left: 0.25em;
}

.eventflow-public--single .eventflow-event-description__content a {
    color: #175cd3;
    font-weight: 650;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.eventflow-public--single .eventflow-event-description__content blockquote {
    border-left: 4px solid #53b5b1;
    color: #475467;
    font-size: 20px;
    margin: 2em 0;
    padding: 10px 0 10px 24px;
}

.eventflow-public--single .eventflow-event-description__content img {
    border-radius: 14px;
    height: auto;
    max-width: 100%;
}

.eventflow-public--single .eventflow-event-description__content figure {
    margin: 2em 0;
    max-width: 100%;
}

.eventflow-public--single .eventflow-event-description__content figcaption {
    color: #667085;
    font-size: 13px;
    margin-top: 8px;
}

.eventflow-public--single .eventflow-event-description__content table {
    border-collapse: separate;
    border-spacing: 0;
    display: block;
    margin: 2em 0;
    max-width: 100%;
    overflow-x: auto;
    width: 100%;
}

.eventflow-public--single .eventflow-event-description__content th,
.eventflow-public--single .eventflow-event-description__content td {
    border-bottom: 1px solid #e4e7ec;
    padding: 12px 14px;
    text-align: left;
}

.eventflow-public--single .eventflow-event-description__content th {
    background: #f8fafc;
    color: #344054;
    font-weight: 700;
}

.eventflow-public--single .eventflow-event-description__content .wp-block-button__link {
    background: #175cd3;
    border-radius: 8px;
    color: #ffffff;
    display: inline-flex;
    font-weight: 700;
    min-height: 42px;
    padding: 10px 18px;
    text-decoration: none;
}

.eventflow-public--single .eventflow-event-description__content .wp-block-columns {
    gap: clamp(20px, 3vw, 40px);
}

.eventflow-public--single .eventflow-event-description__content iframe,
.eventflow-public--single .eventflow-event-description__content video {
    border: 0;
    border-radius: 14px;
    max-width: 100%;
}

@media (max-width: 767px) {
    .eventflow-public--single .eventflow-event-description h2 {
        font-size: 30px;
        margin-bottom: 20px;
    }

    .eventflow-public--single .eventflow-event-description__content {
        font-size: 16px;
        line-height: 1.68;
    }

    .eventflow-public--single .eventflow-event-description__content blockquote {
        font-size: 18px;
        padding-left: 18px;
    }
}

/* /EF-FE.004C.2 */

/* EF-FE.004C.3 — Venue & Directions Experience */

.eventflow-public--single .eventflow-event-venue {
    background: #f8fafc;
    border: 0;
    border-radius: 20px;
    display: block;
    overflow: hidden;
    padding: clamp(28px, 4vw, 48px);
}

.eventflow-public--single .eventflow-event-venue .eventflow-section-heading {
    margin-bottom: 26px;
    max-width: 760px;
}

.eventflow-public--single .eventflow-event-venue .eventflow-section-heading h2 {
    color: #101828;
    font-size: clamp(30px, 3.4vw, 42px);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: 1.08;
    margin: 0 0 10px;
}

.eventflow-public--single .eventflow-event-venue .eventflow-section-heading p {
    color: #667085;
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
}

.eventflow-public--single .eventflow-event-venue__map {
    border: 1px solid #e4e7ec;
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(16, 24, 40, 0.06);
    height: var(--eventflow-venue-map-height, 380px);
    margin: 0 0 28px;
    overflow: hidden;
    width: 100%;
}

.eventflow-public--single .eventflow-event-venue__map iframe {
    display: block;
    height: 100%;
    width: 100%;
}

.eventflow-public--single .eventflow-event-venue__layout {
    align-items: start;
    display: grid;
    gap: 24px;
    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(280px, 0.8fr);
}

.eventflow-public--single .eventflow-event-venue__primary,
.eventflow-public--single .eventflow-event-venue__details {
    background: #ffffff;
    border: 1px solid #e4e7ec;
    border-radius: 16px;
    padding: 24px;
}

.eventflow-public--single .eventflow-event-venue__name {
    color: #101828;
    font-size: clamp(22px, 2.4vw, 28px);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0 0 10px;
}

.eventflow-public--single .eventflow-event-venue__address {
    color: #475467;
    font-size: 16px;
    font-style: normal;
    line-height: 1.6;
}

.eventflow-public--single .eventflow-event-venue__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.eventflow-public--single
.eventflow-event-venue__actions .eventflow-event-button {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 42px;
    padding: 10px 18px;
    text-decoration: none;
}

.eventflow-public--single
.eventflow-event-venue__actions .eventflow-event-button--primary {
    background: #175cd3;
    color: #ffffff;
}

.eventflow-public--single
.eventflow-event-venue__actions .eventflow-event-button--secondary {
    background: #ffffff;
    border: 1px solid #d0d5dd;
    color: #175cd3;
}

.eventflow-public--single .eventflow-event-venue__contact {
    border-top: 1px solid #eaecf0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 22px;
    padding-top: 18px;
}

.eventflow-public--single .eventflow-event-venue__contact a {
    color: #344054;
    font-size: 14px;
    font-weight: 650;
    overflow-wrap: anywhere;
    text-decoration: none;
}

.eventflow-public--single .eventflow-event-venue__contact a:hover {
    color: #175cd3;
}

.eventflow-public--single .eventflow-event-venue__details {
    display: grid;
    gap: 14px;
}

.eventflow-public--single .eventflow-event-venue__detail {
    background: #f8fafc;
    border: 1px solid #eaecf0;
    border-radius: 12px;
    padding: 18px;
}

.eventflow-public--single .eventflow-event-venue__detail h3 {
    color: #101828;
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 8px;
}

.eventflow-public--single .eventflow-event-venue__detail p {
    color: #667085;
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

@media (max-width: 960px) {
    .eventflow-public--single .eventflow-event-venue__layout {
        grid-template-columns: 1fr;
    }

    .eventflow-public--single .eventflow-event-venue__details {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .eventflow-public--single .eventflow-event-venue {
        border-radius: 16px;
        padding: 24px 20px;
    }

    .eventflow-public--single .eventflow-event-venue__map {
        height: 300px;
        margin-bottom: 20px;
    }

    .eventflow-public--single .eventflow-event-venue__primary,
    .eventflow-public--single .eventflow-event-venue__details {
        padding: 18px;
    }

    .eventflow-public--single .eventflow-event-venue__details {
        grid-template-columns: 1fr;
    }

    .eventflow-public--single .eventflow-event-venue__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .eventflow-public--single
    .eventflow-event-venue__actions .eventflow-event-button {
        width: 100%;
    }

    .eventflow-public--single .eventflow-event-venue__contact {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* /EF-FE.004C.3 */

/* EF-DS.001B — Canonical EventFlow Design Tokens */

:root {
    /* Semantic colors */
    --eventflow-success: #15803d;
    --eventflow-warning: #a16207;
    --eventflow-danger: #b91c1c;
    --eventflow-info: #2563eb;

    /* Buttons */
    --eventflow-button-hover-background: #1849a9;
    --eventflow-button-secondary-background: #ffffff;
    --eventflow-button-secondary-text: #175cd3;
    --eventflow-button-secondary-border: #d0d5dd;

    /* Cards */
    --eventflow-card-background: #ffffff;
    --eventflow-card-border: #e4e7ec;
    --eventflow-card-shadow:
        0 12px 30px rgba(15, 23, 42, 0.08);

    /* Pills */
    --eventflow-pill-background: #f8fafc;
    --eventflow-pill-text: #344054;
    --eventflow-pill-border: #e4e7ec;

    /* Forms */
    --eventflow-form-background: #ffffff;
    --eventflow-form-border: #d0d5dd;
    --eventflow-form-focus: #175cd3;
    --eventflow-form-error: #b91c1c;

    /* Hero */
    --eventflow-hero-overlay-color: #0b1c2a;
    --eventflow-hero-overlay-strength: 0.92;
    --eventflow-hero-safe-zone-width: 590px;

    /* Radius scale */
    --eventflow-radius-sm: 6px;
    --eventflow-radius-md: 10px;
    --eventflow-radius-lg: 16px;
    --eventflow-radius-xl: 20px;

    /* Shadow scale */
    --eventflow-shadow-sm:
        0 4px 12px rgba(15, 23, 42, 0.06);
    --eventflow-shadow-md:
        0 12px 30px rgba(15, 23, 42, 0.08);
    --eventflow-shadow-lg:
        0 20px 48px rgba(15, 23, 42, 0.12);
}

/* /EF-DS.001B */

/* ==================================================
   EF-DS.001H.1 — Single Event Color System
   ================================================== */

.eventflow-public--single .eventflow-event-hero__pill {
    background: var(--eventflow-single-hero-pill-background, #ffffff);
    color: var(--eventflow-single-hero-pill-text, #29495a);
}

.eventflow-public--single .eventflow-event-hero__offering {
    background: var(--eventflow-single-hero-offering-background, #53b5b1);
    color: var(--eventflow-single-hero-offering-text, #ffffff);
}

.eventflow-public--single .eventflow-event-description {
    background: var(--eventflow-single-section-background, #ffffff);
    border-color: var(--eventflow-single-section-border, #e3e8ef);
}

.eventflow-public--single .eventflow-event-description h2,
.eventflow-public--single .eventflow-event-description__content h2,
.eventflow-public--single .eventflow-event-description__content h3,
.eventflow-public--single .eventflow-event-description__content h4 {
    color: var(--eventflow-single-heading-color, #101828);
}

.eventflow-public--single .eventflow-event-description__content {
    color: var(--eventflow-single-body-color, #344054);
}

.eventflow-public--single .eventflow-event-description__content a {
    color: var(--eventflow-single-link-color, #175cd3);
}

.eventflow-public--single .eventflow-event-description__content blockquote {
    border-left-color: var(--eventflow-single-accent-color, #53b5b1);
}

.eventflow-public--single .eventflow-event-description__content figcaption {
    color: var(--eventflow-single-muted-color, #667085);
}

.eventflow-public--single
.eventflow-event-description__content
.wp-block-button__link {
    background: var(--eventflow-single-primary-button-background, #175cd3);
    color: var(--eventflow-single-primary-button-text, #ffffff);
}

.eventflow-public--single .eventflow-event-venue {
    background: var(--eventflow-single-venue-background, #f8fafc);
}

.eventflow-public--single .eventflow-event-venue .eventflow-section-heading h2,
.eventflow-public--single .eventflow-event-venue__name,
.eventflow-public--single .eventflow-event-venue__detail h3 {
    color: var(--eventflow-single-heading-color, #101828);
}

.eventflow-public--single .eventflow-event-venue .eventflow-section-heading p,
.eventflow-public--single .eventflow-event-venue__detail p {
    color: var(--eventflow-single-muted-color, #667085);
}

.eventflow-public--single .eventflow-event-venue__address {
    color: var(--eventflow-single-venue-address-color, #475467);
}

.eventflow-public--single .eventflow-event-venue__primary,
.eventflow-public--single .eventflow-event-venue__details {
    background: var(--eventflow-single-venue-card-background, #ffffff);
    border-color: var(--eventflow-single-venue-card-border, #e4e7ec);
}

.eventflow-public--single .eventflow-event-venue__detail {
    background: var(--eventflow-single-venue-detail-background, #f8fafc);
    border-color: var(--eventflow-single-venue-detail-border, #eaecf0);
}

.eventflow-public--single
.eventflow-event-venue__actions
.eventflow-event-button--primary {
    background: var(--eventflow-single-primary-button-background, #175cd3);
    color: var(--eventflow-single-primary-button-text, #ffffff);
}

.eventflow-public--single
.eventflow-event-venue__actions
.eventflow-event-button--secondary {
    background: var(--eventflow-single-secondary-button-background, #ffffff);
    border-color: var(--eventflow-single-secondary-button-border, #d0d5dd);
    color: var(--eventflow-single-secondary-button-text, #175cd3);
}

/* /EF-DS.001H.1 */

/* ==================================================
   H.2.1 — Single Event Hero Shape & Elevation
   ================================================== */

.eventflow-public--single
.eventflow-event-hero__pill {
    border-radius:
        var(
            --eventflow-single-hero-pill-radius,
            999px
        );
}

.eventflow-public--single
.eventflow-event-hero__offering {
    border-radius:
        var(
            --eventflow-single-hero-offering-radius,
            999px
        );
}

.eventflow-public--single
.eventflow-event-hero
.eventflow-event-button {
    border-radius:
        var(
            --eventflow-single-hero-button-radius,
            8px
        );
    box-shadow:
        var(
            --eventflow-single-hero-button-shadow,
            none
        );
}

/* /H.2.1 */

/* EF-R1G — Theme-resistant compact-card links. */

/*
 * EventFlow owns the visual treatment of its compact event cards.
 * Some WordPress themes apply global anchor decoration with higher
 * specificity or !important. These rules keep EventFlow card links
 * consistent across themes without affecting links outside EventFlow.
 */
.eventflow-public .eventflow-compact-card__title > a,
.eventflow-directory .eventflow-compact-card__title > a,
.eventflow-compact-card .eventflow-compact-card__title > a {
    text-decoration: none !important;
    text-decoration-line: none !important;
}

.eventflow-public .eventflow-compact-card__title > a:hover,
.eventflow-public .eventflow-compact-card__title > a:focus,
.eventflow-public .eventflow-compact-card__title > a:active,
.eventflow-directory .eventflow-compact-card__title > a:hover,
.eventflow-directory .eventflow-compact-card__title > a:focus,
.eventflow-directory .eventflow-compact-card__title > a:active,
.eventflow-compact-card .eventflow-compact-card__title > a:hover,
.eventflow-compact-card .eventflow-compact-card__title > a:focus,
.eventflow-compact-card .eventflow-compact-card__title > a:active {
    text-decoration: none !important;
    text-decoration-line: none !important;
}

.eventflow-public a.eventflow-compact-card__cta,
.eventflow-directory a.eventflow-compact-card__cta,
.eventflow-compact-card a.eventflow-compact-card__cta {
    text-decoration: none !important;
    text-decoration-line: none !important;
}

.eventflow-public a.eventflow-compact-card__cta:hover,
.eventflow-public a.eventflow-compact-card__cta:focus,
.eventflow-public a.eventflow-compact-card__cta:active,
.eventflow-directory a.eventflow-compact-card__cta:hover,
.eventflow-directory a.eventflow-compact-card__cta:focus,
.eventflow-directory a.eventflow-compact-card__cta:active,
.eventflow-compact-card a.eventflow-compact-card__cta:hover,
.eventflow-compact-card a.eventflow-compact-card__cta:focus,
.eventflow-compact-card a.eventflow-compact-card__cta:active {
    text-decoration: none !important;
    text-decoration-line: none !important;
}

/* /EF-R1G */

/* EF-110-P1A — Register CTA text color cascade hotfix. */

/*
 * The compact-card CTA already consumes:
 * --eventflow-tile-cta-text
 *
 * Some WordPress themes apply global anchor colors with greater
 * specificity or !important. Keep EventFlow ownership limited
 * to compact-card CTA links while preserving the Designer token
 * as the source of truth.
 */
.eventflow-public a.eventflow-compact-card__cta,
.eventflow-directory a.eventflow-compact-card__cta,
.eventflow-compact-card a.eventflow-compact-card__cta {
    color: var(--eventflow-tile-cta-text, #fff) !important;
}

.eventflow-public a.eventflow-compact-card__cta:hover,
.eventflow-public a.eventflow-compact-card__cta:focus,
.eventflow-public a.eventflow-compact-card__cta:focus-visible,
.eventflow-public a.eventflow-compact-card__cta:active,
.eventflow-directory a.eventflow-compact-card__cta:hover,
.eventflow-directory a.eventflow-compact-card__cta:focus,
.eventflow-directory a.eventflow-compact-card__cta:focus-visible,
.eventflow-directory a.eventflow-compact-card__cta:active,
.eventflow-compact-card a.eventflow-compact-card__cta:hover,
.eventflow-compact-card a.eventflow-compact-card__cta:focus,
.eventflow-compact-card a.eventflow-compact-card__cta:focus-visible,
.eventflow-compact-card a.eventflow-compact-card__cta:active {
    color: var(--eventflow-tile-cta-text, #fff) !important;
}

/* /EF-110-P1A */
