/* Global static-site fixes for Accor Arena Wayback clean mirror */

/* Angular custom elements are inline by default — force layout hosts to block */
aa-root,
aa-page-loader,
aa-navigation-bar,
aa-burger-menu,
aa-page-container,
aa-block-event-list,
aa-block-homepage,
aa-header,
aa-article-header,
aa-article-list,
aa-article-card,
aa-event-card-list,
aa-featured-card,
aa-event-card,
aa-room-selector,
aa-event-filter,
aa-footer-separator,
aa-notification,
aa-footer,
aa-analytics {
  display: block;
}

/* Overlay host stays out of document flow */
aa-main-menu.burger-menu__overlay,
.burger-menu__overlay {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 5000;
}

aa-sessions-dates,
aa-conditional-heading,
aa-nav-bar-item {
  display: contents;
}

/* display:contents on menu icon breaks click hit-testing in Chromium */
aa-menu-icon {
  display: block !important;
  width: 100%;
  height: 100%;
  pointer-events: none !important;
}

aa-link-item {
  display: inline;
}

aa-link-item.card__media,
aa-link-item.featured-card__button {
  display: block;
  width: 100%;
}

/* Global "a { max-width: max-content }" collapses percentage paddings */
.card__media a,
aa-link-item.card__media a,
.card a {
  max-width: none !important;
  width: 100% !important;
}

/* Closed menu must never paint over the page */
.burger-menu:not(.burger-menu--is-open) .burger-menu__overlay,
.burger-menu:not(.burger-menu--is-open) aa-main-menu {
  visibility: hidden !important;
  pointer-events: none !important;
}

