.hamoochem-timeline{
    --ht-line-color:#307027;
    width:100%;
    margin:0;
    padding:0;
    background:transparent!important;
    font-family:"IRANSans","Iran Sans","IRANSansWeb",Tahoma,sans-serif;
    direction:rtl;
    color:#222;
}
.hamoochem-timeline *{box-sizing:border-box}

.ht-items{
    position:relative;
    width:100%;
    max-width:1080px;
    margin:0 auto;
    padding:35px 0;
}

/* Central line: always mathematically centered */
.ht-line{
    position:absolute;
    top:35px;
    bottom:35px;
    left:50%;
    transform:translateX(-50%);
    width:2px;
    background:var(--ht-line-color);
    z-index:1;
}

.ht-item{
    position:relative;
    width:100%;
    min-height:155px;
    margin:0 0 70px;
    z-index:2;
}
.ht-item:last-child{margin-bottom:0}
.ht-item.ht-right .ht-content,
.ht-item.ht-left .ht-content{box-sizing:border-box;}

/*
 * IMPORTANT:
 * The two content columns are positioned from the center line using
 * left/right coordinates, not RTL grid columns. This prevents Elementor's
 * RTL direction from flipping the sides or collapsing both sides toward center.
 *
 * .ht-right = visual LEFT item (keeps the previous alternating order)
 * .ht-left  = visual RIGHT item
 */
.ht-content{
    position:absolute;
    top:50%;
    transform:translateY(calc(-50% + var(--ht-text-y, 0px)));
    width:min(38%,470px);
    max-width:470px;
    min-width:0;
    z-index:3;
}
/* Visual RIGHT side */
.ht-item.ht-right .ht-content{
    left:calc(50% + 38px) !important;
    right:auto !important;
    direction:rtl;
    text-align:right;
}
/* Visual LEFT side */
.ht-item.ht-left .ht-content{
    right:calc(50% + 38px) !important;
    left:auto !important;
    direction:rtl;
    text-align:left;
}

/* The icon is independent of text direction and is always centered on the line. */
.ht-icon{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:54px;
    height:54px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#edf3ff;
    color:#307027!important;
    font-size:20px;
    line-height:1;
    z-index:5;
    box-shadow:0 0 0 8px #fff,0 4px 15px rgba(0,0,0,.04);
}
.ht-icon i{color:currentColor!important}
.ht-icon svg{
    width:1em;
    height:1em;
    color:currentColor!important;
    fill:currentColor!important;
}
.ht-icon svg path,
.ht-icon svg circle,
.ht-icon svg rect,
.ht-icon svg polygon,
.ht-icon svg ellipse,
.ht-icon svg line,
.ht-icon svg polyline{
    fill:currentColor!important;
    stroke:currentColor!important;
}

.ht-year{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#307027;
    color:#fff;
    padding:3px 14px;
    border-radius:5px;
    font-size:24px;
    line-height:1.35;
    font-weight:900;
    margin-bottom:7px;
    font-family:"IRANSans","Iran Sans","IRANSansWeb",Tahoma,sans-serif;
}
.ht-content h3{
    margin:0 0 7px;
    color:#307027;
    font-size:17px;
    line-height:1.55;
    font-weight:800;
    font-family:"IRANSans","Iran Sans","IRANSansWeb",Tahoma,sans-serif;
}
.ht-content p{
    margin:0;
    color:#6c756e;
    font-size:14px;
    line-height:2;
    font-weight:400;
    font-family:"IRANSans","Iran Sans","IRANSansWeb",Tahoma,sans-serif;
}

/* Tablet/mobile: one-sided timeline, independent from desktop positioning. */
@media(max-width:767px){
    .ht-items{padding:25px 0 25px 0}
    .ht-line{
        left:30px;
        right:auto;
        transform:none;
        top:25px;
        bottom:25px;
    }
    .ht-item,
    .ht-item.ht-right,
    .ht-item.ht-left{
        min-height:120px;
        margin-bottom:50px;
        width:100%;
    }
    .ht-content,
    .ht-item.ht-right .ht-content,
    .ht-item.ht-left .ht-content{
        position:relative;
        top:auto;
        left:auto !important;
        right:auto !important;
        transform:none;
        width:calc(100% - 85px);
        max-width:none;
        margin:0 20px 0 65px;
        padding:0;
        text-align:right;
        direction:rtl;
    }
    .ht-icon{
        left:30px;
        top:50%;
        transform:translate(-50%,-50%);
        width:48px;
        height:48px;
        font-size:18px;
        box-shadow:0 0 0 6px #fff,0 4px 12px rgba(0,0,0,.04);
    }
    .ht-year{font-size:20px;padding:3px 11px}
    .ht-content h3{font-size:16px}
    .ht-content p{font-size:13px;line-height:1.9}
}
