/* =========================================================
   Public Exhibitors Index
========================================================= */

.exhibitors-premium-hero{
    position:relative;
    overflow:hidden;
    padding:96px 0 86px;
    background:
        radial-gradient(circle at 14% 20%, color-mix(in srgb, var(--public-primary) 34%, transparent), transparent 28%),
        radial-gradient(circle at 86% 18%, color-mix(in srgb, var(--public-accent) 22%, transparent), transparent 25%),
        linear-gradient(135deg, #0f172a 0%, #111827 54%, color-mix(in srgb, var(--public-primary) 45%, #111827) 100%);
    color:#fff;
}

.exhibitors-hero-pattern{
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.36;
    background-image:
        linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
    background-size:46px 46px;
    mask-image:linear-gradient(180deg, black 0%, transparent 90%);
}

.exhibitors-hero-glow{
    position:absolute;
    width:380px;
    height:380px;
    border-radius:999px;
    pointer-events:none;
    filter:blur(14px);
    opacity:.34;
}

.exhibitors-hero-glow-one{
    inset-inline-start:-160px;
    top:18%;
    background:color-mix(in srgb, var(--public-primary) 55%, transparent);
}

.exhibitors-hero-glow-two{
    inset-inline-end:-150px;
    bottom:8%;
    background:color-mix(in srgb, var(--public-accent) 42%, transparent);
}

.exhibitors-hero-content{
    position:relative;
    z-index:2;
    max-width:720px;
}

.exhibitors-kicker{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:8px 15px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(255,255,255,.10);
    color:#fff;
    font-size:13px;
    font-weight:950;
    backdrop-filter:blur(14px);
}

.exhibitors-kicker-light{
    border-color:var(--public-border);
    background:#fff;
    color:var(--public-primary);
    backdrop-filter:none;
}

.exhibitors-hero-title{
    margin:22px 0 0;
    color:#fff;
    font-size:clamp(42px, 6vw, 76px);
    font-weight:950;
    line-height:1.06;
    letter-spacing:-1.2px;
}

.exhibitors-hero-desc{
    max-width:650px;
    margin:22px 0 0;
    color:rgba(255,255,255,.76);
    font-size:17px;
    line-height:2;
}

.exhibitors-hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:32px;
}

.exhibitors-primary-action,
.exhibitors-secondary-action{
    min-height:54px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:13px 24px;
    border-radius:999px;
    font-size:14px;
    font-weight:950;
    text-decoration:none;
    transition:.22s ease;
}

.exhibitors-primary-action{
    border:1px solid var(--public-accent);
    background:var(--public-accent);
    color:#111827;
}

.exhibitors-primary-action:hover{
    border-color:color-mix(in srgb, var(--public-accent) 85%, black);
    background:color-mix(in srgb, var(--public-accent) 85%, black);
    color:#111827;
    transform:translateY(-2px);
}

.exhibitors-secondary-action{
    border:1px solid rgba(255,255,255,.25);
    background:rgba(255,255,255,.10);
    color:#fff;
    backdrop-filter:blur(14px);
}

.exhibitors-secondary-action:hover{
    border-color:rgba(255,255,255,.52);
    background:rgba(255,255,255,.16);
    color:#fff;
    transform:translateY(-2px);
}

.exhibitors-hero-pills{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:26px;
}

.exhibitors-hero-pills span{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 13px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.84);
    font-size:12px;
    font-weight:900;
}

/* =========================================================
   Hero Stage
========================================================= */

.exhibitors-hero-stage{
    position:relative;
    min-height:420px;
}

.exhibitors-orbit{
    position:absolute;
    inset:20px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:42px;
    transform:rotate(-6deg);
    animation:exhibitorsOrbit 9s ease-in-out infinite alternate;
}

.exhibitors-orbit span{
    position:absolute;
    width:13px;
    height:13px;
    border-radius:999px;
    background:var(--public-accent);
}

.exhibitors-orbit span:nth-child(1){
    top:13%;
    inset-inline-start:18%;
}

.exhibitors-orbit span:nth-child(2){
    top:48%;
    inset-inline-end:10%;
    background:#fff;
}

.exhibitors-orbit span:nth-child(3){
    bottom:16%;
    inset-inline-start:30%;
    background:var(--public-primary);
}

.exhibitors-stage-card{
    position:absolute;
    min-width:250px;
    display:flex;
    align-items:center;
    gap:13px;
    padding:17px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:28px;
    background:rgba(255,255,255,.12);
    color:#fff;
    backdrop-filter:blur(18px);
    animation:exhibitorsFloat 4.5s ease-in-out infinite;
}

