/* Homepage event spotlight. Existing event/card routes and gallery stay intact. */
.featured-event[hidden],.event-directory[hidden]{display:none!important}
.featured-event,.event-directory{max-width:1440px;margin:0 auto;padding:38px 6%}
.featured-event-heading{margin-bottom:18px}
.featured-event-panel{display:grid;grid-template-columns:240px minmax(0,1fr);align-items:center;gap:40px;padding:28px 34px;background:linear-gradient(115deg,#141d38,#11172d);border:1px solid #ffffff18;border-radius:12px}
.featured-event-media{width:220px;max-width:100%;margin:0}
.featured-event-frame{position:relative;aspect-ratio:9/16;overflow:hidden;border-radius:9px;border:1px solid #a6b1d35c;background:#10182a;box-shadow:0 12px 30px #0005}
.featured-event-frame>img,.featured-event-frame>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.featured-event-frame>video{opacity:0;transition:opacity .2s}
.featured-event-frame.is-playing>video{opacity:1}
.featured-preview-toggle{position:absolute;left:8px;right:8px;bottom:9px;display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px;background:#0b1429de;color:#edf3fc;border:1px solid #ffffff55;border-radius:5px;font-size:11px;backdrop-filter:blur(8px)}
.featured-preview-toggle svg{width:13px;height:13px;fill:currentColor;flex:none}
.featured-preview-toggle .pause-shape{display:none}
.featured-preview-toggle[aria-pressed=true] .pause-shape{display:block}
.featured-preview-toggle[aria-pressed=true] .play-shape{display:none}
.featured-event-media figcaption{margin-top:10px;color:#9aabc7;font-size:10px;text-align:center}
.featured-event-meta{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#b6a9ff;margin:0 0 14px}
.featured-event-copy h2{font:400 clamp(28px,3vw,42px)/1.13 Georgia,serif;letter-spacing:-1px;margin:0 0 17px}
.featured-event-description{font-size:14px;line-height:1.8;color:#b4c0d5;max-width:530px;margin:0 0 22px}
.featured-event-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.featured-event-link{display:inline-flex;align-items:center;gap:30px;padding:12px 16px;border:1px solid #697f9e;border-radius:5px;color:#eef3fc;background:transparent;text-decoration:none;font-size:12px}
.featured-film-open{border:0;background:transparent;color:#c2cce0;padding:12px 0;font-size:12px}
.featured-event-link:hover,.featured-film-open:hover{color:#63ece6;border-color:#63ece6}
.event-directory{padding-top:33px;padding-bottom:36px;border-top:1px solid #ffffff18}
.event-directory h2{font:400 clamp(27px,3vw,36px)/1.15 Georgia,serif;letter-spacing:-.5px;margin:0 0 23px}
.event-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.event-directory-card{min-width:0;border:1px solid #ffffff24;border-radius:9px;overflow:hidden;background:#141e37;color:#f1f4fb;text-decoration:none;transition:border-color .2s}
.event-directory-card:hover{border-color:#63ece6}
.event-directory-cover{height:150px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 90% 90%,#254871,#17223e)}
.event-directory-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 44%}
.event-directory-letter{position:absolute;right:28px;top:8px;font:italic 105px/1.15 Georgia,serif;color:#aac6e2;opacity:.6}
.event-directory-category{position:absolute;left:18px;bottom:15px;font-size:10px;text-transform:uppercase;letter-spacing:1.8px;color:#f1f4fb;text-shadow:0 2px 6px #000}
.event-directory-info{padding:17px 18px 20px}
.event-directory-info strong{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:500;font-size:15px;line-height:1.4}
.event-directory-info small{display:block;margin-top:8px;color:#aabbd1;font-size:11px;line-height:1.6}
.featured-film-dialog{width:min(450px,94vw,calc((94dvh - 70px) * .5625));max-height:94dvh;margin:auto;padding:0;background:#0d1426;color:#edf3fc;border:1px solid #536782;border-radius:10px;overflow:auto}
.featured-film-dialog::backdrop{background:#050a15e8;backdrop-filter:blur(6px)}
.featured-film-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px}
.featured-film-header h2{font-size:14px;line-height:1.4;margin:0}
.featured-film-close{min-height:40px;min-width:40px;padding:7px 10px;border:1px solid #536782;border-radius:5px;background:transparent;color:#edf3fc;font-size:14px}
.featured-film-dialog video{display:block;width:100%;height:auto;max-height:none;aspect-ratio:9/16;object-fit:contain;background:#0d1426}
.featured-film-fallback{padding:14px 16px;font-size:13px;color:#c9d5eb}
.featured-film-fallback a{color:#63ece6}
@media(min-width:1000px){.event-directory-grid:has(>.event-directory-card:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.featured-event,.event-directory{padding:28px 5%}.featured-event-panel{grid-template-columns:120px minmax(0,1fr);gap:23px;padding:23px}.featured-event-media{width:120px}.featured-event-meta{font-size:10px;line-height:1.7;letter-spacing:.5px}.featured-event-copy h2{font-size:29px}.featured-event-description{font-size:12px}.featured-event-actions{gap:6px 14px}.featured-event-link{font-size:11px;gap:15px;padding:11px 12px;min-height:44px}.featured-film-open{min-height:44px;font-size:11px}.featured-preview-toggle{min-height:44px;left:5px;right:5px;font-size:10px;padding:6px 3px;gap:4px}.event-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.event-directory-cover{height:115px}.event-directory-info{padding:13px}.event-directory-info strong{font-size:13px}.event-directory-info small{font-size:10px}}
@media(max-width:440px){.featured-event-panel{grid-template-columns:1fr;gap:23px;padding:23px}.featured-event-copy{grid-row:1}.featured-event-media{width:160px;justify-self:center}.featured-event-copy h2{font-size:30px}.featured-event-media figcaption{font-size:10px}.event-directory-letter{font-size:85px;right:15px}.event-directory-category{left:13px;font-size:9px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.featured-event-frame>video,.event-directory-card{transition:none}}

body:has(.featured-film-dialog[open]){overflow:hidden}

.featured-event-heading .eyebrow{margin:0;font:600 10px/1.5 Arial,Helvetica,sans-serif;letter-spacing:1.8px;text-transform:uppercase}

.featured-film-header h2{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.featured-film-close{flex:none;white-space:nowrap}

/* Featured event cards: swipe, keyboard arrows, and a visible next-card hint. */
.featured-event-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.featured-carousel-controls{display:flex;align-items:center;gap:14px}.featured-carousel-controls button{width:40px;height:40px;border:1px solid #697f9e;border-radius:50%;background:transparent;color:#edf3fc;cursor:pointer;font-size:18px}.featured-carousel-controls button:disabled{opacity:.3;cursor:default}.featured-carousel-controls span{color:#aabbd1;font-size:12px;min-width:32px;text-align:center}
.featured-carousel-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#536782 transparent;padding:0 0 14px;position:relative}
.featured-carousel-track>.featured-event-panel{flex:0 0 91%;min-width:0;scroll-snap-align:start;grid-template-columns:220px minmax(0,1fr);gap:32px}
.featured-carousel-track>.featured-event-panel:only-child{flex-basis:100%}
.featured-event button:focus-visible,.featured-carousel-track:focus-visible{outline:2px solid #63ece6;outline-offset:3px}
@media(max-width:700px){.featured-carousel-track>.featured-event-panel{flex-basis:90%;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:23px}.featured-event-copy h2{overflow-wrap:anywhere}.featured-carousel-controls{gap:8px}}
@media(max-width:440px){.featured-carousel-track>.featured-event-panel{grid-template-columns:1fr;gap:20px;padding:22px}.featured-carousel-track .featured-event-copy{grid-row:1}.featured-carousel-track .featured-event-media{width:160px}.featured-carousel-track .featured-event-copy h2{font-size:28px}}

/* Carousel event titles: 40% of previous title size. */
#featuredEvent .featured-event-copy h2{font-size:clamp(16px,1.76vw,25.6px);letter-spacing:-.8px;line-height:1.2}
@media(max-width:700px){#featuredEvent .featured-event-copy h2{font-size:12.8px;letter-spacing:-.4px}}
@media(max-width:440px){#featuredEvent .featured-event-copy h2{font-size:13.6px}}

/* Compact featured cards: scale the panel with its smaller title. */
#featuredEvent{padding-top:44px;padding-bottom:48px}
#featuredEvent .featured-event-heading{margin-bottom:16px}
#featuredEvent .featured-carousel-track>.featured-event-panel{flex-basis:72%;grid-template-columns:150px minmax(0,1fr);gap:28px;padding:24px;border-radius:22px;box-shadow:0 18px 38px #0004}
#featuredEvent .featured-event-media{width:150px}
#featuredEvent .featured-event-frame{border-radius:12px}
#featuredEvent .featured-event-copy h2{margin-bottom:12px}
#featuredEvent .featured-event-meta{font-size:10px;letter-spacing:1px;margin-bottom:10px}
#featuredEvent .featured-event-description{font-size:14px;line-height:1.6;margin-bottom:18px}
#featuredEvent .featured-event-actions{gap:10px;align-items:center;flex-direction:row}
#featuredEvent .featured-event-link,#featuredEvent .featured-film-open{font-size:12px;min-height:40px;padding:9px 15px}
#featuredEvent .featured-preview-toggle{font-size:10px;min-height:32px;padding:6px;left:6px;right:6px;bottom:6px}
#featuredEvent .featured-event-media figcaption{font-size:9px;margin-top:6px}
@media(max-width:900px){#featuredEvent .featured-carousel-track>.featured-event-panel{flex-basis:85%;grid-template-columns:130px minmax(0,1fr);gap:22px;padding:22px}#featuredEvent .featured-event-media{width:130px}}
@media(max-width:600px){#featuredEvent{padding-top:30px;padding-bottom:32px}#featuredEvent .featured-carousel-track>.featured-event-panel{flex-basis:90%;grid-template-columns:100px minmax(0,1fr);gap:16px;padding:18px}#featuredEvent .featured-event-media{width:100px}#featuredEvent .featured-event-copy{grid-row:auto}#featuredEvent .featured-event-description{font-size:12px;margin-bottom:12px}#featuredEvent .featured-event-actions{align-items:stretch;flex-direction:column;gap:8px}#featuredEvent .featured-event-link,#featuredEvent .featured-film-open{min-height:44px;font-size:11px;padding:8px 10px}#featuredEvent .featured-preview-toggle{font-size:9px;min-height:36px}#featuredEvent .featured-event-meta{font-size:9px;letter-spacing:.4px}}
/* Slightly larger carousel action buttons with comfortable text padding. */
#featuredEvent .featured-event-link,#featuredEvent .featured-film-open{font-size:13.8px;min-height:46px;padding:11px 20px;line-height:1.4}
@media(max-width:600px){#featuredEvent .featured-event-link,#featuredEvent .featured-film-open{font-size:12.65px;min-height:51px;padding:10px 14px}}
/* Larger video (+40%) and narrower carousel card (-15%). */
#featuredEvent .featured-carousel-track>.featured-event-panel{flex-basis:61.2%;grid-template-columns:210px minmax(0,1fr)}
#featuredEvent .featured-event-media{width:210px}
@media(max-width:900px){#featuredEvent .featured-carousel-track>.featured-event-panel{flex-basis:72.25%;grid-template-columns:182px minmax(0,1fr)}#featuredEvent .featured-event-media{width:182px}}
@media(max-width:600px){#featuredEvent .featured-carousel-track>.featured-event-panel{flex-basis:76.5%;grid-template-columns:1fr}#featuredEvent .featured-event-media{width:140px;justify-self:center}#featuredEvent .featured-event-copy{grid-row:auto}}
/* Center carousel CTA labels, including wrapped EN/FR text. */
#featuredEvent .featured-event-link{justify-content:center;align-items:center;text-align:center}

.featured-event-title-link{color:inherit;text-decoration:none}
.featured-event-title-link:hover{text-decoration:underline;text-underline-offset:.14em}

/* Film header: compact accessible close control and scrolling overflow titles. */
#featuredFilmDialog .featured-film-header{gap:12px}
#featuredFilmDialog .featured-film-header h2{text-overflow:clip;white-space:nowrap;overflow:hidden}
.featured-film-title-text{display:inline-block;white-space:nowrap}
#featuredFilmTitle.is-scrolling .featured-film-title-text{animation:film-title-scroll var(--title-duration) ease-in-out infinite alternate}
@keyframes film-title-scroll{0%,15%{transform:translateX(0)}85%,100%{transform:translateX(var(--title-travel))}}
#featuredFilmDialog .featured-film-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;font:400 30px/1 Arial,sans-serif;background:transparent}
#featuredFilmDialog .featured-film-close:hover{background:#ffffff14}
#featuredFilmDialog .featured-film-close:focus-visible{outline:2px solid #63ece6;outline-offset:2px}
@media(prefers-reduced-motion:reduce){#featuredFilmTitle.is-scrolling{overflow-x:auto}#featuredFilmTitle.is-scrolling .featured-film-title-text{animation:none}}

/* Mobile previews toggle directly with a tap; desktop keeps its visible control. */
@media(max-width:600px){#featuredEvent .featured-preview-toggle{display:none}#featuredEvent .featured-event-frame{cursor:pointer}#featuredEvent .featured-event-frame:focus-visible{outline:2px solid #63ece6;outline-offset:3px}}

/* Fit the Instagram post at its own proportions, with one scroll area on short screens. */
#featuredFilmDialog.has-instagram-post{width:min(430px,calc(100vw - 24px),max(270px,calc((94dvh - 318px) * .8)));max-height:94dvh;overflow:auto}
#featuredFilmDialog.has-instagram-post .featured-film-header{padding:10px 14px}
#featuredFilmDialog.has-instagram-post .featured-film-fallback{margin:0;padding:12px 14px}
.featured-instagram-frame{display:block;width:100%;height:auto;aspect-ratio:4/7;border:0;background:#fff}