.ekcal,.ekcal *{box-sizing:border-box}.ekcal{--navy:#062b42;--navy-2:#0a3550;--orange:#eb6200;--orange-2:#ff7a18;--ink:#0a2b43;--muted:#6f8290;--line:#dfe7ec;--line-soft:#edf2f5;--soft:#f7fafc;--soft-blue:#eef5f9;--white:#fff;width:100%;padding:34px 0 44px;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif}.ekcal-container{width:min(1380px,calc(100% - 64px));margin:0 auto}.ekcal-head{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:center;padding:0 0 20px;border-bottom:1px solid var(--line)}.ekcal-kicker{display:block;margin:0 0 8px;color:var(--orange);font-size:12px;line-height:1;font-weight:900;letter-spacing:.055em;text-transform:uppercase}.ekcal-title{margin:0;color:var(--navy);font-size:38px;line-height:1.05;font-weight:900;letter-spacing:-.025em;text-transform:uppercase}.ekcal-lead{max-width:740px;margin:11px 0 0;color:#5e7584;font-size:15px;line-height:1.52}.ekcal-head-note{display:flex;align-items:center;gap:17px;min-height:92px;padding:15px 18px;border:1px solid #d9e4ea;border-radius:15px;background:linear-gradient(135deg,#fbfdfe,#f7fafc);box-shadow:0 7px 22px rgba(6,43,66,.045)}.ekcal-head-note-icon{flex:0 0 54px;width:54px;height:54px;display:grid;place-items:center;border:1px solid #d8e4ea;border-radius:50%;background:#fff;color:var(--navy)}.ekcal-head-note-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.ekcal-head-note strong{display:block;margin-bottom:5px;color:var(--navy);font-size:14px;line-height:1.2;font-weight:900}.ekcal-head-note span{display:block;color:#607887;font-size:12px;line-height:1.45}.ekcal-main{display:grid;grid-template-columns:292px 474px minmax(0,1fr);gap:18px;align-items:start;padding-top:24px}.ekcal-filter-card,.ekcal-calendar-card{border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(6,43,66,.045)}.ekcal-filter-card{padding:17px 17px 15px}.ekcal-filter-title{margin:0 0 17px;color:var(--navy);font-size:13px;line-height:1.2;font-weight:900;text-transform:uppercase}.ekcal-field{margin-bottom:17px}.ekcal-label{display:flex;align-items:center;gap:7px;margin:0 0 7px;color:var(--navy);font-size:11px;line-height:1.15;font-weight:900;text-transform:uppercase}.ekcal-label svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.ekcal-select{width:100%;min-height:40px;padding:0 35px 0 11px;border:1px solid #d8e3e9;border-radius:8px;outline:none;background:linear-gradient(45deg,transparent 50%,var(--orange) 50%) calc(100% - 15px) 17px/5px 5px no-repeat,linear-gradient(135deg,var(--orange) 50%,transparent 50%) calc(100% - 11px) 17px/5px 5px no-repeat,#fff;color:#617887;font:inherit;font-size:12px;font-weight:700;appearance:none;cursor:pointer}.ekcal-select:focus{border-color:rgba(235,98,0,.55);box-shadow:0 0 0 3px rgba(235,98,0,.08)}.ekcal-reset{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:0;background:transparent;color:#6b7f8d;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.ekcal-reset:hover{color:var(--orange)}.ekcal-reset svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.ekcal-help{margin-top:10px;padding:18px;border-radius:14px;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.08),transparent 40%),linear-gradient(145deg,#0b3856,#062b42);color:#fff;box-shadow:0 12px 26px rgba(6,43,66,.13)}.ekcal-help-top{display:flex;align-items:center;gap:13px}.ekcal-help-icon{flex:0 0 55px;width:55px;height:55px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.07)}.ekcal-help-icon svg{width:25px;height:25px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ekcal-help strong{display:block;font-size:11.5px;line-height:1.2;font-weight:900;text-transform:uppercase}.ekcal-help p{margin:6px 0 0;color:rgba(255,255,255,.88);font-size:11.5px;line-height:1.45}.ekcal-help a{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:15px;padding:11px 13px;border-radius:8px;background:#fff;color:var(--navy);font-size:11.5px;font-weight:900;text-decoration:none}.ekcal-help a span{color:var(--orange);font-size:18px}.ekcal-calendar-card{padding:18px 18px 14px}.ekcal-calendar-head{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:8px;align-items:center;margin-bottom:17px}.ekcal-month{text-align:center;color:var(--navy);font-size:17px;line-height:1;font-weight:900;text-transform:uppercase}.ekcal-month-year{color:var(--orange)}.ekcal-month-btn{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid #dbe5ea;border-radius:50%;background:#fff;color:var(--navy);font-size:21px;line-height:1;cursor:pointer;box-shadow:0 3px 10px rgba(6,43,66,.05)}.ekcal-month-btn:hover{border-color:rgba(235,98,0,.42);color:var(--orange)}.ekcal-weekdays,.ekcal-days{display:grid;grid-template-columns:repeat(7,1fr)}.ekcal-weekdays{padding-bottom:10px;border-bottom:1px solid var(--line)}.ekcal-weekday{text-align:center;color:#7a8d9a;font-size:10px;font-weight:900;text-transform:uppercase}.ekcal-days{padding-top:7px}.ekcal-day{position:relative;min-height:61px;display:flex;align-items:center;justify-content:center;padding:3px}.ekcal-day-button{position:relative;width:39px;height:39px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--navy);font:inherit;font-size:12px;font-weight:800;cursor:default}.ekcal-day.is-other .ekcal-day-button{color:#b9c4cb}.ekcal-day.has-event .ekcal-day-button{cursor:pointer}.ekcal-day.has-cursus .ekcal-day-button{background:var(--navy);color:#fff;box-shadow:0 5px 13px rgba(6,43,66,.16)}.ekcal-day.has-carte:not(.has-cursus) .ekcal-day-button{color:var(--orange);font-weight:900}.ekcal-day.is-selected .ekcal-day-button{background:var(--orange)!important;color:#fff!important;box-shadow:0 6px 15px rgba(235,98,0,.23)}.ekcal-day-dot{position:absolute;left:50%;bottom:5px;width:5px;height:5px;border-radius:50%;background:var(--orange);transform:translateX(-50%)}.ekcal-day.has-cursus .ekcal-day-dot{background:var(--navy)}.ekcal-day.is-selected .ekcal-day-dot{background:var(--orange)}.ekcal-day-count{position:absolute;left:50%;bottom:1px;color:var(--navy);font-size:7px;line-height:1;font-weight:900;letter-spacing:1px;transform:translateX(-50%)}.ekcal-calendar-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:9px;padding-top:12px;border-top:1px solid var(--line)}.ekcal-legend{display:flex;flex-wrap:wrap;gap:9px 13px}.ekcal-legend-item{display:flex;align-items:center;gap:5px;color:#708493;font-size:8.5px;line-height:1.2;font-weight:700}.ekcal-legend-dot{width:6px;height:6px;border-radius:50%}.ekcal-legend-dot.orange{background:var(--orange)}.ekcal-legend-dot.navy{background:var(--navy)}.ekcal-legend-dot.grey{background:#cbd6dc}.ekcal-all-dates{flex:0 0 auto;display:flex;align-items:center;gap:15px;min-height:39px;padding:0 12px;border:1px solid #dce5e9;border-radius:8px;background:#fff;color:var(--navy);font:inherit;font-size:10.5px;font-weight:900;cursor:pointer}.ekcal-all-dates span{color:var(--orange);font-size:17px}.ekcal-session-column{min-width:0}.ekcal-session-head{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 4px 10px}.ekcal-session-title{display:flex;align-items:center;gap:8px;color:var(--navy);font-size:14px;font-weight:900;text-transform:uppercase}.ekcal-session-title svg{width:19px;height:19px;fill:none;stroke:var(--orange);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.ekcal-show-all{border:0;background:transparent;color:var(--orange);font:inherit;font-size:10.5px;line-height:1;font-weight:900;cursor:pointer}.ekcal-session-list{display:flex;flex-direction:column;gap:10px}.ekcal-session{position:relative;display:grid;grid-template-columns:82px minmax(180px,.85fr) minmax(190px,1.1fr) 38px;min-height:104px;overflow:hidden;border:1px solid #dce5ea;border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(6,43,66,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.ekcal-session:hover{transform:translateY(-1px);border-color:rgba(6,43,66,.20);box-shadow:0 9px 22px rgba(6,43,66,.08)}.ekcal-session-date{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 6px;background:linear-gradient(180deg,#f3f8fb,#fff);border-right:1px solid #e4ebef}.ekcal-session.is-carte .ekcal-session-date{background:linear-gradient(180deg,#fff6ef,#fff)}.ekcal-session-day{color:var(--navy);font-size:26px;line-height:.92;font-weight:900}.ekcal-session.is-carte .ekcal-session-day{color:var(--orange)}.ekcal-session-month{margin-top:4px;color:var(--navy);font-size:9px;font-weight:900;text-transform:uppercase}.ekcal-session-duration{margin-top:9px;color:#637b8a;font-size:9px;font-weight:700}.ekcal-session-main{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:12px 15px}.ekcal-city-badge{align-self:flex-start;max-width:100%;margin-bottom:7px;padding:4px 8px;overflow:hidden;border-radius:999px;background:var(--navy);color:#fff;font-size:8px;line-height:1;font-weight:900;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}.ekcal-session-name{margin:0;overflow:hidden;color:var(--navy);font-size:17px;line-height:1.1;font-weight:900;text-overflow:ellipsis}.ekcal-session-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.ekcal-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #dce7ef;border-radius:999px;background:#f5f8fb;color:var(--navy);font-size:8.5px;line-height:1;font-weight:900}.ekcal-chip::before{content:"✓";color:var(--orange);font-weight:900}.ekcal-session-more{display:flex;flex-direction:column;justify-content:center;min-width:0;margin:13px 0;padding:0 14px;border-left:1px solid #e1e8ec}.ekcal-session-more-label{margin-bottom:8px;color:var(--orange);font-size:8px;line-height:1.2;font-weight:900;text-transform:uppercase}.ekcal-session-more-line{overflow:hidden;margin:2px 0;color:#607786;font-size:10px;line-height:1.3;font-weight:700;white-space:nowrap;text-overflow:ellipsis}.ekcal-session-more-line strong{color:var(--navy);font-weight:900}.ekcal-session-go{align-self:center;justify-self:center;width:31px;height:31px;display:grid;place-items:center;border:1px solid #dbe5ea;border-radius:50%;color:var(--navy);font-size:18px;text-decoration:none;box-shadow:0 3px 10px rgba(6,43,66,.05)}.ekcal-session-go:hover{color:var(--orange);border-color:rgba(235,98,0,.45)}.ekcal-empty{padding:28px 20px;border:1px dashed #d6e1e7;border-radius:13px;background:#fbfcfd;color:#708592;text-align:center;font-size:12px;line-height:1.5}.ekcal-loading{display:flex;align-items:center;justify-content:center;min-height:280px;border:1px dashed #d9e3e8;border-radius:13px;color:#758895;font-size:12px;text-align:center}.ekcal-benefits{display:grid;grid-template-columns:repeat(4,1fr);margin-top:27px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}.ekcal-benefit{position:relative;display:flex;align-items:center;gap:14px;min-width:0;padding:18px 24px}.ekcal-benefit+.ekcal-benefit::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:1px;background:var(--line)}.ekcal-benefit-icon{flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(235,98,0,.18);border-radius:50%;background:#fff7f1;color:var(--orange)}.ekcal-benefit-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ekcal-benefit strong{display:block;margin-bottom:4px;color:var(--navy);font-size:12px;font-weight:900}.ekcal-benefit span{display:block;color:#647a89;font-size:10px;line-height:1.4}@media(max-width:1250px){.ekcal-main{grid-template-columns:270px 430px minmax(0,1fr)}.ekcal-session{grid-template-columns:72px minmax(160px,1fr) 36px}.ekcal-session-more{display:none}}@media(max-width:1100px){.ekcal-container{width:calc(100% - 40px)}.ekcal-head{grid-template-columns:minmax(0,1fr) 320px}.ekcal-main{grid-template-columns:270px minmax(0,1fr)}.ekcal-session-column{grid-column:1/-1}.ekcal-session{grid-template-columns:82px minmax(180px,.85fr) minmax(190px,1.1fr) 38px}.ekcal-session-more{display:flex}}@media(max-width:820px){.ekcal{padding-top:24px}.ekcal-head{grid-template-columns:1fr;gap:18px}.ekcal-title{font-size:31px}.ekcal-head-note{max-width:430px}.ekcal-main{grid-template-columns:1fr}.ekcal-filter-wrap,.ekcal-session-column{grid-column:auto}.ekcal-filter-card{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:end}.ekcal-filter-title{grid-column:1/-1;margin-bottom:2px}.ekcal-field{margin:0}.ekcal-reset{grid-column:1/-1}.ekcal-help{display:none}.ekcal-benefits{grid-template-columns:repeat(2,1fr)}.ekcal-benefit:nth-child(3)::before{display:none}.ekcal-session{grid-template-columns:78px minmax(0,1fr) 38px}.ekcal-session-more{display:none}}@media(max-width:640px){.ekcal-container{width:calc(100% - 24px)}.ekcal-title{font-size:27px}.ekcal-lead{font-size:13.5px}.ekcal-head-note{min-height:0}.ekcal-main{padding-top:18px}.ekcal-filter-card{grid-template-columns:1fr}.ekcal-filter-title,.ekcal-reset{grid-column:auto}.ekcal-calendar-card{padding:15px 10px 12px}.ekcal-day{min-height:50px}.ekcal-day-button{width:35px;height:35px}.ekcal-calendar-foot{align-items:flex-start;flex-direction:column}.ekcal-all-dates{width:100%;justify-content:space-between}.ekcal-session-head{align-items:flex-start}.ekcal-session{grid-template-columns:70px minmax(0,1fr) 34px;min-height:98px}.ekcal-session-main{padding:11px 9px}.ekcal-session-name{font-size:14px}.ekcal-session-date{padding:8px 4px}.ekcal-session-day{font-size:22px}.ekcal-session-duration{font-size:8px}.ekcal-benefits{grid-template-columns:1fr}.ekcal-benefit+.ekcal-benefit::before{left:18px;right:18px;top:0;bottom:auto;width:auto;height:1px}.ekcal-benefit:nth-child(3)::before{display:block}}

/* =========================================================
   V3.14.18 — VUE MENSUELLE / ANNUELLE + PÉRIODES
   ========================================================= */

.ekcal-viewbar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
  width:max-content;
  max-width:100%;
  margin:0 auto 14px;
  padding:3px;
  border:1px solid #dce6eb;
  border-radius:10px;
  background:#f5f8fa;
}

