:root {
  --upk-snap-timeline-border-width: 1px;
  --upk-snap-timeline-border-color: #e1e2e4;
  --upk-snap-timeline-border-style: dashed;
  --upk-snap-timeline-counter-height-width: 35px;
  --upk-snap-timeline-start-end-height-widht: 70px; }

.upk-snap-timeline-grid-start-end-wrap {
  padding: 100px 0;
  position: relative; }
  .upk-snap-timeline-grid-start-end-wrap::before {
    position: absolute;
    content: '';
    top: 0;
    height: 100%;
    border: 0;
    border-left-width: var(--upk-snap-timeline-border-width);
    border-left-color: var(--upk-snap-timeline-border-color);
    border-left-style: var(--upk-snap-timeline-border-style); }
  .upk-snap-timeline-grid-start-end-wrap .upk-timeline-s-e-text {
    position: absolute;
    background: #fff;
    color: #2b2d42;
    font-size: 9px;
    font-weight: 700;
    width: 50px;
    text-transform: uppercase;
    height: 50px;
    line-height: 50px;
    text-align: center;
    border-radius: 100px;
    border-width: var(--upk-snap-timeline-border-width);
    border-color: var(--upk-snap-timeline-border-color);
    border-style: var(--upk-snap-timeline-border-style); }
  .upk-snap-timeline-grid-start-end-wrap .upk-top-start {
    top: 0; }
  .upk-snap-timeline-grid-start-end-wrap .upk-bottom-end {
    bottom: 0; }

