:root {
  --irts-formation-yellow: #ffd200;
  --irts-formation-blue: #0057a8;
  --irts-formation-orange: #f58220;
  --irts-formation-green: #4caf50;
  --irts-formation-magenta: #c2185b;
  --irts-formation-black: #111111;
  --irts-formation-gray: #f4f5f7;
}

.irts-formation-dates { display: grid; gap: 20px; }

/* The !important rules deliberately isolate this Elementor component from theme button/card styles.
   Appearance remains configurable through the custom properties set by its Style controls. */
.irts-formation-video-slider {
  --irts-video-slides: 1 !important;
  --irts-video-gap: 0;
  --irts-video-card-background: #fff;
  --irts-video-radius: 20px;
  --irts-video-height: 220px;
  --irts-video-nav-color: #1b2b67;
  --irts-video-nav-size: 24px;
  --irts-video-dot-color: #c7ceda;
  --irts-video-dot-active: #1b2b67;
  --irts-video-dot-size: 5px;
  --irts-video-dot-gap: 4px;
  --irts-video-dot-margin: 8px;
  --irts-video-dot-align: center;
  --irts-video-image-position: center center;
  --irts-video-play-size: 34px;
  --irts-video-play-background: #fff;
  --irts-video-play-color: #1b2b67;
  --irts-video-play-border-color: transparent;
  --irts-video-play-border-width: 0px;
  --irts-video-play-radius: 50%;
  position: relative;
  width: 100%;
}

.irts-formation-video-slider .irts-formation-video-viewport { overflow-x: auto !important; scrollbar-width: none; scroll-snap-type: x mandatory; }
.irts-formation-video-slider .irts-formation-video-viewport::-webkit-scrollbar { display: none; }
.irts-formation-video-slider .irts-formation-video-track { display: flex !important; gap: var(--irts-video-gap) !important; }
.irts-formation-video-slider .irts-formation-video-slide { flex: 0 0 100% !important; min-width: 0; scroll-snap-align: start; }
.irts-formation-video-slider .irts-formation-video-card {
  display: block !important;
  width: min(100%, calc(var(--irts-video-height) * 16 / 9)) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: var(--irts-video-radius) !important;
  background: var(--irts-video-card-background) !important;
  box-shadow: none !important;
  color: inherit !important;
  text-decoration: none !important;
  cursor: pointer;
}
.irts-formation-video-slider .irts-formation-video-media { position: relative; display: grid !important; height: auto !important; min-height: 0 !important; overflow: hidden; place-items: center; border-radius: var(--irts-video-radius) !important; background: #edf2f5 !important; aspect-ratio: 16 / 9 !important; }
.irts-formation-video-fallback > .irts-formation-video-media { width: min(100%, calc(var(--irts-video-height) * 16 / 9)); margin: 0 auto; }
.irts-formation-video-slider .irts-formation-video-media img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: var(--irts-video-image-position) !important; }
.irts-formation-video-slider .irts-formation-video-play { position: absolute; display: grid !important; width: var(--irts-video-play-size) !important; height: var(--irts-video-play-size) !important; place-items: center; border: var(--irts-video-play-border-width) solid var(--irts-video-play-border-color) !important; border-radius: var(--irts-video-play-radius) !important; background: var(--irts-video-play-background) !important; box-shadow: 0 2px 8px rgba(27,43,103,.18); }
.irts-formation-video-slider .irts-formation-video-play svg { display: block; width: 46%; height: 46%; fill: var(--irts-video-play-color); }
.irts-formation-video-slider .irts-formation-video-player { width: min(100%, calc(var(--irts-video-height) * 16 / 9)); margin: 0 auto; overflow: hidden; border-radius: var(--irts-video-radius); aspect-ratio: 16 / 9; }
.irts-formation-video-slider .irts-formation-video-player iframe { display: block; width: 100% !important; height: 100% !important; border: 0 !important; aspect-ratio: auto !important; }
.irts-formation-video-slider .irts-formation-video-nav { position: absolute; top: 50%; z-index: 1; display: grid !important; width: var(--irts-video-nav-size) !important; height: var(--irts-video-nav-size) !important; padding: 0 !important; place-items: center; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--irts-video-nav-color) !important; cursor: pointer; font-size: var(--irts-video-nav-size) !important; font-weight: 400 !important; line-height: 1 !important; transform: translateY(-50%); }
.irts-formation-video-slider .irts-formation-video-nav.is-prev { left: -2px; }
.irts-formation-video-slider .irts-formation-video-nav.is-next { right: -2px; }
.irts-formation-video-slider .irts-formation-video-pagination { display: flex !important; justify-content: var(--irts-video-dot-align) !important; gap: var(--irts-video-dot-gap) !important; margin-top: var(--irts-video-dot-margin) !important; }
.irts-formation-video-slider .irts-formation-video-dot { width: var(--irts-video-dot-size) !important; height: var(--irts-video-dot-size) !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 50% !important; background: var(--irts-video-dot-color) !important; box-shadow: none !important; cursor: pointer; }
.irts-formation-video-slider .irts-formation-video-dot.is-active { background: var(--irts-video-dot-active) !important; }
.irts-formation-video-slider .irts-formation-video-card:focus-visible,
.irts-formation-video-slider .irts-formation-video-nav:focus-visible,
.irts-formation-video-slider .irts-formation-video-dot:focus-visible {
  outline: 3px solid var(--irts-formation-yellow);
  outline-offset: 3px;
}

.irts-formation-date,
.irts-formation-contact {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

@media (max-width: 480px) { .irts-formation-video-slider { --irts-video-height: 180px; } }

.irts-formation-card,
.irts-formation-contact,
.irts-formation-pricing {
  border: 1px solid rgba(17, 17, 17, 0.12);
  border-radius: 8px;
  padding: 1rem;
  background: #fff;
}

.irts-formation-contacts {
  display: grid;
  gap: 1rem;
}

.irts-formation-key-info {
  display: grid;
  gap: 0.75rem;
  margin: 0;
}

.irts-formation-key-info div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid rgba(17, 17, 17, 0.1);
  padding-bottom: 0.5rem;
}

.irts-formation-key-info dt {
  font-weight: 700;
}

.irts-formation-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.75rem 1rem;
  border-radius: 999px;
  background: var(--irts-formation-blue);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.irts-formation-cta:focus-visible {
  outline: 3px solid var(--irts-formation-yellow);
  outline-offset: 3px;
}

.irts-formation-closed,
.irts-formation-price-free {
  display: inline-flex;
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  background: var(--irts-formation-gray);
  color: var(--irts-formation-black);
  font-weight: 700;
}

.irts-formation-document-list {
  margin: 0;
  padding-inline-start: 1.2em;
}

.irts-formation-duration-list {
  margin: 0;
  padding-inline-start: 1.2em;
}

@media (min-width: 720px) {
  .irts-formation-contacts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
