/* Institut Events — ifsuede.com event cards, archive and single page. */
:root {
  --ie-color-text: #0b2455;
  --ie-color-body: #263f6d;
  --ie-color-muted: #5e6a7f;
  --ie-color-accent: #3558a2;
  --ie-color-surface: #fff;
  --ie-color-tint: #eff4ff;
  --ie-color-shadow: #dbe6ff;
  --ie-color-border: #0b2455;

  --ie-ink: var(--palette-ink, rgb(17, 19, 23));
  --ie-blue-dark: var(--palette-blue-dark, rgb(10, 29, 71));
  --ie-blue: var(--palette-blue-main, rgb(53, 88, 162));
  --ie-blue-light: var(--palette-blue-light, rgb(184, 207, 255));
  --ie-blue-pale: var(--palette-blue-pale, rgb(224, 234, 255));
  --ie-page: var(--palette-grey-pale, rgb(243, 247, 255));
  --ie-grey: var(--palette-grey-dark, rgb(89, 96, 110));
  --ie-white: var(--bg-page, #fff);
  --ie-overlay-dark: var(--palette-alpha-dark, rgba(0, 0, 0, .85));
  --ie-overlay-white: var(--palette-alpha-white, rgba(243, 247, 255, .85));
  --ie-shadow-flat: 6px 6px 0 0 var(--palette-alpha-blue, rgba(88, 140, 255, .3));
  --ie-coral: var(--palette-coral, rgb(255, 129, 110));
  --ie-coral-light: var(--palette-coral-light, rgb(254, 190, 171));
  --ie-coral-dark: var(--palette-coral-dark, rgb(160, 70, 60));
  --ie-amber: var(--palette-amber, rgb(255, 207, 88));
  --ie-amber-light: var(--palette-amber-light, rgb(255, 230, 160));
  --ie-amber-dark: var(--palette-amber-dark, rgb(150, 115, 30));
  --ie-mint: var(--palette-mint, rgb(149, 219, 180));
  --ie-mint-light: var(--palette-mint-light, rgb(200, 235, 215));
  --ie-mint-dark: var(--palette-mint-dark, rgb(25, 125, 100));
  --ie-small: var(--small-sz, clamp(.875rem, calc(.5vw + .75rem), .9375rem));
  --ie-h6: var(--h6-sz, clamp(1rem, calc(.5vw + .875rem), 1.125rem));
  --ie-h5: var(--h5-sz, clamp(1.125rem, calc(1vw + .75rem), 1.375rem));
  --ie-h1: var(--h1-sz, clamp(2rem, calc(5vw + 1rem), 3.5rem));
  --ie-display: var(--display-sz, clamp(3rem, calc(6vw + 1rem), 5.5rem));
  --ie-fade-in-out: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, .1) 2.5%, rgba(255, 255, 255, .4) 5%, rgba(255, 255, 255, .7) 7.5%, #fff 10%, #fff 75%, rgba(255, 255, 255, .7) 81.25%, rgba(255, 255, 255, .4) 87.5%, rgba(255, 255, 255, .1) 93.75%, transparent 100%);
  --ie-fade-out: linear-gradient(to bottom, #fff 0%, #fff 60%, rgba(255, 255, 255, .98) 63.5%, rgba(255, 255, 255, .92) 67.1%, rgba(255, 255, 255, .83) 70.9%, rgba(255, 255, 255, .71) 74.9%, rgba(255, 255, 255, .57) 79.1%, rgba(255, 255, 255, .42) 83.5%, rgba(255, 255, 255, .28) 88.2%, rgba(255, 255, 255, .15) 93.3%, rgba(255, 255, 255, .05) 97.4%, transparent 100%);
  --ie-fade-photo: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, .12) 3%, rgba(255, 255, 255, .45) 6%, rgba(255, 255, 255, .75) 9%, #fff 12%, #fff 42%, rgba(255, 255, 255, .78) 58%, rgba(255, 255, 255, .48) 72%, rgba(255, 255, 255, .22) 86%, rgba(255, 255, 255, .06) 94%, transparent 100%);
  --ie-fade-wash: linear-gradient(to bottom, #fff 0%, #fff 14%, rgba(255, 255, 255, .78) 28%, rgba(255, 255, 255, .52) 40%, rgba(255, 255, 255, .32) 52%, rgba(255, 255, 255, .18) 64%, rgba(255, 255, 255, .09) 76%, rgba(255, 255, 255, .04) 88%, transparent 100%);
}

.institut-events,
.institut-events *,
.ie-archive *,
.ie-single * { box-sizing: border-box; }

/* Grid ------------------------------------------------------------------ */
.institut-events__items { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem 1rem; margin: 0; padding: 0; }
.institut-events--list .institut-events__items { grid-template-columns: 1fr; }
.institut-events__item { display: flex; min-width: 0; }

/* Card (production loop item "Carte événement V2") ----------------------- */
.ie-card { position: relative; display: flex; width: calc(100% - 8px); min-width: 0; margin: 4px; flex-direction: column; justify-content: space-between; color: var(--ie-blue-dark); font: inherit; text-decoration: none !important; transition: transform .5s ease, box-shadow .5s ease; }
.ie-card:hover,
.ie-card:focus-visible { z-index: 10; color: var(--ie-blue-dark); box-shadow: var(--ie-shadow-flat); transform: translate(-4px, -4px); }
.ie-card:focus-visible { outline: 3px solid var(--ie-blue); outline-offset: 3px; }
.ie-card__head { position: relative; z-index: 2; display: flex; justify-content: flex-end; }
.ie-card__date { display: inline-block; margin: 4px -4px -24px 0; padding: 2px 10px 4px; color: var(--ie-blue-dark); background: rgba(255, 255, 255, .5); border: 2px solid var(--ie-blue-dark); -webkit-backdrop-filter: blur(8px) saturate(2); backdrop-filter: blur(15px) saturate(3); font-size: var(--ie-h6); font-weight: 500; letter-spacing: -.02em; line-height: 1.25; white-space: nowrap; transition: color .5s ease, border-color .5s ease, background .5s ease; }
.ie-card:hover .ie-card__date { background: var(--ie-overlay-white); }
.ie-card__frame { position: relative; display: flex; height: auto; flex: 1 0 auto; flex-direction: column; overflow: hidden; border: 2px solid var(--ie-blue-dark); border-bottom: 0; }
.ie-card__media { position: relative; display: block; height: 12.5rem; overflow: visible; }
.ie-card__media--empty { height: 12.5rem; background: linear-gradient(to bottom, var(--ie-blue-pale), transparent); }
.ie-card__blur { position: absolute; z-index: 0; top: 0; left: 0; display: block; width: 100%; max-width: none; height: 13rem; object-fit: fill; filter: blur(8px) brightness(1.15) contrast(1.05) saturate(1.05); transform: scale(1.075); -webkit-mask-image: var(--ie-fade-out); mask-image: var(--ie-fade-out); pointer-events: none; }
.ie-card__img { position: relative; z-index: 1; display: block; width: 100%; max-width: none; height: auto; max-height: 17rem; margin: .75rem 0 -2rem; object-fit: cover; filter: brightness(1.15) contrast(1.05) saturate(1.1); -webkit-mask-image: var(--ie-fade-in-out); mask-image: var(--ie-fade-in-out); }
.ie-card__media .ie-card__img { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; margin: 0; object-fit: cover; object-position: center center; -webkit-mask-image: var(--ie-fade-photo); mask-image: var(--ie-fade-photo); }
.ie-card__media .ie-card__blur { position: absolute; top: -2rem; right: 0; bottom: auto; left: 0; width: 100%; height: calc(100% + 7.25rem); max-height: none; margin: 0; object-fit: cover; object-position: center center; filter: blur(24px) brightness(1.35) contrast(.92) saturate(.65); transform: scaleX(1.12); transform-origin: center center; -webkit-mask-image: var(--ie-fade-wash); mask-image: var(--ie-fade-wash); }
.ie-card__heading { position: relative; z-index: 2; display: flex; margin-top: -2.5rem; flex-direction: column; gap: 1rem; padding: .75rem; }
.ie-card__tags { display: flex; flex-direction: column; align-items: flex-start; }
.ie-card__labels { display: flex; flex-wrap: wrap; align-items: flex-start; }
.ie-card__cats { display: flex; width: fit-content; max-width: 100%; flex-wrap: nowrap; overflow: hidden; }
.ie-label { display: inline-block; width: max-content; max-width: 100%; white-space: nowrap; margin: 0 -2px -2px 0; padding: 3px 6px 4px; color: var(--ie-ink); background: var(--ie-blue-light); border: 2px solid var(--ie-ink); font-size: var(--ie-small); font-weight: 700; line-height: 1.1; }
.ie-label:last-child { margin-bottom: 0; }
.ie-label--culture { background: var(--ie-coral); }
.ie-label--langue-francaise { background: var(--ie-amber); }
.ie-label--etudes-superieures-et-recherche { background: var(--ie-mint); }
.ie-cat { display: inline-block; width: max-content; margin: 0 -2px -2px 0; padding: 2px 8px 3px; color: var(--ie-ink); background: rgba(255, 255, 255, .5); border: 1px solid var(--ie-ink); -webkit-backdrop-filter: blur(8px) saturate(2); backdrop-filter: blur(8px) saturate(2); font-size: .75rem; font-weight: 500; line-height: 1.1; text-transform: lowercase; }
.ie-card__title { display: -webkit-box; margin: 0; padding: 0 0 .2rem; overflow: hidden; color: var(--ie-blue-dark); font-family: inherit; font-size: var(--ie-h5); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; text-transform: none; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.ie-card__excerpt { color: var(--ie-ink); font-size: 1rem; line-height: 1.5; }
.ie-card__info { position: relative; display: flex; flex-direction: column; gap: 1rem; padding: 0 .75rem .75rem; border: 2px solid var(--ie-blue-dark); border-top: 0; }
.ie-card__meta { display: block; min-height: 4rem; padding-top: .5rem; padding-right: 1.75rem; overflow: hidden; border-top: 1px solid var(--ie-blue-pale); transition: border-color .5s ease; }
.ie-card__time { display: inline-block; color: var(--ie-grey); border-bottom: 1px dotted #666; font-size: 12px; font-weight: 500; line-height: 18px; text-transform: uppercase; }
.ie-card__venue { display: block; margin-top: .2rem; overflow: hidden; color: var(--ie-grey); font-size: 12px; font-weight: 500; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.ie-card__arrow { position: absolute; right: 1.25rem; bottom: 1rem; display: block; width: 1rem; height: 1rem; color: var(--ie-blue-pale); transition: color .5s ease; }
.ie-card__arrow svg { display: block; width: 100%; height: 100%; }
.ie-card:hover .ie-card__meta { border-color: var(--ie-blue-light); }
.ie-card:hover .ie-card__arrow { color: var(--ie-blue-dark); }

@media (min-width: 768px) {
  .ie-card__frame { height: 20rem; }
  .ie-card__date { padding: 3px 12px 6px; }
  .ie-label { padding: 4px 7px 5px; }
  .ie-card__media,
  .ie-card__media--empty { height: 12.5rem; }
  .ie-card__media .ie-card__blur { height: calc(100% + 8.75rem); }
  .ie-card__heading { gap: 20px; padding: 1.1rem; }
  .ie-card__title { letter-spacing: normal; -webkit-line-clamp: 5; }
  .ie-card__info { padding: 0 1.25rem 1.25rem; }
  .ie-card__arrow { width: 1.25rem; height: 1.25rem; }
}

@media (min-width: 1024px) {
  .ie-card__frame { height: 23rem; }
  .ie-card__date { padding: 4px 16px 8px; }
  .ie-label { padding: 5px 8px 6px; }
  .ie-card__media,
  .ie-card__media--empty { height: 12.5rem; }
  .ie-card__media .ie-card__blur { height: calc(100% + 11rem); }
  .ie-card__heading { padding: 1rem 1.25rem 1.25rem; }
}

.institut-events--list .ie-card__frame { height: auto; }

/* Empty state ------------------------------------------------------------- */
.institut-events__empty { width: 100%; margin: 0; padding: 3rem 1rem; color: var(--ie-grey); background: transparent; border: 2px dashed var(--ie-blue-light); font-size: 1.125rem; font-weight: 500; line-height: 1.5; text-align: center; }
.institut-events__empty a { color: var(--ie-blue); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
.institut-events__empty a:focus-visible { outline: 3px solid var(--ie-blue); outline-offset: 3px; }

/* Carousel (homepage) ----------------------------------------------------- */
.ie-carousel { position: relative; width: 100%; }
.ie-carousel__viewport { margin: -8px -10px -14px -4px; padding: 8px 10px 14px 4px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.ie-carousel__viewport::-webkit-scrollbar { display: none; }
.ie-carousel__viewport:focus-visible { outline: 3px solid var(--ie-blue); outline-offset: 2px; }
.ie-carousel .institut-events__items { grid-auto-columns: calc((100% - 24px) / 3); grid-auto-flow: column; grid-template-columns: none; gap: 12px; }
.ie-carousel .institut-events__item { scroll-snap-align: start; }
.ie-carousel__btn { position: absolute; z-index: 2; top: 66%; display: flex; width: 60px; height: 60px; align-items: center; justify-content: center; padding: 16px; color: var(--ie-blue-light); background: rgba(255, 255, 255, .15); border: 0; border-radius: 0; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); cursor: pointer; transform: translateY(-50%); transition: color .3s ease; }
.ie-carousel__btn:hover { color: var(--ie-blue); background: rgba(255, 255, 255, .15); }
.ie-carousel__btn:focus-visible { outline: 3px solid var(--ie-blue); outline-offset: 2px; }
.ie-carousel__btn[disabled] { opacity: .35; cursor: default; }
.ie-carousel__btn--prev { left: -64px; }
.ie-carousel__btn--next { right: -64px; }
.ie-carousel__btn svg { display: block; width: 28px; height: 28px; }

@media (max-width: 1024px) {
  .ie-carousel__btn { display: none; }
}

@media (max-width: 767px) {
  .ie-carousel .institut-events__items { grid-auto-columns: calc(100% - 125px); }
}

/* Archive page (production page "Événements") ----------------------------- */
body.post-type-archive-institut_event .site-content > .ast-container,
body.single-institut_event .site-content > .ast-container { display: block; width: 100%; max-width: none; padding-inline: 0; }
body.post-type-archive-institut_event #primary,
body.single-institut_event #primary { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; }
.ie-archive__hero { padding: 4rem 2rem 2rem; background: var(--ie-blue-pale); border-bottom: 2px solid var(--ie-ink); }
.ie-archive__hero-inner { display: flex; max-width: 80rem; margin: 0 auto 2rem; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.ie-archive__title { margin: 0 0 0 -7px; color: var(--ie-blue-dark); font-family: inherit; font-size: var(--ie-display); font-weight: 700; letter-spacing: normal; line-height: var(--display-lh, .9); }
.ie-archive__lead { max-width: 40rem; margin: 0; color: var(--ie-ink); font-size: 1rem; line-height: 1.5; }
.ie-archive__body { padding: 0 2rem 6rem; }
.ie-archive--embedded { width: 100%; }
.ie-archive--embedded .ie-archive__inner { margin: 0 auto; }
.ie-archive__inner { display: flex; max-width: 84rem; margin: 3rem auto; padding: 0 2rem; flex-direction: column; gap: 3rem; }

.ie-nav { display: flex; width: 100%; flex-direction: column; align-items: center; gap: .5rem; }
.ie-nav__row { display: flex; width: 100%; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .5rem; padding-bottom: .5rem; }
.ie-nav__row--tabs { padding: .5rem 0; }
.ie-nav__year { display: contents; margin: 0; }
.ie-nav a,
.ie-nav button { display: inline-flex; align-items: center; justify-content: center; color: var(--ie-blue); background-color: var(--ie-blue-pale); border: 2px solid var(--ie-blue-light); border-radius: 0; font-family: inherit; text-decoration: none !important; white-space: nowrap; cursor: pointer; transition: all .3s ease-in-out; }
.ie-nav__tab { height: 2.75rem; align-items: baseline !important; padding: .5rem .75rem; font-size: 1.25rem; font-weight: 500; line-height: 1; }
.ie-nav__label,
.ie-nav__month { padding: .25rem .5rem .35rem; font-size: var(--ie-small); line-height: 1.1; }
.ie-nav__label { font-weight: 600; }
.ie-nav__month { font-weight: 500; }
.ie-nav a:hover,
.ie-nav button:hover { color: #fff; background-color: var(--ie-blue-dark); border-color: var(--ie-blue-dark); }
.ie-nav__tab.is-active,
.ie-nav__month.is-active,
.ie-nav__label.is-active:not([class*="ie-nav__label--"]) { color: var(--ie-blue-dark); background-color: var(--ie-blue-light); border-color: var(--ie-blue-dark); }
.ie-nav__label--culture { color: var(--ie-coral-dark); background-color: transparent; border-color: var(--ie-coral); }
.ie-nav__label--culture.is-active { color: var(--ie-overlay-dark); background-color: var(--ie-coral); border-color: var(--ie-overlay-dark); }
.ie-nav .ie-nav__label--culture:hover { color: var(--ie-overlay-dark); background-color: var(--ie-coral-light); border-color: var(--ie-coral); }
.ie-nav__label--langue-francaise { color: var(--ie-amber-dark); background-color: transparent; border-color: var(--ie-amber); }
.ie-nav__label--langue-francaise.is-active { color: var(--ie-overlay-dark); background-color: var(--ie-amber); border-color: var(--ie-overlay-dark); }
.ie-nav .ie-nav__label--langue-francaise:hover { color: var(--ie-overlay-dark); background-color: var(--ie-amber-light); border-color: var(--ie-amber); }
.ie-nav__label--etudes-superieures-et-recherche { color: var(--ie-mint-dark); background-color: transparent; border-color: var(--ie-mint); }
.ie-nav__label--etudes-superieures-et-recherche.is-active { color: var(--ie-overlay-dark); background-color: var(--ie-mint); border-color: var(--ie-overlay-dark); }
.ie-nav .ie-nav__label--etudes-superieures-et-recherche:hover { color: var(--ie-overlay-dark); background-color: var(--ie-mint-light); border-color: var(--ie-mint); }
.ie-nav__select { width: auto; height: auto; margin: 0; padding: .25rem 1.25rem .35rem .5rem; color: var(--ie-blue-dark); background-color: transparent; background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%230a1d47' stroke-width='2' stroke-linecap='square' stroke-linejoin='square'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e"); background-position: right .25rem center; background-repeat: no-repeat; background-size: 1em; border: 2px solid var(--ie-blue-dark); border-radius: 0; outline: none; font-family: inherit; font-size: var(--ie-small); font-weight: 500; line-height: 1.1; cursor: pointer; -webkit-appearance: none; appearance: none; transition: all .3s ease-in-out; }
.ie-nav__select:hover,
.ie-nav__select:focus { color: #fff; background-color: var(--ie-blue-dark); background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='square' stroke-linejoin='square'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e"); border-color: var(--ie-blue-dark); }
.ie-nav a:focus-visible,
.ie-nav button:focus-visible,
.ie-nav__select:focus-visible { outline: 3px solid var(--ie-blue); outline-offset: 2px; }

.ie-pagination { margin-top: 1rem; color: var(--ie-ink); font-size: 1rem; line-height: 1.5; text-align: center; }
.ie-pagination > * { display: inline-block; margin: 0 5px; }
.ie-pagination > :first-child { margin-left: 0; }
.ie-pagination > :last-child { margin-right: 0; }
.ie-pagination a { color: var(--ie-blue-dark); text-decoration: none; }
.ie-pagination a:hover { text-decoration: underline; text-underline-offset: .2em; }
.ie-pagination a:focus-visible { outline: 3px solid var(--ie-blue); outline-offset: 2px; }
.ie-pagination span.ie-pagination__prev,
.ie-pagination span.ie-pagination__next { color: var(--ie-grey); }

@media (max-width: 1024px) {
  .institut-events__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ie-archive__hero { padding: 3rem 2rem; }
  .ie-archive__hero-inner { margin: 1rem; }
  .ie-archive__inner { margin: 1rem auto; padding: 0 1rem; }
}

@media (max-width: 767px) {
  .institut-events__items { grid-template-columns: 1fr; gap: 1rem; }
  .ie-archive__hero { padding: 3rem 1.5rem; }
  .ie-archive__hero-inner { margin: 0; }
  .ie-archive__body { padding: 1.15rem 1.15rem 4rem; }
  .ie-archive__inner { margin: 0; padding: 0; gap: 1.5rem; }
  .ie-nav__tab { font-size: 1.125rem; }
}

/* Single event ------------------------------------------------------------ */
/* Astra's separate-container layout puts a 4em top margin on #primary, which left a band between header and hero. */
body.institut-events-layout #primary.institut-events-page.site-main { margin-top: 0; }
.ie-single { position: relative; z-index: 0; padding: 0 2rem 6rem; overflow-x: clip; color: var(--ie-ink); }
.ie-single__grid { display: grid; max-width: 80rem; margin: 0 auto; grid-template-areas: "intro aside" "content aside"; grid-template-columns: minmax(0, 1fr) minmax(20rem, 25rem); grid-template-rows: auto 1fr; column-gap: clamp(2.5rem, 6vw, 6rem); }
.ie-single__intro { position: relative; grid-area: intro; padding: 3rem 0; }
.ie-single__intro::before { position: absolute; z-index: -1; top: 0; right: -100vw; bottom: 0; left: -100vw; background: var(--ie-blue-pale); border-bottom: 2px solid var(--ie-ink); content: ""; }
.ie-single__back { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 2rem; padding: .25rem .5rem .35rem; color: var(--ie-blue); background: var(--ie-page); border: 2px solid var(--ie-blue-light); font-size: var(--ie-small); font-weight: 500; line-height: 1.1; text-decoration: none !important; transition: all .3s ease-in-out; }
.ie-single__back:hover { color: #fff; background: var(--ie-blue-dark); border-color: var(--ie-blue-dark); }
.ie-single__tags { display: flex; flex-wrap: wrap; align-items: flex-start; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.ie-single__tags .ie-cat { align-self: center; margin-left: .5rem; font-size: .8125rem; }
.ie-single__tags .ie-cat + .ie-cat { margin-left: -2px; }
.ie-single__title { max-width: 22ch; margin: 0; color: var(--ie-blue-dark); font-family: inherit; font-size: var(--ie-h1); font-weight: 700; letter-spacing: -.02em; line-height: 1.05; text-wrap: balance; }
.ie-single__lead { max-width: 40rem; margin: 1.25rem 0 0; color: var(--ie-ink); font-size: 1.125rem; line-height: 1.6; }
.ie-single__aside { position: sticky; z-index: 1; top: 7.5rem; grid-area: aside; align-self: start; padding-top: 2.5rem; }
.ie-single__content { grid-area: content; max-width: 46rem; padding-top: 3rem; color: var(--ie-ink); font-size: 1.0625rem; line-height: 1.7; }
.ie-single__content > :first-child { margin-top: 0; }
.ie-single__content p { margin: 0 0 1.25rem; font-size: inherit; }
.ie-single__content h2,
.ie-single__content h3,
.ie-single__content h4 { margin: 2.25rem 0 .75rem; color: var(--ie-blue-dark); }
.ie-single__content a { color: var(--ie-blue); text-decoration: underline; text-underline-offset: .2em; }
.ie-single__content img { max-width: 100%; height: auto; }
.ie-single__content iframe { max-width: 100%; }
.ie-related { max-width: 80rem; margin: 3rem auto 0; padding-top: 2.5rem; border-top: 2px solid var(--ie-blue-pale); }
.ie-related__title { margin: 0 0 1.5rem; color: var(--ie-blue-dark); font-family: inherit; font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }

.ie-ticket { display: flex; flex-direction: column; }
.ie-ticket .ie-card__date { background: var(--ie-overlay-white); }
.ie-ticket__frame { position: relative; overflow: hidden; background: var(--ie-white); border: 2px solid var(--ie-blue-dark); box-shadow: var(--ie-shadow-flat); }
.ie-ticket__media { position: relative; overflow: visible; }
.ie-ticket__media .ie-card__blur { top: -2rem; right: 0; bottom: auto; left: 0; width: 100%; height: calc(100% + 7.25rem); max-height: none; object-fit: cover; object-position: center center; filter: blur(24px) brightness(1.35) contrast(.92) saturate(.65); transform: scaleX(1.12); transform-origin: center center; -webkit-mask-image: var(--ie-fade-wash); mask-image: var(--ie-fade-wash); }
.ie-ticket__img { position: relative; z-index: 1; display: block; width: 100%; max-width: none; height: auto; max-height: 22rem; margin-top: 0; object-fit: cover; filter: brightness(1.15) contrast(1.05) saturate(1.1); -webkit-mask-image: var(--ie-fade-photo); mask-image: var(--ie-fade-photo); }
.ie-ticket__body { position: relative; z-index: 2; padding: 1.25rem 1.5rem 1.5rem; }
.ie-ticket__media + .ie-ticket__body { margin-top: -1.5rem; }
@media (min-width: 768px) {
  .ie-ticket__media .ie-card__blur { height: calc(100% + 8.75rem); }
}
@media (min-width: 1024px) {
  .ie-ticket__media .ie-card__blur { height: calc(100% + 11rem); }
}
.ie-ticket__heading { margin: 0 0 .5rem; color: var(--ie-grey); font-family: inherit; font-size: .75rem; font-weight: 600; letter-spacing: .05em; line-height: 1.2; text-transform: uppercase; }
.ie-ticket__facts { margin: 0; padding: 0; }
.ie-ticket__fact { display: grid; grid-template-columns: 1.375rem minmax(0, 1fr); column-gap: .75rem; padding: .85rem 0; border-top: 1px solid var(--ie-blue-pale); }
.ie-ticket__fact:first-child { border-top: 0; padding-top: .35rem; }
.ie-ticket__icon { grid-row: span 2; width: 1.375rem; height: 1.375rem; margin-top: .1rem; color: var(--ie-blue); }
.ie-ticket__fact dt { margin: 0 0 .2rem; color: var(--ie-grey); font-size: .75rem; font-weight: 500; letter-spacing: .05em; line-height: 1.2; text-transform: uppercase; }
.ie-ticket__fact dd { margin: 0; color: var(--ie-blue-dark); font-size: 1.0625rem; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.ie-ticket__place { display: block; }
.ie-ticket__address { display: block; margin-top: .15rem; color: var(--ie-grey); font-size: var(--ie-small); font-weight: 400; }
.ie-ticket__map { display: inline-block; margin-top: .35rem; color: var(--ie-blue); font-size: var(--ie-small); font-weight: 500; text-decoration: underline; text-underline-offset: .2em; }
.ie-ticket__notice { margin: 1rem 0 0; padding: .5rem .75rem .6rem; color: var(--ie-blue-dark); background: var(--ie-page); border: 2px solid var(--ie-blue-light); font-size: var(--ie-small); font-weight: 500; line-height: 1.35; }
.ie-ticket__actions { display: grid; gap: .5rem; margin-top: 1.25rem; }
.ie-btn { display: flex; min-height: 3rem; align-items: center; justify-content: center; gap: .5rem; padding: .5rem 1rem .6rem; color: var(--ie-blue); background: transparent; border: 2px solid var(--ie-blue); border-radius: 0; font-family: inherit; font-size: 1.125rem; font-weight: 500; line-height: 1.2; text-align: center; text-decoration: none !important; transition: all .3s ease-in-out; }
.ie-btn--primary { color: #fff; background: var(--ie-blue); }
.ie-btn:hover { color: #fff; background: var(--ie-blue-dark); border-color: var(--ie-blue-dark); }
.ie-btn__icon { font-size: 1em; line-height: 1; }
.ie-single__back:focus-visible,
.ie-ticket__map:focus-visible,
.ie-btn:focus-visible,
.ie-single__content a:focus-visible { outline: 3px solid var(--ie-blue); outline-offset: 3px; }

@media (max-width: 900px) {
  .ie-single { padding: 0 1.15rem 4rem; }
  .ie-single__grid { grid-template-areas: "intro" "aside" "content"; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
  .ie-single__intro { padding: 2rem 0 3rem; }
  .ie-single__aside { position: relative; top: auto; margin-top: -1.75rem; padding-top: 0; }
  .ie-single__content { padding-top: 2.5rem; }
  .ie-related { margin-top: 2.5rem; padding-top: 2rem; }
  .ie-ticket__img { max-height: 18rem; }
}

/* Calendar views ---------------------------------------------------------- */
.institut-calendar__nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.institut-calendar__nav h2 { margin: 0; }
.institut-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--ie-color-border); border-left: 1px solid var(--ie-color-border); }
.institut-calendar__weekday,
.institut-calendar__day { min-width: 0; padding: .6rem; border-right: 1px solid var(--ie-color-border); border-bottom: 1px solid var(--ie-color-border); }
.institut-calendar__weekday { background: color-mix(in srgb, var(--ie-color-surface), var(--ie-color-text) 5%); font-weight: 700; }
.institut-calendar__day { min-height: 7rem; }
.institut-calendar__day.is-outside { color: var(--ie-color-muted); opacity: .65; }
.institut-calendar__day ul { margin: .5rem 0 0; padding: 0; list-style: none; font-size: .8rem; }
.institut-calendar__day li + li { margin-top: .35rem; }
.institut-events--home { color: var(--ie-color-text); }
.institut-events-home { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(16rem, .75fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.institut-events-home__upcoming-header { display: flex; gap: 1rem; align-items: baseline; justify-content: space-between; margin-bottom: 1rem; }
.institut-events-home__upcoming-header h2 { margin: 0; font-size: clamp(1.2rem, 2vw, 1.6rem); }
.institut-events-home__all { color: var(--ie-color-accent); font-weight: 700; text-decoration: none; }
.institut-events-home__all:hover { text-decoration: underline; text-underline-offset: .18em; }
.institut-events-home__list { margin: 0; padding: 0; list-style: none; }
.institut-events-home__list li + li { border-top: 1px solid var(--ie-color-shadow); }
.institut-events-home__list a { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: .85rem; align-items: start; padding: .85rem 0; color: inherit; text-decoration: none; }
.institut-events-home__list time { color: var(--ie-color-accent); font-weight: 700; line-height: 1.2; }
.institut-events-home__upcoming-title { display: block; font-weight: 750; line-height: 1.25; text-wrap: balance; }
.institut-events-home__upcoming-meta { display: block; margin-top: .25rem; color: var(--ie-color-muted); font-size: .82rem; }
.institut-events-home__list a:hover .institut-events-home__upcoming-title { color: var(--ie-color-accent); }
.institut-events--home .institut-calendar__day { display: flex; min-height: 3.6rem; flex-direction: column; align-items: center; justify-content: flex-start; gap: .35rem; padding: .55rem .2rem .45rem; }
.institut-events--home .institut-calendar__day.has-events { cursor: pointer; }
.institut-events--home .institut-calendar__day.has-events:hover,
.institut-events--home .institut-calendar__day.is-selected { background: var(--ie-color-tint); }
.institut-events--home .institut-calendar__day.is-today time { display: inline-flex; min-width: 1.7rem; min-height: 1.7rem; align-items: center; justify-content: center; color: #fff; background: var(--ie-color-accent); border-radius: 999px; }
.institut-calendar__dot { width: .45rem; height: .45rem; border-radius: 999px; background: var(--ie-color-accent); }
.institut-calendar__day.is-range-start .institut-calendar__dot,
.institut-calendar__day.is-range-end .institut-calendar__dot { width: .55rem; height: .55rem; }
.institut-events-home__day-panel { margin-top: 1rem; padding: 1rem 1.1rem; border: 2px solid var(--ie-color-border); background: var(--ie-color-surface); }
.institut-events-home__day-panel-header { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: .35rem; }
.institut-events-home__day-panel-header h3 { margin: 0; font-size: 1.05rem; }
.institut-events-home__day-close { color: var(--ie-color-accent); background: transparent; border: 0; font: inherit; font-weight: 700; cursor: pointer; }
.institut-events-home__day-panel .institut-events-home__list a { grid-template-columns: minmax(0, 1fr); }
.institut-events--home[aria-busy="true"] { opacity: .65; pointer-events: none; }

@media (max-width: 700px) {
  .institut-events-home { grid-template-columns: 1fr; }
  .institut-events--month .institut-calendar { display: block; border: 0; }
  .institut-events--month .institut-calendar__weekday { display: none; }
  .institut-events--month .institut-calendar__day { min-height: 0; border: 0; border-top: 1px solid var(--ie-color-border); }
  .institut-events--month .institut-calendar__day.is-outside,
  .institut-events--month .institut-calendar__day:not(:has(ul)) { display: none; }
  .institut-events--home .institut-calendar__day { min-height: 3.1rem; }
  .institut-events--home .institut-calendar__day.is-outside { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  .ie-card,
  .ie-card__date,
  .ie-card__meta,
  .ie-card__arrow,
  .ie-nav a,
  .ie-nav__select,
  .ie-btn,
  .ie-single__back { transition: none; }
  .ie-card:hover,
  .ie-card:focus-visible { transform: none; }
}