.main-menu--hidden {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.burger-menu--is-open .burger-menu__overlay,
.burger-menu--is-open aa-main-menu {
  visibility: visible !important;
  pointer-events: auto !important;
}

.burger-menu--is-open .main-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/*
 * Shared page headers were picking up conflicting rules (height:100%, giant h1,
 * search flex-grow / display:flex) and rendered as a huge white sheet covering
 * half the page on every section.
 */
.header {
  display: block !important;
  position: sticky !important;
  top: 0;
  z-index: 4000;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  background: #fff;
  box-shadow: 0 0.2rem 2.4rem rgba(0, 0, 0, 0.15);
}

.header__banner {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 1rem;
  box-sizing: border-box;
  width: 100% !important;
  padding: 0.6rem 1.2rem;
  background: #050033;
  color: #fff;
  text-align: center;
}

.header__main {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  box-sizing: border-box;
  width: 100% !important;
  max-width: 101.5rem;
  min-height: 7.2rem;
  margin: 0 auto;
  padding: 0 3.2rem;
}

.header__main-flex-item {
  flex: 1 1 0;
  min-width: 0;
}

.header__logo {
  display: block !important;
  flex: 0 0 auto;
}

.header__logo-light-theme,
.header__logo img {
  display: block;
  height: 3.2rem;
  width: auto;
}

.header__action-area {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 1.2rem;
}

.header__placeholder {
  height: 0 !important;
}

aa-article-header .header,
.header:has(.header__wrapper) {
  display: block !important;
  position: sticky !important;
  top: 0;
  z-index: 4000;
  width: 100% !important;
  height: auto !important;
  background: #fff;
  box-shadow: 0 0.2rem 2.4rem rgba(0, 0, 0, 0.15);
}

.header__wrapper {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  box-sizing: border-box;
  width: 100% !important;
}

.header__search-bar {
  flex-grow: 0 !important;
  flex-basis: auto !important;
  width: auto !important;
  max-width: 28rem;
}

.header__search-bar-label {
  display: block;
  width: auto !important;
}

.header__search-bar-input,
.header__search-bar-input:not(:focus),
input.header__search-bar-input[type="search"] {
  width: 3.2rem !important;
  max-width: 3.2rem !important;
  min-width: 3.2rem !important;
  padding-left: 0 !important;
  color: transparent !important;
  background-color: transparent !important;
}

.header__search-bar-input:focus,
input.header__search-bar-input[type="search"]:focus {
  width: 24rem !important;
  max-width: 24rem !important;
  color: inherit !important;
  padding-left: 3.2rem !important;
}

.header h1,
.header__title,
.header__title h1,
.header__title a {
  margin: 0.4rem 0 !important;
  font-size: 2.4rem !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  max-width: 100% !important;
  overflow: visible !important;
  height: auto !important;
}

.header__categories {
  width: auto !important;
  flex-grow: 1 !important;
  overflow-x: auto;
}

.burger-menu--is-open .menu-icon__line:nth-child(1) {
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}

.burger-menu--is-open .menu-icon__line:nth-child(2) {
  opacity: 0;
}

.burger-menu--is-open .menu-icon__line:nth-child(3) {
  bottom: auto;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.burger-menu--is-open .burger-menu__button-label {
  display: none;
}

img.main-menu__logo-image,
img.homepage__logo-image,
img.header__logo-light-theme,
img.header__logo-dark-theme {
  object-fit: contain;
}

/* Keep empty decorative imgs from breaking layout loudly */
img:not([src]),
img[src=""] {
  visibility: hidden;
}

img.button-circle__icon:not([src]),
img.button-circle__icon[src=""],
img.main-menu__logo-image:not([src]),
img.main-menu__logo-image[src=""],
img.homepage__logo-image:not([src]),
img.homepage__logo-image[src=""],
img.header__logo-light-theme:not([src]),
img.header__logo-light-theme[src=""] {
  visibility: visible;
}

/* Homepage slider (FR/EN) */
.homepage {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.homepage__content-list {
  position: relative;
  width: 100%;
  min-height: 100vh;
}

.homepage__content-item {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.6s ease, visibility 0.6s ease;
  z-index: 0;
}

.homepage__content-item.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}

.homepage__thumbnail {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 5;
  padding: 0 2.4rem 3.2rem;
}

.homepage__thumbnail .splide__list {
  display: flex;
  gap: 1.2rem;
  list-style: none;
  margin: 0;
  padding: 0 0 1rem;
  overflow-x: auto;
}

.homepage__thumb {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  min-width: 28rem;
  max-width: 36rem;
  padding: 1.2rem 1.6rem;
  border: 0;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  text-align: left;
  cursor: pointer;
  opacity: 0.55;
  transition: opacity 0.25s ease, background-color 0.25s ease;
}

.homepage__thumb.is-active {
  background: #fff;
  color: #050033;
  opacity: 1;
  box-shadow: inset 0 3px 0 0 #ff734d;
}

.homepage__thumb-image {
  width: 6.4rem;
  height: 6.4rem;
  object-fit: cover;
  flex-shrink: 0;
}

.homepage__thumb-copy {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 1.4rem;
  line-height: 1.3;
}

.homepage__thumb-kicker {
  opacity: 0.75;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 1.1rem;
}

.homepage__thumb.is-active .homepage__thumb-kicker {
  color: #ff734d;
  opacity: 1;
}

body.dark-theme .homepage,
body:has(aa-block-homepage) {
  background-color: #050033;
}

/* Event cards safety layout */
.card-list__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
  list-style: none;
  margin: 0;
  padding: 0 0 8rem;
}

.card-list__card,
.card-list__list__item {
  flex: 1 1 28rem;
  max-width: 36rem;
}

.card__image {
  display: block;
  width: 100%;
  height: 0;
  padding-top: 100%;
  background-color: #eee;
  background-position: center;
  background-size: cover;
}

.card__media,
.card__media a {
  display: block;
  width: 100%;
}

.featured-card__image {
  min-height: 40rem;
  background-color: #eee;
  background-position: center;
  background-size: cover;
}

.header__main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
}

.unstyled-list {
  list-style: none;
  margin: 0;
  padding: 0;
}


