.fakt-events-wrap{
    --fakt-primary:#071b3a;
    --fakt-primary-hover:#0b2b5d;
    --fakt-accent:#08a9c4;
    --fakt-accent-soft:#e9fbff;
    --fakt-text:#0d1b35;
    --fakt-muted:#667085;
    --fakt-line:#e6eaf0;
    --fakt-surface:#ffffff;
    --fakt-soft-surface:#f8fafc;
    --fakt-radius:20px;
    --fakt-button-radius:10px;
    width:100%;
    color:var(--fakt-text);
    font-family:inherit;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility
}
.fakt-events-wrap *{box-sizing:border-box}
.fakt-events-wrap svg{display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Premium toolbar */
.fakt-events-toolbar{
    display:flex;
    align-items:center;
    gap:24px;
    margin:0 0 32px;
    padding:14px;
    border:1px solid rgba(13,27,53,.08);
    border-radius:18px;
    background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(248,251,255,.98));
    box-shadow:0 14px 42px rgba(15,31,61,.09),0 2px 8px rgba(15,31,61,.04)
}
.fakt-toolbar-heading{
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    gap:10px;
    padding:0 6px;
    color:var(--fakt-text);
    font-size:14px;
    font-weight:750;
    letter-spacing:-.01em;
    white-space:nowrap
}
.fakt-toolbar-heading-icon{
    display:inline-flex;
    width:34px;
    height:34px;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    color:var(--fakt-accent);
    background:var(--fakt-accent-soft)
}
.fakt-toolbar-heading-icon svg{width:17px;height:17px}
.fakt-toolbar-controls{
    display:flex;
    min-width:0;
    flex:1;
    align-items:center;
    gap:10px
}
.fakt-filter-control{
    position:relative;
    display:flex;
    min-height:52px;
    align-items:center;
    gap:10px;
    border:1px solid var(--fakt-line);
    border-radius:12px;
    background:#fff;
    transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease
}
.fakt-filter-control:focus-within{
    border-color:rgba(8,169,196,.65);
    box-shadow:0 0 0 4px rgba(8,169,196,.11)
}
.fakt-filter-control--location{min-width:220px}
.fakt-filter-control--search{min-width:220px;flex:1}
.fakt-filter-control-icon{
    display:inline-flex;
    flex:0 0 auto;
    width:20px;
    margin-left:16px;
    align-items:center;
    justify-content:center;
    color:var(--fakt-accent)
}
.fakt-filter-control-icon svg{width:18px;height:18px}
.fakt-location-filter,.fakt-event-search{
    width:100%;
    height:50px;
    margin:0;
    padding:0 42px 0 0;
    border:0!important;
    outline:0!important;
    color:var(--fakt-text);
    background:transparent!important;
    box-shadow:none!important;
    font-family:inherit;
    font-size:14px;
    font-weight:600
}
.fakt-location-filter{appearance:none;-webkit-appearance:none;cursor:pointer}
.fakt-event-search{padding-right:15px;font-weight:500}
.fakt-event-search::placeholder{color:#98a2b3;opacity:1}
.fakt-filter-chevron{
    position:absolute;
    top:50%;
    right:15px;
    display:inline-flex;
    pointer-events:none;
    color:#667085;
    transform:translateY(-50%)
}
.fakt-filter-chevron svg{width:16px;height:16px}
.fakt-clear-filter{
    display:inline-flex;
    min-height:52px;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 18px;
    border:1px solid rgba(7,27,58,.12);
    border-radius:12px;
    color:var(--fakt-primary);
    background:#fff;
    font-family:inherit;
    font-size:13px;
    font-weight:750;
    line-height:1;
    cursor:pointer;
    transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease
}
.fakt-clear-filter svg{width:16px;height:16px}
.fakt-clear-filter:hover{
    color:#fff;
    border-color:var(--fakt-primary);
    background:var(--fakt-primary);
    box-shadow:0 8px 18px rgba(7,27,58,.17);
    transform:translateY(-1px)
}

/* Grid */
.fakt-events-grid{
    display:grid;
    grid-template-columns:repeat(var(--fakt-cols),minmax(0,1fr));
    gap:var(--fakt-gap);
    align-items:stretch
}
.fakt-event-card{
    position:relative;
    display:flex;
    min-width:0;
    height:100%;
    flex-direction:column;
    overflow:visible;
    isolation:isolate;
    border:1px solid rgba(13,27,53,.09);
    border-radius:var(--fakt-radius);
    background:var(--fakt-surface);
    box-shadow:0 16px 45px rgba(15,31,61,.09),0 3px 12px rgba(15,31,61,.04);
    transition:transform .32s cubic-bezier(.2,.75,.25,1),box-shadow .32s ease,border-color .32s ease
}
.fakt-event-card::after{
    position:absolute;
    z-index:-1;
    right:22px;
    bottom:-10px;
    left:22px;
    height:22px;
    border-radius:50%;
    background:rgba(7,27,58,.11);
    filter:blur(20px);
    content:"";
    opacity:0;
    transition:opacity .32s ease
}
.fakt-event-card:hover{
    border-color:rgba(8,169,196,.24);
    box-shadow:0 26px 60px rgba(15,31,61,.14),0 6px 18px rgba(15,31,61,.06);
    transform:translateY(-8px)
}
.fakt-event-card:hover::after{opacity:1}
.fakt-event-card[hidden]{display:none!important}

/* Media */
.fakt-event-media{
    position:relative;
    display:block;
    height:235px;
    overflow:hidden;
    border-radius:calc(var(--fakt-radius) - 1px) calc(var(--fakt-radius) - 1px) 0 0;
    background:linear-gradient(135deg,#edf2f7,#f8fafc)
}
.fakt-event-featured{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(1.001);
    transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .35s ease
}
.fakt-event-card:hover .fakt-event-featured{transform:scale(1.06)}
.fakt-event-featured--contain{padding:38px;object-fit:contain;background:#f8fafc}
.fakt-event-media-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(2,14,34,.02) 35%,rgba(2,14,34,.36) 100%);
    pointer-events:none
}
.fakt-event-status{
    position:absolute;
    z-index:2;
    top:16px;
    right:16px;
    display:inline-flex;
    min-height:30px;
    align-items:center;
    gap:6px;
    padding:6px 11px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    color:#fff;
    background:rgba(7,27,58,.78);
    box-shadow:0 8px 22px rgba(2,14,34,.18);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    font-size:10px;
    font-weight:800;
    letter-spacing:.09em;
    line-height:1;
    text-transform:uppercase
}
.fakt-event-status svg{width:12px;height:12px;color:#55d9ef}
.fakt-event-status--inline{
    position:static;
    align-self:flex-start;
    margin:0 0 14px;
    color:var(--fakt-primary);
    border-color:rgba(8,169,196,.16);
    background:var(--fakt-accent-soft);
    box-shadow:none
}
.fakt-event-status--inline svg{color:var(--fakt-accent)}

/* Floating logo */
.fakt-event-logo-row{
    position:relative;
    z-index:3;
    height:0;
    padding-left:24px;
    transform:translateY(-50%)
}
.fakt-event-logo{
    display:flex;
    width:112px;
    height:68px;
    align-items:center;
    justify-content:center;
    padding:10px 12px;
    overflow:hidden;
    border:1px solid rgba(13,27,53,.08);
    border-radius:14px;
    background:#fff;
    box-shadow:0 12px 28px rgba(15,31,61,.16)
}
.fakt-event-logo img{display:block;max-width:100%;max-height:46px;object-fit:contain}
.fakt-event-logo-only{
    display:flex;
    min-height:150px;
    align-items:center;
    justify-content:center;
    padding:30px;
    border-radius:calc(var(--fakt-radius) - 1px) calc(var(--fakt-radius) - 1px) 0 0;
    background:radial-gradient(circle at top right,var(--fakt-accent-soft),transparent 48%),linear-gradient(145deg,#fbfdff,#f3f7fb)
}
.fakt-event-logo-only img{display:block;max-width:68%;max-height:90px;object-fit:contain}

/* Card content */
.fakt-event-body{
    display:flex;
    min-width:0;
    flex:1;
    flex-direction:column;
    padding:26px
}
.fakt-event-card--has-logo .fakt-event-body{padding-top:50px}
.fakt-event-card--no-media .fakt-event-body{padding-top:28px}
.fakt-event-title{
    margin:0 0 17px;
    color:var(--fakt-text);
    font-size:22px;
    font-weight:750;
    letter-spacing:-.025em;
    line-height:1.28
}
.fakt-event-title a{
    color:inherit;
    text-decoration:none;
    transition:color .2s ease
}
.fakt-event-card:hover .fakt-event-title a{color:var(--fakt-primary-hover)}
.fakt-event-meta{display:grid;gap:10px;margin:0}
.fakt-event-meta-row{
    display:flex;
    min-width:0;
    align-items:flex-start;
    gap:10px;
    margin:0;
    color:var(--fakt-muted);
    font-size:13.5px;
    font-weight:500;
    line-height:1.55
}
.fakt-event-meta-row>span:last-child{min-width:0}
.fakt-event-meta-icon{
    display:inline-flex;
    width:28px;
    height:28px;
    flex:0 0 28px;
    align-items:center;
    justify-content:center;
    margin-top:-3px;
    border-radius:8px;
    color:var(--fakt-accent);
    background:var(--fakt-accent-soft)
}
.fakt-event-meta-icon svg{width:14px;height:14px;stroke-width:1.9}
.fakt-event-excerpt{
    margin:18px 0 0;
    color:#6c7585;
    font-size:13.5px;
    font-weight:400;
    line-height:1.7
}

/* Actions */
.fakt-event-actions{
    position:relative;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:9px;
    margin-top:auto;
    padding-top:22px
}
.fakt-event-actions::before{
    position:absolute;
    top:10px;
    right:0;
    left:0;
    height:1px;
    background:linear-gradient(90deg,var(--fakt-line),transparent);
    content:""
}
.fakt-event-button{
    display:inline-flex;
    min-height:44px;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:10px 15px;
    border:1px solid transparent;
    border-radius:var(--fakt-button-radius);
    font-family:inherit;
    font-size:12.5px;
    font-weight:750;
    letter-spacing:-.005em;
    line-height:1.2;
    text-decoration:none!important;
    cursor:pointer;
    transition:color .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease
}
.fakt-event-button svg{width:15px;height:15px;transition:transform .22s ease}
.fakt-event-button--primary{
    flex:1 1 132px;
    color:#fff!important;
    border-color:var(--fakt-primary);
    background:linear-gradient(135deg,var(--fakt-primary),#0d326a);
    box-shadow:0 9px 20px rgba(7,27,58,.16)
}
.fakt-event-button--primary:hover{
    color:#fff!important;
    border-color:var(--fakt-primary-hover);
    background:linear-gradient(135deg,var(--fakt-primary-hover),#124484);
    box-shadow:0 12px 25px rgba(7,27,58,.23);
    transform:translateY(-2px)
}
.fakt-event-button--primary:hover svg{transform:translateX(3px)}
.fakt-event-button--secondary{
    color:var(--fakt-primary)!important;
    border-color:rgba(7,27,58,.14);
    background:#fff
}
.fakt-event-button--secondary:hover{
    color:#fff!important;
    border-color:var(--fakt-primary);
    background:var(--fakt-primary);
    transform:translateY(-2px)
}
.fakt-calendar-menu{position:relative;flex:0 0 auto}
.fakt-event-button--calendar{
    list-style:none;
    color:var(--fakt-primary);
    border-color:rgba(8,169,196,.22);
    background:var(--fakt-accent-soft)
}
.fakt-event-button--calendar::-webkit-details-marker{display:none}
.fakt-event-button--calendar:hover{
    color:#fff;
    border-color:var(--fakt-accent);
    background:var(--fakt-accent);
    box-shadow:0 9px 20px rgba(8,169,196,.22);
    transform:translateY(-2px)
}
.fakt-event-button--calendar svg:first-child{width:16px;height:16px}
.fakt-event-button--calendar svg:last-child{width:13px;height:13px}
.fakt-calendar-options{
    position:absolute;
    z-index:30;
    right:0;
    bottom:calc(100% + 10px);
    min-width:205px;
    padding:7px;
    overflow:hidden;
    border:1px solid rgba(13,27,53,.09);
    border-radius:13px;
    background:#fff;
    box-shadow:0 18px 45px rgba(15,31,61,.18);
    transform-origin:bottom right;
    animation:faktMenuIn .18s ease-out
}
.fakt-calendar-options::after{
    position:absolute;
    right:22px;
    bottom:-5px;
    width:10px;
    height:10px;
    border-right:1px solid rgba(13,27,53,.09);
    border-bottom:1px solid rgba(13,27,53,.09);
    background:#fff;
    content:"";
    transform:rotate(45deg)
}
.fakt-calendar-options a{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    gap:10px;
    padding:11px 12px;
    border-radius:9px;
    color:var(--fakt-text)!important;
    background:#fff;
    font-size:12.5px;
    font-weight:650;
    text-decoration:none!important;
    transition:color .18s ease,background .18s ease
}
.fakt-calendar-options a svg{width:15px;height:15px;color:var(--fakt-accent)}
.fakt-calendar-options a:hover{color:var(--fakt-primary)!important;background:var(--fakt-accent-soft)}
@keyframes faktMenuIn{from{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

/* Empty states */
.fakt-events-empty,.fakt-events-filtered-empty{
    padding:38px 24px;
    border:1px dashed rgba(13,27,53,.18);
    border-radius:18px;
    color:var(--fakt-muted);
    background:linear-gradient(145deg,#fff,#f8fafc);
    box-shadow:0 12px 32px rgba(15,31,61,.05);
    text-align:center;
    font-size:14px;
    font-weight:600
}
.fakt-events-filtered-empty{margin-top:24px}

@media(max-width:1024px){
    .fakt-events-grid{grid-template-columns:repeat(var(--fakt-cols-tablet),minmax(0,1fr))}
    .fakt-events-toolbar{align-items:stretch;flex-direction:column;gap:12px}
    .fakt-toolbar-heading{padding:0 2px}
    .fakt-toolbar-controls{width:100%}
}
@media(max-width:767px){
    .fakt-events-grid{grid-template-columns:repeat(var(--fakt-cols-mobile),minmax(0,1fr))}
    .fakt-events-toolbar{margin-bottom:24px;padding:12px;border-radius:15px}
    .fakt-toolbar-controls{align-items:stretch;flex-direction:column}
    .fakt-filter-control--location,.fakt-filter-control--search{width:100%;min-width:0}
    .fakt-clear-filter{width:100%}
    .fakt-event-media{height:215px}
    .fakt-event-body{padding:22px}
    .fakt-event-card--has-logo .fakt-event-body{padding-top:46px}
    .fakt-event-title{font-size:20px}
    .fakt-event-logo-row{padding-left:20px}
    .fakt-event-logo{width:102px;height:62px}
    .fakt-event-actions{align-items:stretch}
    .fakt-event-button--primary{flex:1 1 100%}
    .fakt-event-button--secondary{flex:1}
    .fakt-calendar-menu{flex:1}
    .fakt-event-button--calendar{width:100%}
    .fakt-calendar-options{right:0;left:0;min-width:100%}
}
@media(max-width:420px){
    .fakt-calendar-text{display:none}
    .fakt-event-button--calendar svg:last-child{display:none}
}
@media(prefers-reduced-motion:reduce){
    .fakt-event-card,.fakt-event-featured,.fakt-event-button,.fakt-event-button svg,.fakt-clear-filter{transition:none!important}
    .fakt-event-card:hover,.fakt-event-button:hover,.fakt-clear-filter:hover{transform:none!important}
    .fakt-calendar-options{animation:none}
}