.ekcal-view-btn{
  min-height:31px;
  padding:0 12px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#718692;
  font:inherit;
  font-size:9.5px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}

.ekcal-view-btn:hover{
  color:var(--navy);
}

.ekcal-view-btn.is-active{
  background:#fff;
  color:var(--navy);
  box-shadow:0 3px 9px rgba(6,43,66,.08);
}

.ekcal-year-label{
  color:var(--navy);
}

.ekcal-legend-range{
  width:18px;
  height:6px;
  border-radius:999px;
  background:rgba(235,98,0,.26);
  box-shadow:inset 0 0 0 1px rgba(235,98,0,.20);
}

/* ---------------------------------------------------------
   Période de formation déployée dans la vue mensuelle
   --------------------------------------------------------- */
.ekcal-day.is-range{
  isolation:isolate;
}

.ekcal-day.is-range::before{
  content:"";
  position:absolute;
  z-index:0;
  left:-1px;
  right:-1px;
  top:50%;
  height:10px;
  border-radius:0;
  background:linear-gradient(90deg,rgba(235,98,0,.12),rgba(235,98,0,.28));
  transform:translateY(-50%) scaleX(0);
  transform-origin:left center;
  animation:ekcalRangeReveal .28s ease forwards;
}

.ekcal-day.is-range-start::before,
.ekcal-day.is-range-row-start::before{
  left:50%;
  border-radius:999px 0 0 999px;
}

.ekcal-day.is-range-end::before,
.ekcal-day.is-range-row-end::before{
  right:50%;
  border-radius:0 999px 999px 0;
}

.ekcal-day.is-range-start.is-range-end::before,
.ekcal-day.is-range-single::before{
  left:29%;
  right:29%;
  border-radius:999px;
}

.ekcal-day.is-range .ekcal-day-button,
.ekcal-day.is-range .ekcal-day-dot,
.ekcal-day.is-range .ekcal-day-count{
  z-index:2;
}

.ekcal-day.is-range:not(.has-event) .ekcal-day-button{
  color:#8b4a1f;
  font-weight:900;
}

.ekcal-day.is-range-start .ekcal-day-button,
.ekcal-day.is-range-end .ekcal-day-button{
  box-shadow:0 0 0 2px rgba(235,98,0,.22);
}