/* Undo global article-link styles (chevron + max-content) on UI links */
.card a:not(.button),
.card__media a,
.featured-card a:not(.button),
.header a:not(.button),
.header__title,
.header__title a,
.banner__link,
.room-selector a,
.main-menu a {
  max-width: none !important;
  margin: 0 !important;
  padding-left: 0 !important;
  background-image: none !important;
}

.button:not(.card__button),
a.button:not(.card__button),
.card__master .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  max-width: none !important;
  width: auto !important;
  min-height: 4.4rem !important;
  margin: 0 !important;
  padding: 0.8rem 1.8rem !important;
  border: 1px solid #050033 !important;
  background: #050033 !important;
  background-image: none !important;
  color: #fff !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.button--dark {
  background: #050033 !important;
  color: #fff !important;
}

/* remove empty miniature circles when no content */
.featured-card__miniature:empty {
  display: none !important;
}

.header__placeholder {
  display: none !important;
  height: 0 !important;
}


/* === UNIVERSAL SECTION LAYOUT === */
aa-top-of-page,
aa-block-page-tiles-list,
aa-page-card-list,
aa-page-card,
aa-block-slogan,
aa-block-presentation,
aa-block-highlight,
aa-block-introduction,
aa-spotify-player-manager {
  display: block;
}

/* Collapse empty hero image shells left by Wayback cleanup.
   Page CSS + keyframe fill-mode otherwise keep a 40rem / 60% gray block. */
.featured-card__image:not([style*="background-image"]) {
  display: none !important;
  animation: none !important;
  -webkit-animation: none !important;
}

.featured-card__image-container:has(> .featured-card__image:not([style*="background-image"])),
.featured-card__image-container:not(:has([style*="background-image"])) {
  display: none !important;
  padding-top: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  animation: none !important;
  -webkit-animation: none !important;
}

.featured-card__image[style*="background-image"] {
  position: absolute !important;
  inset: 0 !important;
  min-height: 0 !important;
  animation: none !important;
  -webkit-animation: none !important;
}

.featured-card__image-container:has([style*="background-image"]) {
  position: relative !important;
  display: block !important;
  height: min(40rem, 56vw) !important;
  padding-top: 0 !important;
  overflow: hidden !important;
  animation: none !important;
  -webkit-animation: none !important;
}

.featured-card {
  display: block !important;
  width: 100% !important;
  margin: 0 0 3.2rem !important;
}

.featured-card__card {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 101.5rem;
  margin: 0 auto;
  padding: 3.2rem !important;
  color: #fff !important;
  box-sizing: border-box;
}

.featured-card__header {
  display: flex !important;
  align-items: flex-end;
  gap: 2rem;
}

.featured-card__header-text {
  flex: 1 1 auto;
  min-width: 0;
}

.featured-card__label {
  margin: 0.8rem 0 !important;
  font-size: clamp(2.8rem, 5vw, 5.6rem) !important;
  line-height: 1.1 !important;
  color: inherit !important;
}

.featured-card__period {
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.9;
}

.featured-card__complement {
  margin: 1.2rem 0 0;
  max-width: 54rem;
  font-size: 1.6rem;
  line-height: 1.45;
}

.featured-card__miniature:empty {
  display: none !important;
}

/* Page tiles / section cards */
.page-tile-list,
.page-tile-list__list {
  display: block;
}

.page-tile-list__list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 2.4rem 1.6rem !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 0 6rem !important;
}

.page-tile-list__list:before,
.page-tile-list__list:after,
.page-tile-list__list > .beam {
  display: none !important;
  content: none !important;
}

.page-tile-list__card {
  flex: 1 1 28rem !important;
  max-width: 36rem !important;
  margin: 0 !important;
  opacity: 1 !important;
  transform: none !important;
}

.page-tile-list__card .card,
aa-page-card .card {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden;
  background: #fff;
  color: #050033;
  box-shadow: 0 0.2rem 2.4rem rgba(5, 0, 51, 0.12);
}

