:root{
    --ibe-cream:#F6F0E6;
    --ibe-black:#0C0C0C;
    --ibe-charcoal:#202126;
    --ibe-border:rgba(12,12,12,.18);
    --ibe-muted:rgba(32,33,38,.66)
}

.ibe-events-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px
}

.ibe-card{
    border:1px solid var(--ibe-border);
    background:rgba(255,255,255,.22);
    overflow:hidden;
    scroll-margin-top:120px
}

/* Square event artwork across all card layouts */
.ibe-card-media{
    position:relative;
    aspect-ratio:1/1;
    background:#111;
    overflow:hidden
}

.ibe-card-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
    filter:grayscale(75%) sepia(12%) contrast(106%) brightness(92%)
}

.ibe-poster-placeholder{
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#F6F0E6;
    letter-spacing:3px;
    font-family:serif;
    font-size:18px
}

.ibe-badge{
    position:absolute;
    top:16px;
    left:16px;
    padding:7px 10px;
    border:1px solid rgba(246,240,230,.7);
    background:rgba(12,12,12,.65);
    color:#F6F0E6;
    font-size:10px;
    letter-spacing:2px
}

.ibe-card-body{
    padding:24px;
    display:flex;
    flex-direction:column
}

.ibe-kicker{
    font-size:10px;
    letter-spacing:2.2px;
    text-transform:uppercase;
    color:var(--ibe-muted)
}

.ibe-card h3{
    margin:7px 0 10px;
    font-family:"Libre Baskerville",serif;
    font-size:26px;
    line-height:1.15;
    color:var(--ibe-black)
}

.ibe-date{
    margin:0 0 16px;
    font-size:14px;
    color:var(--ibe-muted)
}

.ibe-artists{
    margin:0 0 16px;
    font-size:14px;
    line-height:1.55
}

.ibe-artists span{
    display:block;
    font-size:10px;
    letter-spacing:1.7px;
    text-transform:uppercase;
    color:var(--ibe-muted);
    margin-bottom:4px
}

/* Collapsed event copy keeps cards short and even */
.ibe-more-details{
    margin-top:4px;
    border-top:1px solid var(--ibe-border);
    border-bottom:1px solid var(--ibe-border)
}

.ibe-more-details summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    list-style:none;
    cursor:pointer;
    padding:15px 0;
    font-size:11px;
    font-weight:600;
    letter-spacing:1.8px;
    text-transform:uppercase;
    color:var(--ibe-black)
}

.ibe-more-details summary::-webkit-details-marker{display:none}

.ibe-more-icon{
    width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--ibe-border);
    font-size:18px;
    font-weight:300;
    line-height:1;
    transition:transform .2s ease
}

.ibe-more-details[open] .ibe-more-icon{transform:rotate(45deg)}

.ibe-more-content{
    padding:0 0 18px;
    font-size:14px;
    line-height:1.65;
    color:var(--ibe-charcoal)
}

.ibe-more-content p{margin:0 0 14px}
.ibe-more-content p:last-child{margin-bottom:0}

.ibe-canvas-detail{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--ibe-border)
}

.ibe-detail-label{
    display:block;
    margin-bottom:6px;
    font-size:10px;
    font-weight:600;
    letter-spacing:1.7px;
    text-transform:uppercase;
    color:var(--ibe-muted)
}

.ibe-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:20px
}

.ibe-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    min-height:44px;
    padding:0 18px;
    text-transform:uppercase;
    letter-spacing:1.7px;
    font-size:10px;
    text-decoration:none!important;
    border:1px solid var(--ibe-black);
    transition:.2s ease
}

.ibe-btn--dark{background:var(--ibe-black);color:var(--ibe-cream)!important}
.ibe-btn--ghost{background:transparent;color:var(--ibe-black)!important}
.ibe-btn:hover{transform:translateY(-1px)}

.ibe-events-grid--compact{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px
}

.ibe-card--compact .ibe-card-media{aspect-ratio:1/1}
.ibe-card--compact .ibe-card-body{padding:18px}
.ibe-card--compact h3{font-size:20px}
.ibe-card--compact .ibe-actions{margin-top:14px}
.ibe-card--compact .ibe-btn{min-height:38px}

.ibe-section-heading{margin-bottom:24px}
.ibe-section-heading span,.ibe-canvas-label{
    display:block;
    font-size:10px;
    letter-spacing:2.5px;
    text-transform:uppercase;
    color:var(--ibe-muted);
    margin-bottom:8px
}

.ibe-section-heading h2{
    margin:0;
    font-family:"Libre Baskerville",serif;
    font-size:34px
}

.ibe-canvas-info{
    display:grid;
    grid-template-columns:1fr 2fr;
    gap:60px;
    padding:54px 0;
    border-top:1px solid var(--ibe-border);
    border-bottom:1px solid var(--ibe-border)
}

.ibe-canvas-copy h2{
    margin:0 0 22px;
    font-family:"Libre Baskerville",serif;
    font-size:42px;
    line-height:1.15
}

.ibe-canvas-copy p{
    max-width:760px;
    font-size:16px;
    line-height:1.75;
    color:var(--ibe-charcoal)
}

.ibe-canvas-copy .ibe-btn{margin-top:10px}
.ibe-empty{padding:24px;border:1px solid var(--ibe-border);color:var(--ibe-muted)}

@media(max-width:1024px){
    .ibe-events-grid,.ibe-events-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ibe-canvas-info{grid-template-columns:1fr;gap:20px}
}

@media(max-width:767px){
    .ibe-events-grid,.ibe-events-grid--compact{grid-template-columns:1fr}
    .ibe-card-media,.ibe-card--compact .ibe-card-media{aspect-ratio:1/1}
    .ibe-card h3{font-size:24px}
    .ibe-canvas-info{padding:36px 0}
    .ibe-canvas-copy h2{font-size:30px}
}
