/* =====================================================================
   Events: the Events page (archive-events.php) and each event
   (single-events.php). Sizes in px: event pages use the theme's 22px root.
   ===================================================================== */

.events-hub,
.events-single{
	--ev-ink:rgb(var(--primary));
	--ev-accent:rgb(var(--secondary));
	--ev-rule:rgba(var(--secondary), 0.22);
	--ev-radius:var(--thumbnail-radius, 25px);
}

/* shared bits ------------------------------------------------------- */
.event-eyebrow{display:block; margin:0 0 10px; font-family:'Work Sans', sans-serif; font-size:12px; font-weight:600; letter-spacing:0.14em; line-height:1.3; text-transform:uppercase; color:var(--ev-accent);}
/* section headings: centred, with the gradient rule below (as "Related" on the articles) */
.events-hub .section-head,
.events-more .section-head{display:flex; flex-direction:column; align-items:center; width:100%; margin-bottom:32px; text-align:center;}
.events-hub .section-head .eyebrow-title,
.events-more .section-head .eyebrow-title{width:100%; margin:0 0 18px; font-family:'Averia Serif Libre', serif; font-size:20px; font-weight:300; line-height:1.4; letter-spacing:0; text-transform:none; color:var(--ev-ink);}
.events-hub .section-divider,
.events-more .section-divider{margin:6px 0 0;}
.events-hub .section-divider::after,
.events-more .section-divider::after{content:''; display:block; width:290px; max-width:100%; height:1px;}

/* =====================================================================
   The Events page
   ===================================================================== */
/* the heading: the same type and spacing as the other main pages (section.investments / section.insights in style.css) */
section.events-hub .container{padding-bottom:130px;}
.events-hub-head{display:flex; flex-direction:column; align-items:center; width:100%; margin-bottom:70px; text-align:center;}
.events-hub-head .eyebrow-title{width:100%; margin-bottom:18px;}
.events-hub-head .main-title{width:100%; margin:0; text-transform:uppercase; text-wrap:balance;}
.events-hub-head .main-text{width:100%; max-width:720px; margin-top:24px; font-size:20px; line-height:1.5; text-wrap:pretty;}
.events-hub-head .main-text p{margin:0;}

/* Coming up ---------------------------------------------------------- */
.events-upcoming{width:100%; margin-bottom:72px;}
.events-upcoming-list{display:flex; flex-direction:column; gap:16px; margin:0; padding:0; list-style:none;}
.events-upcoming-list li{margin:0;}
.events-upcoming-list li::before{display:none;}
.event-upcoming{display:grid; grid-template-columns:auto minmax(0, 1fr) auto; align-items:center; gap:28px; padding:22px 28px; background:linear-gradient(146deg, rgba(var(--surface_med), 0.75) 0%, rgba(var(--surface_low), 0.35) 100%); border:1px solid var(--ev-rule); border-radius:14px; box-shadow:0 2px 4px rgba(var(--primary), 0.12);}
.event-upcoming-date{display:flex; flex-direction:column; align-items:center; justify-content:center; width:72px; height:72px; color:rgb(var(--white)); background:rgb(var(--primary)); border-radius:12px; font-family:'Work Sans', sans-serif; line-height:1;}
.event-upcoming-date .m{font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase;}
.event-upcoming-date .d{margin-top:4px; font-size:28px; font-weight:600;}
.event-upcoming-title{margin:0; font-family:'Averia Serif Libre', serif; font-size:24px; font-weight:300; line-height:1.3; letter-spacing:0; text-transform:none;}
.event-upcoming-title a{text-decoration:none;}
.event-upcoming-title a:hover,
.event-upcoming-title a:focus-visible{text-decoration:underline;}
.event-upcoming-where{margin:6px 0 0; font-family:'Work Sans', sans-serif; font-size:15px; line-height:1.4;}
.event-upcoming-cta.btn{float:none !important;}