.page-tile-list__card .card__media,
.page-tile-list__card .card__media a,
aa-page-card .card__media,
aa-page-card .card__media a {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
}

.page-tile-list__card .card__image,
.card__image--master {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 0 !important;
  padding-top: 62% !important;
  background-color: #d8d8d8 !important;
  background-position: center !important;
  background-size: cover !important;
}

.card__master {
  display: block !important;
  padding: 1.8rem 1.8rem 2.2rem !important;
}

.card__master--title {
  margin: 0 0 0.8rem !important;
  font-size: 2.2rem !important;
  line-height: 1.2 !important;
  font-family: Montserrat, "Lucida Grande", Arial, sans-serif !important;
  text-shadow: none !important;
  text-transform: none !important;
}

.card__master--descriptif {
  margin: 0 0 1.6rem !important;
  font-size: 1.5rem !important;
  line-height: 1.45 !important;
  color: #3a3658;
}

.card__master .button,
.page-tile-list__card .button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 4.4rem;
  padding: 0 1.6rem !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  background-image: none !important;
}

.slogan {
  margin: 4rem auto 6rem !important;
  padding: 0 3.2rem;
  font-size: clamp(3rem, 6vw, 7rem) !important;
  line-height: 1.05 !important;
  font-family: Montserrat, "Lucida Grande", Arial, sans-serif !important;
  text-shadow: none !important;
}

.layout__block-spacing {
  margin-top: 4.8rem !important;
  margin-bottom: 4.8rem !important;
}

.navigation-bar {
  z-index: 5000 !important;
}

.app__content-wrapper {
  display: block;
  width: 100%;
  padding-bottom: 12rem;
}


/* Force full-bleed header chrome even when earlier flex/width rules fight back */
aa-header,
aa-article-header,
.header,
header.header {
  display: block !important;
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  transform: none !important;
  inset: auto !important;
}