.exhibitors-stage-card > i{
    width:54px;
    height:54px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 54px;
    border-radius:20px;
    background:var(--public-accent);
    color:#111827;
    font-size:24px;
}

.exhibitors-stage-card strong{
    display:block;
    color:#fff;
    font-size:16px;
    font-weight:950;
}

.exhibitors-stage-card span{
    display:block;
    margin-top:4px;
    color:rgba(255,255,255,.68);
    font-size:12px;
    font-weight:800;
}

.exhibitors-stage-card-main{
    top:34px;
    inset-inline-start:30px;
}

.exhibitors-stage-card-one{
    top:150px;
    inset-inline-end:0;
    animation-delay:.7s;
}

.exhibitors-stage-card-two{
    bottom:52px;
    inset-inline-start:8px;
    animation-delay:1.3s;
}

/* =========================================================
   Listing
========================================================= */

.exhibitors-listing-section{
    padding:86px 0 94px;
    background:
        radial-gradient(circle at 10% 10%, var(--public-primary-soft), transparent 26%),
        linear-gradient(180deg, #f8fafc 0%, #fff 46%, #fff 100%);
}

.exhibitors-listing-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:28px;
}

.exhibitors-listing-head h2{
    margin:16px 0 0;
    color:var(--public-heading);
    font-size:clamp(30px, 4vw, 48px);
    font-weight:950;
    line-height:1.15;
}

.exhibitors-listing-head p{
    max-width:680px;
    margin:14px 0 0;
    color:var(--public-muted);
    font-size:15px;
    line-height:1.9;
}

.exhibitors-count-pill{
    min-width:150px;
    min-height:120px;
    display:grid;
    place-items:center;
    padding:18px;
    border:1px solid var(--public-border);
    border-radius:28px;
    background:#fff;
    text-align:center;
}

.exhibitors-count-pill i{
    color:var(--public-primary);
    font-size:24px;
}

.exhibitors-count-pill span{
    display:block;
    color:var(--public-heading);
    font-size:34px;
    font-weight:950;
    line-height:1;
}

.exhibitors-count-pill small{
    display:block;
    color:var(--public-muted);
    font-size:12px;
    font-weight:900;
}

/* =========================================================
   Filters
========================================================= */

.exhibitors-filter-card{
    margin-bottom:34px;
    padding:22px;
    border:1px solid var(--public-border);
    border-radius:32px;
    background:
        radial-gradient(circle at 8% 18%, var(--public-primary-soft), transparent 26%),
        #fff;
}

.exhibitors-filter-label{
    display:block;
    margin-bottom:9px;
    color:var(--public-heading);
    font-size:13px;
    font-weight:950;
}

.exhibitors-filter-control-wrap{
    position:relative;
}

.exhibitors-filter-control-wrap > i{
    position:absolute;
    top:50%;
    inset-inline-start:15px;
    z-index:2;
    transform:translateY(-50%);
    color:var(--public-primary);
    font-size:16px;
    pointer-events:none;
}

.exhibitors-filter-control{
    min-height:52px;
    padding-inline-start:44px;
    border:1px solid var(--public-border);
    border-radius:18px;
    background:#fff;
    color:var(--public-heading);
    font-size:14px;
    font-weight:800;
    transition:.2s ease;
}

.exhibitors-filter-control:focus{
    border-color:var(--public-primary);
    box-shadow:none;
}

.exhibitors-filter-submit{
    width:100%;
    min-height:52px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--public-primary);
    border-radius:18px;
    background:var(--public-primary);
    color:#fff;
    font-size:18px;
    transition:.2s ease;
}

.exhibitors-filter-submit:hover{
    border-color:var(--public-primary-dark);
    background:var(--public-primary-dark);
    transform:translateY(-1px);
}

.exhibitors-filter-reset{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:9px 15px;
    border:1px solid var(--public-border);
    border-radius:999px;
    background:#fff;
    color:var(--public-heading);
    font-size:13px;
    font-weight:950;
    text-decoration:none;
    transition:.2s ease;
}

.exhibitors-filter-reset:hover{
    border-color:var(--public-primary);
    background:var(--public-primary-soft);
    color:var(--public-primary);
}

/* =========================================================
   Exhibitor Cards
========================================================= */

.exhibitors-premium-grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:24px;
    align-items:stretch;
    perspective:1200px;
}

.exhibitor-premium-card{
    position:relative;
    isolation:isolate;
    width:100%;
    min-width:0;
    min-height:430px;
    display:flex;
    flex-direction:column;
    gap:18px;
    padding:22px;
    overflow:hidden;
    border:1px solid var(--public-border);
    border-radius:34px;
    background:#fff;
    box-shadow:0 18px 50px rgba(15,23,42,.06);
    transition:.25s ease;
}