/* The recaps --------------------------------------------------------- */
.events-recaps{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:72px 64px; width:100%; margin:0; padding:0; list-style:none;}
.events-recaps > li{margin:0;}
.events-recaps > li::before{display:none;}
.event-recap-link{display:flex; flex-direction:column; height:100%; color:var(--ev-ink); text-decoration:none;}
.event-recap-image{display:block; width:100%; aspect-ratio:5 / 3; margin-bottom:26px; overflow:hidden; background:rgba(var(--primary_100), 0.45); border-radius:var(--ev-radius); box-shadow:0 2px 4px rgba(var(--primary), 0.2);}
.event-recap-image img{display:block; width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease;}
.event-recap-link:hover .event-recap-image img,
.event-recap-link:focus-visible .event-recap-image img{transform:scale(1.03);}
.event-recap-noimage{display:flex; justify-content:center; align-items:center; width:100%; height:100%; font-family:'Work Sans', sans-serif; font-size:13px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:rgba(var(--primary), 0.5); border:2px dashed rgba(var(--secondary), 0.3); border-radius:inherit;}
.event-recap-body{display:flex; flex:1 1 auto; flex-direction:column; align-items:flex-start;}
.event-recap-title{display:block; margin-bottom:18px; font-family:'Work Sans', sans-serif; font-size:22px; font-weight:600; line-height:1.3;}
/* impact: one line on what the event made possible */
.event-impact{display:flex; flex-direction:column; margin-bottom:24px; padding-left:18px; border-left:3px solid rgb(var(--tertiary));}
.event-impact-text{font-family:'Averia Serif Libre', serif; font-size:24px; font-weight:300; line-height:1.3; color:var(--ev-accent); max-width:30ch;}
.event-recap-summary{display:block; margin-bottom:26px; font-size:19px; line-height:1.5; max-width:46ch;}
.event-recap-more{display:flex; margin-top:auto;}
.event-recap-link:hover span.btn,
.event-recap-link:focus-visible span.btn{color:rgb(var(--white)) !important; background-color:rgb(var(--secondary)) !important; border-color:rgb(var(--secondary)) !important;}
.event-recap-link:focus-visible{outline:none;}
.event-recap-link:focus-visible .event-recap-image{outline:3px solid rgb(var(--tertiary)); outline-offset:4px;}

/* the first recap leads: full width, photo beside the words */
.event-recap.is-lead{grid-column:1 / -1;}
.event-recap.is-lead .event-recap-link{display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); align-items:center; gap:56px;}
.event-recap.is-lead .event-recap-image{margin:0;}
.event-recap.is-lead .event-recap-title{font-family:'Averia Serif Libre', serif; font-size:36px; font-weight:300; line-height:1.2;}
.event-recap.is-lead .event-impact-text{font-size:28px;}
.event-recap.is-lead .event-recap-more{margin-top:0;}

.events-empty{width:100%; padding:40px; text-align:center;}

/* =====================================================================
   One event
   ===================================================================== */
body.single-events .page-wrapper{overflow-x:clip; overflow-y:visible;} /* lets the blue bar stick */
.event-story .container{padding-top:44px;}
.event-story-head{margin-bottom:40px;}
.event-story-image{width:100%; aspect-ratio:5 / 3; margin-bottom:36px; overflow:hidden; border-radius:var(--ev-radius); box-shadow:0 2px 4px rgba(var(--primary), 0.2);}
.event-story-image img{display:block; width:100%; height:100%; object-fit:cover;}
.event-story-title{margin:0 0 18px; font-family:'Averia Serif Libre', serif; font-size:46px; font-weight:300; line-height:1.15; letter-spacing:0; text-transform:none; text-wrap:balance;}
.event-story-summary{margin:0; font-size:22px; line-height:1.5; text-wrap:pretty;}