.header__banner {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

.header__main {
  display: flex !important;
  width: 100% !important;
  max-width: 101.5rem !important;
  height: auto !important;
  min-height: 7.2rem !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
}

/* Floating menu button stays fixed to viewport, not mid-content */
.navigation-bar,
.navigation-bar.main-navigation-bar,
aa-navigation-bar {
  z-index: 6000 !important;
}

.navigation-bar__primary,
.navigation-bar__secondary,
aa-burger-menu,
.burger-menu {
  pointer-events: auto !important;
}

.burger-menu__button,
button.burger-menu__button {
  position: fixed !important;
  left: 50% !important;
  bottom: 2.4rem !important;
  top: auto !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  z-index: 6001 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

/* Open menu panel must receive clicks on links */
.burger-menu--is-open > aa-main-menu.burger-menu__overlay,
.burger-menu--is-open > .burger-menu__overlay,
.burger-menu--is-open .main-menu,
.burger-menu--is-open .main-menu a {
  pointer-events: auto !important;
  visibility: visible !important;
}

/* Notification toast should not reserve layout space */
aa-notification,
.notification-container {
  position: fixed !important;
  inset: auto 1.6rem 8rem auto !important;
  width: auto !important;
  height: auto !important;
  z-index: 7000 !important;
  pointer-events: none;
}

/* Keep page content from sliding under sticky header awkwardly */
.app__content-wrapper {
  padding-top: 0 !important;
}

aa-experience-list,
aa-top-of-page {
  display: block !important;
  width: 100% !important;
}


/* Sticky header is in-flow — kill old fixed-header spacer compensation */
html, body, aa-root, .app, .app__content-wrapper, main.app__content-wrapper {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

aa-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 4000 !important;
  margin: 0 !important;
}

/* Closed overlay must not remain a full-screen layout participant */
.burger-menu:not(.burger-menu--is-open) > aa-main-menu.burger-menu__overlay,
.burger-menu:not(.burger-menu--is-open) > .burger-menu__overlay {
  display: none !important;
}

/* Empty featured miniature is whitespace-only in SSR HTML */
.featured-card__miniature {
  display: none !important;
}

.featured-card__miniature:has(img[src]:not([src=""])) {
  display: block !important;
}


/* ========== SITEWIDE BROKEN-BLOCK HARDENING ========== */

/* Almost all Angular hosts must be block-level or layout collapses */
aa-about, aa-accordion, aa-alert, aa-analytics, aa-article-card, aa-article-header,
aa-article-list, aa-article-similar, aa-basic-price-list, aa-block-about,
aa-block-article-image, aa-block-article-image-and-text, aa-block-article-multi-image,
aa-block-article-text, aa-block-article-title, aa-block-event-cover,
aa-block-event-instructions, aa-block-event-list, aa-block-experience-time-slots,
aa-block-faq-answer, aa-block-highlight, aa-block-historic-detail,
aa-block-historic-more-info-cards, aa-block-homepage, aa-block-introduction,
aa-block-introduction-experience, aa-block-list-press-articles, aa-block-logo-list,
aa-block-media-list, aa-block-minicard-list, aa-block-mythic-artist-historic,
aa-block-offers, aa-block-page-tiles-list, aa-block-share-button,
aa-block-simple-formatted-text, aa-block-slogan, aa-burger-menu, aa-card,
aa-card-list-with-desc, aa-contact, aa-event-calendar-header, aa-event-card,
aa-event-card-list, aa-event-detail, aa-event-filter, aa-event-packages-list,
aa-event-sessions-list, aa-event-sessions-related-list, aa-experience-list,
aa-experience-pricing, aa-experience-schedules, aa-faq-main, aa-featured-card,
aa-footer-separator, aa-header, aa-highlight, aa-highlight-video,
aa-historic-detail-header, aa-introduction, aa-list-cta, aa-logo-card,
aa-logo-card-list, aa-media-carousel, aa-media-gallery, aa-media-item,
aa-minicard-list, aa-more-info-card, aa-multiple-carousel, aa-navigation-bar,
aa-notification, aa-page-card, aa-page-card-list, aa-page-container, aa-page-loader,
aa-partner-list, aa-presentation, aa-presentation-minicard, aa-press-detail,
aa-price-list, aa-room-selector, aa-root, aa-schedule-time-slots, aa-separator,
aa-spotify-player-manager, aa-spotify-tile, aa-spotify-tile-list, aa-text-columns,
aa-the-map-basic, aa-three-row-card, aa-ticket-type-list, aa-ticketing,
aa-ticketing-banner, aa-time-slots, aa-top-of-page, aa-youtube-player-overlay,
aa-footer, aa-analytics {
  display: block !important;
  max-width: 100%;
}

aa-sessions-dates,
aa-conditional-heading,
aa-nav-bar-item {
  display: contents !important;
}

aa-menu-icon {
  display: block !important;
  width: 100%;
  height: 100%;
  pointer-events: none !important;
}

/* Empty highlight-video = giant blue patterned void (whitespace breaks :empty) */
aa-highlight-video:not(:has(iframe)):not(:has(video)):not(:has(img[src]:not([src=""]))),
.highlight-video:not(:has(iframe)):not(:has(video)):not(:has(img[src]:not([src=""]))) {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  background: none !important;
}


/* Featured card without hero image: full usable width, no orphan gray stage */
.featured-card:not(:has(.featured-card__image[style*="background-image"])) {
  margin: 0 0 2.4rem !important;
}
.featured-card:not(:has(.featured-card__image[style*="background-image"])) .featured-card__card {
  width: calc(100% - 6.4rem) !important;
  max-width: 101.5rem !important;
  margin: 0 auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
}
.featured-card:not(:has(.featured-card__image[style*="background-image"])) .featured-card__card-reflection {
  display: none !important;
}

/* Keep featured text above reflection when reflection remains */
.featured-card__header,
.featured-card__header-text,
.featured-card__footer,
.featured-card__label,
.featured-card__complement,
.featured-card__period {
  position: relative !important;
  z-index: 2 !important;
}

/* Presentation blocks: hide broken empty images, keep text readable */
.presentation {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 2.4rem 3.2rem !important;
  align-items: flex-start !important;
  width: 100% !important;
}
.presentation__description {
  flex: 1 1 36rem !important;
  max-width: 63rem !important;
  min-width: 0 !important;
}
.presentation__description h3 {
  margin: 0 0 1.6rem !important;
  font-size: clamp(2.4rem, 4vw, 4rem) !important;
  line-height: 1.15 !important;
  color: inherit !important;
}
.presentation__image:has(img:not([src])),
.presentation__image:has(img[src=""]),
.presentation__image:not(:has(img[src]:not([src=""]))) {
  display: none !important;
}
.presentation__image img[src]:not([src=""]) {
  display: block !important;
  width: min(26rem, 100%) !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  border-radius: 0.8rem;
  background: #eee;
}
.presentation__bloc-title:empty {
  display: none !important;
  margin: 0 !important;
}
.presentation__full-width {
  width: 100% !important;
  box-sizing: border-box;
}

/* Empty / broken media carousels leave yellow voids with square holes */
.media-item:not(:has(img[src]:not([src=""]))):not(:has(iframe)):not(:has(video)):not(:has(source)) {
  display: none !important;
}
.bloc-carousel-media:not(:has(img[src]:not([src=""]))):not(:has(iframe)):not(:has(video)) {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}
aa-block-media-list:not(:has(img[src]:not([src=""]))):not(:has(iframe)):not(:has(video)),
aa-media-carousel:not(:has(img[src]:not([src=""]))):not(:has(iframe)):not(:has(video)) {
  display: none !important;
  margin: 0 !important;
}

/* Formatted text readable width */
.formatted-text,
aa-block-simple-formatted-text .formatted-text {
  display: block !important;
  width: calc(100% - 6.4rem) !important;
  max-width: 101.5rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
  font-size: 1.6rem !important;
  line-height: 1.55 !important;
}

/* Introduction / CTA blocks */
.introduction,
aa-introduction,
aa-block-introduction {
  display: block !important;
  width: 100% !important;
}
aa-list-cta,
.list-cta {
  display: block !important;
}

/* Don't let layout__block-spacing invent giant empty gaps on hollow hosts */
aa-highlight-video:has(.highlight-video[style*="display: none"]),
aa-spotify-player-manager:empty,
aa-youtube-player-overlay:empty {
  display: none !important;
  margin: 0 !important;
}

/* Page loader / leftover overlays must never cover content */
aa-page-loader:not(.is-active):not(.page-loader--visible) {
  display: none !important;
  pointer-events: none !important;
}

/* Featured without hero: no reserved stage height / offset */
.featured-card:not(:has(.featured-card__image[style*="background-image"])),
.featured-card.featured-card--big:not(:has(.featured-card__image[style*="background-image"])) {
  margin: 1.6rem 0 2.4rem !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: auto !important;
}
.featured-card:not(:has(.featured-card__image[style*="background-image"])) .featured-card__card,
.featured-card.featured-card--big:not(:has(.featured-card__image[style*="background-image"])) .featured-card__card {
  width: calc(100% - 6.4rem) !important;
  max-width: 101.5rem !important;
  margin: 0 auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  position: relative !important;
}
.featured-card:not(:has(.featured-card__image[style*="background-image"])) .featured-card__card-reflection {
  display: none !important;
}

/* Introduction / Big Bangs style blocks */
.introduction,
.introduction__content,
aa-introduction .introduction {
  display: block !important;
  width: calc(100% - 6.4rem) !important;
  max-width: 101.5rem !important;
  margin: 4rem auto !important;
  box-sizing: border-box;
}
.introduction h2,
.introduction__title {
  font-size: clamp(3rem, 6vw, 7rem) !important;
  line-height: 1.05 !important;
  margin: 0 0 1.6rem !important;
  color: #050033 !important;
  text-shadow: none !important;
}

/* Presentation descriptions must not inherit white-on-white from carousels */
.presentation__description,
.presentation__description p,
.presentation__description h3 {
  color: #050033 !important;
}

/* Kill leftover blue patterned voids from highlight bg leaking via other wrappers */
div.highlight-video[style*="background-color"]:not(:has(iframe)):not(:has(video)):not(:has(img[src]:not([src=""]))) {
  display: none !important;
}


/* ========== PROGRAMMATION / EVENT CARDS ========== */

/* Featured WITH hero image: restore archive absolute centered panel */
@media (min-width: 64em) {
  .featured-card.featured-card--big:has(.featured-card__image[style*="background-image"]),
  .featured-card:has(.featured-card__image[style*="background-image"]) {
    position: relative !important;
    padding-bottom: 12rem !important;
    margin: 0 0 4rem !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .featured-card:has(.featured-card__image[style*="background-image"]) .featured-card__image-container {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: 40rem !important;
    padding-top: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    animation: none !important;
  }

  .featured-card:has(.featured-card__image[style*="background-image"]) .featured-card__image {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    animation: none !important;
  }

  .featured-card:has(.featured-card__image[style*="background-image"]) .featured-card__card {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    bottom: 0 !important;
    top: auto !important;
    width: min(101.5rem, calc(100% - 6.4rem)) !important;
    max-width: 101.5rem !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
    padding: 2.4rem 4.8rem !important;
    border-radius: 1.2rem;
    z-index: 2 !important;
  }

  .featured-card:has(.featured-card__image[style*="background-image"]) .featured-card__card-reflection {
    display: block !important;
  }
}

/* Event cards: Je réserve sits on image edge, not over title */
aa-event-card,
aa-event-card .card,
.card-list__card .card,
.card-list__list__item .card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  height: 100% !important;
  overflow: visible !important;
}

.card__media,
aa-link-item.card__media {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  order: 1;
  flex: 0 0 auto;
}

.card__image,
.card span.card__image {
  display: block !important;
  width: 100% !important;
  height: 0 !important;
  padding-top: 100% !important;
  background-color: #ddd !important;
  background-position: center !important;
  background-size: cover !important;
}

.spotify-link {
  position: absolute !important;
  top: 1.2rem !important;
  right: 1.2rem !important;
  z-index: 3 !important;
  width: 3.2rem;
  height: 3.2rem;
}

.card__button-container {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  order: 2;
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  height: auto !important;
  margin: -2.8rem 0 0.8rem !important;
  z-index: 4 !important;
  pointer-events: none;
}

.card__button-container > * {
  pointer-events: auto !important;
}

.card__button,
.card__button.button,
aa-link-item.card__button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem;
  min-height: 4.4rem !important;
  max-width: calc(100% - 1.6rem) !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 1.6rem !important;
  border: 0 !important;
  border-radius: 0.4rem;
  background: #fff !important;
  background-image: none !important;
  color: #050033 !important;
  box-shadow: 0 0.2rem 1.8rem rgba(5, 0, 51, 0.12) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  transform: none !important;
  white-space: nowrap !important;
}

.card__button img.button__icon {
  width: 1.6rem;
  height: 1.6rem;
  visibility: visible !important;
}

/* Title / date / price under the CTA, never under it */
.card > aa-link-item:not(.card__media):not(.card__button) {
  display: block !important;
  order: 3;
  position: relative !important;
  z-index: 1 !important;
  padding: 0.4rem 1.6rem 1.8rem !important;
  max-width: none !important;
  width: 100% !important;
  background: transparent !important;
}

.card__period,
.card__label,
.card__footer {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  max-width: 100% !important;
  background: transparent !important;
  color: #050033 !important;
}

.card__period {
  margin: 0 0 0.4rem !important;
  padding-top: 0 !important;
  font-size: 1.5rem !important;
  line-height: 1.3 !important;
  text-transform: uppercase;
}

.card__label {
  margin: 0.4rem 0 0.8rem !important;
  font-size: 2rem !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  overflow: visible !important;
  white-space: normal !important;
}

.card__footer {
  margin-top: 0.8rem !important;
  padding-top: 1.2rem !important;
  border-top: 1px solid #ddd;
  font-size: 1.4rem !important;
}

.card-list__list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 2.4rem 1.6rem !important;
  align-items: stretch !important;
}

