/* CosplayHorror CMS v0.7.0 — Events, Haunts & Experience Calendar */

.directory-hero-actions,.event-hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px}
.secondary-public-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:12px 16px;color:#fff;font-weight:850;text-decoration:none}
.event-directory-tools{padding-bottom:25px}
.event-directory-filters,.experience-calendar-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(7,minmax(105px,.7fr));gap:9px}
.event-directory-filters input,.event-directory-filters select,.event-directory-filters button,.experience-calendar-filters input,.experience-calendar-filters select,.experience-calendar-filters button{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:0 11px;background:var(--panel);color:#fff}
.event-directory-filters button,.experience-calendar-filters button{border-color:var(--ember);background:var(--ember);font-weight:900}
.directory-results-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.directory-results-heading h2{margin:5px 0 0}
.event-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.event-directory-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--panel);text-decoration:none;transition:.18s}
.event-directory-card:hover{border-color:var(--ember);transform:translateY(-2px)}
.event-card-media{display:grid;height:220px;place-items:center;background:#030507;color:var(--ember-light);font-weight:900;text-transform:uppercase}.event-card-media img{width:100%;height:100%;object-fit:cover}
.event-card-copy{padding:18px}.event-card-labels{display:flex;flex-wrap:wrap;gap:7px}.event-card-labels span{color:var(--ember-light);font-size:.6rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.event-card-copy h3{margin:8px 0;font-size:1.25rem}.event-card-copy strong{display:block;color:#fff;font-size:.8rem}.event-card-copy p,.event-card-copy small{display:block;margin:7px 0 0;color:var(--muted);line-height:1.55}
.directory-empty{border:1px dashed var(--line);border-radius:17px;padding:42px 24px;color:var(--muted);text-align:center}
.public-event-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,520px);gap:50px;align-items:center;padding-top:58px;padding-bottom:58px}.event-detail-labels{display:flex;flex-wrap:wrap;gap:7px}.event-detail-labels span{border:1px solid var(--line);border-radius:999px;padding:6px 9px;color:var(--muted);font-size:.62rem;font-weight:900;text-transform:uppercase}.event-status-chip.status-active{color:var(--success);border-color:rgba(75,212,154,.4)}.event-status-chip.status-cancelled,.event-status-chip.status-postponed{color:var(--ember-light)}
.public-event-hero h1{margin:18px 0 12px;font-size:clamp(3rem,7vw,6.5rem);line-height:.9;letter-spacing:-.07em}.event-byline,.event-location-lead{color:var(--muted)}.event-date-lead{margin:18px 0 4px;color:#fff;font-size:1.25rem;font-weight:900}.event-summary{max-width:800px;color:#d5dbe1;font-size:1.03rem;line-height:1.75}
.public-event-media img{width:100%;max-height:540px;border-radius:18px;object-fit:cover;box-shadow:var(--shadow)}.event-media-placeholder{display:grid;min-height:420px;place-items:center;align-content:center;border:1px solid var(--line);border-radius:18px;background:radial-gradient(circle at center,rgba(255,90,79,.18),transparent 48%),var(--panel)}.event-media-placeholder span{font-size:4rem}.event-media-placeholder strong{margin-top:12px;color:var(--muted);text-transform:uppercase}
.event-detail-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:44px;align-items:start;border-top:1px solid var(--line);padding-top:45px}.event-facts{position:sticky;top:105px;border:1px solid var(--line);border-radius:17px;padding:20px;background:var(--panel)}.event-facts dl{margin:16px 0 0}.event-facts dl div{padding:12px 0;border-top:1px solid var(--line)}.event-facts dl div:first-child{border-top:0}.event-facts dt{color:var(--muted);font-size:.61rem;font-weight:900;text-transform:uppercase}.event-facts dd{margin:5px 0 0;color:#fff}
.event-detail-main>section+section{margin-top:60px}.event-detail-main h2{font-size:2rem}.event-public-schedule{border-top:1px solid var(--line)}.event-public-schedule article{display:grid;grid-template-columns:115px minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.event-public-schedule time strong,.event-public-schedule time span{display:block}.event-public-schedule time strong{color:var(--ember-light);font-size:.7rem;text-transform:uppercase}.event-public-schedule time span{margin-top:4px;color:#fff;font-weight:850}.event-public-schedule h3{margin:0;font-size:1rem}.event-public-schedule p,.event-public-schedule small{display:block;margin:4px 0 0;color:var(--muted)}.event-public-schedule article>div:last-child{display:flex;align-items:flex-end;flex-direction:column;gap:7px}.event-public-schedule article>div:last-child a{color:var(--ember-light);font-size:.72rem;font-weight:900;text-decoration:none}.schedule-status{border:1px solid var(--line);border-radius:999px;padding:5px 7px;color:var(--amber);font-size:.58rem;font-weight:900;text-transform:uppercase}.event-description div,.event-venue-section p{color:#d5dbe1;line-height:1.8}
.experience-calendar-controls{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:14px;align-items:center;padding-bottom:22px;text-align:center}.experience-calendar-controls h2{margin:4px 0 0;font-size:clamp(1.8rem,4vw,3rem)}.calendar-arrow{display:grid;width:52px;height:52px;place-items:center;border:1px solid var(--line);border-radius:50%;color:#fff;text-decoration:none}.calendar-arrow:hover{border-color:var(--ember)}
.experience-calendar-filters{grid-template-columns:repeat(4,minmax(130px,1fr)) auto;margin-bottom:30px}.calendar-day-group{margin-bottom:26px}.calendar-day-group>header{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 10px}.calendar-day-group>header time strong,.calendar-day-group>header time span{display:block}.calendar-day-group>header time strong{color:var(--ember-light);font-size:.65rem;text-transform:uppercase}.calendar-day-group>header time span{font-size:1.5rem;font-weight:900}.calendar-day-group>header>span{color:var(--muted);font-size:.65rem}.calendar-event-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0;text-decoration:none}.calendar-kind{border:1px solid var(--line);border-radius:999px;padding:5px 7px;color:var(--muted);font-size:.58rem;font-weight:900;text-align:center;text-transform:uppercase}.calendar-kind.kind-haunt{border-color:rgba(255,90,79,.45);color:var(--ember-light)}.calendar-event-row h3{margin:0;font-size:1rem}.calendar-event-row p{margin:4px 0 0;color:var(--muted);font-size:.72rem}.calendar-event-row>span:last-child{color:var(--muted);font-size:.68rem}
@media(max-width:1080px){.event-directory-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.event-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.public-event-hero{grid-template-columns:1fr}.public-event-media{width:min(600px,100%)}.event-detail-layout{grid-template-columns:1fr}.event-facts{position:static}.experience-calendar-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.event-directory-filters{grid-template-columns:1fr}.event-card-grid{grid-template-columns:1fr}.public-event-hero h1{font-size:clamp(2.8rem,14vw,4.5rem)}.event-public-schedule article{grid-template-columns:1fr}.event-public-schedule article>div:last-child{align-items:flex-start}.experience-calendar-filters{grid-template-columns:1fr}.calendar-event-row{grid-template-columns:1fr}.calendar-kind{width:fit-content}}

/* CosplayHorror CMS v0.7.1 — Family discovery and linked newsroom coverage */
.directory-family-filter{display:flex;min-height:44px;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--panel);color:#d3dae1;font-size:.7rem;font-weight:800}.directory-family-filter input{width:auto;min-height:auto}
.family-friendly-badge,.calendar-family-chip{display:inline-flex;align-items:center;width:fit-content;border:1px solid rgba(75,212,154,.36)!important;border-radius:999px;padding:5px 8px!important;color:var(--success)!important;font-size:.58rem!important;font-weight:900!important;letter-spacing:.04em;text-transform:uppercase}
.event-coverage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.event-coverage-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-decoration:none}.event-coverage-card img{width:100%;height:170px;object-fit:cover}.event-coverage-card>div{padding:14px}.event-coverage-card span{color:var(--ember-light);font-size:.58rem;font-weight:900;text-transform:uppercase}.event-coverage-card h3{margin:7px 0;font-size:1rem}.event-coverage-card p{margin:0;color:var(--muted);font-size:.73rem;line-height:1.55}
.event-linked-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.event-linked-media-grid figure{margin:0}.event-linked-media-grid img{width:100%;height:240px;border-radius:12px;object-fit:cover;background:#020304}.event-linked-media-grid figcaption{margin-top:6px;color:var(--muted);font-size:.65rem}
.calendar-event-row{grid-template-columns:auto auto minmax(0,1fr) auto}
@media(max-width:850px){.event-coverage-grid,.event-linked-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.event-coverage-grid,.event-linked-media-grid{grid-template-columns:1fr}.event-linked-media-grid img{height:auto;max-height:500px}.calendar-event-row{grid-template-columns:1fr}.directory-family-filter{justify-content:flex-start}}


/* CosplayHorror CMS v0.7.2 — Stable Event / Haunt directory cards */
.event-card-grid {
    align-items: stretch;
}

.event-directory-card {
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
}

.event-card-media {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 220px;
    min-height: 220px;
    max-height: 220px;
    flex: 0 0 220px;
}

.event-card-media img {
    display: block;
    width: 100%;
    height: 220px;
    min-height: 220px;
    max-height: 220px;
    object-fit: cover;
    object-position: center;
}

.event-card-copy {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 0;
    flex: 1 1 auto;
    flex-direction: column;
    background: var(--panel);
}

.event-card-copy h3 {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.event-card-copy > p {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-card-copy > small {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.event-card-copy strong {
    margin-top: auto;
    padding-top: 10px;
}

@media (max-width: 640px) {
    .event-card-media,
    .event-card-media img {
        height: 210px;
        min-height: 210px;
        max-height: 210px;
        flex-basis: 210px;
    }
}