/* at a glance */
.event-glance{display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); width:100%; margin:0 0 56px; padding:0; border-block:1px solid var(--ev-rule);}
.event-glance > div{display:flex; flex-direction:column; gap:8px; padding:26px 24px; min-width:0;}
.event-glance > div:first-child{padding-left:0;}
.event-glance > div + div{border-left:1px solid var(--ev-rule);}
.event-glance dt{font-family:'Work Sans', sans-serif; font-size:12px; font-weight:600; letter-spacing:0.14em; line-height:1.3; text-transform:uppercase; color:var(--ev-accent);}
.event-glance dd{margin:0; font-family:'Averia Serif Libre', serif; font-size:24px; font-weight:300; line-height:1.3; overflow-wrap:anywhere;}
.event-glance .is-gap dd{font-family:'Work Sans', sans-serif; font-size:14px; font-style:italic; opacity:0.5;}
/* impact leads the glance, full width; role and benefiting sit below it */
.event-glance > .event-glance-impact{grid-column:1 / -1; padding-left:0; border-bottom:1px solid var(--ev-rule);}
.event-glance > .event-glance-impact + div{padding-left:0; border-left:0;}
.event-glance-impact dd{font-size:30px; line-height:1.25; color:var(--ev-accent); max-width:32ch; text-wrap:pretty;}
.event-register{margin:-24px 0 56px;}
.event-register .btn{float:none !important; display:inline-flex;}

/* the blocks: overview, what it made possible, photos & video */
.event-block{display:block; float:none; width:100%; margin-bottom:56px;} /* not the site-wide centred flex <section> */
.event-block-title{margin:0 0 18px; font-family:'Averia Serif Libre', serif; font-size:30px; font-weight:300; line-height:1.25; letter-spacing:0; text-transform:none;}
.event-text{font-size:20px; line-height:1.6;}
.event-text > *:first-child{margin-top:0;}
.event-text > *:last-child{margin-bottom:0;}
.event-text p{margin:0 0 1em;}
.event-block--funds{padding:34px 38px; background:rgba(var(--primary_100), 0.38); border-radius:18px;}
.event-block--funds .event-block-title::before{content:""; display:block; width:44px; height:3px; margin-bottom:16px; background:rgb(var(--tertiary)); border-radius:2px;}

/* not yet supplied (staging, and to editors) */
.event-gap{display:flex; align-items:center; gap:12px; margin:0; padding:16px 18px; font-family:'Work Sans', sans-serif; font-size:15px; line-height:1.4; color:rgba(var(--primary), 0.7); border:2px dashed rgba(var(--secondary), 0.3); border-radius:12px;}
.event-gap span{flex:0 0 auto; padding:4px 10px; font-size:11px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:rgb(var(--white)); background:rgba(var(--secondary), 0.7); border-radius:100px;}

/* video */
.event-video{width:100%; margin-bottom:22px; aspect-ratio:16 / 9; overflow:hidden; border-radius:18px; background:#000;}
.event-video iframe{display:block; width:100%; height:100%; border:0;}
.event-video-link{margin:0 0 22px;}
.event-video-link .btn{float:none !important; display:inline-flex; gap:10px;}
.event-play{display:inline-block; width:0; height:0; border-style:solid; border-width:6px 0 6px 10px; border-color:transparent transparent transparent currentColor;}

/* photos */
.event-gallery{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; margin:0 0 22px; padding:0; list-style:none;}
.event-gallery[data-count="1"]{grid-template-columns:1fr;}
.event-gallery[data-count="2"],
.event-gallery[data-count="4"]{grid-template-columns:repeat(2, minmax(0, 1fr));}
.event-gallery li{margin:0;}
.event-gallery li::before{display:none;}
.event-gallery-item{display:block; width:100%; aspect-ratio:4 / 3; margin:0; padding:0; overflow:hidden; border:0; border-radius:12px; background:rgba(var(--primary_100), 0.45); cursor:zoom-in;}
.event-gallery[data-count="1"] .event-gallery-item{aspect-ratio:16 / 9;}
.event-gallery-item img{display:block; width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease;}
.event-gallery-item:hover img{transform:scale(1.04);}
.event-gallery-item.is-tall img{object-position:50% 18%;} /* a tall photo keeps the faces, not the feet */
.event-gallery-item:focus-visible{outline:3px solid rgb(var(--tertiary)); outline-offset:3px;}

/* the event's investment */
.event-investment{display:flex; flex-direction:column; gap:6px; width:100%; padding:24px 28px; color:var(--ev-ink); text-decoration:none; border:2px solid var(--ev-rule); border-radius:18px; transition:border-color 0.25s, background-color 0.25s;}
.event-investment:hover,
.event-investment:focus-visible{border-color:var(--ev-accent); background:rgba(var(--white), 0.5); outline:none;}
.event-investment-kicker{font-family:'Work Sans', sans-serif; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--ev-accent);}
.event-investment-title{font-family:'Averia Serif Libre', serif; font-size:22px; font-weight:300; line-height:1.35;}
.event-investment-go{margin-top:6px; font-family:'Work Sans', sans-serif; font-size:14px; font-weight:600;}
.event-investment:hover .event-investment-go,
.event-investment:focus-visible .event-investment-go{text-decoration:underline;}

