/* UIR Navigation — HEC Paris exact style */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');

:root {
  --navy:       #013667;
  --navy-dk:    #011f3d;
  --yellow:     #D0D700;
  --white:      #ffffff;
  --light:      #f5f6f8;
  --bd:         rgba(255,255,255,.09);
  --bdl:        rgba(1,54,103,.08);
  --nav-h:      80px;
  --ease:       cubic-bezier(.33,1,.68,1);
  --ease-menu:  cubic-bezier(.77,0,.175,1);
  --ui:         'Montserrat','Outfit','Segoe UI',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
}

/* ── reset / page adjustments ────────────────────────── */
html, body { padding-top: 0 !important; margin-top: 0 !important; background: #fff; }

/* High-specificity nuke for all original nav/header elements — covers JS that adds .show */
html body header,
html body #desktop-nav,
html body .sticky-menu-bar,
html body .sticky-menu-bar.show,
html body .sticky-menu-bar.animated,
html body .navbar-top,
html body .navbar-transparent,
html body .navbar-opaque,
html body #header-first,
html body #logo-box,
html body #logo-box-menu,
html body .offcanvas,
html body #mobile-right-nav,
html body #searchModal,
html body .modal-backdrop,
html body #sticky-home-link,
html body a#sticky-home-link { display: none !important; visibility: hidden !important; }

section.slider,
.slider.owl-carousel,
section.uir-hero-slider,
.hero-section,
#homepage-slider { margin-top: 0 !important; padding-top: 0 !important; }

body.uir-locked {
  overflow: hidden;
  position: fixed;
  width: 100%;
}

/* ══════════════════════════════════════════════════════
   NAV BAR
══════════════════════════════════════════════════════ */
#uir-bar {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  z-index: 2000;
  display: flex;
  align-items: center;
  /* on wide screens keep both groups within ~600px of the centered logo */
  padding: 0 max(40px, calc(50% - 600px));
  background: linear-gradient(to bottom, #013667 0%, rgba(1,44,87,.80) 100%);
  transition: box-shadow .3s var(--ease);
}

#uir-bar.scrolled {
  background: linear-gradient(to bottom, #013667 0%, rgba(1,44,87,.92) 100%);
  box-shadow: 0 2px 16px rgba(1,54,103,.22);
}

#uir-bar.menu-open {
  background: linear-gradient(to bottom, #013667 0%, rgba(1,44,87,.95) 100%) !important;
  box-shadow: none !important;
}

/* ── left group ── */
.uir-bar-left {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* ── MENU button ── */
.uir-menu-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px 0;
  color: white;
  font-family: var(--ui);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: opacity .2s;
  white-space: nowrap;
}
.uir-menu-btn:hover { opacity: .65; }
.uir-menu-btn:focus,
.uir-menu-btn:focus-visible,
.uir-menu-btn:active { outline: none !important; box-shadow: none !important; border: none !important; }
#uir-bar.scrolled  .uir-menu-btn { color: rgba(255,255,255,.9); }
#uir-bar.menu-open .uir-menu-btn { color: rgba(255,255,255,.9) !important; }

/* ── icon wrap: fixed container so both icons overlap ── */
.uir-icon-wrap {
  position: relative;
  width: 26px;
  height: 20px;
  flex-shrink: 0;
}
.uir-icon-menu,
.uir-icon-close {
  position: absolute;
  top: 50%; left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  will-change: opacity, transform;
  transition: opacity .28s var(--ease), transform .32s var(--ease);
}
.uir-icon-menu svg,
.uir-icon-close svg { display: block; overflow: visible; }

/* default: menu visible, close hidden (rotated + faded) */
.uir-icon-menu  { transform: translate(-50%, -50%) rotate(0deg)   scale(1);   opacity: 1; }
.uir-icon-close { transform: translate(-50%, -50%) rotate(-90deg) scale(.55); opacity: 0; }

/* open: swap */
#uir-bar.menu-open .uir-icon-menu  { transform: translate(-50%, -50%) rotate(90deg) scale(.55); opacity: 0; }
#uir-bar.menu-open .uir-icon-close { transform: translate(-50%, -50%) rotate(0deg)  scale(1);   opacity: 1; }

/* ── label text: MENU ↔ FERMER/CLOSE crossfade ── */
.uir-menu-label {
  display: grid;           /* both spans share the same grid cell */
  align-items: center;
}
.uir-lbl-menu,
.uir-lbl-close {
  grid-area: 1 / 1;
  white-space: nowrap;
  will-change: opacity, transform;
  transition: opacity .26s var(--ease), transform .30s var(--ease);
}
.uir-lbl-close {
  opacity: 0;
  transform: translateY(6px);
}
#uir-bar.menu-open .uir-lbl-menu  { opacity: 0; transform: translateY(-6px); }
#uir-bar.menu-open .uir-lbl-close { opacity: 1; transform: translateY(0); }

/* ── Language ── */
.uir-lang {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: var(--ui);
  font-size: 13px;
  letter-spacing: .1em;
}
.uir-lang a {
  color: white;
  text-decoration: none;
  padding: 2px 4px;
  transition: color .18s;
}
.uir-lang a.on       { color: white;   font-weight: 700; }
.uir-lang-sep        { color: white; }
#uir-bar.scrolled  .uir-lang a       { color: rgba(255,255,255,.45); }
#uir-bar.scrolled  .uir-lang a.on    { color: rgba(255,255,255,.95); }
#uir-bar.scrolled  .uir-lang-sep     { color: rgba(255,255,255,.25); }
#uir-bar.menu-open .uir-lang a       { color: rgba(255,255,255,.45) !important; }
#uir-bar.menu-open .uir-lang a.on    { color: rgba(255,255,255,.95) !important; }
#uir-bar.menu-open .uir-lang-sep     { color: rgba(255,255,255,.25) !important; }

/* ── Logo — overflows below nav bar ── */
.uir-bar-logo {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  z-index: 1;
  line-height: 0;
  pointer-events: auto;
}
.uir-bar-logo a { display: block; line-height: 0; }
.uir-bar-logo img {
  height: 125px;
  width: auto;
  display: block;
  transition: height .3s var(--ease);
}
#uir-bar.scrolled .uir-bar-logo img { height: 125px; }

/* ── Right: Accès Rapides ── */
.uir-bar-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 28px;
  position: relative;   /* anchor for the access panel */
}

/* ── Navbar inline search ── */
.uir-nb-search {
  display: flex !important;
  align-items: center !important;
}