.exhibitor-premium-card::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;
    background:
        radial-gradient(circle at 18% 14%, color-mix(in srgb, var(--public-primary) 16%, transparent), transparent 34%),
        radial-gradient(circle at 88% 0%, color-mix(in srgb, var(--public-accent) 20%, transparent), transparent 30%);
}

.exhibitor-premium-card::after{
    content:"";
    position:absolute;
    inset:auto -30% -55% -30%;
    z-index:-1;
    height:170px;
    opacity:0;
    background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--public-primary) 14%, transparent), transparent);
    transform:rotate(-8deg);
    transition:.35s ease;
}

.exhibitor-premium-card:hover{
    border-color:color-mix(in srgb, var(--public-primary) 55%, var(--public-border));
    box-shadow:0 24px 70px rgba(15,23,42,.10);
    transform:translateY(-7px);
}

.exhibitor-premium-card:hover::after{
    opacity:1;
    transform:rotate(-8deg) translateY(-22px);
}

.exhibitor-premium-logo-link{
    display:block;
    color:inherit;
    text-decoration:none;
}

.exhibitor-premium-logo{
    position:relative;
    width:100%;
    height:220px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    border:0;
    border-radius:24px;
    background:#f8fafc;
    color:var(--public-primary);
    font-size:42px;
}

.exhibitor-premium-logo::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.72) 48%, transparent 100%);
    transform:translateX(-120%);
    transition:.65s ease;
}

.exhibitor-premium-card:hover .exhibitor-premium-logo::after{
    transform:translateX(120%);
}

.exhibitor-premium-logo img{
    width:100%;
    height:100%;
    display:block;
    padding:0;
    object-fit:cover;
    object-position:center;
    transition:.3s ease;
}

.exhibitor-premium-card:hover .exhibitor-premium-logo img{
    transform:scale(1.05);
}

.exhibitor-premium-content{
    min-width:0;
    flex:1;
    display:flex;
    flex-direction:column;
}

.exhibitor-premium-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.exhibitor-premium-head h3{
    min-width:0;
    margin:0;
    color:var(--public-heading);
    font-size:21px;
    font-weight:950;
    line-height:1.35;
    overflow-wrap:anywhere;
}

.exhibitor-title-link{
    color:var(--public-heading);
    text-decoration:none;
    transition:.2s ease;
}

.exhibitor-title-link:hover{
    color:var(--public-primary);
}

.exhibitor-premium-head em{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    flex:0 0 auto;
    padding:7px 12px;
    border-radius:999px;
    background:var(--public-accent);
    color:#111827;
    font-size:12px;
    font-style:normal;
    font-weight:950;
    box-shadow:0 10px 24px color-mix(in srgb, var(--public-accent) 28%, transparent);
}

.exhibitor-premium-content p{
    min-height:72px;
    margin:14px 0 0;
    color:var(--public-muted);
    font-size:13px;
    line-height:1.85;
    overflow-wrap:anywhere;
}

.exhibitor-premium-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:auto;
    padding-top:18px;
}

.exhibitor-premium-meta span,
.exhibitor-premium-meta a{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    max-width:100%;
    padding:8px 12px;
    border:1px solid var(--public-border);
    border-radius:999px;
    background:rgba(255,255,255,.85);
    color:var(--public-heading);
    font-size:12px;
    font-weight:900;
    line-height:1.3;
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:.2s ease;
}

.exhibitor-premium-meta i{
    color:var(--public-primary);
}

.exhibitor-premium-meta a:hover{
    border-color:var(--public-primary);
    background:var(--public-primary-soft);
    color:var(--public-primary);
    transform:translateY(-1px);
}

.exhibitors-empty{
    grid-column:1 / -1;
}

/* =========================================================
   Pagination
========================================================= */

.public-pagination{
    display:flex;
    justify-content:center;
}

.public-pagination .pagination{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
}

.public-pagination .page-link{
    min-width:42px;
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--public-border);
    border-radius:999px !important;
    background:#fff;
    color:var(--public-heading);
    font-size:13px;
    font-weight:950;
    transition:.2s ease;
}

.public-pagination .page-link:hover{
    border-color:var(--public-primary);
    background:var(--public-primary-soft);
    color:var(--public-primary);
}

.public-pagination .page-item.active .page-link{
    border-color:var(--public-primary);
    background:var(--public-primary);
    color:#fff;
}

/* =========================================================
   Animations
========================================================= */

@keyframes exhibitorsFloat{
    0%,
    100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-10px);
    }
}