/* more events */
.events-more .container{padding-top:20px; padding-bottom:110px;}
.events-more-list{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:32px; margin:0; padding:0; list-style:none;}
.events-more-list li{margin:0;}
.events-more-list li::before{display:none;}
.event-mini{display:flex; flex-direction:column; gap:16px; color:var(--ev-ink); text-decoration:none;}
.event-mini-image{display:block; width:100%; aspect-ratio:5 / 3; overflow:hidden; background:rgba(var(--primary_100), 0.45); border-radius:16px; box-shadow:0 2px 4px rgba(var(--primary), 0.16);}
.event-mini-image img{display:block; width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease;}
.event-mini:hover .event-mini-image img,
.event-mini:focus-visible .event-mini-image img{transform:scale(1.04);}
.event-mini .event-eyebrow{margin-bottom:6px; font-size:11px;}
.event-mini-title{display:block; font-family:'Work Sans', sans-serif; font-size:17px; font-weight:600; line-height:1.35;}
.event-mini:hover .event-mini-title,
.event-mini:focus-visible .event-mini-title{text-decoration:underline;}
.event-mini:focus-visible{outline:none;}
.event-mini:focus-visible .event-mini-image{outline:3px solid rgb(var(--tertiary)); outline-offset:3px;}

/* the photo viewer */
.event-lightbox{width:100vw; max-width:100vw; height:100vh; max-height:100vh; margin:0; padding:0; border:0; background:transparent; overflow:hidden;}
.event-lightbox::backdrop{background:rgba(8, 26, 40, 0.92);}
.event-lightbox[open]{display:flex; justify-content:center; align-items:center;}
.event-lightbox figure{display:flex; flex-direction:column; align-items:center; gap:14px; max-width:calc(100vw - 160px); max-height:calc(100vh - 80px); margin:0;}
.event-lightbox img{display:block; max-width:100%; max-height:calc(100vh - 130px); width:auto; height:auto; border-radius:8px;}
.event-lightbox figcaption{font-family:'Work Sans', sans-serif; font-size:15px; line-height:1.4; color:#fff; text-align:center;}
.event-lightbox figcaption[hidden]{display:none;}
.event-lightbox button{position:absolute; display:flex; justify-content:center; align-items:center; width:48px; height:48px; padding:0; color:#fff; line-height:0; background:rgba(255, 255, 255, 0.12); border:0; border-radius:50%; cursor:pointer;}
.event-lightbox button svg{display:block; width:22px; height:22px; flex:0 0 auto;} /* the same line arrow as the article bar's back link */
.event-lightbox button:hover,
.event-lightbox button:focus-visible{background:rgba(255, 255, 255, 0.26); outline:none;}
.event-lightbox button[hidden]{display:none;}
.event-lightbox-close{top:20px; right:20px;}
.event-lightbox-prev{left:20px; top:50%; transform:translateY(-50%);}
.event-lightbox-next{right:20px; top:50%; transform:translateY(-50%);}
html.event-lightbox-open{overflow:hidden;}

@media (prefers-reduced-motion:reduce){
	.event-recap-image img, .event-gallery-item img, .event-mini-image img{transition:none;}
}

/* =====================================================================
   Tablet
   ===================================================================== */
@media screen and (max-width:1024px){
	.events-recaps{gap:56px 40px;}
	.event-recap.is-lead .event-recap-link{gap:40px;}
	.event-recap.is-lead .event-recap-title{font-size:30px;}
	.event-recap.is-lead .event-impact-text{font-size:26px;}
	.events-more-list{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:32px 28px;}
}
@media screen and (max-width:900px){
	.event-recap.is-lead .event-recap-link{grid-template-columns:1fr; gap:26px;}
}

/* =====================================================================
   Phone
   ===================================================================== */
@media screen and (max-width:767px){
	section.events-hub .container{padding-bottom:90px;}
	.events-hub-head{margin-bottom:48px;}
	.events-hub-head .eyebrow-title{margin-bottom:14px;}
	.events-hub-head .main-title{font-size:74px; line-height:1;}
	.events-hub-head .main-text{font-size:17px;}
	.events-hub .section-head,
	.events-more .section-head{margin-bottom:24px;}
	.events-hub .section-head .eyebrow-title,
	.events-more .section-head .eyebrow-title{margin-bottom:14px;}

	.events-recaps{grid-template-columns:1fr; gap:48px;}
	.event-recap-image{margin-bottom:20px;}
	.event-recap-title,
	.event-recap.is-lead .event-recap-title{font-size:24px;}
	.event-impact-text,
	.event-recap.is-lead .event-impact-text{font-size:21px;}
	.event-recap-summary{font-size:17px;}

	.event-upcoming{grid-template-columns:auto minmax(0, 1fr); gap:16px 18px; padding:18px;}
	.event-upcoming-date{width:60px; height:60px;}
	.event-upcoming-title{font-size:20px;}
	.event-upcoming-cta.btn{grid-column:1 / -1; justify-self:start;}

	.event-story .container{padding-top:28px;}
	.event-story-image{margin-bottom:26px; border-radius:18px;}
	.event-story-title{font-size:34px;}
	.event-story-summary{font-size:18px;}
	.event-glance{grid-template-columns:1fr; margin-bottom:44px;}
	.event-glance > div{flex-direction:row; justify-content:space-between; align-items:baseline; gap:16px; padding:16px 0;}
	.event-glance > div + div{border-left:0; border-top:1px solid var(--ev-rule);}
	.event-glance dd{font-size:20px; text-align:right;}
	.event-glance > .event-glance-impact{flex-direction:column; gap:8px; border-bottom:0;}
	.event-glance .event-glance-impact dd{font-size:22px; text-align:left;}
	.event-block{margin-bottom:44px;}
	.event-block-title{font-size:25px;}
	.event-text{font-size:17px;}
	.event-block--funds{padding:26px 22px;}
	.event-gallery{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px;}
	.event-gallery[data-count="1"]{grid-template-columns:1fr;}
	.event-investment{padding:20px 22px;}
	.event-investment-title{font-size:19px;}

	.events-more .container{padding-bottom:80px;}
	.events-more-list{grid-template-columns:1fr; gap:16px;}
	.event-mini{flex-direction:row; align-items:center; gap:16px;}
	.event-mini-image{flex:0 0 112px; width:112px; border-radius:12px;}

	.event-lightbox figure{max-width:100vw; padding:0 12px;}
	.event-lightbox-prev, .event-lightbox-next{top:auto; bottom:20px; transform:none;}
	.event-lightbox-prev{left:calc(50% - 60px);}
	.event-lightbox-next{right:calc(50% - 60px);}
}