@keyframes ekcalRangeReveal{
  from{opacity:0;transform:translateY(-50%) scaleX(0)}
  to{opacity:1;transform:translateY(-50%) scaleX(1)}
}

/* ---------------------------------------------------------
   Vue annuelle
   --------------------------------------------------------- */
.ekcal-year-view{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.ekcal-year-view[hidden]{
  display:none!important;
}

.ekcal-month-view[hidden]{
  display:none!important;
}

.ekcal-year-month{
  min-width:0;
  padding:10px 8px 8px;
  border:1px solid #e2e9ed;
  border-radius:10px;
  background:#fbfdfe;
}

.ekcal-year-month-title{
  display:block;
  width:100%;
  margin:0 0 7px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--navy);
  font:inherit;
  font-size:9.5px;
  line-height:1.1;
  font-weight:900;
  text-align:left;
  text-transform:uppercase;
  cursor:pointer;
}

.ekcal-year-month-title:hover{
  color:var(--orange);
}

.ekcal-year-weekdays,
.ekcal-year-days{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}

.ekcal-year-weekdays{
  margin-bottom:3px;
}

.ekcal-year-weekdays span{
  color:#9aabb5;
  font-size:6.5px;
  line-height:1;
  font-weight:900;
  text-align:center;
}

.ekcal-year-day{
  position:relative;
  min-width:0;
  height:22px;
  display:grid;
  place-items:center;
  isolation:isolate;
}

.ekcal-year-day button{
  position:relative;
  z-index:2;
  width:19px;
  height:19px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#6f8290;
  font:inherit;
  font-size:6.8px;
  line-height:1;
  font-weight:800;
  cursor:default;
}

.ekcal-year-day.has-event button{
  cursor:pointer;
  font-weight:900;
}

.ekcal-year-day.has-cursus button{
  background:var(--navy);
  color:#fff;
}

.ekcal-year-day.has-carte:not(.has-cursus) button{
  background:#fff3e9;
  color:var(--orange);
  box-shadow:inset 0 0 0 1px rgba(235,98,0,.22);
}

.ekcal-year-day.is-selected button{
  background:var(--orange)!important;
  color:#fff!important;
  box-shadow:0 3px 8px rgba(235,98,0,.20)!important;
}

.ekcal-year-day.is-range::before{
  content:"";
  position:absolute;
  z-index:0;
  left:-1px;
  right:-1px;
  top:50%;
  height:5px;
  background:rgba(235,98,0,.22);
  transform:translateY(-50%);
  animation:ekcalRangeFade .25s ease both;
}

.ekcal-year-day.is-range-start::before,
.ekcal-year-day.is-range-row-start::before{
  left:50%;
  border-radius:999px 0 0 999px;
}

.ekcal-year-day.is-range-end::before,
.ekcal-year-day.is-range-row-end::before{
  right:50%;
  border-radius:0 999px 999px 0;
}

.ekcal-year-day.is-range-single::before{
  left:28%;
  right:28%;
  border-radius:999px;
}

@keyframes ekcalRangeFade{
  from{opacity:0}
  to{opacity:1}
}

/* La vue annuelle donne plus d'espace au calendrier central. */
@media(min-width:1101px){
  .ekcal.is-year-view .ekcal-main{
    grid-template-columns:250px minmax(0,1fr) 360px;
  }

  .ekcal.is-year-view .ekcal-session{
    grid-template-columns:72px minmax(0,1fr) 34px;
  }

  .ekcal.is-year-view .ekcal-session-more{
    display:none;
  }
}

/* ---------------------------------------------------------
   Fiche : date de fin + sélection de la période
   --------------------------------------------------------- */
.ekcal-session{
  cursor:pointer;
}

.ekcal-session.is-active-event{
  border-color:rgba(235,98,0,.48);
  box-shadow:0 8px 22px rgba(235,98,0,.10);
}

.ekcal-session-end{
  display:block;
  margin-top:4px;
  color:#8b99a3;
  font-size:7.5px;
  line-height:1.15;
  font-weight:800;
  text-align:center;
  white-space:nowrap;
}

.ekcal-session.is-active-event .ekcal-session-end{
  color:var(--orange);
}

/* ---------------------------------------------------------
   Tablette / mobile
   --------------------------------------------------------- */
