/* COMMO Timeline — scoped styles for Elementor / WordPress */
.commo-timeline-wrap{
  --commo-ink:#070819;
  --commo-navy:#0a087d;
  --commo-cyan:#12a6d9;
  --commo-paper:#eef4f8;
  --commo-muted:#646a7c;
  --commo-step:380px;
  --commo-top:36px;
  --commo-node-offset:150px;
  position:relative;
  width:100%;
  max-width:1280px;
  margin-inline:auto;
  isolation:isolate;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}
.commo-timeline-wrap *,
.commo-timeline-wrap *::before,
.commo-timeline-wrap *::after{box-sizing:border-box}

.commo-timeline__svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  z-index:0;
  pointer-events:none;
}
.commo-timeline__path-base{
  fill:none;
  stroke:rgba(10,8,125,.13);
  stroke-width:3;
  stroke-dasharray:2 9;
  stroke-linecap:round;
}
.commo-timeline__path-active{
  fill:none;
  stroke-width:4;
  stroke-linecap:round;
  filter:drop-shadow(0 0 8px rgba(18,166,217,.34));
}

.commo-timeline__event{
  position:absolute;
  top:calc(var(--commo-top) + (var(--i) * var(--commo-step)));
  left:var(--x);
  width:clamp(270px,29%,360px);
  margin:0;
  padding:12px;
  transform:translateX(-50%);
  background:#fff;
  border:1px solid rgba(9,12,55,.06);
  border-radius:24px;
  box-shadow:0 26px 60px rgba(15,25,55,.12);
  z-index:3;
  overflow:hidden;
  transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease;
}
.commo-timeline__event:hover{
  transform:translateX(-50%) translateY(-7px);
  box-shadow:0 34px 74px rgba(15,25,55,.18);
  border-color:rgba(18,166,217,.18);
}
.commo-timeline__media{
  height:184px;
  border-radius:17px;
  overflow:hidden;
  background:linear-gradient(135deg,var(--commo-navy),var(--commo-ink));
  position:relative;
}
.commo-timeline__media img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  transition:transform .55s ease;
}
.commo-timeline__event:hover .commo-timeline__media img{transform:scale(1.05)}
.commo-timeline__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(6,8,25,.26));
  pointer-events:none;
}
.commo-timeline__body{padding:18px 14px 16px}
.commo-timeline__event time{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--commo-navy);
  font-size:11px;
  font-weight:900;
  letter-spacing:.15em;
  line-height:1.2;
  text-transform:uppercase;
}
.commo-timeline__event time::before{
  content:"";
  width:20px;
  height:2px;
  background:var(--commo-cyan);
  flex:0 0 20px;
}
.commo-timeline__event h3{
  margin:10px 0;
  color:#16182a;
  font-family:inherit;
  font-size:24px;
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.025em;
}
.commo-timeline__event p{
  margin:0;
  color:var(--commo-muted);
  font-size:14px;
  line-height:1.58;
}

.commo-timeline__node{
  position:absolute;
  top:calc(var(--commo-top) + (var(--i) * var(--commo-step)) + var(--commo-node-offset));
  left:var(--x);
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  border:5px solid var(--commo-cyan);
  box-shadow:0 0 0 7px rgba(18,166,217,.14),0 8px 20px rgba(7,8,25,.18);
  z-index:4;
  transform:translate(-50%,-50%);
  pointer-events:none;
}

.commo-timeline__note{
  position:absolute;
  left:50%;
  bottom:28px;
  max-width:580px;
  margin:0;
  transform:translateX(-50%);
  color:var(--commo-muted);
  font-size:13px;
  line-height:1.6;
  text-align:center;
}

.commo-reveal{
  opacity:0;
  transform:translateX(-50%) translateY(28px);
}
.commo-reveal.commo-visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,border-color .4s ease;
}
.commo-reveal.commo-visible:hover{transform:translateX(-50%) translateY(-7px)}

.commo-timeline-empty{
  padding:22px 24px;
  border:1px dashed rgba(10,8,125,.24);
  border-radius:18px;
  background:#eef4f8;
  color:#34384c;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}

@media (max-width:1050px) and (min-width:821px){
  .commo-timeline__event{width:clamp(245px,29%,315px)}
  .commo-timeline__media{height:166px}
}

@media (max-width:820px){
  .commo-timeline-wrap{
    min-height:0!important;
    padding-left:30px;
  }
  .commo-timeline__svg,
  .commo-timeline__node{display:none}
  .commo-timeline-wrap::before{
    content:"";
    position:absolute;
    left:8px;
    top:18px;
    bottom:18px;
    width:2px;
    border-radius:2px;
    background:linear-gradient(var(--commo-cyan),var(--commo-navy));
  }
  .commo-timeline__event,
  .commo-timeline__event.left,
  .commo-timeline__event.center,
  .commo-timeline__event.right{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    width:100%;
    margin:0 0 24px;
    transform:none;
  }
  .commo-timeline__event::before{
    content:"";
    position:absolute;
    left:-29px;
    top:36px;
    width:14px;
    height:14px;
    border-radius:50%;
    background:#fff;
    border:4px solid var(--commo-cyan);
    box-shadow:0 0 0 5px #eef4f8;
  }
  .commo-timeline__event:hover,
  .commo-reveal,
  .commo-reveal.commo-visible,
  .commo-reveal.commo-visible:hover{
    transform:none;
  }
  .commo-reveal{opacity:0;transform:translateY(18px)}
  .commo-reveal.commo-visible{opacity:1;transform:none}
  .commo-timeline__note{
    position:relative;
    left:auto;
    bottom:auto;
    max-width:none;
    margin:28px 0 0;
    transform:none;
    text-align:left;
  }
}

@media (prefers-reduced-motion:reduce){
  .commo-timeline__event,
  .commo-timeline__media img,
  .commo-reveal,
  .commo-reveal.commo-visible{transition:none!important}
  .commo-reveal{opacity:1;transform:translateX(-50%)}
  @media (max-width:820px){.commo-reveal{transform:none}}
}