/* ── Collapsed pill ── */
.uir-nb-search-pill {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  cursor: pointer;
  padding: 6px 2px !important;
  color: white;
  font-family: var(--ui) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  letter-spacing: .03em !important;
  white-space: nowrap;
  text-decoration: underline !important;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(255,255,255,.45) !important;
  transition: color .18s, text-decoration-color .18s;
}
.uir-nb-search-pill:hover { color: #ffffff !important; text-decoration-color: rgba(255,255,255,.8) !important; }
.uir-nb-search-pill:focus,
.uir-nb-search-pill:focus-visible,
.uir-nb-search-pill:active { outline: none !important; box-shadow: none !important; border: none !important; }
.uir-nb-search-pill svg { flex-shrink: 0; display: block !important; }

.uir-nb-search--open .uir-nb-search-pill { display: none !important; }

/* ── Expanded box ── */
.uir-nb-search-box {
  display: none !important;
  align-items: center !important;
  height: 38px !important;
  gap: 6px !important;
}
.uir-nb-search--open .uir-nb-search-box {
  display: flex !important;
  animation: uir-nb-expand .18s ease;
}
@keyframes uir-nb-expand {
  from { opacity: 0; transform: scaleX(.88); transform-origin: right center; }
  to   { opacity: 1; transform: scaleX(1); }
}

.uir-nb-search-input-wrap {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  height: 38px !important;
}

/* All critical visuals use !important to beat Bootstrap / site CSS overrides */
.uir-nb-q {
  height: 38px !important;
  width: 200px !important;
  padding: 0 34px 0 12px !important;
  background: rgba(255,255,255,.13) !important;
  border: 1.5px solid rgba(255,255,255,.5) !important;
  border-radius: 4px !important;
  font-family: var(--ui) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #ffffff !important;
  outline: none !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  transition: background .15s, border-color .15s;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.uir-nb-q::placeholder { color: rgba(255,255,255,.75) !important; font-style: normal !important; opacity: 1 !important; }
.uir-nb-q:focus { background: rgba(255,255,255,.2) !important; border-color: rgba(255,255,255,.8) !important; }

/* × clear button — inside the input wrap, shown by JS */
.uir-nb-search-clear {
  position: absolute !important;
  right: 7px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: none;          /* toggled to flex by JS */
  align-items: center;
  justify-content: center;
  width: 16px !important;
  height: 16px !important;
  background: rgba(255,255,255,.25) !important;
  border: none !important;
  border-radius: 50% !important;
  cursor: pointer;
  color: #ffffff !important;
  padding: 0 !important;
  line-height: 1;
  transition: background .15s;
  z-index: 2;
}
.uir-nb-search-clear:hover { background: rgba(255,255,255,.42) !important; }
.uir-nb-search-clear svg { display: block !important; }

/* Search / Rechercher button */
.uir-nb-search-go {
  height: 38px !important;
  padding: 0 14px !important;
  background: #1a56db !important;
  border: none !important;
  border-radius: 20px !important;
  cursor: pointer;
  color: #ffffff !important;
  font-family: var(--ui) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  white-space: nowrap;
  box-shadow: none !important;
  transition: background .15s;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.uir-nb-search-go:hover { background: #1648c5 !important; }
.uir-nb-search-go:focus,
.uir-nb-search-go:active { outline: none !important; box-shadow: none !important; }
.uir-nb-search-go svg { flex-shrink: 0; display: block !important; }

/* hide navbar search on mobile */
@media (max-width: 768px) {
  .uir-nb-search { display: none !important; }
}

.uir-access-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px 0;
  color: white;
  font-family: var(--ui);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: .1em;
  transition: opacity .2s;
  white-space: nowrap;
}
.uir-access-btn:hover { opacity: .65; }
.uir-access-btn:focus,
.uir-access-btn:focus-visible,
.uir-access-btn:active { outline: none !important; box-shadow: none !important; border: none !important; }
#uir-bar.scrolled  .uir-access-btn { color: white; }
#uir-bar.menu-open .uir-access-btn { color: white; }

/* 3×3 dot grid */
.uir-dots {
  display: grid;
  grid-template-columns: repeat(3, 4px);
  gap: 3px;
  flex-shrink: 0;
}
.uir-dots span {
  display: block;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: currentColor;
}

/* ══════════════════════════════════════════════════════
   DESKTOP MEGA PANEL
══════════════════════════════════════════════════════ */
#uir-mega-panel {
  position: fixed;
  top: 0;
  left: 0; right: 0;
  height: 100vh;
  padding-top: var(--nav-h);
  box-sizing: border-box;
  z-index: 1999;
  background: var(--navy);
  display: flex;
  flex-direction: column;
  transform: translateY(-110%);
  transition: transform .55s var(--ease-menu);
  overflow: hidden;
}
#uir-mega-panel.open { transform: translateY(0); }

/* ── Quick-links bar ── */
.uir-quick-bar {
  flex-shrink: 0;
  background: #ffffff;
  padding: 60px 40px 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.uir-quick-btns {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}
.uir-quick-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 40px;
  background: #ffffff;
  border: 2px solid #013667;
  border-radius: 50px;
  color: #1a1a2e;
  font-family: var(--ui);
  font-size: 13.5px;
  font-weight: bold;
  letter-spacing: .04em;
  line-height: 1;
  text-decoration: none;
  overflow: hidden;
  cursor: pointer;
  transition: color .3s var(--ease), border-color .3s var(--ease);
}
.uir-quick-btn::before {
  content: '';
  position: absolute;
  left: var(--mx, 50%);
  top: var(--my, 50%);
  width: 600px;
  height: 600px;
  background: var(--navy);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform .5s cubic-bezier(.33,1,.68,1);
  pointer-events: none;
  z-index: 1;
}
.uir-quick-btn::after {
  content: '→';
  position: absolute;
  right: 18px;
  top: 50%;
  font-size: 1em;
  font-weight: 400;
  line-height: 1;
  color: inherit;
  z-index: 2;
  opacity: 0;
  transform: translateY(-50%) translateX(6px);
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.uir-quick-btn:hover { color: #ffffff; border-color: var(--navy); }
.uir-quick-btn:hover::before { transform: translate(-50%, -50%) scale(1); }
.uir-quick-btn:hover::after  { opacity: 1; transform: translateY(-50%) translateX(0); }
.uir-quick-btn span { position: relative; z-index: 2; }

.uir-quick-btn--active {
  background: var(--yellow);
  color: #173863;
  border-color: var(--yellow);
  border: 2px solid #013667;
}
.uir-quick-btn--active:hover { color: #ffffff; border-color: var(--navy); }

@keyframes uir-quick-btn-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
#uir-mega-panel.open .uir-quick-btn:nth-child(1) { animation: uir-quick-btn-in .3s var(--ease) .08s both; }
#uir-mega-panel.open .uir-quick-btn:nth-child(2) { animation: uir-quick-btn-in .3s var(--ease) .14s both; }
#uir-mega-panel.open .uir-quick-btn:nth-child(3) { animation: uir-quick-btn-in .3s var(--ease) .20s both; }

/* ── Search row ── */
.uir-panel-search {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  padding: 44px 0 44px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.uir-search-wrap {
  position: relative;
  width: min(640px, 84vw);
  filter: drop-shadow(0 14px 44px rgba(0,0,0,.42));
}
.uir-search-input {
  width: 100%;
  height: 58px !important;
  min-height: 58px !important;
  padding: 0 72px 0 28px !important;
  background: #fff !important;
  border: none !important;
  border-radius: 10px;
  font-family: var(--ui);
  font-size: 19px;
  font-weight: 400;
  color: var(--navy);
  outline: none;
  box-sizing: border-box;
  letter-spacing: .01em;
}
.uir-search-input::placeholder {
  color: rgba(1,54,103,.35);
  font-style: italic;
}
.uir-search-input:focus { background: #fff; }
.uir-search-go {
  position: absolute;
  right: 0; top: 0; bottom: 0;
  width: 64px;
  background: var(--yellow);
  border: none;
  border-radius: 0 8px 8px 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navy);
  transition: background .18s, transform .12s;
}
.uir-search-go:hover  { background: #dce400; }
.uir-search-go:active { transform: scale(.96); }
.uir-search-go svg {
  width: 26px; height: 26px;
  fill: none; stroke: currentColor;
  stroke-width: 2.2; stroke-linecap: round;
}

/* ── Main two-column ── */
.uir-panel-main {
  flex: 1;
  display: flex;
  min-height: 0;
  max-width: 1300px;
  width: 100%;
  margin: 0 auto;
  align-self: stretch;
}

/* LEFT — categories */
.uir-cats {
  width: 420px;
  flex-shrink: 0;
  border-left: 3px solid white;
  border-right: 1px solid rgba(255,255,255,.1);
  padding: 36px 24px 36px 56px;
  overflow-y: auto;
  scrollbar-width: none;
}
.uir-cats::-webkit-scrollbar { display: none; }

.uir-cat {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 17px 18px 17px 0;
  background: none !important;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.08);
  cursor: default;
  text-align: left;
  outline: none !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
  transition: padding-left .18s var(--ease), box-shadow .16s;
}
.uir-cat:last-child          { border-bottom: none; }
.uir-cat:hover               { padding-left: 8px; }
.uir-cat.on                  { box-shadow: inset 0 0 0 2px rgba(255,255,255,.3) !important; border-radius: 2px; padding-left: 12px; }
.uir-cat:focus,
.uir-cat:active,
.uir-cat:focus-visible       { outline: none !important; box-shadow: none !important; background: none !important; }
.uir-cat.on:focus,
.uir-cat.on:focus-visible    { box-shadow: inset 0 0 0 2px rgba(255,255,255,.3) !important; }

.uir-cat-name {
  font-family: var(--ui);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.3;
  transition: color .16s;
}
.uir-cat:hover .uir-cat-name,
.uir-cat.on    .uir-cat-name { color: #fff; }

.uir-cat-arr {
  font-size: 22px;
  color: rgba(255,255,255,.5);
  flex-shrink: 0;
  transition: color .16s, transform .18s var(--ease);
}
.uir-cat:hover .uir-cat-arr,
.uir-cat.on    .uir-cat-arr {
  color: var(--yellow);
  transform: translateX(5px);
}

/* ══════════════════════════════════════════════════════
   L2 COLUMN (middle)
══════════════════════════════════════════════════════ */
.uir-l2s {
  width: 400px;
  flex-shrink: 0;
  border-right: 1px solid rgba(255,255,255,.1);
  position: relative;
  overflow: hidden;
}

.uir-l2-group {
  position: absolute;
  inset: 0;
  padding: 36px 0;
  opacity: 0;
  transform: translateX(10px);
  pointer-events: none;
  transition: opacity .22s var(--ease), transform .22s var(--ease);
  overflow-y: auto;
  scrollbar-width: none;
}
.uir-l2-group::-webkit-scrollbar { display: none; }
.uir-l2-group.on {
  opacity: 1;
  transform: translateX(0);
  pointer-events: all;
}

.uir-l2-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 14px 14px 24px;
  background: none !important;
  border: none;
  border-bottom: 1px solid rgba(255,255,255,.08);
  cursor: default;
  text-align: left;
  outline: none !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
  transition: padding-left .18s var(--ease), box-shadow .16s;
}
.uir-l2-item:last-child { border-bottom: none; }
.uir-l2-item:hover { padding-left: 30px; }
.uir-l2-item.on {
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.3) !important;
  border-radius: 2px;
  padding-left: 28px;
}
.uir-l2-item:focus,
.uir-l2-item:active,
.uir-l2-item:focus-visible { outline: none !important; box-shadow: none !important; }
.uir-l2-item.on:focus,
.uir-l2-item.on:focus-visible { box-shadow: inset 0 0 0 2px rgba(255,255,255,.3) !important; }

.uir-l2-name {
  font-family: var(--ui);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.35;
  transition: color .16s;
}
.uir-l2-item:hover .uir-l2-name,
.uir-l2-item.on    .uir-l2-name { color: #fff; }

.uir-l2-arr {
  font-size: 20px;
  color: rgba(255,255,255,.5);
  flex-shrink: 0;
  transition: color .16s, transform .18s var(--ease);
}
.uir-l2-item:hover .uir-l2-arr,
.uir-l2-item.on    .uir-l2-arr {
  color: var(--yellow);
  transform: translateX(3px);
}

/* ══════════════════════════════════════════════════════
   L3 COLUMN (right)
══════════════════════════════════════════════════════ */
.uir-l3s {
  flex: 1;
  position: relative;
  overflow: hidden;
}

.uir-l3-group {
  position: absolute;
  inset: 36px 56px 36px 44px;
  opacity: 0;
  transform: translateX(14px);
  pointer-events: none;
  transition: opacity .22s var(--ease), transform .22s var(--ease);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.1) transparent;
}
.uir-l3-group.on {
  opacity: 1;
  transform: translateX(0);
  pointer-events: all;
}

.uir-l3-group a {
  display: block;
  padding: 10px 0;
  color: #fff;
  text-decoration: none;
  font-family: var(--ui);
  font-size: 15px;
  font-weight: 400;
  border-bottom: 1px solid rgba(255,255,255,.08);
  line-height: 1.45;
  transition: color .13s, padding-left .13s;
}
.uir-l3-group a:hover { color: #fff; padding-left: 10px; }
.uir-l3-group a:last-child { border-bottom: none; }

/* ── Category stagger animation on panel open ── */
@keyframes uir-cat-in {
  from { opacity: 0; transform: translateX(-6px); }
  to   { opacity: 1; transform: translateX(0); }
}
#uir-mega-panel.open .uir-cat:nth-child(1)  { animation: uir-cat-in .35s var(--ease) .06s  both; }
#uir-mega-panel.open .uir-cat:nth-child(2)  { animation: uir-cat-in .35s var(--ease) .10s  both; }
#uir-mega-panel.open .uir-cat:nth-child(3)  { animation: uir-cat-in .35s var(--ease) .14s  both; }
#uir-mega-panel.open .uir-cat:nth-child(4)  { animation: uir-cat-in .35s var(--ease) .18s  both; }
#uir-mega-panel.open .uir-cat:nth-child(5)  { animation: uir-cat-in .35s var(--ease) .22s  both; }
#uir-mega-panel.open .uir-cat:nth-child(6)  { animation: uir-cat-in .35s var(--ease) .26s  both; }
#uir-mega-panel.open .uir-cat:nth-child(7)  { animation: uir-cat-in .35s var(--ease) .30s  both; }

/* ── Panel footer ── */
.uir-panel-foot {
  flex-shrink: 0;
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 18px 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.uir-foot-links {
  display: flex;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
}
.uir-panel-foot a {
  font-family: var(--ui);
  font-size: 13px;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  transition: color .16s;
}
.uir-panel-foot a:hover { color: #fff; }
.uir-foot-social {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.uir-foot-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #fff;
  text-decoration: none;
  border-radius: 10px;
  transition: opacity .18s ease, transform .18s cubic-bezier(.33,1,.68,1);
}
.uir-foot-social-link svg { width: 19px; height: 19px; flex-shrink: 0; }
.uir-foot-social-link:hover  { opacity: .82; transform: translateY(-2px); }
.uir-foot-social-link:active { transform: translateY(0); }

/* ── Per-brand flat colours ── */
.uir-foot-social-link[aria-label="Facebook"] { background: #1877F2; }
.uir-foot-social-link[aria-label="Instagram"] {
  background: linear-gradient(135deg, #833AB4 0%, #E1306C 45%, #F77737 100%);
}
.uir-foot-social-link[aria-label="X"]        { background: #14171A; }
.uir-foot-social-link[aria-label="YouTube"]  { background: #FF0000; }
.uir-foot-social-link[aria-label="LinkedIn"] { background: #0A66C2; }
.uir-foot-social-link[aria-label="Agenda"]   { background: #D0D700; color: var(--navy); }

/* ══════════════════════════════════════════════════════
   ACCÈS RAPIDES PANEL
══════════════════════════════════════════════════════ */
#uir-access-panel {
  position: absolute;
  top: calc(100% + 6px);   /* just below the button row */
  right: 0;                 /* flush with right edge of .uir-bar-right */
  width: min(380px, 94vw);
  background: #D0D700;
  border-radius: 16px;
  box-shadow:
    0 20px 60px rgba(0,0,0,.28),
    0 4px 16px rgba(0,0,0,.16),
    0 0 0 1px rgba(255,255,255,.15);
  padding: 14px;
  z-index: 2001;
  opacity: 0;
  transform: translateY(-10px) scale(.98);
  pointer-events: none;
  transition: opacity .2s var(--ease), transform .2s var(--ease);
}
/* Tooltip caret pointing up toward the Accès Rapides button — centered above panel */
#uir-access-panel::before {
  content: '';
  position: absolute;
  top: -10px;
  right: 28px;            /* aligns with the dots icon in the button */
  left: auto;
  transform: none;
  width: 0; height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-bottom: 11px solid #D0D700;
  filter: drop-shadow(0 -2px 2px rgba(0,0,0,.12));
}
#uir-access-panel.on {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: all;
}

.uir-ap-chips {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.uir-ap-chip {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px 44px;
  background: #192026;
  border-radius: 50px;
  border: 1px solid rgba(255,255,255,.07);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  color: rgba(255,255,255,.88);
  text-decoration: none;
  font-family: var(--ui);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1;
  cursor: pointer;
  overflow: hidden;
  transition:
    background  .2s ease-out,
    color       .2s ease-out,
    transform   .2s ease-out,
    box-shadow  .2s ease-out,
    border-color .2s ease-out;
}

/* Fill circle — expands from cursor entry point */
.uir-ap-chip::before {
  content: '';
  position: absolute;
  left: var(--mx, 50%);
  top: var(--my, 50%);
  width: 600px;
  height: 600px;
  background: #0a1520;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: transform .5s cubic-bezier(.33,1,.68,1);
  pointer-events: none;
  z-index: 1;
}

/* Arrow → */
.uir-ap-chip::after {
  content: '→';
  position: absolute;
  right: 18px;
  top: 50%;
  font-family: inherit;
  font-size: 1em;
  font-weight: 400;
  line-height: 1;
  color: var(--yellow);
  z-index: 2;
  opacity: 0;
  transform: translateY(-50%) translateX(6px);
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}

/* Span keeps text above fill */
.uir-ap-chip span {
  position: relative;
  z-index: 2;
}

.uir-ap-chip:hover {
  color: rgba(255,255,255,.95);
  border-color: rgba(208,215,0,.2);
  text-decoration: none;
}
.uir-ap-chip:hover::before { transform: translate(-50%, -50%) scale(1); }
.uir-ap-chip:hover::after  { opacity: 1; transform: translateY(-50%) translateX(0); }

/* Staggered entrance when panel opens */
@keyframes uir-chip-in {
  from { opacity: 0; transform: translateX(-12px); }
  to   { opacity: 1; transform: translateX(0); }
}
#uir-access-panel.on .uir-ap-chip {
  animation: uir-chip-in 240ms cubic-bezier(.33,1,.68,1) both;
}
#uir-access-panel.on .uir-ap-chip:nth-child(1) { animation-delay:  30ms; }
#uir-access-panel.on .uir-ap-chip:nth-child(2) { animation-delay:  70ms; }
#uir-access-panel.on .uir-ap-chip:nth-child(3) { animation-delay: 110ms; }
#uir-access-panel.on .uir-ap-chip:nth-child(4) { animation-delay: 150ms; }
#uir-access-panel.on .uir-ap-chip:nth-child(5) { animation-delay: 190ms; }
#uir-access-panel.on .uir-ap-chip:nth-child(6) { animation-delay: 230ms; }

@media (prefers-reduced-motion: reduce) {
  .uir-ap-chip::before,
  .uir-ap-chip::after { transition: none; }
  #uir-access-panel.on .uir-ap-chip { animation: none; }
}

/* ══════════════════════════════════════════════════════
   MOBILE PANEL  (≤768px)
══════════════════════════════════════════════════════ */
#uir-mob-panel {
  display: none; /* shown via JS + media query class */
  position: fixed;
  top: 0;
  left: 0; right: 0;
  height: 100vh;
  padding-top: var(--nav-h);
  box-sizing: border-box;
  background: var(--navy);
  z-index: 1999;
  flex-direction: column;
  transform: translateY(-110%);
  transition: transform .5s var(--ease-menu);
  overflow: hidden;
}
#uir-mob-panel.open {
  transform: translateY(0);
}

/* ── Mobile search — two-state: pill (default) → expanded box (on click) ── */
.uir-mob-search {
  flex-shrink: 0;
  padding: 32px 20px 14px;
}

/* ── Collapsed pill ── */
.uir-mob-search-pill {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  height: 40px !important;
  padding: 0 16px !important;
  background: rgba(255,255,255,.1) !important;
  border: 1.5px solid rgba(255,255,255,.35) !important;
  border-radius: 20px !important;
  cursor: pointer;
  color: #ffffff !important;
  font-family: var(--ui) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  white-space: nowrap;
  transition: background .18s, border-color .18s;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.uir-mob-search-pill:hover { background: rgba(255,255,255,.18) !important; border-color: rgba(255,255,255,.6) !important; }
.uir-mob-search-pill svg { flex-shrink: 0; display: block !important; }
.uir-mob-search--open .uir-mob-search-pill { display: none !important; }

/* ── Expanded box ── */
.uir-mob-search-box {
  display: none !important;
  align-items: center !important;
  gap: 6px !important;
}
.uir-mob-search--open .uir-mob-search-box {
  display: flex !important;
  animation: uir-nb-expand .18s ease;
}
.uir-mob-search-input-wrap {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  flex: 1 !important;
  height: 40px !important;
}
.uir-mob-q-input {
  width: 100% !important;
  height: 40px !important;
  padding: 0 38px 0 14px !important;
  background: rgba(255,255,255,.13) !important;
  border: 1.5px solid rgba(255,255,255,.5) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  font-family: var(--ui) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #ffffff !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: background .15s, border-color .15s;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.uir-mob-q-input::placeholder { color: rgba(255,255,255,.6) !important; font-style: normal !important; opacity: 1 !important; }
.uir-mob-q-input:focus { background: rgba(255,255,255,.2) !important; border-color: rgba(255,255,255,.8) !important; }
.uir-mob-search-clear {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: none;
  align-items: center;
  justify-content: center;
  width: 18px !important;
  height: 18px !important;
  background: rgba(255,255,255,.25) !important;
  border: none !important;
  border-radius: 50% !important;
  cursor: pointer;
  color: #ffffff !important;
  padding: 0 !important;
  transition: background .15s;
  z-index: 2;
}
.uir-mob-search-clear:hover { background: rgba(255,255,255,.42) !important; }
.uir-mob-search-clear svg { display: block !important; }
.uir-mob-search-btn {
  height: 40px !important;
  padding: 0 16px !important;
  background: #1a56db !important;
  border: none !important;
  border-radius: 20px !important;
  cursor: pointer;
  color: #ffffff !important;
  font-family: var(--ui) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: none !important;
  transition: background .15s;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.uir-mob-search-btn:hover { background: #1648c5 !important; }
.uir-mob-search-btn svg { flex-shrink: 0; display: block !important; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }

/* ── Candidature CTA below search ── */
.uir-mob-cta {
  flex-shrink: 0;
  padding: 14px 20px 16px;
  border-top: 1px solid rgba(255,255,255,.22);
  border-bottom: 1px solid rgba(255,255,255,.22);
}
.uir-mob-cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 13px 20px;
  background: var(--yellow);
  color: #173863;
  font-family: var(--ui);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-radius: 50px;
  text-decoration: none !important;
  box-sizing: border-box;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.uir-mob-cta-btn:hover {
  background: var(--navy);
  color: #ffffff;
  text-decoration: none !important;
}

/* ── Secondary outline pills (Exec Ed + Recherche) ── */
.uir-mob-secondary-btns {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.uir-mob-secondary-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 9px 12px;
  font-family: var(--ui);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .03em;
  color: #ffffff;
  border: 2px solid #ffffff;
  border-radius: 50px;
  text-decoration: none !important;
  text-align: center;
  transition: border-color .22s var(--ease), color .22s var(--ease), background .22s var(--ease);
}
.uir-mob-secondary-btn:hover {
  border-color: var(--yellow);
  color: var(--yellow);
  background: rgba(208,215,0,.06);
  text-decoration: none !important;
}

/* ── Mobile nav list ── */
.uir-mob-nav {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.uir-mob-nav::-webkit-scrollbar { display: none; }

.uir-mob-item {
  border-bottom: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 0 0 transparent;
  transition: box-shadow .22s var(--ease), background .22s var(--ease);
}
.uir-mob-item:last-child { border-bottom: none; }
.uir-mob-item:has(.uir-mob-cat[aria-expanded="true"]) {
  box-shadow: inset 3px 0 0 var(--yellow);
  background: rgba(208,215,0,.06);
}

.uir-mob-cat,
.uir-mob-cat-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 20px;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  color: #ffffff;
  font-family: var(--ui);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color .16s, background .16s;
}
.uir-mob-cat:hover,
.uir-mob-cat-link:hover {
  color: var(--white);
  background: rgba(255,255,255,.04);
}
.uir-mob-cat[aria-expanded="true"] {
  color: var(--yellow);
}

.uir-mob-arr {
  font-size: 20px;
  font-weight: 300;
  line-height: 1;
  color: #ffffff;
  flex-shrink: 0;
}
.uir-mob-cat[aria-expanded="true"] .uir-mob-arr { color: #ffffff; }

/* Accordion sub-content */
.uir-mob-sub {
  max-height: 0;
  overflow: hidden;
  transition: max-height .38s var(--ease);
}
.uir-mob-sub.open {
  max-height: 2400px;
}

.uir-mob-sub-inner {
  padding: 4px 20px 20px 24px;
}

.uir-mob-group { margin-bottom: 18px 0px; }
.uir-mob-group:last-child { margin-bottom: 0; }

.uir-mob-group-hd {
  font-family: var(--ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--yellow);
  margin-bottom: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(208,215,0,.2);
}

.uir-mob-group ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.uir-mob-group a {
  display: block;
  padding: 7px 0;
  color: #ffffff;
  text-decoration: none;
  font-family: var(--ui);
  font-size: 14px;
  border-bottom: 1px solid rgba(255,255,255,.10);
  transition: color .13s, padding-left .13s;
}
.uir-mob-group a:hover { color: var(--white); padding-left: 5px; }
.uir-mob-group li:last-child a { border-bottom: none; }

/* ── Mobile footer ── */
.uir-mob-foot {
  flex-shrink: 0;
  border-top: 1px solid var(--bd);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.uir-mob-foot a {
  font-family: var(--ui);
  font-size: 13px;
  font-weight: 500;
  color: #ffffff;
  text-decoration: none;
  transition: color .16s;
}
.uir-mob-foot a:hover { color: var(--white); }

/* Language switcher inside mobile footer */
.uir-mob-foot-lang {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-right: auto;
  font-family: var(--ui);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
}
.uir-mob-foot-lang a {
  color: rgba(255,255,255,.65);
  font-weight: 700;
  padding: 2px 4px;
}
.uir-mob-foot-lang a.on { color: #ffffff; font-weight: 700; }
.uir-mob-foot-lang span { color: rgba(255,255,255,.35); }

/* ══════════════════════════════════════════════════════
   SECTION TITLE STYLE
   Navy text + short decorative underline bar
══════════════════════════════════════════════════════ */

/* Wrapper-div pattern: <div class="section-title"><h2>…</h2></div> */
.section-title h2,
.section-title h3,
/* Direct-class pattern: <h2 class="section-title">…</h2> */
h2.section-title,
h3.section-title {
  color: var(--navy) !important;
  width: fit-content !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.section-title h2::after,
.section-title h3::after,
h2.section-title::after,
h3.section-title::after {
  content: '';
  display: block;
  width: 38px;
  height: 3px;
  background: var(--navy);
  margin-top: 10px;
  border-radius: 2px;
}

/* ══════════════════════════════════════════════════════
   GLOBAL BUTTON REDESIGN
   Targets site .btn variants — NOT our .uir-* nav buttons,
   NOT anything inside #uir-mega-panel / #uir-access-panel
══════════════════════════════════════════════════════ */

/* ── Base ── */
.btn.btn-primary,
.btn.btn-slide,
a.btn-new-bloc,
button.btn-new-bloc {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--navy) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 0 !important;
  font-family: var(--ui) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  letter-spacing: .04em !important;
  text-transform: none !important;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
  padding: 16px 42px !important;
  cursor: pointer;
  overflow: hidden;
  vertical-align: middle;
  line-height: 1.4 !important;
  transition: background .22s var(--ease) !important;
}
/* Nuke pseudo-element arrows — span approach handles animation */
.btn.btn-primary::before, .btn.btn-primary::after,
.btn.btn-slide::before,   .btn.btn-slide::after,
a.btn-new-bloc::before,   a.btn-new-bloc::after,
button.btn-new-bloc::before, button.btn-new-bloc::after { content: none !important; }

.btn.btn-primary:hover,
.btn.btn-slide:hover,
a.btn-new-bloc:hover,
button.btn-new-bloc:hover {
  background: #012650 !important;
  color: #ffffff !important;
  text-decoration: none !important;
}
.btn.btn-primary:focus,
.btn.btn-primary:active,
.btn.btn-slide:focus, .btn.btn-slide:active,
a.btn-new-bloc:focus, button.btn-new-bloc:focus { outline: none !important; box-shadow: none !important; }
.btn.active.btn-primary { background: #012650 !important; }

/* ── Inner spans injected by JS ── */

/* State A: "→ Text" — visible at rest */
.uir-btn-a {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  white-space: nowrap;
  opacity: 1;
  transform: translateX(0);
  transition: opacity .26s var(--ease), transform .30s var(--ease);
}

/* State B: "Text →" — hidden at rest, shows on hover */
.uir-btn-b {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  white-space: nowrap;
  position: absolute !important;
  inset: 0 !important;
  padding: 0 42px !important;
  justify-content: flex-end !important;
  opacity: 0;
  transform: translateX(32px);
  transition: opacity .26s var(--ease), transform .30s var(--ease);
}

/* Hover: A slides left out, B slides in from right */
.btn.btn-primary:hover .uir-btn-a,
.btn.btn-slide:hover .uir-btn-a,
a.btn-new-bloc:hover .uir-btn-a,
button.btn-new-bloc:hover .uir-btn-a {
  opacity: 0 !important;
  transform: translateX(-32px) !important;
}
.btn.btn-primary:hover .uir-btn-b,
.btn.btn-slide:hover .uir-btn-b,
a.btn-new-bloc:hover .uir-btn-b,
button.btn-new-bloc:hover .uir-btn-b {
  opacity: 1 !important;
  transform: translateX(0) !important;
}

/* Arrow character */
.uir-btn-arr {
  flex-shrink: 0;
  font-size: 16px;
  line-height: 1;
  font-style: normal !important;
}

/* ── JE CANDIDATE CTA — arrow animation only, all other styles preserved ── */
a#cta_btn_uir {
  position: relative !important;
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
/* Arrow inherits the button's 3rem font-size — scale it down */
a#cta_btn_uir .uir-btn-arr { font-size: 1em !important; }
/* State B needs padding to match the button's content area */
a#cta_btn_uir .uir-btn-b   { padding: 0.375em 1em !important; }
/* Hover states */
a#cta_btn_uir:hover .uir-btn-a { opacity: 0 !important; transform: translateX(-32px) !important; }
a#cta_btn_uir:hover .uir-btn-b { opacity: 1 !important; transform: translateX(0) !important; }

/* ══════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .uir-cats    { width: 340px; padding: 32px 16px 32px 40px; }
  .uir-l2s     { width: 250px; }
  .uir-l3-group { inset: 32px 40px 32px 36px; }
}

@media (max-width: 768px) {
  :root { --nav-h: 80px; }
  #uir-bar { position: relative; padding: 0 16px; }

  /* hide text labels on bar buttons */
  .uir-menu-label,
  .uir-access-label { display: none; }

  /* hide language from bar on mobile — it lives in the panel footer */
  .uir-lang { display: none; }

  /* larger hamburger + close icons */
  .uir-icon-menu svg,
  .uir-icon-close svg {
    width: 32px !important;
    height: 26px !important;
  }

  /* larger dots grid for Accès Rapides */
  .uir-dots {
    grid-template-columns: repeat(3, 6px);
    gap: 4px;
  }
  .uir-dots span {
    width: 6px;
    height: 6px;
  }

  .uir-bar-logo img    { height: 100px; }
  #uir-bar.scrolled .uir-bar-logo img { height: 88px; }

  /* hide desktop panel, show mobile panel */
  #uir-mega-panel { display: none !important; }
  #uir-mob-panel  { display: flex; }

  /* Scroll lock: only uir-mob-nav scrolls, panel is fixed */
  #uir-mob-panel {
    height: 100dvh;
    overflow: hidden;
  }
  .uir-mob-nav {
    overscroll-behavior: contain;
  }

  /* access panel: fixed to viewport on mobile, full width below nav */
  #uir-access-panel {
    position: fixed;
    top: var(--nav-h);
    left: 0;
    right: 0;
    width: 100%;
    border-radius: 0 0 12px 12px;
  }
  #uir-access-panel::before { right: 16px; }
}

@media (max-width: 480px) {
  .uir-ap-chip { font-size: 13px; }
  .uir-mob-foot { gap: 16px; }
}

/* ══════════════════════════════════════════════════════
   GLOBAL: animated underline — slide left → right
   Uses ::after so it never conflicts with existing
   background-image rules in other stylesheets
══════════════════════════════════════════════════════ */
body a:not([class*="uir-"]):not([class*="btn"]):not([class*="navbar"]):not([class*="logo"]) {
  position: relative;
  text-decoration: none;
}
body a:not([class*="uir-"]):not([class*="btn"]):not([class*="navbar"]):not([class*="logo"])::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1.5px;
  background-color: currentColor;
  transition: width .3s cubic-bezier(.33,1,.68,1);
  pointer-events: none;
}
body a:not([class*="uir-"]):not([class*="btn"]):not([class*="navbar"]):not([class*="logo"]):hover::after {
  width: 100%;
}

/* Mega panel links — underline just below the text */
.uir-l3-group a,
.uir-foot-links a {
  position: relative;
}
.uir-l3-group a::after,
.uir-foot-links a::after {
  content: '';
  position: absolute;
  bottom: 10px;
  left: 0;
  width: 0;
  height: 1.5px;
  background-color: currentColor;
  transition: width .3s cubic-bezier(.33,1,.68,1);
  pointer-events: none;
}
.uir-l3-group a:hover::after,
.uir-foot-links a:hover::after {
  width: 100%;
}

/* ══════════════════════════════════════════════════════
   HERO SLIDER  (Owl stripped by PATCH_JS → uir-hero-slider)
══════════════════════════════════════════════════════ */

section.uir-hero-slider {
  position: relative !important;
  display: block !important;
  overflow: hidden !important;
  width: 100% !important;
  min-height: 100vh !important;
}

section.uir-hero-slider .item {
  display: block !important;
  visibility: visible !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  /* Do NOT override background-position — let inline styles and mobile media queries work */
}

/* JS-ready: stack all items, hide non-active */
section.uir-hero-slider.uir-s-ready .item {
  position: absolute !important;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 1;
  transition: opacity 1.1s cubic-bezier(.4,0,.2,1);
}
section.uir-hero-slider.uir-s-ready .item.uir-s-active {
  opacity: 1 !important;
  pointer-events: auto;
  z-index: 3;
}

/* Dark gradient — heavy on left for text legibility (desktop) */
section.uir-hero-slider .item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(1, 18, 48, .82) 0%,
    rgba(1, 40, 90, .52) 48%,
    rgba(0, 0, 0, .08) 100%
  );
  z-index: 1;
  pointer-events: none;
}
/* Mobile: JS adds .uir-mob to the section — higher specificity beats the desktop gradient */
section.uir-hero-slider.uir-mob .item::before {
  background: rgba(1, 18, 48, .38);
}

/* Text layout — flex column, clear fixed nav */
section.uir-hero-slider .item .container {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex !important;
  align-items: center !important;
}
section.uir-hero-slider .item .row {
  width: 100%;
}
section.uir-hero-slider .item .col {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  padding-top: 80px !important;
  padding-bottom: 40px !important;
  min-height: 100vh; /* desktop only — overridden on mobile */
}

/* ── Title ── */
section.uir-hero-slider .item h1.titre-slider {
  font-family: var(--ui) !important;
  font-size: clamp(42px, 8vw, 96px) !important;
  font-weight: 900 !important;
  line-height: 1.0 !important;
  letter-spacing: -0.03em !important;
  margin: 0 0 4px !important;
  color: #fff !important;
  overflow: visible !important;
  text-shadow: 0 4px 40px rgba(0,0,0,.35) !important;
}

/* ════════════════════════════════════
   WORD ANIMATION — AE cinematic slam
   extreme squash → blur → overshoot → settle
════════════════════════════════════ */
.uir-w {
  display: inline-block;
  opacity: 0;
  transform: translateY(100px) scaleY(0.18);
  filter: blur(14px);
  transform-origin: bottom center;
  will-change: opacity, transform, filter;
}
.uir-w.uir-w-in {
  animation: uir-word-slam 1.0s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes uir-word-slam {
  0%   { opacity: 0;   transform: translateY(100px) scaleY(0.18); filter: blur(14px); }
  30%  { opacity: 1;   filter: blur(0); }
  52%  { transform: translateY(-18px) scaleY(1.22); }
  68%  { transform: translateY(5px)   scaleY(0.92); }
  82%  { transform: translateY(-3px)  scaleY(1.04); }
  100% { opacity: 1;   transform: translateY(0)     scaleY(1);    filter: blur(0); }
}

/* ── Yellow accent bar ── */
.uir-s-line {
  height: 6px;
  width: 0;
  background: var(--yellow);
  border-radius: 3px;
  margin: 18px 0 22px;
  transform-origin: left center;
  box-shadow: 0 2px 16px rgba(208,215,0,.5);
}
.uir-s-line.uir-line-in {
  animation: uir-line-slam .55s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes uir-line-slam {
  0%   { width: 0;      opacity: 0; }
  55%  { width: 100px;  opacity: 1; }
  75%  { width: 76px; }
  90%  { width: 86px; }
  100% { width: 82px;   opacity: 1; }
}

/* ── Subtitle / date ── */
.uir-s-sub {
  font-family: var(--ui) !important;
  font-size: clamp(16px, 2.2vw, 22px) !important;
  color: rgba(255,255,255,.95) !important;
  margin: 0 0 36px !important;
  line-height: 1.55 !important;
  max-width: 560px;
  opacity: 0;
  transform: translateY(32px);
  filter: blur(6px);
}
.uir-s-sub.uir-sub-in {
  animation: uir-sub-in .8s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes uir-sub-in {
  0%   { opacity: 0; transform: translateY(32px); filter: blur(6px); }
  40%  { filter: blur(0); }
  100% { opacity: .95; transform: translateY(0); filter: blur(0); }
}

/* ── CTA button ── */
section.uir-hero-slider .item .btn-slide,
section.uir-hero-slider .item a.btn-slide {
  display: inline-flex !important;
  align-items: center !important;
  align-self: flex-start !important;
  padding: 18px 44px !important;
  background: var(--yellow) !important;
  color: #0a1e3a !important;
  font-family: var(--ui) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  border-radius: 50px !important;
  border: none !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  width: auto !important;
  max-width: none !important;
  box-sizing: border-box !important;
  opacity: 0;
  transform: translateY(24px) scale(.78);
  box-shadow: 0 8px 32px rgba(208,215,0,.4) !important;
  transition: background .22s, color .22s, box-shadow .22s, transform .22s !important;
}
section.uir-hero-slider .item .btn-slide:hover {
  background: #fff !important;
  color: var(--navy) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.36) !important;
  transform: translateY(-2px) scale(1.02) !important;
}
.uir-btn-in {
  animation: uir-btn-pop .75s cubic-bezier(.34,1.56,.64,1) forwards;
}
@keyframes uir-btn-pop {
  0%   { opacity: 0; transform: translateY(24px) scale(.78); }
  55%  { opacity: 1; transform: translateY(-5px) scale(1.08); }
  75%  { transform: translateY(2px) scale(0.97); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* ── Progress bar ── */
.uir-s-prog {
  position: absolute;
  bottom: 0; left: 0;
  height: 4px;
  width: 0;
  background: linear-gradient(90deg, var(--yellow), rgba(208,215,0,.6));
  opacity: 1;
  pointer-events: none;
  z-index: 10;
}
.uir-s-prog.uir-prog-run {
  animation: uir-prog-fill linear forwards;
}
@keyframes uir-prog-fill {
  from { width: 0; }
  to   { width: 100%; }
}

/* ── Dots ── */
.uir-s-dots {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 10;
}
.uir-s-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,.3);
  cursor: pointer;
  padding: 0;
  transition: background .3s, width .35s cubic-bezier(.34,1.56,.64,1), border-radius .3s;
}
.uir-s-dot.on {
  background: var(--yellow);
  width: 32px;
  border-radius: 5px;
}

/* ── Prev / Next arrows ── */
.uir-s-arr {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 54px; height: 54px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  border: 1.5px solid rgba(255,255,255,.2);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: background .2s, border-color .2s, transform .25s cubic-bezier(.34,1.56,.64,1);
}
.uir-s-arr:hover {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.55);
  transform: translateY(-50%) scale(1.12);
}
.uir-s-arr svg {
  width: 22px; height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.uir-s-prev { left: 28px; }
.uir-s-next { right: 28px; }

/* ── Mobile ── */
@media (max-width: 768px) {
  /* Match live version height — tall enough for background image to show fully */
  section.uir-hero-slider {
    min-height: 0 !important;
    height: auto !important;
  }
  /* Items: relative so section grows to their height; show/hide via display */
  section.uir-hero-slider.uir-s-ready .item {
    position: relative !important;
    inset: auto !important;
    display: none !important;
    opacity: 1 !important;
    transition: none !important;
    min-height: 480px !important;
  }
  section.uir-hero-slider.uir-s-ready .item.uir-s-active {
    display: block !important;
    opacity: 1 !important;
  }
  /* Slides with mobile-specific <style> blocks handle their own position.
     For slides without override, use center top so subject (person) is visible. */
  section.uir-hero-slider .item {
    background-position: center center !important;
    min-height: 480px !important;
  }
  /* Items that define their own mobile background via inline <style> take priority */
  section.uir-hero-slider .item .col {
    min-height: 0 !important;
    padding-top: 96px !important;
    padding-bottom: 60px !important;
    justify-content: flex-start !important;
  }
  section.uir-hero-slider .item .container {
    height: auto !important;
    align-items: flex-start !important;
  }
  section.uir-hero-slider .item h1.titre-slider {
    font-size: 28px !important;
    line-height: 1.15 !important;
    letter-spacing: -0.01em !important;
  }
  /* Use px, not rem — site root is 62.5% so 1rem ≈ 10px */
  .uir-s-sub {
    font-size: 15px !important;
    line-height: 1.6 !important;
    max-width: 100% !important;
    margin-bottom: 28px !important;
  }
  section.uir-hero-slider .item .btn-slide,
  section.uir-hero-slider .item a.btn-slide {
    padding: 14px 30px !important;
    font-size: 13px !important;
  }
  /* Hide prev/next on mobile — swipe + dots handle navigation */
  .uir-s-arr { display: none !important; }
  .uir-s-dots { bottom: 18px; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .uir-w, .uir-s-line, .uir-s-sub, .uir-s-prog,
  .uir-w.uir-w-in, .uir-s-line.uir-line-in,
  .uir-s-sub.uir-sub-in, .uir-s-prog.uir-prog-run,
  .uir-btn-in {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}