@media(max-width:1100px){
  .ekcal-year-view{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(max-width:820px){
  .ekcal-year-view{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:640px){
  .ekcal-viewbar{
    width:100%;
    margin-bottom:12px;
  }

  .ekcal-view-btn{
    flex:1 1 50%;
    padding:0 7px;
    font-size:9px;
  }

  .ekcal-year-view{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .ekcal-year-month{
    padding:9px 6px 7px;
  }

  .ekcal-year-day{
    height:21px;
  }

  .ekcal-year-day button{
    width:18px;
    height:18px;
    font-size:6.5px;
  }

  .ekcal-session-end{
    font-size:7px;
  }
}


/* =========================================================
   V3.14.19 — PÉRIODE UNIFORME + CALENDRIER À PARTIR DU MOIS COURANT
   ========================================================= */

/* Le ruban mensuel a exactement la hauteur de la pastille (39px).
   Couleur volontairement discrète et uniforme, sans dégradé. */
.ekcal-day.is-range::before{
  top:50%;
  height:39px;
  background:rgba(6,43,66,.085);
  box-shadow:none;
}

.ekcal-day.is-range:not(.has-event) .ekcal-day-button{
  color:#38576a;
  font-weight:900;
}

/* Le dernier jour ferme le ruban avec une pastille de même teinte
   lorsqu'aucune autre session ne démarre ce jour-là. */
.ekcal-day.is-range-end:not(.has-event) .ekcal-day-button{
  background:#e7eef2;
  color:#294a5f;
}

/* Pas de contour orange supplémentaire : le rendu reste uniforme. */
.ekcal-day.is-range-start .ekcal-day-button,
.ekcal-day.is-range-end .ekcal-day-button{
  box-shadow:none;
}

/* La pastille de début sélectionnée reste au-dessus du déroulé. */
.ekcal-day.is-selected .ekcal-day-button{
  box-shadow:0 6px 15px rgba(235,98,0,.20)!important;
}

/* Les cases du mois précédent au début de la grille sont réellement vides. */
.ekcal-day.is-hidden-previous-month{
  visibility:hidden;
  pointer-events:none;
}

/* Navigation avant le mois / l'année courante désactivée. */
.ekcal-month-btn:disabled,
.ekcal-month-btn.is-disabled{
  opacity:.28;
  cursor:not-allowed;
  pointer-events:none;
  box-shadow:none;
}

/* Vue annuelle : chaque mois devient une vraie carte interactive. */
.ekcal-year-month{
  cursor:pointer;
  transition:
    transform .20s ease,
    box-shadow .20s ease,
    border-color .20s ease,
    background .20s ease;
}

.ekcal-year-month:hover{
  transform:translateY(-3px);
  border-color:rgba(6,43,66,.18);
  background:#fff;
  box-shadow:0 12px 28px rgba(6,43,66,.11);
}

.ekcal-year-month:hover .ekcal-year-month-title{
  color:var(--orange);
}

/* Ruban de période dans les mini-calendriers : même hauteur que
   les petites pastilles annuelles (19px), même couleur uniforme. */
.ekcal-year-day.is-range::before{
  height:19px;
  background:rgba(6,43,66,.085);
}

.ekcal-year-day.is-range-end:not(.has-event) button{
  background:#e7eef2;
  color:#294a5f;
}

@media(max-width:640px){
  .ekcal-day.is-range::before{
    height:35px;
  }

  .ekcal-year-day.is-range::before{
    height:18px;
  }
}

/* =========================================================
   V3.14.20 — CORRECTIF FORCÉ / RUBAN PLEINE HAUTEUR
   Nouveau fichier physique pour contourner les caches CSS.
   ========================================================= */

/* Le ruban occupe exactement la hauteur de la pastille mensuelle. */
.ekcal .ekcal-day.is-range::before{
  top:50%!important;
  height:39px!important;
  background:#edf2f5!important;
  box-shadow:none!important;
  opacity:1!important;
}

/* Début réel : le ruban démarre derrière le centre de la pastille orange. */
.ekcal .ekcal-day.is-range-start::before{
  left:50%!important;
  border-radius:999px 0 0 999px!important;
}

/* Continuation sur une nouvelle ligne : remplit toute la case. */
.ekcal .ekcal-day.is-range-row-start:not(.is-range-start)::before{
  left:0!important;
  border-radius:999px 0 0 999px!important;
}

/* Fin réelle : le ruban s'arrête au centre du dernier jour. */
.ekcal .ekcal-day.is-range-end::before{
  right:50%!important;
  border-radius:0 999px 999px 0!important;
}

/* Fin de ligne avec période qui continue : remplit toute la case. */
.ekcal .ekcal-day.is-range-row-end:not(.is-range-end)::before{
  right:0!important;
  border-radius:0 999px 999px 0!important;
}

/* Une formation d'un seul jour conserve uniquement sa pastille. */
.ekcal .ekcal-day.is-range-single::before{
  left:50%!important;
  right:50%!important;
  opacity:0!important;
}

/* Les jours intermédiaires sont intégrés au ruban, sans autre pastille. */
.ekcal .ekcal-day.is-range:not(.has-event) .ekcal-day-button,
.ekcal .ekcal-day.is-range-end:not(.has-event) .ekcal-day-button{
  background:transparent!important;
  color:#496170!important;
  box-shadow:none!important;
  font-weight:900!important;
}

/* La vraie date de début reste la seule pastille forte. */
.ekcal .ekcal-day.is-selected .ekcal-day-button{
  background:var(--orange)!important;
  color:#fff!important;
  box-shadow:0 6px 15px rgba(235,98,0,.20)!important;
}

/* Légende identique au nouveau ruban. */
.ekcal .ekcal-legend-range{
  height:8px!important;
  background:#edf2f5!important;
  box-shadow:inset 0 0 0 1px #dce5ea!important;
}

/* Les cases appartenant au mois précédent ne s'affichent plus. */
.ekcal .ekcal-day.is-hidden-previous-month{
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Bouton précédent réellement neutralisé au mois / à l'année minimum. */
.ekcal .ekcal-month-btn:disabled,
.ekcal .ekcal-month-btn.is-disabled{
  opacity:.22!important;
  pointer-events:none!important;
  cursor:not-allowed!important;
  box-shadow:none!important;
}

/* Carte du mois entière interactive en vue annuelle. */
.ekcal .ekcal-year-month{
  cursor:pointer!important;
  transition:transform .20s ease,box-shadow .20s ease,border-color .20s ease,background .20s ease!important;
}

.ekcal .ekcal-year-month:hover{
  transform:translateY(-4px)!important;
  border-color:rgba(6,43,66,.18)!important;
  background:#fff!important;
  box-shadow:0 14px 30px rgba(6,43,66,.13)!important;
}

.ekcal .ekcal-year-month:hover .ekcal-year-month-title{
  color:var(--orange)!important;
}

/* Même logique visuelle dans les mini-calendriers annuels. */
.ekcal .ekcal-year-day.is-range::before{
  height:19px!important;
  background:#edf2f5!important;
}

@media(max-width:640px){
  .ekcal .ekcal-day.is-range::before{height:35px!important;}
  .ekcal .ekcal-year-day.is-range::before{height:18px!important;}
}


/* =========================================================
   V3.14.21 — RUBAN PLUS LISIBLE + FIN APRÈS LE DERNIER JOUR
   ========================================================= */

/* Bleu-gris discret mais plus visible que la V3.14.20. */
.ekcal .ekcal-day.is-range::before{
  background:#dbe6eb!important;
  box-shadow:inset 0 0 0 1px rgba(6,43,66,.06)!important;
  opacity:1!important;
}

/*
 * La période se termine APRÈS le dernier jour :
 * le ruban traverse donc entièrement la case de fin au lieu
 * de s'arrêter au centre du chiffre / de la date.
 */
.ekcal .ekcal-day.is-range-end::before{
  right:0!important;
  border-radius:0 999px 999px 0!important;
}

/* Le numéro du dernier jour reste parfaitement lisible au-dessus du ruban. */
.ekcal .ekcal-day.is-range-end .ekcal-day-button{
  position:relative!important;
  z-index:2!important;
}

/* Même teinte dans la légende. */
.ekcal .ekcal-legend-range{
  background:#dbe6eb!important;
  box-shadow:inset 0 0 0 1px rgba(6,43,66,.08)!important;
}

/* Vue annuelle : même teinte pour conserver le langage visuel. */
.ekcal .ekcal-year-day.is-range::before{
  background:#dbe6eb!important;
  box-shadow:inset 0 0 0 1px rgba(6,43,66,.05)!important;
}

/* =========================================================
   V3.14.23 — PLANNING DES CURSUS / SUITE DES MODULES
   ========================================================= */

.ekcal .ekcal-session-badge-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:7px;
}

.ekcal .ekcal-session-badge-row .ekcal-city-badge{
  margin-bottom:0!important;
}

.ekcal .ekcal-module-order{
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:3px 7px;
  border:1px solid #d7e2e8;
  border-radius:999px;
  background:#f4f8fa;
  color:#617887;
  font-size:7.5px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  white-space:nowrap;
}

.ekcal .ekcal-cursus-plan{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:4px;
}

.ekcal .ekcal-cursus-plan .ekcal-session-more-label{
  margin-bottom:2px!important;
}

.ekcal .ekcal-cursus-step{
  display:grid;
  grid-template-columns:26px minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  min-width:0;
  padding:5px 6px;
  border:1px solid #e3eaee;
  border-radius:7px;
  background:#fafcfd;
}

/* Les modules liés mais non sélectionnés sont volontairement grisés. */
.ekcal .ekcal-cursus-step.is-related{
  background:#f5f7f8;
  border-color:#e5eaed;
  color:#8998a2;
}

.ekcal .ekcal-cursus-step.is-current{
  background:#eef5f8;
  border-color:#cbdce5;
  color:var(--navy);
}

.ekcal .ekcal-cursus-step-number{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#e7edf1;
  color:#728691;
  font-size:8px;
  line-height:1;
  font-weight:900;
}

.ekcal .ekcal-cursus-step.is-current .ekcal-cursus-step-number{
  background:var(--navy);
  color:#fff;
}

.ekcal .ekcal-cursus-step-content{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:1px;
}

.ekcal .ekcal-cursus-step-content strong{
  overflow:hidden;
  color:inherit;
  font-size:8.5px;
  line-height:1.15;
  font-weight:900;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.ekcal .ekcal-cursus-step-content small{
  overflow:hidden;
  color:#96a3ab;
  font-size:7px;
  line-height:1.15;
  font-weight:700;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.ekcal .ekcal-cursus-step.is-current .ekcal-cursus-step-content small{
  color:#617887;
}

.ekcal .ekcal-cursus-step-state{
  color:#94a1a9;
  font-size:6.5px;
  line-height:1;
  font-weight:900;
  letter-spacing:.025em;
  text-transform:uppercase;
  white-space:nowrap;
}

.ekcal .ekcal-cursus-step.is-current .ekcal-cursus-step-state{
  color:var(--orange);
}

/* Sur les écrans où l'ancienne version supprimait la 3e colonne,
   le planning reste visible pour les cursus. */
@media(max-width:1250px) and (min-width:821px){
  .ekcal .ekcal-session.has-cursus-plan{
    grid-template-columns:72px minmax(145px,.82fr) minmax(170px,1.18fr) 34px!important;
  }

  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-more{
    display:flex!important;
    padding-left:10px!important;
    padding-right:8px!important;
  }
}

/* Tablette / mobile : le parcours se place sous le titre de la formation
   afin de conserver toute l'information sans écraser la fiche. */
@media(max-width:820px){
  .ekcal .ekcal-session.has-cursus-plan{
    grid-template-columns:78px minmax(0,1fr) 38px!important;
  }

  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-more{
    display:flex!important;
    grid-column:2 / 3;
    margin:0 9px 10px!important;
    padding:9px 0 0!important;
    border-left:0!important;
    border-top:1px solid #e6ecef;
  }

  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-go{
    grid-column:3;
    grid-row:1;
  }
}

@media(max-width:640px){
  .ekcal .ekcal-session.has-cursus-plan{
    grid-template-columns:70px minmax(0,1fr) 34px!important;
  }

  .ekcal .ekcal-cursus-step{
    grid-template-columns:24px minmax(0,1fr) auto;
    gap:5px;
    padding:5px;
  }

  .ekcal .ekcal-cursus-step-state{
    font-size:6px;
  }
}


/* =========================================================
   V3.14.23 — PARCOURS CURSUS VISIBLE DANS LA COLONNE ÉTROITE
   ---------------------------------------------------------
   Entre 1101 et 1250 px, la colonne "Prochaines sessions"
   n'est pas assez large pour afficher le planning en 3e colonne.
   Le parcours passe donc sous le titre de la formation, sans
   être coupé. M2 "À suivre" / M1 "Prérequis" restent visibles.
   ========================================================= */
@media (min-width:1101px) and (max-width:1250px){
  .ekcal .ekcal-session.has-cursus-plan{
    grid-template-columns:72px minmax(0,1fr) 34px!important;
    grid-template-rows:auto auto!important;
    overflow:visible!important;
  }

  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-date{
    grid-column:1;
    grid-row:1 / 3;
  }

  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-main{
    grid-column:2;
    grid-row:1;
    padding:11px 10px 8px!important;
  }

  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-more{
    display:flex!important;
    grid-column:2;
    grid-row:2;
    min-width:0!important;
    margin:0 10px 10px!important;
    padding:8px 0 0!important;
    border-left:0!important;
    border-top:1px solid #e4ebef!important;
  }

  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-go{
    grid-column:3;
    grid-row:1 / 3;
    align-self:center;
  }

  .ekcal .ekcal-cursus-step{
    grid-template-columns:24px minmax(0,1fr) auto!important;
    gap:5px!important;
    padding:5px!important;
  }

  .ekcal .ekcal-cursus-step-content strong{
    font-size:8px!important;
  }

  .ekcal .ekcal-cursus-step-content small{
    font-size:6.5px!important;
  }

  .ekcal .ekcal-cursus-step-state{
    font-size:6px!important;
  }
}


/* =========================================================
   V3.14.24 — PARCOURS CURSUS TOUJOURS VISIBLE
   ---------------------------------------------------------
   Le parcours M1 -> M2 -> M3 ne dépend plus de la largeur
   globale du navigateur. Sur une fiche de cursus, il se place
   systématiquement sous le titre, ce qui fonctionne même dans
   une colonne droite étroite avec les DevTools ouverts.
   ========================================================= */
.ekcal .ekcal-session.has-cursus-plan{
  grid-template-columns:82px minmax(0,1fr) 36px!important;
  grid-template-rows:auto auto!important;
  min-height:0!important;
  overflow:visible!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-session-date{
  grid-column:1!important;
  grid-row:1 / 3!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-session-main{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  padding:12px 12px 8px!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-session-more{
  display:flex!important;
  grid-column:2!important;
  grid-row:2!important;
  min-width:0!important;
  margin:0 12px 11px!important;
  padding:9px 0 0!important;
  border-left:0!important;
  border-top:1px solid #e4ebef!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-session-go{
  display:grid!important;
  grid-column:3!important;
  grid-row:1 / 3!important;
  align-self:center!important;
  justify-self:center!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-cursus-plan{
  width:100%!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-cursus-step{
  grid-template-columns:25px minmax(0,1fr) auto!important;
  gap:6px!important;
  padding:6px!important;
}

/* Module non sélectionné : gris lisible, mais secondaire. */
.ekcal .ekcal-session.has-cursus-plan .ekcal-cursus-step.is-related{
  background:#f3f6f7!important;
  border-color:#dfe6ea!important;
  color:#7f909a!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-cursus-step.is-related .ekcal-cursus-step-number{
  background:#e3e9ed!important;
  color:#687d89!important;
}

.ekcal .ekcal-session.has-cursus-plan .ekcal-cursus-step-state{
  font-size:6.5px!important;
}

@media(max-width:640px){
  .ekcal .ekcal-session.has-cursus-plan{
    grid-template-columns:70px minmax(0,1fr) 34px!important;
  }
  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-main{
    padding:11px 9px 7px!important;
  }
  .ekcal .ekcal-session.has-cursus-plan .ekcal-session-more{
    margin:0 9px 9px!important;
    padding-top:8px!important;
  }
}


/* =========================================================
   V3.14.25 — CALENDRIER SANS LOGIQUE CURSUS
   Filtres : Ville + Thème uniquement.
   Les pastilles n'expriment plus un type de formation :
   bleu marine = une session, orange = plusieurs sessions.
   ========================================================= */
.ekcal .ekcal-day.has-single .ekcal-day-button{
  background:var(--navy)!important;
  color:#fff!important;
  box-shadow:0 5px 13px rgba(6,43,66,.16);
}
.ekcal .ekcal-day.has-multiple .ekcal-day-button{
  background:var(--orange)!important;
  color:#fff!important;
  box-shadow:0 5px 13px rgba(235,98,0,.18);
}
.ekcal .ekcal-day.has-single .ekcal-day-dot{background:var(--navy)!important;}
.ekcal .ekcal-day.has-multiple .ekcal-day-count{color:var(--orange)!important;}
.ekcal .ekcal-year-day.has-single button{background:var(--navy)!important;color:#fff!important;}
.ekcal .ekcal-year-day.has-multiple button{background:var(--orange)!important;color:#fff!important;}
.ekcal .ekcal-session-date{background:linear-gradient(180deg,#f3f8fb,#fff)!important;}
.ekcal .ekcal-session-day{color:var(--navy)!important;}

/* Relation spéciale : uniquement le module lié, jamais le module sélectionné. */
.ekcal .ekcal-related-module{
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:7px;
  padding:7px 8px;
  border:1px solid #dfe6ea;
  border-radius:8px;
  background:#f3f6f7;
  color:#7b8b95;
}
.ekcal .ekcal-related-module-label{
  min-width:28px;
  padding:4px 6px;
  border-radius:999px;
  background:#e3e9ed;
  color:#667b87;
  font-size:7px;
  line-height:1;
  font-weight:900;
  text-align:center;
  text-transform:uppercase;
  white-space:nowrap;
}
.ekcal .ekcal-related-module-content{min-width:0;display:flex;flex-direction:column;gap:2px;}
.ekcal .ekcal-related-module-content strong{color:#667984;font-size:8px;line-height:1.1;font-weight:900;}
.ekcal .ekcal-related-module-content small{overflow:hidden;color:#87959d;font-size:6.7px;line-height:1.15;font-weight:700;white-space:nowrap;text-overflow:ellipsis;}
.ekcal .ekcal-related-module-state{color:#86959e;font-size:6.5px;line-height:1;font-weight:900;text-transform:uppercase;white-space:nowrap;}

/* Le module lié reste visible dans la colonne droite étroite. */
.ekcal .ekcal-session.has-related-plan{
  grid-template-columns:82px minmax(0,1fr) 36px!important;
  grid-template-rows:auto auto!important;
  min-height:0!important;
  overflow:visible!important;
}
.ekcal .ekcal-session.has-related-plan .ekcal-session-date{grid-column:1!important;grid-row:1 / 3!important;}
.ekcal .ekcal-session.has-related-plan .ekcal-session-main{grid-column:2!important;grid-row:1!important;min-width:0!important;padding:12px 12px 8px!important;}
.ekcal .ekcal-session.has-related-plan .ekcal-session-more{
  display:flex!important;
  grid-column:2!important;
  grid-row:2!important;
  min-width:0!important;
  margin:0 12px 11px!important;
  padding:9px 0 0!important;
  border-left:0!important;
  border-top:1px solid #e4ebef!important;
}
.ekcal .ekcal-session.has-related-plan .ekcal-session-go{display:grid!important;grid-column:3!important;grid-row:1 / 3!important;align-self:center!important;justify-self:center!important;}

@media(max-width:820px){
  .ekcal .ekcal-filter-card{grid-template-columns:repeat(2,1fr)!important;}
}
@media(max-width:640px){
  .ekcal .ekcal-filter-card{grid-template-columns:1fr!important;}
  .ekcal .ekcal-session.has-related-plan{grid-template-columns:70px minmax(0,1fr) 34px!important;}
  .ekcal .ekcal-session.has-related-plan .ekcal-session-main{padding:11px 9px 7px!important;}
  .ekcal .ekcal-session.has-related-plan .ekcal-session-more{margin:0 9px 9px!important;padding-top:8px!important;}
}


/* =========================================================
   V3.14.27 — FICHES HOMOGÈNES ET RESPONSIVES
   + bloc relation M1/M2 / Acquisition/Perfectionnement lisible
   ========================================================= */

/* Titres de toutes les fiches : taille fluide et vraie gestion des retours. */
.ekcal .ekcal-session-name{
  margin:0!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:3!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  hyphens:auto!important;
  color:var(--navy)!important;
  font-size:clamp(13px,1.02vw,16px)!important;
  line-height:1.12!important;
  font-weight:900!important;
}

.ekcal .ekcal-city-badge{
  font-size:clamp(7px,.48vw,8px)!important;
  line-height:1!important;
}

.ekcal .ekcal-chip{
  max-width:100%!important;
  padding:4px 7px!important;
  white-space:normal!important;
  font-size:clamp(7.5px,.52vw,8.5px)!important;
  line-height:1.08!important;
}

/* Relation spéciale : uniquement l'autre module, en gris. */
.ekcal .ekcal-related-module{
  width:100%!important;
  min-width:0!important;
  display:block!important;
  padding:8px 9px!important;
  border:1px solid #dce5ea!important;
  border-radius:9px!important;
  background:#f3f6f7!important;
  color:#6f818b!important;
}

.ekcal .ekcal-related-module-head{
  width:100%!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:6px!important;
}

.ekcal .ekcal-related-module-label{
  min-width:0!important;
  max-width:64%!important;
  padding:4px 7px!important;
  overflow:hidden!important;
  border-radius:999px!important;
  background:#e2e9ed!important;
  color:#5f7480!important;
  font-size:clamp(7px,.48vw,8px)!important;
  line-height:1!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
}

.ekcal .ekcal-related-module-state{
  flex:0 0 auto!important;
  color:#7d8d96!important;
  font-size:clamp(6.5px,.45vw,7.5px)!important;
  line-height:1!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

.ekcal .ekcal-related-module-date{
  display:block!important;
  width:100%!important;
  margin-top:6px!important;
  color:#526a78!important;
  font-size:clamp(9px,.62vw,10.5px)!important;
  line-height:1.15!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
  white-space:normal!important;
}

.ekcal .ekcal-related-module-content{
  display:none!important;
}

/* La fiche avec relation garde une composition stable, même dans une colonne étroite. */
.ekcal .ekcal-session.has-related-plan{
  grid-template-columns:82px minmax(0,1fr) 36px!important;
  grid-template-rows:auto auto!important;
  min-height:0!important;
  overflow:visible!important;
}

.ekcal .ekcal-session.has-related-plan .ekcal-session-date{
  grid-column:1!important;
  grid-row:1 / 3!important;
}

.ekcal .ekcal-session.has-related-plan .ekcal-session-main{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  padding:11px 11px 8px!important;
}

.ekcal .ekcal-session.has-related-plan .ekcal-session-more{
  display:flex!important;
  grid-column:2!important;
  grid-row:2!important;
  min-width:0!important;
  margin:0 11px 10px!important;
  padding:8px 0 0!important;
  border-left:0!important;
  border-top:1px solid #e4ebef!important;
}

.ekcal .ekcal-session.has-related-plan .ekcal-session-go{
  display:grid!important;
  grid-column:3!important;
  grid-row:1 / 3!important;
  align-self:center!important;
  justify-self:center!important;
}

/* Sur les écrans où la colonne de droite devient plus étroite, compacter progressivement. */
@media(max-width:1250px) and (min-width:1101px){
  .ekcal .ekcal-session-name{
    font-size:13px!important;
    line-height:1.1!important;
  }
  .ekcal .ekcal-session-main{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .ekcal .ekcal-session.has-related-plan{
    grid-template-columns:72px minmax(0,1fr) 34px!important;
  }
  .ekcal .ekcal-related-module{
    padding:7px 8px!important;
  }
}

@media(max-width:820px){
  .ekcal .ekcal-filter-card{
    grid-template-columns:repeat(2,1fr)!important;
  }
  .ekcal .ekcal-session-name{
    font-size:14px!important;
  }
}

@media(max-width:640px){
  .ekcal .ekcal-filter-card{
    grid-template-columns:1fr!important;
  }
  .ekcal .ekcal-session.has-related-plan{
    grid-template-columns:70px minmax(0,1fr) 34px!important;
  }
  .ekcal .ekcal-session.has-related-plan .ekcal-session-main{
    padding:10px 8px 7px!important;
  }
  .ekcal .ekcal-session.has-related-plan .ekcal-session-more{
    margin:0 8px 8px!important;
    padding-top:7px!important;
  }
  .ekcal .ekcal-session-name{
    font-size:13.5px!important;
    line-height:1.12!important;
  }
  .ekcal .ekcal-related-module-label{
    max-width:60%!important;
  }
}


/* =========================================================
   V3.14.28 — TITRES + PRÉREQUIS SANS TRONCATURE
   ---------------------------------------------------------
   - aucun ellipsis / line-clamp sur le titre de la session
   - le bloc gris s'adapte à la largeur disponible
   - Acquisition / Perfectionnement et les dates restent entiers
   - typographie fluide selon la largeur de la colonne
   ========================================================= */

/* Titre principal : hauteur naturelle, jamais tronqué. */
.ekcal .ekcal-session-name{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  -webkit-box-orient:initial!important;
  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;

  font-size:clamp(12px, .92vw, 15.5px)!important;
  line-height:1.13!important;
}

/* Le bloc gris peut grandir verticalement : aucun contenu coupé. */
.ekcal .ekcal-related-module{
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;

  padding:8px 9px!important;

  overflow:visible!important;

  border:1px solid #d9e3e8!important;
  border-radius:9px!important;

  background:#f2f5f6!important;
}

/*
 * Sur une largeur étroite, label + statut peuvent revenir proprement
 * sur plusieurs lignes au lieu d'être tronqués.
 */
.ekcal .ekcal-related-module-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:5px 7px!important;
  align-items:center!important;

  width:100%!important;
  min-width:0!important;
}

.ekcal .ekcal-related-module-label{
  display:block!important;
  min-width:0!important;
  max-width:none!important;

  padding:4px 6px!important;

  overflow:visible!important;

  border-radius:999px!important;

  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-overflow:clip!important;

  font-size:clamp(6.4px, .45vw, 7.7px)!important;
  line-height:1.08!important;
  text-align:center!important;
}

.ekcal .ekcal-related-module-state{
  display:block!important;
  min-width:0!important;

  white-space:normal!important;
  overflow-wrap:anywhere!important;

  font-size:clamp(6.1px, .42vw, 7.2px)!important;
  line-height:1.08!important;
  text-align:right!important;
}

/* Date du module lié : jamais tronquée. */
.ekcal .ekcal-related-module-date{
  display:block!important;
  width:100%!important;
  max-width:100%!important;

  margin-top:6px!important;

  overflow:visible!important;

  color:#5d717d!important;

  font-size:clamp(8.2px, .58vw, 10px)!important;
  line-height:1.12!important;
  font-weight:900!important;

  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:keep-all!important;
  text-overflow:clip!important;
}

/* La carte entière garde une hauteur naturelle. */
.ekcal .ekcal-session.has-related-plan{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}

.ekcal .ekcal-session.has-related-plan .ekcal-session-main,
.ekcal .ekcal-session.has-related-plan .ekcal-session-more{
  min-width:0!important;
  overflow:visible!important;
}

/* Colonne desktop étroite : on réduit légèrement sans couper. */
@media (max-width:1250px) and (min-width:1101px){
  .ekcal .ekcal-session-name{
    font-size:12.2px!important;
    line-height:1.12!important;
  }

  .ekcal .ekcal-related-module-label{
    font-size:6.4px!important;
  }

  .ekcal .ekcal-related-module-state{
    font-size:6.1px!important;
  }

  .ekcal .ekcal-related-module-date{
    font-size:8.3px!important;
  }
}

/* Tablette / mobile : taille lisible avec retour à la ligne naturel. */
@media (max-width:820px){
  .ekcal .ekcal-session-name{
    font-size:13.5px!important;
  }

  .ekcal .ekcal-related-module-label{
    font-size:7.2px!important;
  }

  .ekcal .ekcal-related-module-state{
    font-size:6.8px!important;
  }

  .ekcal .ekcal-related-module-date{
    font-size:9.2px!important;
  }
}

@media (max-width:640px){
  .ekcal .ekcal-session-name{
    font-size:13px!important;
  }

  .ekcal .ekcal-related-module{
    padding:7px 8px!important;
  }

  .ekcal .ekcal-related-module-label{
    font-size:6.8px!important;
  }

  .ekcal .ekcal-related-module-state{
    font-size:6.5px!important;
  }

  .ekcal .ekcal-related-module-date{
    font-size:8.8px!important;
  }
}


/* =========================================================
   V3.14.29 — AUCUNE TRONCATURE : TITRE + BLOC MODULE LIÉ
   ========================================================= */
.ekcal .ekcal-session-name{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;
  font-size:clamp(11.5px,.88vw,15px)!important;
  line-height:1.12!important;
}

.ekcal .ekcal-related-module{
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding:8px 9px!important;
}

.ekcal .ekcal-related-module-head{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:5px 7px!important;
  width:100%!important;
  min-width:0!important;
}

.ekcal .ekcal-related-module-label,
.ekcal .ekcal-related-module-state{
  max-width:100%!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
}

.ekcal .ekcal-related-module-label{
  flex:1 1 auto!important;
  font-size:clamp(6.4px,.46vw,7.8px)!important;
  line-height:1.08!important;
}

.ekcal .ekcal-related-module-state{
  flex:0 1 auto!important;
  font-size:clamp(6.1px,.43vw,7.3px)!important;
  line-height:1.08!important;
  text-align:right!important;
}

.ekcal .ekcal-related-module-date{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin-top:6px!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  font-size:clamp(8.2px,.6vw,10px)!important;
  line-height:1.12!important;
}

@media(max-width:1250px) and (min-width:1101px){
  .ekcal .ekcal-session-name{font-size:11.8px!important;}
  .ekcal .ekcal-related-module-label{font-size:6.3px!important;}
  .ekcal .ekcal-related-module-state{font-size:6px!important;}
  .ekcal .ekcal-related-module-date{font-size:8.3px!important;}
}

@media(max-width:820px){
  .ekcal .ekcal-session-name{font-size:13.2px!important;}
  .ekcal .ekcal-related-module-label{font-size:7px!important;}
  .ekcal .ekcal-related-module-state{font-size:6.7px!important;}
  .ekcal .ekcal-related-module-date{font-size:9px!important;}
}


/* =========================================================
   V3.14.30 — RESPONSIVE GLOBAL CALENDRIER
   ---------------------------------------------------------
   Objectifs :
   - aucune largeur intrinsèque ne peut faire déborder la page
   - 3 colonnes seulement quand elles tiennent réellement
   - les fiches de droite restent compactes sur grand écran
   - à largeur intermédiaire : sessions sous le calendrier
   - tablette/mobile : une seule colonne
   - titres et bloc Acquisition/Perfectionnement jamais tronqués
   ========================================================= */

.ekcal{
  width:100%!important;
  max-width:100%!important;
  overflow-x:clip!important;
}

.ekcal-container{
  width:min(1380px,calc(100% - clamp(24px,4vw,64px)))!important;
  max-width:1380px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.ekcal-head,
.ekcal-main,
.ekcal-filter-wrap,
.ekcal-calendar-card,
.ekcal-session-column,
.ekcal-session-list,
.ekcal-session,
.ekcal-session-main,
.ekcal-session-more{
  min-width:0!important;
  max-width:100%!important;
}

/* -------------------------
   GRAND ÉCRAN / PC
   ------------------------- */

.ekcal-main{
  grid-template-columns:
    minmax(220px,260px)
    minmax(410px,1fr)
    minmax(300px,390px)!important;
  gap:clamp(14px,1.25vw,20px)!important;
}

.ekcal-session-column{
  width:100%!important;
  max-width:390px!important;
  justify-self:end!important;
}

.ekcal-session-list{
  width:100%!important;
}

/*
 * Une seule structure interne pour TOUTES les fiches :
 * date | contenu | flèche
 * le bloc secondaire est toujours placé sous le contenu.
 */
.ekcal .ekcal-session,
.ekcal .ekcal-session.has-related-plan{
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;

  display:grid!important;
  grid-template-columns:
    clamp(68px,5.2vw,82px)
    minmax(0,1fr)
    34px!important;
  grid-template-rows:auto auto!important;

  overflow:hidden!important;
}

.ekcal .ekcal-session-date,
.ekcal .ekcal-session.has-related-plan .ekcal-session-date{
  grid-column:1!important;
  grid-row:1 / 3!important;

  width:100%!important;
  min-width:0!important;

  padding:10px 5px!important;
}

.ekcal .ekcal-session-main,
.ekcal .ekcal-session.has-related-plan .ekcal-session-main{
  grid-column:2!important;
  grid-row:1!important;

  width:100%!important;
  min-width:0!important;

  padding:11px 10px 8px!important;
}

.ekcal .ekcal-session-more,
.ekcal .ekcal-session.has-related-plan .ekcal-session-more{
  display:flex!important;
  grid-column:2!important;
  grid-row:2!important;

  width:auto!important;
  min-width:0!important;
  max-width:100%!important;

  margin:0 10px 10px!important;
  padding:8px 0 0!important;

  border-left:0!important;
  border-top:1px solid #e4ebef!important;
}

.ekcal .ekcal-session-go,
.ekcal .ekcal-session.has-related-plan .ekcal-session-go{
  display:grid!important;
  grid-column:3!important;
  grid-row:1 / 3!important;

  align-self:center!important;
  justify-self:center!important;

  width:30px!important;
  height:30px!important;
}

/* -------------------------
   TYPOGRAPHIE FICHE
   ------------------------- */

.ekcal .ekcal-session-day{
  font-size:clamp(22px,1.7vw,27px)!important;
  line-height:.95!important;
}

.ekcal .ekcal-session-month{
  font-size:8.5px!important;
}

.ekcal .ekcal-session-duration{
  margin-top:7px!important;
  font-size:8.5px!important;
}

.ekcal .ekcal-session-end{
  margin-top:3px!important;
  font-size:7.5px!important;
  line-height:1.15!important;
  text-align:center!important;
}

.ekcal .ekcal-city-badge{
  max-width:100%!important;
  padding:4px 7px!important;

  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;

  font-size:7.5px!important;
}

.ekcal .ekcal-session-name{
  display:block!important;

  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  max-height:none!important;

  margin:0!important;

  overflow:visible!important;
  text-overflow:clip!important;

  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;

  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;

  font-size:clamp(12.5px,.92vw,15.5px)!important;
  line-height:1.12!important;
}

.ekcal .ekcal-session-meta{
  gap:4px!important;
  margin-top:7px!important;
}

.ekcal .ekcal-chip{
  max-width:100%!important;
  padding:4px 6px!important;

  white-space:normal!important;
  overflow-wrap:break-word!important;

  font-size:7.8px!important;
  line-height:1.05!important;
}

/* -------------------------
   BLOC GRIS MODULE LIÉ
   ------------------------- */

.ekcal .ekcal-related-module{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;

  height:auto!important;
  min-height:0!important;
  max-height:none!important;

  padding:7px 8px!important;

  overflow:hidden!important;

  border:1px solid #d9e3e8!important;
  border-radius:9px!important;
  background:#f2f5f6!important;
}

.ekcal .ekcal-related-module-head{
  display:block!important;

  width:100%!important;
  min-width:0!important;
}

.ekcal .ekcal-related-module-label{
  display:block!important;

  width:100%!important;
  max-width:100%!important;

  padding:4px 5px!important;

  overflow:visible!important;
  text-overflow:clip!important;

  border-radius:999px!important;

  white-space:nowrap!important;
  word-break:normal!important;

  font-size:clamp(6.8px,.48vw,8px)!important;
  line-height:1!important;
  text-align:center!important;
  letter-spacing:0!important;
}

.ekcal .ekcal-related-module-state{
  display:block!important;

  width:100%!important;
  max-width:100%!important;

  margin-top:6px!important;

  overflow:visible!important;
  text-overflow:clip!important;

  white-space:normal!important;
  word-break:normal!important;

  font-size:clamp(6.8px,.46vw,7.8px)!important;
  line-height:1.05!important;
  text-align:left!important;
}

.ekcal .ekcal-related-module-date{
  display:block!important;

  width:100%!important;
  max-width:100%!important;

  margin-top:5px!important;

  overflow:visible!important;
  text-overflow:clip!important;

  white-space:nowrap!important;
  word-break:normal!important;

  font-size:clamp(8.5px,.62vw,10px)!important;
  line-height:1.08!important;
  text-align:left!important;
}

/* -------------------------
   CALENDRIER / EN-TÊTE
   ------------------------- */

.ekcal-title{
  font-size:clamp(28px,2.35vw,38px)!important;
}

.ekcal-lead{
  font-size:clamp(13px,.95vw,15px)!important;
}

.ekcal-month{
  font-size:clamp(14px,1.1vw,17px)!important;
}

.ekcal-calendar-card{
  width:100%!important;
}

.ekcal-days,
.ekcal-weekdays{
  width:100%!important;
}

.ekcal-day{
  min-width:0!important;
}

/* -------------------------
   VUE ANNUELLE
   ------------------------- */

.ekcal-year-view{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

.ekcal-year-month{
  min-width:0!important;
  max-width:100%!important;
}

/* =========================================================
   PC / PETIT ÉCRAN : 2 COLONNES
   ========================================================= */

@media(max-width:1180px){

  .ekcal-main{
    grid-template-columns:
      minmax(220px,260px)
      minmax(0,1fr)!important;
  }

  .ekcal-session-column{
    grid-column:1 / -1!important;

    width:100%!important;
    max-width:none!important;
    justify-self:stretch!important;

    margin-top:4px!important;
  }

  .ekcal-session-list{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }

  .ekcal .ekcal-session,
  .ekcal .ekcal-session.has-related-plan{
    grid-template-columns:76px minmax(0,1fr) 34px!important;
  }

  .ekcal .ekcal-session-name{
    font-size:13.5px!important;
  }

  .ekcal-year-view{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* =========================================================
   TABLETTE : UNE COLONNE
   ========================================================= */

@media(max-width:840px){

  .ekcal-container{
    width:calc(100% - 32px)!important;
  }

  .ekcal-head{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }

  .ekcal-head-note{
    width:100%!important;
    max-width:none!important;
  }

  .ekcal-main{
    grid-template-columns:1fr!important;
  }

  .ekcal-filter-wrap,
  .ekcal-calendar-card,
  .ekcal-session-column{
    grid-column:auto!important;
    width:100%!important;
    max-width:none!important;
  }

  .ekcal-filter-card{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .ekcal-filter-title,
  .ekcal-reset{
    grid-column:1 / -1!important;
  }

  .ekcal-session-list{
    grid-template-columns:1fr!important;
  }

  .ekcal .ekcal-session,
  .ekcal .ekcal-session.has-related-plan{
    grid-template-columns:74px minmax(0,1fr) 34px!important;
  }

  .ekcal .ekcal-session-name{
    font-size:14px!important;
  }

  .ekcal .ekcal-related-module-label{
    font-size:7.8px!important;
  }

  .ekcal .ekcal-related-module-state{
    font-size:7.4px!important;
  }

  .ekcal .ekcal-related-module-date{
    font-size:9.5px!important;
  }

  .ekcal-year-view{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:640px){

  .ekcal{
    padding-top:22px!important;
  }

  .ekcal-container{
    width:calc(100% - 24px)!important;
  }

  .ekcal-head{
    gap:14px!important;
  }

  .ekcal-title{
    font-size:26px!important;
    line-height:1.06!important;
  }

  .ekcal-lead{
    font-size:13px!important;
  }

  .ekcal-filter-card{
    grid-template-columns:1fr!important;
  }

  .ekcal-filter-title,
  .ekcal-reset{
    grid-column:auto!important;
  }

  .ekcal-calendar-card{
    padding:14px 9px 11px!important;
  }

  .ekcal-viewbar{
    max-width:100%!important;
  }

  .ekcal-view-btn{
    padding-left:10px!important;
    padding-right:10px!important;
    font-size:8.5px!important;
  }

  .ekcal-calendar-head{
    grid-template-columns:34px minmax(0,1fr) 34px!important;
  }

  .ekcal-month-btn{
    width:34px!important;
    height:34px!important;
  }

  .ekcal-month{
    font-size:14px!important;
  }

  .ekcal-day{
    min-height:48px!important;
  }

  .ekcal-day-button{
    width:34px!important;
    height:34px!important;
    font-size:11px!important;
  }

  .ekcal-session-head{
    gap:8px!important;
  }

  .ekcal-session-title{
    font-size:12px!important;
  }

  .ekcal-show-all{
    font-size:9px!important;
  }

  .ekcal .ekcal-session,
  .ekcal .ekcal-session.has-related-plan{
    grid-template-columns:66px minmax(0,1fr) 32px!important;
  }

  .ekcal .ekcal-session-date,
  .ekcal .ekcal-session.has-related-plan .ekcal-session-date{
    padding:8px 4px!important;
  }

  .ekcal .ekcal-session-day{
    font-size:21px!important;
  }

  .ekcal .ekcal-session-main,
  .ekcal .ekcal-session.has-related-plan .ekcal-session-main{
    padding:9px 7px 7px!important;
  }

  .ekcal .ekcal-session-name{
    font-size:12.5px!important;
    line-height:1.12!important;
  }

  .ekcal .ekcal-chip{
    font-size:7px!important;
  }

  .ekcal .ekcal-session-more,
  .ekcal .ekcal-session.has-related-plan .ekcal-session-more{
    margin:0 7px 8px!important;
    padding-top:7px!important;
  }

  .ekcal .ekcal-related-module{
    padding:6px 7px!important;
  }

  .ekcal .ekcal-related-module-label{
    font-size:6.8px!important;
  }

  .ekcal .ekcal-related-module-state{
    font-size:6.7px!important;
  }

  .ekcal .ekcal-related-module-date{
    font-size:8.5px!important;
  }

  .ekcal-year-view{
    grid-template-columns:1fr!important;
  }

  .ekcal-benefits{
    grid-template-columns:1fr!important;
  }
}

/* =========================================================
   TRÈS PETIT MOBILE
   ========================================================= */

@media(max-width:390px){

  .ekcal-container{
    width:calc(100% - 18px)!important;
  }

  .ekcal-title{
    font-size:23px!important;
  }

  .ekcal .ekcal-session,
  .ekcal .ekcal-session.has-related-plan{
    grid-template-columns:60px minmax(0,1fr) 29px!important;
  }

  .ekcal .ekcal-session-go,
  .ekcal .ekcal-session.has-related-plan .ekcal-session-go{
    width:27px!important;
    height:27px!important;
    font-size:16px!important;
  }

  .ekcal .ekcal-session-name{
    font-size:11.8px!important;
  }

  .ekcal .ekcal-related-module-label{
    white-space:normal!important;
    font-size:6.4px!important;
  }

  .ekcal .ekcal-related-module-date{
    white-space:normal!important;
    font-size:8px!important;
  }
}


/* =========================================================
   V3.14.31 — VUE ANNUELLE MOBILE : 2 MOIS PAR LIGNE
   ========================================================= */
@media(max-width:640px){
  .ekcal .ekcal-year-view{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }

  .ekcal .ekcal-year-month{
    min-width:0!important;
    padding:9px 7px!important;
  }

  .ekcal .ekcal-year-month-title{
    font-size:10px!important;
    line-height:1.1!important;
  }

  .ekcal .ekcal-year-weekdays{
    font-size:6.2px!important;
  }

  .ekcal .ekcal-year-day{
    min-width:0!important;
    font-size:7.2px!important;
  }
}

@media(max-width:390px){
  .ekcal .ekcal-year-view{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .ekcal .ekcal-year-month{
    padding:8px 5px!important;
  }

  .ekcal .ekcal-year-month-title{
    font-size:9px!important;
  }

  .ekcal .ekcal-year-weekdays{
    font-size:5.7px!important;
  }

  .ekcal .ekcal-year-day{
    font-size:6.7px!important;
  }
}


/* =========================================================
   V3.14.32 — PICTOGRAMMES PARFAITEMENT CENTRÉS DANS LES PASTILLES
   ========================================================= */

/* Pastilles du bandeau inférieur */
.ekcal .ekcal-benefit-icon,
/* Pastille calendrier du bloc d'information en haut */
.ekcal .ekcal-head-note-icon,
/* Pastille calendrier du bloc "Besoin d'aide" */
.ekcal .ekcal-help-icon{
  position:relative!important;
  display:block!important;
  padding:0!important;
  overflow:hidden!important;
}

/*
 * On force le centre géométrique du SVG.
 * Cela neutralise d'éventuelles règles globales Elementor/thème
 * appliquées aux SVG et garantit le même centrage sur PC,
 * tablette et téléphone.
 */
.ekcal .ekcal-benefit-icon > svg,
.ekcal .ekcal-head-note-icon > svg,
.ekcal .ekcal-help-icon > svg{
  position:absolute!important;
  top:50%!important;
  left:50%!important;

  margin:0!important;
  padding:0!important;

  transform:translate(-50%,-50%)!important;
  transform-origin:center center!important;

  display:block!important;
  flex:none!important;

  max-width:none!important;
  max-height:none!important;
}

/* Dimensions conservées */
.ekcal .ekcal-benefit-icon > svg{
  width:23px!important;
  height:23px!important;
}

.ekcal .ekcal-head-note-icon > svg{
  width:24px!important;
  height:24px!important;
}

.ekcal .ekcal-help-icon > svg{
  width:25px!important;
  height:25px!important;
}


/* =========================================================
   V3.14.33 — LISTE DES AUTRES DATES DE LA FORMATION
   ========================================================= */
.ekcal .ekcal-session.is-active-event{
  border-color:rgba(235,98,0,.55)!important;
  box-shadow:0 8px 22px rgba(235,98,0,.08)!important;
}


/* =========================================================
   V3.14.35 — DATE DU JOUR DANS LE PIED DU CALENDRIER
   ========================================================= */
.ekcal .ekcal-today-date{
  cursor:default!important;
  pointer-events:none!important;
  justify-content:center!important;
  color:var(--navy)!important;
  font-weight:900!important;
  text-transform:none!important;
  white-space:nowrap!important;
}

@media(max-width:640px){
  .ekcal .ekcal-today-date{
    width:100%!important;
    min-height:39px!important;
    font-size:10.5px!important;
  }
}
