/**
 * Demo 24 — Headline: Timeline Rail (نوار خط زمانی)
 * A horizontal timeline rail — each row has a prominent date-marker block on
 * the start edge, a connecting node, the headline title, and meta on the far
 * edge. Great for "recently updated" lists where the date is the focal point.
 * Uses the ordinal index as the timeline node marker. Slate + amber accent.
 */
.jespw-demo-24-timeline-rail .jespw-card {
        position: relative;
        background: #ffffff;
        border: 1px solid #e2e8f0;
        border-radius: 14px;
        padding: 14px 18px 14px 16px;
        display: grid;
        grid-template-columns: auto 1fr auto;
        align-items: center;
        gap: 18px;
        transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.jespw-demo-24-timeline-rail .jespw-card:hover {
        transform: translateY(-2px);
        border-color: #f59e0b;
        box-shadow: 0 12px 28px -14px rgba(245, 158, 11, 0.45);
}
/* Timeline = text only. */
.jespw-demo-24-timeline-rail .jespw-image,
.jespw-demo-24-timeline-rail .jespw-image-wrap {
        display: none !important;
}
.jespw-demo-24-timeline-rail .jespw-text-accent {
        display: none;
}
/* The ordinal index = the timeline node marker (a numbered amber disc). */
.jespw-demo-24-timeline-rail .jespw-index {
        order: 1;
        width: 42px;
        height: 42px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-family: "Vazirmatn", system-ui, sans-serif;
        font-size: 17px;
        font-weight: 800;
        font-style: normal;
        color: #fff;
        background: linear-gradient(135deg, #f59e0b, #f97316);
        box-shadow: 0 0 0 4px #fffbeb, 0 6px 14px -6px rgba(245, 158, 11, 0.6);
        flex-shrink: 0;
        transition: transform .3s ease;
}
.jespw-demo-24-timeline-rail .jespw-card:hover .jespw-index {
        transform: scale(1.08) rotate(-4deg);
}
/* Content row. */
.jespw-demo-24-timeline-rail .jespw-content {
        order: 2;
        display: flex;
        flex-direction: column;
        gap: 4px;
        min-width: 0;
}
/* Category = small uppercase kicker above the title. */
.jespw-demo-24-timeline-rail .jespw-category {
        order: 1;
        font-size: 10px;
        font-weight: 800;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        color: #b45309;
        background: transparent;
        padding: 0;
        white-space: nowrap;
}
/* Title — the headline, single line preferred but 2-line clamp OK. */
.jespw-demo-24-timeline-rail .jespw-title {
        order: 2;
        font-size: 16px;
        font-weight: 700;
        line-height: 1.4;
        color: #0f172a;
        margin: 0;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        line-clamp: 1;
        -webkit-box-orient: vertical;
}
.jespw-demo-24-timeline-rail .jespw-title a {
        color: inherit;
        text-decoration: none;
        transition: color .25s ease;
}
.jespw-demo-24-timeline-rail .jespw-card:hover .jespw-title a {
        color: #b45309;
}
/* Excerpt — tiny, muted, single line. */
.jespw-demo-24-timeline-rail .jespw-excerpt {
        order: 3;
        font-size: 12px;
        line-height: 1.5;
        color: #64748b;
        margin: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
}
/* Rating — small inline. */
.jespw-demo-24-timeline-rail .jespw-rating {
        order: 4;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-size: 11px;
        color: #94a3b8;
}
/* Right rail = date block + price, stacked. */
.jespw-demo-24-timeline-rail .jespw-modified-date {
        order: 3;
        grid-column: 3;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 2px;
        white-space: nowrap;
        flex-shrink: 0;
        min-width: 92px;
}
.jespw-demo-24-timeline-rail .jespw-modified-text {
        font-size: 14px;
        font-weight: 800;
        color: #b45309;
        line-height: 1.2;
}
.jespw-demo-24-timeline-rail .jespw-modified-icon {
        display: none;
}
/* A tiny "بروزرسانی" label above the date text via ::before on the wrapper. */
.jespw-demo-24-timeline-rail .jespw-modified-date::before {
        content: "به‌روزرسانی";
        font-size: 9px;
        font-weight: 700;
        letter-spacing: 0.5px;
        color: #94a3b8;
        text-transform: none;
}
/* Price — small, below the date if both present (flex reorders via order). */
.jespw-demo-24-timeline-rail .jespw-price {
        order: 3;
        grid-column: 3;
        align-self: end;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        gap: 1px;
        white-space: nowrap;
        flex-shrink: 0;
        margin-block-start: 8px;
}
.jespw-demo-24-timeline-rail .jespw-regular-price {
        font-size: 15px;
        font-weight: 800;
        color: #0f172a;
}
.jespw-demo-24-timeline-rail .jespw-regular-price del {
        color: #94a3b8;
        font-size: 11px;
        font-weight: 400;
        text-decoration: line-through;
}
.jespw-demo-24-timeline-rail .jespw-sale-price ins {
        font-size: 15px;
        font-weight: 800;
        color: #b45309;
        text-decoration: none;
}
.jespw-demo-24-timeline-rail .jespw-discount-percent {
        font-size: 10px;
        font-weight: 700;
        color: #fff;
        background: #f59e0b;
        padding: 1px 7px;
        border-radius: 999px;
}
/* Button = ghost pill. */
.jespw-demo-24-timeline-rail .jespw-button {
        padding: 6px 13px;
        font-size: 12px;
        font-weight: 700;
        color: #b45309;
        background: transparent;
        border: 1.5px solid #f59e0b;
        border-radius: 999px;
        transition: all .25s ease;
        white-space: nowrap;
}
.jespw-demo-24-timeline-rail .jespw-button:hover {
        background: #f59e0b;
        color: #fff;
}
/* Badges as tiny chips. */
.jespw-demo-24-timeline-rail .jespw-badge {
        font-size: 10px;
        font-weight: 700;
        padding: 2px 8px;
        border-radius: 999px;
}
.jespw-demo-24-timeline-rail .jespw-badge-new {
        background: #f59e0b;
        color: #fff;
}
.jespw-demo-24-timeline-rail .jespw-badge-sale {
        background: #be123c;
        color: #fff;
}
.jespw-demo-24-timeline-rail .jespw-badges {
        position: static;
        display: inline-flex;
        gap: 5px;
        margin-block-end: 4px;
}
/* Grid: stacked timeline rows. */
.jespw-demo-24-timeline-rail .jespw-grid {
        grid-template-columns: 1fr;
        gap: 10px;
}
/* Slider: each slide is one timeline row. */
.jespw-demo-24-timeline-rail.jespw-layout-slider .jespw-card {
        height: 100%;
        min-height: 86px;
}
/* Responsive: collapse the 3-column grid, shrink the node. */
@media (max-width: 640px) {
        .jespw-demo-24-timeline-rail .jespw-card {
                grid-template-columns: auto 1fr;
                gap: 12px;
        }
        .jespw-demo-24-timeline-rail .jespw-modified-date,
        .jespw-demo-24-timeline-rail .jespw-price {
                grid-column: 2;
                align-items: flex-start;
                margin-block-start: 6px;
        }
        .jespw-demo-24-timeline-rail .jespw-index {
                width: 34px;
                height: 34px;
                font-size: 14px;
        }
        .jespw-demo-24-timeline-rail .jespw-title {
                -webkit-line-clamp: 2;
                line-clamp: 2;
        }
        .jespw-demo-24-timeline-rail .jespw-card:hover {
                transform: none;
        }
}
