.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.event-card{display:grid;grid-template-columns:minmax(180px,.8fr) 1.2fr;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 32px rgba(24,24,27,.05)}.event-poster{min-height:300px;background:#f1eef8;overflow:hidden;text-decoration:none}.event-poster img{width:100%;height:100%;object-fit:cover}.event-poster-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,rgba(124,58,237,.16),rgba(180,83,9,.08)),#f1eef8}.event-poster-placeholder>span{display:grid;place-items:center;width:112px;height:112px;border-radius:28px;background:#fff;font-size:2.8rem;font-weight:800;line-height:1;box-shadow:var(--shadow)}.event-poster-placeholder small{display:block;margin-top:7px;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.event-card-body{padding:30px;align-self:center}.event-card-body h2{margin:12px 0 8px;font-size:clamp(1.5rem,2.5vw,2.1rem);line-height:1.15;letter-spacing:-.03em}.event-card-body h2 a{text-decoration:none}.event-card-body>p:not(.event-venue){color:var(--muted)}.event-venue{font-weight:700}.event-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:22px}.event-open{font-size:.86rem;font-weight:700;color:var(--green)}.past-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.past-event-card{display:grid;gap:5px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--white);text-decoration:none}.past-event-card span{color:var(--muted);font-size:.9rem}.event-detail-hero{padding:72px 0;background:linear-gradient(180deg,#fbfaf9,#f7f5f3);border-bottom:1px solid var(--line)}.event-detail-grid{display:grid;grid-template-columns:1fr minmax(320px,.72fr);gap:54px;align-items:center}.event-detail-hero h1{margin:8px 0 26px;font-size:clamp(3rem,6vw,5rem);line-height:1.03;letter-spacing:-.045em}.event-detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.event-detail-meta div{display:grid;gap:3px;padding:16px 0;border-top:1px solid var(--line)}.event-detail-meta span{color:var(--muted)}.event-detail-poster img{width:100%;max-height:520px;object-fit:cover;border-radius:26px;box-shadow:var(--shadow)}.event-content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,390px);gap:42px;align-items:start}.event-description{font-size:1.06rem;line-height:1.85}.event-description h2,.event-registration-card h2{margin-top:0;letter-spacing:-.03em}.event-contact{display:grid;gap:5px;margin-top:30px;padding:22px;border-radius:18px;background:var(--soft)}.event-registration-card{position:sticky;top:100px;padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--white);box-shadow:0 12px 32px rgba(24,24,27,.05)}.event-note{color:var(--muted);font-size:.92rem}.event-form{display:grid;gap:15px;margin-top:22px}.event-form label{display:grid;gap:6px;font-weight:700;font-size:.92rem}.event-form input,.event-form textarea{width:100%;border:1px solid #d9d7d4;border-radius:12px;padding:11px 13px;background:#fff}.event-form textarea{resize:vertical}.event-success,.event-error{display:grid;gap:3px;margin:0 0 18px;padding:14px 16px;border-radius:14px}.event-success{background:#edf8f0;color:#166534}.event-error{background:#fff0f0;color:#991b1b}.event-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}@media(max-width:1050px){.event-grid,.event-detail-grid{grid-template-columns:1fr}.event-registration-card{position:static}.past-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.event-content-grid{grid-template-columns:1fr}.event-registration-card{position:static}}@media(max-width:760px){.event-grid,.past-event-grid{grid-template-columns:1fr}.event-card{grid-template-columns:1fr}.event-poster{min-height:230px}.event-card-body{padding:24px}.event-detail-hero{padding:52px 0}.event-detail-meta{grid-template-columns:1fr}.event-content-grid{gap:34px}.event-registration-card{padding:24px}}

/* Event detail refinements */
.event-detail-grid:has(.event-detail-poster){grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)}
.event-detail-grid:not(:has(.event-detail-poster)){grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)}
.event-detail-grid:not(:has(.event-detail-poster))::after{content:"EVENT POSTER\A\A Upload a poster from Admin → Events";white-space:pre-line;display:grid;place-content:center;justify-items:center;min-height:350px;padding:28px;border:1px solid #e5ddea;border-radius:26px;background:#fff;box-shadow:0 18px 45px rgba(49,0,79,.12);color:#4b0b70;text-align:center;font-family:"Trebuchet MS",Arial,sans-serif;font-size:1.1rem;font-weight:800;letter-spacing:.1em;line-height:1.6}
.event-detail-hero h1{max-width:15ch}
.event-description{max-width:760px}
.event-description-copy{color:#38343d}
.event-description-copy p{margin:0 0 1.2em}
.event-description-copy p:last-child{margin-bottom:0}
.event-description-copy ul,.event-description-copy ol{padding-left:1.35em;margin:0 0 1.2em}
.event-registration-card{border-top:4px solid var(--purple,#5d117d)}
.event-registration-card .eyebrow{display:block;margin-bottom:10px}
.event-registration-card h2{font-size:clamp(1.55rem,2.4vw,2rem)}
.event-sidebar-stack{align-self:start}.event-announcements{margin-top:32px;padding:28px;border:1px solid #e2d7e9;border-radius:22px;background:linear-gradient(145deg,#fbf8ff,#f6f4fa);box-shadow:0 12px 32px rgba(49,0,79,.05);color:#5c5362;line-height:1.72}.event-announcements .eyebrow{display:block;margin-bottom:10px}.event-announcements p{margin:0}.event-announcements div p{margin:0 0 1em}.event-announcements div p:last-child{margin-bottom:0}
@media(max-width:760px){.event-detail-hero h1{font-size:clamp(2.5rem,12vw,3.5rem)}.event-description{font-size:1rem}.event-detail-grid:not(:has(.event-detail-poster))::after{min-height:230px;font-size:.9rem}.event-announcements{margin-top:24px;padding:24px}}
.event-detail-hero .article-back{display:inline-flex;margin:0 16px 18px 0}
@media(max-width:760px){.event-detail-hero .article-back{display:block!important;margin:0 0 12px}}
/* Keep the event details and registration side by side on tablets and desktop. */
@media(min-width:621px){.event-content-grid{grid-template-columns:minmax(0,1fr) minmax(330px,390px)!important}.event-registration-card{position:sticky}}
/* An upload prompt is useful on desktop, but it must never cover event details on a phone. */
@media(max-width:620px){.event-detail-grid:not(:has(.event-detail-poster))::after{display:none}}
/* Use the hero container width as well as screen width so narrow embedded views
   cannot retain an unused desktop poster column. */
.event-detail-hero .container{container-type:inline-size}
@container (max-width:700px){.event-detail-grid{grid-template-columns:1fr!important;gap:28px}.event-detail-grid:not(:has(.event-detail-poster))::after{display:none}.event-detail-hero .article-back{display:inline-flex!important;margin:0 0 12px}.event-detail-meta{grid-template-columns:1fr}}
/* Keep the empty poster holder visible below the event details on small screens. */
@container (max-width:700px){.event-detail-grid:not(:has(.event-detail-poster))::after{display:grid;min-height:220px;font-size:.88rem;line-height:1.55}}
/* This must come after the poster styling above so the mobile one-column layout wins. */
@media(max-width:1050px){.event-detail-grid,.event-detail-grid:not(:has(.event-detail-poster)){grid-template-columns:1fr!important}.event-detail-grid:not(:has(.event-detail-poster))::after{grid-column:1;min-height:220px;font-size:.88rem;line-height:1.55}}
