/* Event components use the Home template's tokens and existing 600/861px breakpoints. */
.wpp-events-page { padding-top: 0; }
.wpp-events .wpp-event-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; margin-top: 28px; }
.wpp-events .wpp-event-card { min-width: 0; overflow: hidden; border: 2px solid var(--ink); border-radius: 20px; background: var(--paper); box-shadow: 0 7px 0 var(--ink); }
.wpp-event-card__link { display: flex; height: 100%; flex-direction: column; text-decoration: none; }
.wpp-event-card__link:hover .wpp-event-card__action { text-decoration: underline; text-underline-offset: 5px; }
.wpp-event-card__media { aspect-ratio: 3 / 2; overflow: hidden; border-bottom: 2px solid var(--ink); }
.wpp-event-card__media img { width: 100%; height: 100%; object-fit: cover; }
.wpp-event-card__identity { display: grid; align-items: center; padding: 24px; background: var(--lilac); }
.wpp-event-card:nth-child(2) .wpp-event-card__identity { background: var(--lime); }
.wpp-event-card__identity span { font-size: clamp(2rem,5vw,3rem); font-weight: 950; line-height: .94; letter-spacing: .015em; }
.wpp-event-card__copy { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.wpp-event-card__copy h3 { font-size: 1.5rem; }
.wpp-event-card__action { margin-top: auto; padding-top: 12px; font-weight: 800; }
.wpp-events .wpp-event-meta { line-height: 1.55; }
.wpp-events-empty { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-top:24px; padding:32px; border:1px solid #17352f40; border-radius:20px; background:var(--paper); }
.wpp-events-empty h3 { margin-bottom:12px; }
.wpp-events-empty p { max-width:620px; }
.wpp-events-notify { flex-shrink:0; }
@media(max-width:700px) { .wpp-events-empty { flex-direction:column; align-items:flex-start; padding:24px; gap:24px; } }
.wpp-event-hero { display: grid; gap: 28px; align-items: center; margin: 28px 0; }
.wpp-event-hero h1 { font-size: clamp(2.85rem,6vw,4.5rem); }
.wpp-event-story { max-width: 800px; }
.wpp-event-story .wp-block-gallery { max-width: 100%; margin-block: 28px; }
.wpp-event-queens { margin: 28px 0; padding: 24px; border: 2px solid var(--ink); border-radius: 20px; background: var(--lime); }
.wpp-event-queens h2 { font-size: var(--type-title); }
.wpp-event-instagram { margin: 36px 0; max-width: 540px; }
.wpp-event-instagram .instagram-media, .wpp-event-instagram iframe { width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin-inline: 0 !important; }
.wpp-event-instagram blockquote { padding: 20px; border: 2px solid var(--ink); border-radius: 14px; background: var(--paper); }
@media (min-width:600px) { .wpp-events .wpp-event-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width:861px) { .wpp-events .wpp-event-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .wpp-event-hero:has(figure) { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 40px; } }
.wpp-events .wpp-event-hero .event-recap__photo { width: 100%; aspect-ratio: 3 / 2; }

/* Same site shell and hero rhythm as the existing Rules page. */
body.wpp-events-page-body { --ink:#17352f; --cream:#f6f1e8; --paper:#fffdf8; --lilac:#cfb8ff; --lime:#d8ff63; --coral:#ff6f61; --type-title:clamp(1.8rem,3vw,2.6rem); margin:0; background:var(--cream); color:var(--ink); font-family:Inter,Arial,sans-serif; font-size:16px; line-height:1.6; }
.wpp-events-page-body * { box-sizing:border-box; }
.wpp-events-page-body a { color:inherit; text-underline-offset:.25em; }
.wpp-events-page-body :focus-visible { outline:3px solid currentColor; outline-offset:5px; }
.wpp-events-page-body h1,.wpp-events-page-body h2,.wpp-events-page-body h3,.wpp-events-page-body p,.wpp-events-page-body figure { margin:0; }
.wpp-events-page-body h1,.wpp-events-page-body h2,.wpp-events-page-body h3 { font-weight:800; line-height:1.12; letter-spacing:-.04em; text-wrap:balance; }
.wpp-events-page-body h2 { font-size:var(--type-title); }
.wpp-events-page-body h3 { font-size:1.3rem; }
.wpp-events-page-body img { display:block; max-width:100%; height:auto; }
.wpp-events-page-body .wrap { width:min(calc(100% - 40px),1180px); margin-inline:auto; }
.wpp-events-page-body .eyebrow { font-size:.75rem; font-weight:800; letter-spacing:.11em; line-height:1.4; }
.wpp-events-page-body .wpp-events-hero { padding:54px 0 42px; }
.wpp-events-page-body .wpp-events-hero .eyebrow { letter-spacing:.12em; margin-bottom:18px; }
.wpp-events-page-body .wpp-events-hero h1 { font-size:clamp(3rem,6vw,5rem); font-weight:850; line-height:1.08; letter-spacing:-.055em; margin:0; }
.wpp-events-page-body .lead { font-size:1.05rem; line-height:1.55; max-width:850px; margin-top:18px; }
.wpp-events-page-body .wpp-events-list { padding:32px 0 48px; }
.wpp-events-page-body .wpp-events-list > .wrap { border-top:1px solid #17352f40; padding-top:32px; }
.wpp-events-page-body .wpp-events-list h2 { font-size:1.5rem; }
.wpp-events-page-body .wpp-event-card { border-width:1px; box-shadow:none; }
.wpp-events-page-body .wpp-event-card__copy { gap:12px; }
.wpp-events-page-body .wpp-event-card__copy h3 { font-size:1.55rem; }
.wpp-events-page-body .wpp-event-card__action { border-top:1px solid #17352f44; min-height:44px; text-align:right; }
.wpp-events-page-body .wpp-event-meta { margin:12px 0; }
.wpp-events-page-body .wpp-events-page > section:not(.wpp-events-hero):not(.wpp-events-list) { padding:32px 0 64px; }
.wpp-events-page-body .wpp-event-hero { margin:24px 0 40px; }
.wpp-events-page-body .wpp-event-hero h1 { margin:16px 0; }
.wpp-events-page-body .event-recap__photo { overflow:hidden; border:1px solid var(--ink); border-radius:20px; }
.wpp-events-page-body .wpp-event-story p { margin-bottom:18px; font-size:1.1rem; }

.wpp-events-page-body .button { margin-top:20px; }
.wpp-events-page-body .wpp-events-notify { margin-top:0; }

.wpp-events-skip { position:fixed; left:20px; top:-100px; z-index:100; background:var(--lime); padding:12px 20px; }
.wpp-events-skip:focus { top:12px; }
@media(max-width:700px) { .wpp-events-page-body .wpp-events-hero { padding:32px 0 30px; } .wpp-events-page-body .wpp-events-hero h1 { font-size:3rem; } .wpp-events-page-body .lead { font-size:1rem; } }

/* Instagram briefly positions unavailable/loading posts absolutely. Keep that
   official iframe's percentage width relative to its own responsive container. */
.wpp-event-instagram { position:relative; }

/* Opt-in visual recap; leaves the archive and existing event layout intact. */
.wpp-events-page-body .wpp-visual-recap { padding:32px 0 64px; }
.wpp-recap-back { display:inline-flex; align-items:center; gap:.6rem; font-size:.9rem; text-decoration:none; min-height:44px; }
.wpp-recap-back:hover,.wpp-recap-all:hover { text-decoration:underline; }
.wpp-recap-hero { margin-top:28px; }
.wpp-recap-hero .eyebrow { margin-bottom:18px; }
.wpp-events-page-body .wpp-recap-hero h1 { font-size:clamp(2.6rem,5vw,4.5rem); font-weight:850; letter-spacing:-.055em; line-height:1.08; }
.wpp-recap-location { margin-top:18px!important; font-size:1.05rem; }
.wpp-events-page-body .wpp-recap-photo { margin-top:32px; border:1px solid var(--ink); border-radius:20px; overflow:hidden; }
.wpp-recap-photo img { width:100%; height:auto; }
.wpp-recap-snapshot { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:0; padding:28px 0; border-bottom:1px solid #17352f40; }
.wpp-recap-snapshot > div { display:flex; flex-direction:column-reverse; gap:6px; min-width:0; }
.wpp-recap-snapshot dt { font-size:.75rem; font-weight:750; letter-spacing:.07em; text-transform:uppercase; }
.wpp-recap-snapshot dd { margin:0; font-size:clamp(1.2rem,3vw,2rem); font-weight:800; line-height:1.2; text-transform:uppercase; overflow-wrap:anywhere; }
.wpp-visual-recap .eyebrow { text-transform:uppercase; }
.wpp-visual-recap a:focus-visible { outline:3px solid var(--ink); outline-offset:5px; }
.wpp-recap-embeds:has(> :only-child) { grid-template-columns:minmax(0,540px); }
.wpp-events-page-body .wpp-visual-recap h2.eyebrow { font-size:.75rem; line-height:1.4; letter-spacing:.11em; margin-bottom:18px; }
.wpp-recap-intro { max-width:850px; padding:40px 0 32px; }
.wpp-recap-intro p { font-size:1.05rem; line-height:1.65; }
.wpp-recap-queens { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:28px 32px; border-radius:20px; background:var(--lilac); margin:0 0 40px; }
.wpp-recap-queens h2 { display:flex; align-items:center; gap:10px; }
.wpp-recap-queens svg { width:26px; height:24px; flex-shrink:0; }
.wpp-recap-queens p { font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-.04em; line-height:1.15; }
.wpp-recap-queens img { width:42%; max-width:380px; border-radius:14px; }
.wpp-recap-gallery { margin-bottom:40px; }
.wpp-recap-gallery .wp-block-gallery { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px!important; }
.wpp-recap-gallery .wp-block-gallery figure.wp-block-image { width:100%!important; margin:0!important; }
.wpp-recap-gallery .wp-block-gallery figure.wp-block-image:first-child:nth-last-child(n+3) { grid-column:1/-1; }
.wpp-recap-gallery .wp-block-gallery img { width:100%; height:auto; border-radius:14px; }
.wpp-recap-embeds { display:grid; grid-template-columns:minmax(0,1fr); gap:28px; align-items:start; }
.wpp-recap-instagram-post { min-width:0; max-width:540px; margin:0; }
.wpp-recap-instagram-post h3 { margin-bottom:14px; }
.wpp-recap-instagram-post blockquote { min-height:160px; background:var(--paper); }
.wpp-recap-instagram-post iframe { position:static!important; min-height:480px; }
.wpp-recap-instagram-post:has(iframe) blockquote { display:none!important; }
.wpp-recap-host { margin-top:40px; padding:28px 0; border-top:1px solid #17352f40; }
.wpp-recap-host-name { font-size:1.5rem; font-weight:800; letter-spacing:-.04em; }
.wpp-recap-host-thanks { margin-top:12px!important; }
.wpp-recap-cta { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:32px; background:var(--paper); border:1px solid #17352f40; border-radius:20px; padding:32px; margin-top:16px; }
.wpp-events-page-body .wpp-recap-cta h2 { font-size:clamp(1.4rem,2.4vw,2rem); margin-bottom:12px; }
.wpp-recap-cta p { max-width:620px; }
.wpp-recap-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
.wpp-events-page-body .wpp-recap-actions .button { margin:0 0 7px; }
.wpp-recap-all { display:inline-flex; align-items:center; gap:.6rem; min-height:44px; font-weight:750; text-decoration:none; }
@media(max-width:700px) {
 .wpp-recap-hero { margin-top:20px; }
 .wpp-recap-snapshot { gap:10px 16px; }

 .wpp-recap-embeds,.wpp-recap-cta { grid-template-columns:minmax(0,1fr); }
 .wpp-recap-queens { flex-direction:column; align-items:flex-start; padding:24px; }
 .wpp-recap-queens img { width:100%; max-width:100%; }
 .wpp-recap-gallery .wp-block-gallery { grid-template-columns:minmax(0,1fr); }
 .wpp-recap-cta { padding:24px; }
}
@media(min-width:861px) { .wpp-recap-embeds { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Final event-detail polish; all changes are scoped to the shared recap. */
.wpp-recap-breadcrumb { font-size:.8125rem; }
.wpp-recap-breadcrumb ol { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0; }
.wpp-recap-breadcrumb li { display:flex; align-items:center; gap:8px; }
.wpp-recap-breadcrumb li + li::before { content:'/'; }
.wpp-recap-breadcrumb a { display:inline-flex; align-items:center; min-height:44px; }
.wpp-recap-breadcrumb span { display:inline-flex; align-items:center; min-height:44px; }
.wpp-recap-snapshot > div { align-items:center; text-align:center; }
.wpp-recap-format { max-width:850px; padding:0 0 32px; }
.wpp-recap-format p { font-size:1.05rem; line-height:1.65; }
.wpp-recap-host-layout { display:flex; align-items:center; gap:40px; }
.wpp-recap-host-logo { flex:0 0 180px; }
.wpp-recap-host-logo img { width:100%; max-height:110px; object-fit:contain; }
.wpp-recap-host address { font-style:normal; margin-top:12px; }
.wpp-recap-directions { display:inline-flex; align-items:center; gap:6px; min-height:44px; font-weight:750; }
.wpp-events-page-body .wpp-recap-cta { background:var(--primary--50); color:#000; border-color:black; }
.wpp-events-page-body .wpp-recap-cta h2 { text-transform:none; color:#000; }
.wpp-events-page-body .wpp-recap-cta .button:focus-visible { outline-color:var(--ink); }
@media(max-width:700px) { .wpp-recap-host-layout { flex-direction:column; align-items:flex-start; gap:24px; } .wpp-recap-host-logo { flex-basis:auto; width:160px; } }
.wpp-recap-directions .wpp-ui-arrow { transform:rotate(-45deg); }