.upk-snap-timeline-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  counter-reset: number-count; }
  .upk-snap-timeline-grid .upk-timeline-item {
    position: relative; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-image-wrapper {
      display: block;
      width: 100%;
      margin-bottom: 30px; }
      .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-image-wrapper img.upk-img {
        width: 100%;
        height: 100%;
        object-fit: cover; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-counter {
      position: absolute;
      width: 100%;
      counter-increment: number-count;
      transition: transform .7s;
      top: calc( (-19px - var(--upk-snap-timeline-border-width)));
      z-index: 10; }
      .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-counter:after {
        position: absolute;
        content: '';
        border: none;
        border-top: var(--upk-snap-timeline-border-width);
        border-top-style: var(--upk-snap-timeline-border-style);
        border-color: var(--upk-snap-timeline-border-color);
        top: calc(var(--upk-snap-timeline-counter-height-width) / 2);
        transition: transform .7s; }
      .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-counter::before {
        content: counter(number-count);
        color: #3e3342;
        font-weight: 600;
        font-size: 15px;
        line-height: 1;
        position: absolute;
        top: 0;
        background: #fff;
        width: var(--upk-snap-timeline-counter-height-width);
        height: var(--upk-snap-timeline-counter-height-width);
        line-height: calc(var(--upk-snap-timeline-counter-height-width) - calc(var(--upk-snap-timeline-border-width) * 2 ));
        border-width: var(--upk-snap-timeline-border-width);
        border-color: var(--upk-snap-timeline-border-color);
        border-style: var(--upk-snap-timeline-border-style);
        text-align: center;
        border-radius: 50px;
        transition: all .7s;
        z-index: 1; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-date {
      font-size: 10px;
      text-transform: uppercase;
      margin-bottom: 10px;
      font-weight: 700;
      color: #8d99ae;
      display: inline-flex; }
      .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-date .upk-post-time {
        margin-left: 5px; }
        .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-date .upk-post-time i {
          margin-right: 2px; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-title {
      margin: 0;
      padding-bottom: 10px;
      font-size: 14px;
      text-transform: capitalize; }
      .upk-snap-timeline-grid .upk-timeline-item .upk-title a {
        text-decoration: none;
        color: #2b2d42;
        transition: all .3s ease; }
        .upk-snap-timeline-grid .upk-timeline-item .upk-title a:hover {
          color: #D90429; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-desc {
      font-size: 10px;
      margin: 0;
      margin-bottom: 10px;
      line-height: 1.6;
      color: #8D99AE; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-meta {
      display: flex;
      align-items: center;
      font-size: 10px;
      text-transform: uppercase;
      font-weight: 700;
      color: #8D99AE; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-category a {
      text-decoration: none;
      position: relative;
      color: #8D99AE;
      padding-right: 10px;
      transition: all .3s ease; }
      .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-category a:hover {
        color: #D90429; }
      .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-category a::before {
        position: absolute;
        content: '';
        width: 1px;
        height: 10px;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        background: #8D99AE; }
    .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-comments {
      padding-left: 10px; }
  .upk-snap-timeline-grid .upk-timeline-content-wrap {
    position: relative; }
    .upk-snap-timeline-grid .upk-timeline-content-wrap:hover .upk-timeline-counter::before {
      border-width: var(--upk-snap-timeline-border-width);
      border-color: #D90429;
      color: #D90429; }

.upk-snap-timeline-style-1 {
  margin-left: 25px; }
  .upk-snap-timeline-style-1 .upk-snap-timeline-grid-start-end-wrap::before {
    left: 0;
    transform: translateX(-50%); }
  .upk-snap-timeline-style-1 .upk-snap-timeline-grid {
    text-align: right; }
    .upk-snap-timeline-style-1 .upk-snap-timeline-grid .upk-timeline-content-inner {
      padding: 30px 0 30px 30px; }
    .upk-snap-timeline-style-1 .upk-snap-timeline-grid .upk-timeline-date {
      display: flex;
      justify-content: flex-end; }
      .upk-snap-timeline-style-1 .upk-snap-timeline-grid .upk-timeline-date .upk-post-time {
        margin-left: 5px; }
    .upk-snap-timeline-style-1 .upk-snap-timeline-grid .upk-timeline-meta {
      justify-content: flex-end; }
  .upk-snap-timeline-style-1 .upk-timeline-s-e-text {
    left: 0;
    transform: translateX(-50%); }
  .upk-snap-timeline-style-1 .upk-timeline-counter {
    left: calc( (0px - var(--upk-snap-timeline-border-width))); }
    .upk-snap-timeline-style-1 .upk-timeline-counter::before {
      left: var(--upk-snap-timeline-border-width);
      transform: scale(1) translateX(-50%); }
    .upk-snap-timeline-style-1 .upk-timeline-counter:after {
      right: 0;
      width: 100%; }
  .upk-snap-timeline-style-1 .upk-timeline-item:hover .upk-timeline-counter::before {
    transform: scale(1.2) translateX(-40%); }

.upk-snap-timeline-style-2 {
  margin-right: 25px; }
  .upk-snap-timeline-style-2 .upk-snap-timeline-grid-start-end-wrap::before {
    right: 0;
    transform: translateX(50%); }
  .upk-snap-timeline-style-2 .upk-snap-timeline-grid {
    text-align: left; }
    .upk-snap-timeline-style-2 .upk-snap-timeline-grid .upk-timeline-content-inner {
      padding: 30px 15px 0 0; }
    .upk-snap-timeline-style-2 .upk-snap-timeline-grid .upk-timeline-item:nth-child(odd) {
      width: 100%; }
    .upk-snap-timeline-style-2 .upk-snap-timeline-grid .upk-timeline-date {
      display: flex;
      justify-content: flex-start; }
    .upk-snap-timeline-style-2 .upk-snap-timeline-grid .upk-post-time {
      margin-left: 5px; }
    .upk-snap-timeline-style-2 .upk-snap-timeline-grid .upk-timeline-meta {
      justify-content: flex-start; }
  .upk-snap-timeline-style-2 .upk-timeline-s-e-text {
    right: 0;
    transform: translateX(50%); }
  .upk-snap-timeline-style-2 .upk-timeline-counter {
    right: calc( (0px - var(--upk-snap-timeline-border-width))); }
    .upk-snap-timeline-style-2 .upk-timeline-counter::before {
      right: var(--upk-snap-timeline-border-width);
      transform: translateX(50%); }
    .upk-snap-timeline-style-2 .upk-timeline-counter:after {
      left: 0;
      width: 100%; }
  .upk-snap-timeline-style-2 .upk-timeline-item:hover .upk-timeline-counter::before {
    transform: scale(1.2) translateX(45%); }

.upk-snap-timeline-style-3 {
  margin-left: 25px; }
  .upk-snap-timeline-style-3 .upk-timeline-item .upk-timeline-content-wrap {
    width: 100%; }
  .upk-snap-timeline-style-3 .upk-timeline-item .upk-timeline-content-inner {
    position: relative;
    z-index: 1;
    padding: 30px; }
  .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(odd) .upk-timeline-counter::after {
    right: 0; }
  .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(odd) .upk-timeline-content-wrap {
    text-align: left;
    margin-left: auto; }
    .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(odd) .upk-timeline-content-wrap .upk-timeline-meta {
      justify-content: flex-start; }
  .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-counter::after {
    left: 0; }
  .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-content-wrap {
    text-align: left;
    margin-left: 0;
    margin-right: auto; }
    .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-content-wrap .upk-timeline-meta {
      justify-content: flex-start; }
  .upk-snap-timeline-style-3 .upk-timeline-s-e-text {
    left: 0;
    transform: translateX(-50%); }
  .upk-snap-timeline-style-3 .upk-snap-timeline-grid-start-end-wrap::before {
    left: 0;
    transform: translateX(-50%); }
  .upk-snap-timeline-style-3 .upk-timeline-counter::before {
    left: 0;
    transform: translateX(-50%); }
  .upk-snap-timeline-style-3 .upk-timeline-counter::after {
    width: 100%; }
  .upk-snap-timeline-style-3 .upk-timeline-content-wrap:hover .upk-timeline-counter::before {
    transform: scale(1.2) translateX(-40%); }

.upk-content-align-center .upk-timeline-content-wrap {
  text-align: center;
  margin: auto; }
  .upk-content-align-center .upk-timeline-content-wrap .upk-timeline-date {
    justify-content: center; }
  .upk-content-align-center .upk-timeline-content-wrap .upk-timeline-meta {
    justify-content: center; }

.upk-content-align-center .upk-timeline-image-wrapper {
  margin: auto; }

.upk-content-align-left .upk-timeline-content-wrap {
  text-align: left;
  margin-right: auto; }
  .upk-content-align-left .upk-timeline-content-wrap .upk-timeline-date {
    justify-content: flex-start; }
  .upk-content-align-left .upk-timeline-content-wrap .upk-timeline-meta {
    justify-content: flex-start; }

.upk-content-align-left .upk-timeline-image-wrapper {
  margin-right: auto; }

.upk-content-align-right .upk-timeline-content-wrap {
  text-align: right;
  margin-left: auto; }
  .upk-content-align-right .upk-timeline-content-wrap .upk-timeline-date {
    justify-content: flex-end; }
  .upk-content-align-right .upk-timeline-content-wrap .upk-timeline-meta {
    justify-content: flex-end; }

.upk-content-align-right .upk-timeline-image-wrapper {
  margin-left: auto; }

@media (min-width: 768px) {
  .upk-snap-timeline-grid-start-end-wrap {
    padding: 120px 0; }
    .upk-snap-timeline-grid-start-end-wrap .upk-timeline-s-e-text {
      font-size: 10px;
      width: 60px;
      height: 60px;
      line-height: 60px; }
  .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-date {
    font-size: 12px;
    margin-bottom: 15px; }
  .upk-snap-timeline-grid .upk-timeline-item .upk-title {
    padding-bottom: 15px;
    font-size: 18px; }
  .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-desc {
    font-size: 12px;
    margin-bottom: 15px; }
  .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-meta {
    font-size: 12px; }
  .upk-snap-timeline-style-1 {
    margin-left: 30px; }
  .upk-snap-timeline-style-2 {
    margin-right: 30px; }
  .upk-snap-timeline-style-3 {
    margin-left: 0; }
    .upk-snap-timeline-style-3 .upk-timeline-item .upk-timeline-content-wrap {
      width: 50%; }
    .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-content-wrap {
      text-align: right; }
      .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-content-wrap .upk-timeline-meta {
        justify-content: flex-end; }
      .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-content-wrap:hover .upk-timeline-counter::before {
        transform: scale(1.2) translateX(40%); }
    .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-counter::before {
      right: 0;
      left: auto;
      transform: translateX(50%);
      transition: all .7s; }
    .upk-snap-timeline-style-3 .upk-timeline-s-e-text {
      left: 50%; }
    .upk-snap-timeline-style-3 .upk-snap-timeline-grid-start-end-wrap::before {
      left: 50%; }
    .upk-snap-timeline-style-3 .upk-timeline-counter::after {
      width: 100%; } }

@media (min-width: 1024px) {
  .upk-snap-timeline-grid-start-end-wrap {
    padding: 150px 0; }
    .upk-snap-timeline-grid-start-end-wrap .upk-timeline-s-e-text {
      font-size: 12px;
      width: var(--upk-snap-timeline-start-end-height-widht);
      height: var(--upk-snap-timeline-start-end-height-widht);
      line-height: calc(var(--upk-snap-timeline-start-end-height-widht) - calc(var(--upk-snap-timeline-border-width) * 2 )); }
  .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-date {
    font-size: 14px;
    margin-bottom: 20px; }
  .upk-snap-timeline-grid .upk-timeline-item .upk-title {
    padding-bottom: 20px;
    font-size: 22px; }
  .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-desc {
    font-size: 14px;
    margin-bottom: 20px; }
  .upk-snap-timeline-grid .upk-timeline-item .upk-timeline-meta {
    font-size: 14px; }
  .upk-snap-timeline-style-1 {
    margin-left: 35px; }
    .upk-snap-timeline-style-1 .upk-snap-timeline-grid .upk-timeline-content-inner {
      padding: 50px 0 50px 30px; }
  .upk-snap-timeline-style-2 {
    margin-right: 35px; }
    .upk-snap-timeline-style-2 .upk-snap-timeline-grid .upk-timeline-content-inner {
      padding: 50px 30px 50px 0; }
  .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(odd) .upk-timeline-content-inner {
    padding: 50px 0 50px 50px; }
  .upk-snap-timeline-style-3 .upk-timeline-item:nth-child(even) .upk-timeline-content-inner {
    padding: 50px 50px 50px 0; } }
