/* CM Timeline Widget */
.cm-timeline{width:100%;max-width:1200px;margin:0 auto;padding:32px 16px;color:#111;font-size:16px}
.cm-timeline *{box-sizing:border-box}
.cm-timeline__track{position:relative;display:grid;gap:34px;padding:10px 0}
.cm-timeline__track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:6px;transform:translateX(-50%);background:#000;border-radius:999px}
.cm-timeline__item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:start;min-height:110px}
.cm-timeline__item--left .cm-timeline__card{grid-column:1;text-align:left}
.cm-timeline__item--right .cm-timeline__card{grid-column:3;text-align:left}
.cm-timeline__dot{position:absolute;left:50%;top:22px;width:24px;height:24px;transform:translateX(-50%);background:#fff!important;border:0;border-radius:999px;z-index:3;box-shadow:0 0 0 2px #fff}
.cm-timeline__dot:after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);background:#000;border-radius:999px}
.cm-timeline__stem{display:none!important}
.cm-timeline__card{--cm-timeline-v-colour:#000;position:relative;background:#fff;padding:0!important;box-shadow:0 0 0 1px rgba(0,0,0,.08);z-index:2;overflow:visible}
.cm-timeline__card:before{content:"";position:absolute;top:22px;width:0;height:0;border-top:18px solid transparent;border-bottom:18px solid transparent;z-index:4;color:#000;color:var(--cm-timeline-v-colour,#000)}
.cm-timeline__item--right .cm-timeline__card:before{left:-24px;border-right:24px solid currentColor}
.cm-timeline__item--left .cm-timeline__card:before{right:-24px;border-left:24px solid currentColor}
.cm-timeline__card:after{display:none!important}
.cm-timeline__date{display:block;margin:0;padding:24px;background:#000;color:#fff;line-height:1.05;font-weight:700;text-align:left;width:100%}
.cm-timeline__date span,.cm-timeline__date strong{display:block;font-weight:600}
.cm-timeline__date span{font-size:20px}
.cm-timeline__date strong{font-size:26px}
.cm-timeline__body{background:#fff;padding:24px}
.cm-timeline__title{display:block;margin:0 0 18px;padding:0;background:transparent!important;color:#111;font-size:clamp(20px,2.6vw,34px);line-height:1.05;font-weight:600;text-transform:uppercase;letter-spacing:0}
.cm-timeline__description{font-size:16px;line-height:1.55;color:#222;font-weight:400}
.cm-timeline__description p{margin:0 0 12px}
.cm-timeline__description p:last-child{margin-bottom:0}
.cm-timeline__description strong,.cm-timeline__description b{font-weight:600}
.cm-timeline__button{display:inline-block;margin-top:18px;padding:12px 16px;background:#111;color:#fff!important;font-weight:600;text-decoration:none!important;line-height:1.1}
@media (max-width:767px){
.cm-timeline{padding:24px 10px}.cm-timeline__track{gap:28px;padding-left:34px}.cm-timeline__track:before{left:10px;width:5px;transform:none}.cm-timeline__item{display:grid;grid-template-columns:1fr;gap:8px;min-height:0}.cm-timeline__item--left .cm-timeline__card,.cm-timeline__item--right .cm-timeline__card{grid-column:1;text-align:left;justify-self:stretch}.cm-timeline__date{padding:18px;text-align:left}.cm-timeline__date span{font-size:18px}.cm-timeline__date strong{font-size:23px}.cm-timeline__dot{left:-36px;top:24px;width:22px;height:22px;transform:none}.cm-timeline__dot:after{width:13px;height:13px}.cm-timeline__card{margin-left:8px;padding:0!important}.cm-timeline__body{padding:18px}.cm-timeline__title{margin:0 0 16px;padding:0;background:transparent!important}.cm-timeline__card:before{top:20px}.cm-timeline__item--left .cm-timeline__card:before,.cm-timeline__item--right .cm-timeline__card:before{left:-20px;right:auto;border-left:0;border-right:20px solid currentColor;border-top:16px solid transparent;border-bottom:16px solid transparent}
}

/* v1.0.32: title background removed; only month/year date bar keeps its background */
.cm-timeline .cm-timeline__body .cm-timeline__title{background:transparent!important;padding:0!important}
.cm-timeline .cm-timeline__date{background:#000;color:#fff}


/* v1.0.33: black PRESENT and START boxes at top and bottom of timeline line */
.cm-timeline__track{padding-top:82px;padding-bottom:82px}
.cm-timeline__track:before{top:44px;bottom:44px}
.cm-timeline__label{position:absolute;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;background:#000;color:#fff;font-size:16px;line-height:1;font-weight:600;text-transform:uppercase;padding:12px 18px;min-width:96px;z-index:6;letter-spacing:0}
.cm-timeline__label--present{top:0}
.cm-timeline__label--start{bottom:0}
@media (max-width:767px){
.cm-timeline__track{padding-top:72px;padding-bottom:72px;padding-left:34px}
.cm-timeline__track:before{top:42px;bottom:42px}
.cm-timeline__label{left:10px;transform:translateX(-50%);font-size:15px;padding:11px 16px;min-width:86px}
}


/* v1.0.35: mobile present/start boxes spaced like reference, not cut off */
@media (max-width:767px){
  .cm-timeline{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  .cm-timeline__track{
    padding-left:126px!important;
    padding-top:92px!important;
    padding-bottom:92px!important;
  }

  .cm-timeline__track:before{
    left:80px!important;
    top:72px!important;
    bottom:72px!important;
    width:5px!important;
  }

  .cm-timeline__label{
    left:80px!important;
    transform:translateX(-50%)!important;
    min-width:118px!important;
    padding:14px 18px!important;
    font-size:16px!important;
    line-height:1!important;
    white-space:nowrap!important;
    text-align:center!important;
  }

  .cm-timeline__label--present{top:0!important;}
  .cm-timeline__label--start{bottom:0!important;}

  .cm-timeline__dot{
    left:-46px!important;
    top:24px!important;
  }

  .cm-timeline__card{
    margin-left:0!important;
  }
}


/* v1.0.36: PRESENT and START boxes now sit directly on the timeline line */
.cm-timeline__track:before{
  top:44px!important;
  bottom:44px!important;
}
.cm-timeline__label--present{
  top:0!important;
}
.cm-timeline__label--start{
  bottom:0!important;
}
@media (max-width:767px){
  .cm-timeline__track:before{
    top:44px!important;
    bottom:44px!important;
  }
  .cm-timeline__label--present{
    top:0!important;
  }
  .cm-timeline__label--start{
    bottom:0!important;
  }
}


/* v1.0.37: centre mobile dots exactly on the black timeline line while keeping the rest of v1.0.36 unchanged */
@media (max-width:767px){
  .cm-timeline__dot{
    left:-43.5px!important;
    transform:translateX(-50%)!important;
  }
}


/* v1.0.38: content-driven timeline height - line grows automatically as more items/content are added */
.cm-timeline,
.cm-timeline__track{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}
.cm-timeline__track{
  display:grid!important;
  align-items:stretch!important;
}
.cm-timeline__item{
  height:auto!important;
  max-height:none!important;
}
.cm-timeline__card,
.cm-timeline__body,
.cm-timeline__description{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
.cm-timeline__track:before{
  height:auto!important;
}
@media (max-width:767px){
  .cm-timeline,
  .cm-timeline__track,
  .cm-timeline__item,
  .cm-timeline__card,
  .cm-timeline__body,
  .cm-timeline__description{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
}


/* v1.0.39: force CM Timeline to render on desktop, tablet and mobile */
.elementor-widget-cm_timeline,
.elementor-widget-cm_timeline.elementor-hidden-desktop,
.elementor-widget-cm_timeline.elementor-hidden-tablet,
.elementor-widget-cm_timeline.elementor-hidden-mobile,
.elementor-widget-cm_timeline .elementor-widget-container,
.elementor-widget-cm_timeline .cm-timeline,
.elementor-widget-cm_timeline .cm-timeline__track,
.elementor-widget-cm_timeline .cm-timeline__item,
.elementor-widget-cm_timeline .cm-timeline__card{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.elementor-widget-cm_timeline .cm-timeline__track{
  display:grid!important;
}
@media (min-width:768px){
  .elementor-widget-cm_timeline,
  .elementor-widget-cm_timeline.elementor-hidden-desktop,
  .elementor-widget-cm_timeline.elementor-hidden-tablet,
  .elementor-widget-cm_timeline .elementor-widget-container,
  .elementor-widget-cm_timeline .cm-timeline{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .elementor-widget-cm_timeline .cm-timeline__track{
    display:grid!important;
    position:relative!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .elementor-widget-cm_timeline .cm-timeline__item{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .elementor-widget-cm_timeline .cm-timeline__card,
  .elementor-widget-cm_timeline .cm-timeline__body,
  .elementor-widget-cm_timeline .cm-timeline__description{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .elementor-widget-cm_timeline .cm-timeline__label,
  .elementor-widget-cm_timeline .cm-timeline__dot{
    visibility:visible!important;
    opacity:1!important;
  }
}
@media (max-width:767px){
  .elementor-widget-cm_timeline,
  .elementor-widget-cm_timeline.elementor-hidden-mobile,
  .elementor-widget-cm_timeline .elementor-widget-container,
  .elementor-widget-cm_timeline .cm-timeline{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
}


/* v1.0.40: hard desktop/tablet/mobile render force - supports Elementor underscore and hyphen widget classes */
.elementor-widget-cm_timeline,
.elementor-widget-cm-timeline,
.elementor-element.elementor-widget-cm_timeline,
.elementor-element.elementor-widget-cm-timeline,
.elementor-hidden-desktop.elementor-widget-cm_timeline,
.elementor-hidden-desktop.elementor-widget-cm-timeline,
.elementor-hidden-tablet.elementor-widget-cm_timeline,
.elementor-hidden-tablet.elementor-widget-cm-timeline,
.elementor-hidden-mobile.elementor-widget-cm_timeline,
.elementor-hidden-mobile.elementor-widget-cm-timeline,
.elementor-widget-cm_timeline .elementor-widget-container,
.elementor-widget-cm-timeline .elementor-widget-container,
.elementor-widget-cm_timeline .cm-timeline,
.elementor-widget-cm-timeline .cm-timeline,
.elementor-widget-cm_timeline .cm-timeline__track,
.elementor-widget-cm-timeline .cm-timeline__track,
.elementor-widget-cm_timeline .cm-timeline__item,
.elementor-widget-cm-timeline .cm-timeline__item,
.elementor-widget-cm_timeline .cm-timeline__card,
.elementor-widget-cm-timeline .cm-timeline__card{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  height:auto!important;
  min-height:1px!important;
  max-height:none!important;
  overflow:visible!important;
}
.elementor-widget-cm_timeline .cm-timeline__track,
.elementor-widget-cm-timeline .cm-timeline__track,
.elementor-widget-cm_timeline .cm-timeline__item,
.elementor-widget-cm-timeline .cm-timeline__item{
  display:grid!important;
}
@media (min-width:768px){
  .elementor-widget-cm_timeline,
  .elementor-widget-cm-timeline,
  .elementor-element.elementor-widget-cm_timeline,
  .elementor-element.elementor-widget-cm-timeline,
  .elementor-widget-cm_timeline .elementor-widget-container,
  .elementor-widget-cm-timeline .elementor-widget-container,
  .elementor-widget-cm_timeline .cm-timeline,
  .elementor-widget-cm-timeline .cm-timeline{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    min-height:1px!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .elementor-widget-cm_timeline .cm-timeline__track,
  .elementor-widget-cm-timeline .cm-timeline__track,
  .elementor-widget-cm_timeline .cm-timeline__item,
  .elementor-widget-cm-timeline .cm-timeline__item{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
}


/* v1.0.44: keep month and year on the same line in the date bar */
.cm-timeline__date{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:0!important;
  white-space:nowrap!important;
}
.cm-timeline__date-line{
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:baseline!important;
  gap:.35em!important;
  white-space:nowrap!important;
  margin:0!important;
  padding:0!important;
  line-height:1.05!important;
}
.cm-timeline__date .cm-timeline__month,
.cm-timeline__date .cm-timeline__year,
.cm-timeline__date span,
.cm-timeline__date strong{
  display:inline!important;
  margin:0!important;
  padding:0!important;
  line-height:1.05!important;
}
.cm-timeline__date .cm-timeline__month,
.cm-timeline__date span.cm-timeline__month{
  font-size:inherit!important;
  font-weight:600!important;
}
.cm-timeline__date .cm-timeline__year,
.cm-timeline__date strong.cm-timeline__year{
  font-size:inherit!important;
  font-weight:600!important;
}
@media (max-width:767px){
  .cm-timeline__date{
    display:flex!important;
    white-space:nowrap!important;
  }
  .cm-timeline__date-line{
    display:inline-flex!important;
    flex-direction:row!important;
    gap:.35em!important;
    white-space:nowrap!important;
  }
}


/* v1.0.45: centre the V connector vertically on the month/year date bar */
.cm-timeline__card:before{
  display:none!important;
}
.cm-timeline__date{
  position:relative!important;
  overflow:visible!important;
  --cm-timeline-v-colour:#000;
}
.cm-timeline__date:before{
  content:"";
  position:absolute;
  top:50%!important;
  width:0;
  height:0;
  transform:translateY(-50%)!important;
  border-top:18px solid transparent;
  border-bottom:18px solid transparent;
  z-index:8;
  color:#000;
  color:var(--cm-timeline-v-colour,#000);
}
.cm-timeline__item--right .cm-timeline__date:before{
  left:-24px!important;
  right:auto!important;
  border-right:24px solid currentColor;
  border-left:0!important;
}
.cm-timeline__item--left .cm-timeline__date:before{
  right:-24px!important;
  left:auto!important;
  border-left:24px solid currentColor;
  border-right:0!important;
}
@media (max-width:767px){
  .cm-timeline__date:before{
    top:50%!important;
    transform:translateY(-50%)!important;
    border-top:16px solid transparent;
    border-bottom:16px solid transparent;
  }
  .cm-timeline__item--left .cm-timeline__date:before,
  .cm-timeline__item--right .cm-timeline__date:before{
    left:-20px!important;
    right:auto!important;
    border-left:0!important;
    border-right:20px solid currentColor!important;
  }
}


/* v1.0.46: align timeline dots exactly with the centred V connector and vertical line */
.cm-timeline__dot{
  left:50%!important;
  top:25px!important;
  transform:translateX(-50%)!important;
  margin:0!important;
}
.cm-timeline__track:before{
  left:50%!important;
  transform:translateX(-50%)!important;
}
@media (max-width:767px){
  .cm-timeline__track:before{
    left:80px!important;
    transform:none!important;
  }
  .cm-timeline__dot{
    left:-43.5px!important;
    top:18px!important;
    transform:translateX(-50%)!important;
    margin:0!important;
  }
  .cm-timeline__date:before{
    top:50%!important;
    transform:translateY(-50%)!important;
  }
}


/* v1.0.47: timeline card button has no hover state - stays black/white always */
.cm-timeline .cm-timeline__card .cm-timeline__button,
.cm-timeline .cm-timeline__card .cm-timeline__button:link,
.cm-timeline .cm-timeline__card .cm-timeline__button:visited,
.cm-timeline .cm-timeline__card .cm-timeline__button:hover,
.cm-timeline .cm-timeline__card .cm-timeline__button:focus,
.cm-timeline .cm-timeline__card .cm-timeline__button:active,
.elementor-widget-cm_timeline .cm-timeline__card .cm-timeline__button,
.elementor-widget-cm_timeline .cm-timeline__card .cm-timeline__button:link,
.elementor-widget-cm_timeline .cm-timeline__card .cm-timeline__button:visited,
.elementor-widget-cm_timeline .cm-timeline__card .cm-timeline__button:hover,
.elementor-widget-cm_timeline .cm-timeline__card .cm-timeline__button:focus,
.elementor-widget-cm_timeline .cm-timeline__card .cm-timeline__button:active,
.elementor-widget-cm-timeline .cm-timeline__card .cm-timeline__button,
.elementor-widget-cm-timeline .cm-timeline__card .cm-timeline__button:link,
.elementor-widget-cm-timeline .cm-timeline__card .cm-timeline__button:visited,
.elementor-widget-cm-timeline .cm-timeline__card .cm-timeline__button:hover,
.elementor-widget-cm-timeline .cm-timeline__card .cm-timeline__button:focus,
.elementor-widget-cm-timeline .cm-timeline__card .cm-timeline__button:active{
  background:#000!important;
  color:#fff!important;
  border-color:#000!important;
  box-shadow:none!important;
  text-decoration:none!important;
  outline:0!important;
  filter:none!important;
  opacity:1!important;
  transition:none!important;
}
.cm-timeline .cm-timeline__card .cm-timeline__button *,
.elementor-widget-cm_timeline .cm-timeline__card .cm-timeline__button *,
.elementor-widget-cm-timeline .cm-timeline__card .cm-timeline__button *{
  color:#fff!important;
}