.card-list__card,
.card-list__list__item,
aa-event-card {
  flex: 1 1 28rem !important;
  max-width: 36rem !important;
}

/* Broken placeholder icons inside event CTAs */
.card__button img.button__icon:not([src]),
.card__button img.button__icon[src=""],
.card__button img.button__icon[alt*="AA_EVENT"] {
  display: none !important;
}

/* Empty media shells leftover after markup cleanup */
.card__media:not(:has(img[src]:not([src=""]))):not(:has([style*="background-image"])),
.card__media__image:empty,
.card__image:not([style*="background-image"]):empty,
.presentation__image:not(:has(img[src]:not([src=""]))) {
  display: none !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Article cards without cover image */
.article__media:not(:has([style*="background-image"])):not(:has(img[src]:not([src=""]))),
.article__image:not([style*="background-image"]):empty {
  display: none !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
.article:not(:has(.article__image[style*="background-image"])):not(:has(img[src]:not([src=""]))) .article__media {
  display: none !important;
}

/* Article title hero without cover image */
.article-title__image:not([style*="background-image"]):empty {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.article-title:not(:has(.article-title__image[style*="background-image"])) {
  min-height: 0 !important;
  height: auto !important;
  padding: 3.2rem 0 1.6rem !important;
}
.article-title:not(:has(.article-title__image[style*="background-image"])) .article-title__title-container {
  position: static !important;
  bottom: auto !important;
  margin: 0 auto !important;
  padding: 0 3.2rem !important;
}
.article-title:not(:has(.article-title__image[style*="background-image"])) .article-title__title {
  color: #050033 !important;
  text-shadow: none !important;
}
.article-title--dark:not(:has(.article-title__image[style*="background-image"])) {
  background: transparent !important;
}

/* Hollow in-article figures */
.article-image:not(:has(img[src]:not([src=""]))):not(:has([style*="background-image"])) {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
}
aa-block-article-image:not(:has(img[src]:not([src=""]))):not(:has([style*="background-image"])) {
  display: none !important;
}



/* Hide removed chrome: search / account / calendar */
.main-menu__search-bar,
aa-nav-bar-item[iconfilename="user-sharp.svg"],
.navigation-bar__secondary:empty,
.navigation-bar__secondary:not(:has(button)):not(:has(a)) {
  display: none !important;
}


/* article highlight */
mark {
  background-color: rgba(247, 191, 0, 0.5);
}


/* Hide leftover search / empty share circle / hollow multi-images */
.header__search-bar,
.main-menu__search-bar {
  display: none !important;
}
.navigation-bar__secondary .button-circle:has(img.button-circle__icon:not([src])),
.navigation-bar__secondary .button-circle:has(img.button-circle__icon[src=""]),
.navigation-bar__secondary button[title="Partager"],
.navigation-bar__secondary button[title="Share"] {
  display: none !important;
}
.article-multi-image__figure:not(:has(img[src]:not([src=""]))),
.article-multi-image:not(:has(img[src]:not([src=""]))) {
  display: none !important;
}


/* Hide page-tile novelty badges (Nouveauté / New) in card media */
.card__media .card__state,
.page-tile-list__card .card__state:not(.card__state--canceled):not(.card__state--full):not(.card__state--alert) {
  display: none !important;
}


/* Removed empty partners strip in menu */
.main-menu__partners {
  display: none !important;
}