@keyframes exhibitorsOrbit{
    from{
        transform:rotate(-6deg) scale(1);
    }

    to{
        transform:rotate(4deg) scale(1.02);
    }
}

@keyframes publicReveal{
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.public-reveal{
    opacity:0;
    transform:translateY(18px);
    animation:publicReveal .65s ease forwards;
}

.exhibitors-premium-grid .public-reveal:nth-child(1){
    animation-delay:.05s;
}

.exhibitors-premium-grid .public-reveal:nth-child(2){
    animation-delay:.12s;
}

.exhibitors-premium-grid .public-reveal:nth-child(3){
    animation-delay:.19s;
}

.exhibitors-premium-grid .public-reveal:nth-child(4){
    animation-delay:.26s;
}

.exhibitors-premium-grid .public-reveal:nth-child(5){
    animation-delay:.33s;
}

.exhibitors-premium-grid .public-reveal:nth-child(6){
    animation-delay:.40s;
}

/* =========================================================
   Responsive
========================================================= */

@media (max-width:1199.98px){
    .exhibitors-premium-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width:991.98px){
    .exhibitors-premium-hero{
        padding:76px 0 82px;
    }

    .exhibitors-hero-content{
        max-width:100%;
        text-align:center;
    }

    .exhibitors-hero-actions,
    .exhibitors-hero-pills{
        justify-content:center;
    }

    .exhibitors-hero-stage{
        min-height:390px;
        max-width:620px;
        margin:0 auto;
    }

    .exhibitors-listing-head{
        align-items:flex-start;
    }
}

@media (max-width:767.98px){
    .exhibitors-premium-hero{
        padding:62px 0 72px;
    }

    .exhibitors-hero-title{
        font-size:40px;
    }

    .exhibitors-hero-desc{
        font-size:15px;
    }

    .exhibitors-hero-stage{
        min-height:auto;
        display:grid;
        gap:12px;
        margin-top:8px;
    }

    .exhibitors-orbit{
        display:none;
    }

    .exhibitors-stage-card{
        position:relative;
        inset:auto;
        width:100%;
        min-width:0;
        animation:none;
    }

    .exhibitors-listing-section{
        padding:64px 0;
    }

    .exhibitors-listing-head{
        display:grid;
        grid-template-columns:1fr;
    }

    .exhibitors-count-pill{
        width:100%;
        min-height:92px;
        display:flex;
        align-items:center;
        justify-content:flex-start;
        gap:12px;
        text-align:start;
    }

    .exhibitors-count-pill span,
    .exhibitors-count-pill small{
        display:inline;
    }

    .exhibitors-filter-card{
        padding:18px;
        border-radius:26px;
    }

    .exhibitor-premium-card{
        min-height:0;
    }

    .exhibitor-premium-head{
        display:grid;
        grid-template-columns:1fr;
    }

    .exhibitor-premium-head em{
        width:max-content;
    }

    .exhibitor-premium-content p{
        min-height:0;
    }
}

@media (max-width:575.98px){
    .exhibitors-hero-title{
        font-size:34px;
        line-height:1.15;
    }

    .exhibitors-hero-actions{
        display:grid;
        grid-template-columns:1fr;
    }

    .exhibitors-primary-action,
    .exhibitors-secondary-action{
        width:100%;
    }

    .exhibitors-hero-pills{
        display:grid;
        grid-template-columns:1fr;
    }

    .exhibitors-hero-pills span{
        justify-content:center;
    }

    .exhibitors-stage-card{
        align-items:flex-start;
        padding:15px;
        border-radius:22px;
    }

    .exhibitors-stage-card > i{
        width:46px;
        height:46px;
        flex-basis:46px;
        border-radius:16px;
        font-size:20px;
    }

    .exhibitors-filter-card{
        padding:15px;
        border-radius:22px;
    }

    .exhibitors-premium-grid{
        grid-template-columns:1fr;
        gap:16px;
    }

    .exhibitor-premium-card{
        padding:16px;
        border-radius:26px;
    }

    .exhibitor-premium-logo{
        height:190px;
        border-radius:20px;
    }

    .exhibitor-premium-head h3{
        font-size:19px;
    }

    .exhibitor-premium-meta span,
    .exhibitor-premium-meta a{
        width:100%;
        justify-content:center;
        text-align:center;
    }
}

@media (prefers-reduced-motion:reduce){
    .public-reveal{
        opacity:1;
        transform:none;
        animation:none !important;
    }

    .exhibitors-orbit,
    .exhibitors-stage-card{
        animation:none !important;
    }

    .exhibitor-premium-card,
    .exhibitor-premium-card::after,
    .exhibitor-premium-logo::after,
    .exhibitor-premium-logo img{
        transition:none !important;
    }
}
