/* =============================================================================
   UXArmy — Tag Filter  [uxarmy_tag_filter]
   ============================================================================= */

/* ── Wrapper ──────────────────────────────────────────────────────────────── */
.cascade-filter-wrapper {
    width:         100%  !important;
    margin-bottom: 36px  !important;
}

/* ── Button row ───────────────────────────────────────────────────────────── */
.filter-buttons.tag-buttons {
    display:     flex       !important;
    flex-wrap:   wrap       !important;
    gap:         10px       !important;
    align-items: center     !important;
    margin:      0          !important;
    padding:     0          !important;
    list-style:  none       !important;
}

/* ── Base pill button ─────────────────────────────────────────────────────── */
.filter-btn {
    display:          inline-flex !important;
    align-items:      center      !important;
    justify-content:  center      !important;
    padding:          11px 22px   !important;
    margin:           0           !important;
    border-radius:    10px        !important;
    border:           1.5px solid #d0dae4 !important;
    background:       #ffffff     !important;
    background-color: #ffffff     !important;
    background-image: none        !important;
    color:            #0f2030     !important;
    font-family:      'Inter', sans-serif !important;
    font-size:        15px        !important;
    font-weight:      500         !important;
    line-height:      1.4         !important;
    white-space:      nowrap      !important;
    cursor:           pointer     !important;
    box-shadow:       none        !important;
    text-decoration:  none        !important;
    text-transform:   none        !important;
    letter-spacing:   normal      !important;
    -webkit-appearance: none      !important;
    appearance:       none        !important;
    outline:          none        !important;
    transition:
        background   0.18s ease,
        border-color 0.18s ease,
        color        0.18s ease,
        box-shadow   0.18s ease;
}

/* ── Hover ────────────────────────────────────────────────────────────────── */
.filter-btn:hover {
    background:       #f0f5fa !important;
    background-color: #f0f5fa !important;
    border-color:     #b5c5d4 !important;
    color:            #0f2030 !important;
    box-shadow:       none    !important;
}

/* ── Active / selected ────────────────────────────────────────────────────── */
.filter-btn.active {
    background:       #2e62e9 !important;
    background-color: #2e62e9 !important;
    border-color:     #2e62e9 !important;
    color:            #ffffff !important;
    font-weight:      600     !important;
    box-shadow:       none    !important;
}

/* ── Focus ring ───────────────────────────────────────────────────────────── */
.filter-btn:focus-visible {
    outline:        2px solid #4a90d9 !important;
    outline-offset: 2px               !important;
}

/* ── Loading indicator ────────────────────────────────────────────────────── */
.filter-loading {
    display:     none   !important;
    margin-top:  16px   !important;
    font-family: 'Inter', sans-serif !important;
    font-size:   14px   !important;
    color:       #6b7c8d !important;
}

.filter-loading span::after {
    content:        ''                          !important;
    display:        inline-block                !important;
    width:          14px                        !important;
    height:         14px                        !important;
    margin-left:    8px                         !important;
    border:         2px solid #c8d8e4           !important;
    border-top-color: #4a90d9                   !important;
    border-radius:  50%                         !important;
    vertical-align: middle                      !important;
    animation:      uxarmy-spin 0.7s linear infinite !important;
}

@keyframes uxarmy-spin {
    to { transform: rotate(360deg); }
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    .filter-buttons.tag-buttons {
        gap: 8px !important;
    }
    .filter-btn {
        padding:   9px 16px !important;
        font-size: 14px     !important;
    }
}


/* =============================================================================
   UXArmy — Blog Grid  [uxarmy_blog_grid]
   ============================================================================= */

/* ── Grid wrapper ─────────────────────────────────────────────────────────── */
.uxarmy-blog-grid-wrapper {
    position: relative !important;
    width:    100%     !important;
}

/* ── Post grid ────────────────────────────────────────────────────────────── */
.uxarmy-blog-grid {
    display:      grid  !important;
    column-gap:   32px  !important;
    row-gap:      0     !important;  /* row spacing handled via element padding */
    align-items:  start !important;
}

/* Column variants */
.uxarmy-blog-grid.uxarmy-cols-1 { grid-template-columns: 1fr                !important; }
.uxarmy-blog-grid.uxarmy-cols-2 { grid-template-columns: repeat(2, 1fr)     !important; }
.uxarmy-blog-grid.uxarmy-cols-3 { grid-template-columns: repeat(3, 1fr)     !important; }
.uxarmy-blog-grid.uxarmy-cols-4 { grid-template-columns: repeat(4, 1fr)     !important; }
.uxarmy-blog-grid.uxarmy-cols-5 { grid-template-columns: repeat(5, 1fr)     !important; }
.uxarmy-blog-grid.uxarmy-cols-6 { grid-template-columns: repeat(6, 1fr)     !important; }

/* ── Card (the whole card is an <a>) ──────────────────────────────────────── */
/*
 * Subgrid layout — each card spans 4 shared row tracks:
 *   Row 1: thumbnail   Row 2: title   Row 3: excerpt   Row 4: read-more
 * All cards in the same visual row share these tracks, so titles/excerpts/
 * read-mores are perfectly aligned no matter how many text lines they have.
 */
.uxarmy-blog-card {
    display:                grid               !important;
    grid-row:               span 4             !important;
    grid-template-rows:     subgrid            !important;
    background:             transparent        !important;
    background-color: transparent  !important;
    background-image: none         !important;
    border-radius:    0            !important;
    border:           none         !important;
    overflow:         visible      !important;
    box-shadow:       none         !important;
    padding:          0            !important;
    margin:           0            !important;
    /* reset <a> defaults */
    text-decoration:  none         !important;
    color:            inherit      !important;
    cursor:           pointer      !important;
    transition:       transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.uxarmy-blog-card:hover {
    transform:       translateY(-4px)  !important;
    box-shadow:      none              !important;
    text-decoration: none              !important;
    color:           inherit           !important;
}

/* ── Card thumbnail ───────────────────────────────────────────────────────── */
.uxarmy-blog-card__thumb-wrap {
    display:          block   !important;
    overflow:         hidden  !important;
    border-radius:    12px    !important;
    aspect-ratio:     16 / 9  !important;
    background:       #eef2f6 !important;
    background-color: #eef2f6 !important;
    padding:          0       !important;
    margin:           0       !important;
}

.uxarmy-blog-card__thumb {
    width:      100%          !important;
    height:     100%          !important;
    object-fit: cover         !important;
    display:    block         !important;
    transition: transform 0.35s ease;
}

.uxarmy-blog-card:hover .uxarmy-blog-card__thumb {
    transform: scale(1.04) !important;
}

/* ── Card body ────────────────────────────────────────────────────────────── */
/*
 * display:contents "unwraps" the body — its children (title, excerpt, read-more)
 * become direct subgrid items of the card, occupying rows 2–4 of the shared
 * parent tracks. The body element itself renders no box.
 */
.uxarmy-blog-card__body {
    display:        contents !important;
}


/* ── Title — always show in full ──────────────────────────────────────────── */
.uxarmy-blog-card__title {
    margin:         0                    !important;
    padding:        20px 4px 10px        !important;  /* top: gap from thumb; bottom: gap to excerpt */
    align-self:     start                !important;
    font-family:    'Inter', sans-serif  !important;
    font-size:      1.25rem              !important;
    font-weight:    700                  !important;
    line-height:    1.35                 !important;
    color:          #0f2030              !important;
    display:        block                !important;
    overflow:       visible              !important;
    text-transform: none                 !important;
    letter-spacing: normal               !important;
    white-space:    normal               !important;
}

/* ── Excerpt ──────────────────────────────────────────────────────────────── */
.uxarmy-blog-card__excerpt {
    margin:         0                    !important;
    padding:        0 4px 10px           !important;  /* bottom: gap to read-more */
    align-self:     start                !important;
    font-family:    'Inter', sans-serif  !important;
    font-size:      16px                 !important;
    line-height:    1.65                 !important;
    color:          #000000              !important;
    display:        -webkit-box          !important;
    -webkit-line-clamp: 3                !important;
    -webkit-box-orient: vertical         !important;
    overflow:       hidden               !important;
    text-transform: none                 !important;
    letter-spacing: normal               !important;
}

/* ── Read More ────────────────────────────────────────────────────────────── */
.uxarmy-blog-card__read-more {
    display:        inline-flex !important;
    align-items:    center      !important;
    gap:            4px         !important;
    align-self:     start       !important;
    margin-top:     0           !important;
    font-family:    'Inter', sans-serif !important;
    font-size:      16px        !important;
    font-weight:    600         !important;
    color:          #2e62e9     !important;
    text-decoration:none        !important;
    text-transform: none        !important;
    background:     transparent !important;
    border:         none        !important;
    box-shadow:     none        !important;
    padding:        0 4px 80px  !important;  /* 80px bottom = visual gap between card rows */
    transition: gap 0.18s ease, color 0.18s ease;
}

.uxarmy-blog-card__read-more::after {
    content: ' →';
}

/* ── Related Articles — show full excerpt, no line clamp ──────────────────── */
.uxarmy-related-articles .uxarmy-blog-card__excerpt {
    display:            block   !important;
    -webkit-line-clamp: unset   !important;
    line-clamp:         unset   !important;
    overflow:           visible !important;
}

.uxarmy-blog-card:hover .uxarmy-blog-card__read-more {
    color: #1a4ec4 !important;
    gap:   8px     !important;
}

/* ── Grid loading overlay ─────────────────────────────────────────────────── */
.uxarmy-blog-grid-loading {
    display:         none     !important;
    position:        absolute !important;
    inset:           0        !important;
    background:      rgba(255, 255, 255, 0.72) !important;
    backdrop-filter: blur(2px) !important;
    border-radius:   12px     !important;
    z-index:         10       !important;
    align-items:     center   !important;
    justify-content: center   !important;
}

.uxarmy-blog-grid-loading.is-visible {
    display: flex !important;
}

.uxarmy-spinner {
    width:         36px                        !important;
    height:        36px                        !important;
    border:        3px solid #dce8f2           !important;
    border-top-color: #2e62e9                  !important;
    border-radius: 50%                         !important;
    animation:     uxarmy-spin 0.75s linear infinite !important;
}

/* ── No posts message ─────────────────────────────────────────────────────── */
.uxarmy-no-posts {
    grid-column: 1 / -1 !important;
    text-align:  center !important;
    padding:     48px 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size:   16px   !important;
    color:       #8a9baa !important;
}

/* =============================================================================
   UXArmy — Blog Pagination
   ============================================================================= */

.uxarmy-blog-pagination {
    display:         flex    !important;
    justify-content: center  !important;
    align-items:     center  !important;
    flex-wrap:       wrap    !important;
    gap:             8px     !important;
    margin-top:      48px    !important;
    padding:         0       !important;
    list-style:      none    !important;
}

/* ── Numbered page buttons — circles ──────────────────────────────────────── */
.uxarmy-blog-pagination .uxarmy-page-btn {
    display:          inline-flex !important;
    align-items:      center      !important;
    justify-content:  center      !important;
    width:            40px        !important;
    height:           40px        !important;
    min-width:        40px        !important;
    min-height:       40px        !important;
    padding:          0           !important;
    border-radius:    50%         !important;
    border:           1.5px solid #d0dae4 !important;
    background:       #ffffff     !important;
    background-color: #ffffff     !important;
    background-image: none        !important;
    color:            #0f2030     !important;
    font-size:        14px        !important;
    font-weight:      500         !important;
    line-height:      1           !important;
    box-shadow:       none        !important;
    text-decoration:  none        !important;
    cursor:           pointer     !important;
    -webkit-appearance: none      !important;
    appearance:       none        !important;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.uxarmy-blog-pagination .uxarmy-page-btn:hover {
    background:       #f0f5fa !important;
    background-color: #f0f5fa !important;
    border-color:     #b5c5d4 !important;
}

.uxarmy-blog-pagination .uxarmy-page-btn.is-active {
    background:       #2e62e9 !important;
    background-color: #2e62e9 !important;
    border-color:     #2e62e9 !important;
    color:            #ffffff !important;
    font-weight:      600     !important;
    pointer-events:   none    !important;
}

.uxarmy-blog-pagination .uxarmy-page-btn:focus-visible {
    outline:        2px solid #4a90d9 !important;
    outline-offset: 2px               !important;
}

/* ── Previous / Next — pure text, absolutely no box ───────────────────────── */
.uxarmy-blog-pagination .uxarmy-page-prev,
.uxarmy-blog-pagination .uxarmy-page-next {
    display:          inline-flex   !important;
    align-items:      center        !important;
    padding:          0 4px         !important;
    margin:           0             !important;
    background:       transparent   !important;
    background-color: transparent   !important;
    background-image: none          !important;
    border:           none          !important;
    border-width:     0             !important;
    border-style:     none          !important;
    border-color:     transparent   !important;
    border-radius:    0             !important;
    box-shadow:       none          !important;
    outline:          none          !important;
    text-decoration:  none          !important;
    -webkit-appearance: none        !important;
    appearance:       none          !important;
    color:            #2e62e9       !important;
    font-size:        14px          !important;
    font-weight:      500           !important;
    line-height:      1             !important;
    cursor:           pointer       !important;
    transition: color 0.18s ease;
}

.uxarmy-blog-pagination .uxarmy-page-prev:hover,
.uxarmy-blog-pagination .uxarmy-page-next:hover {
    color:            #1a4ec4     !important;
    background:       transparent !important;
    background-color: transparent !important;
    border:           none        !important;
    box-shadow:       none        !important;
    text-decoration:  none        !important;
}

.uxarmy-blog-pagination .uxarmy-page-prev.is-disabled,
.uxarmy-blog-pagination .uxarmy-page-next.is-disabled,
.uxarmy-blog-pagination .uxarmy-page-prev:disabled,
.uxarmy-blog-pagination .uxarmy-page-next:disabled {
    color:            #c5cdd5     !important;
    cursor:           not-allowed !important;
    pointer-events:   none        !important;
    background:       transparent !important;
    background-color: transparent !important;
    border:           none        !important;
    box-shadow:       none        !important;
}

/* ── Ellipsis ─────────────────────────────────────────────────────────────── */
.uxarmy-blog-pagination .uxarmy-page-ellipsis {
    display:         inline-flex !important;
    align-items:     center      !important;
    justify-content: center      !important;
    width:           40px        !important;
    height:          40px        !important;
    font-size:       14px        !important;
    color:           #8a9baa     !important;
    pointer-events:  none        !important;
    user-select:     none        !important;
}

/* =============================================================================
   Responsive
   ============================================================================= */

@media (max-width: 1024px) {
    .uxarmy-blog-grid.uxarmy-cols-3,
    .uxarmy-blog-grid.uxarmy-cols-4 {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    .uxarmy-blog-grid.uxarmy-cols-5,
    .uxarmy-blog-grid.uxarmy-cols-6 {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* Single column on all phones (up to 768px) */
@media (max-width: 768px) {
    /* Must match the double-class specificity of the 1024px rules above */
    .uxarmy-blog-grid,
    .uxarmy-blog-grid.uxarmy-cols-1,
    .uxarmy-blog-grid.uxarmy-cols-2,
    .uxarmy-blog-grid.uxarmy-cols-3,
    .uxarmy-blog-grid.uxarmy-cols-4,
    .uxarmy-blog-grid.uxarmy-cols-5,
    .uxarmy-blog-grid.uxarmy-cols-6 {
        grid-template-columns: 1fr !important;
        column-gap:            0   !important;
        row-gap:               0   !important;
    }
    /* Inter-card gap on mobile */
    .uxarmy-blog-card__read-more {
        padding-bottom: 48px !important;
    }
    .uxarmy-blog-card__title {
        font-size: 16px !important;
    }
    .uxarmy-blog-pagination {
        gap:        4px  !important;
        margin-top: 32px !important;
    }
    .uxarmy-blog-pagination .uxarmy-page-btn {
        width:      36px !important;
        height:     36px !important;
        min-width:  36px !important;
        min-height: 36px !important;
        font-size:  13px !important;
    }
}

/* =============================================================================
   UXArmy — Table of Contents  [uxarmy_toc]
   ============================================================================= */

.uxarmy-toc {
    margin: 24px 0;
}

/* ── Header row ───────────────────────────────────────────────────────────── */
.uxarmy-toc__header {
    display:     flex;
    align-items: center;
    gap:         8px;
    margin-bottom: 16px;
    color:       #0f172a;
}

.uxarmy-toc__heading {
    font-size:       12px;
    font-weight:     700;
    text-transform:  uppercase;
    letter-spacing:  0.08em;
    color:           #0f172a;
}

/* ── List ─────────────────────────────────────────────────────────────────── */
.uxarmy-toc__list {
    list-style: none;
    margin:     0;
    padding:    0;
}

/* Scrollable on desktop/tablet only — mobile shows all items */
@media (min-width: 769px) {
    .uxarmy-toc__list {
        max-height:    300px;
        overflow-y:    auto;
        padding-right: 6px; /* prevents text clipping under scrollbar */
    }

    .uxarmy-toc__list::-webkit-scrollbar       { width: 4px; }
    .uxarmy-toc__list::-webkit-scrollbar-track { background: transparent; }
    .uxarmy-toc__list::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
    .uxarmy-toc__list::-webkit-scrollbar-thumb:hover { background: #9ca3af; }
}

.uxarmy-toc__item {
    padding: 8px 20px 8px 0px;
    margin-left: -20px;
}

/* ── Link ─────────────────────────────────────────────────────────────────── */
.uxarmy-toc__link {
    display: flex;
    align-items: baseline;
    gap: 6px;
    text-decoration: none !important;
    color: rgb(83, 90, 116) !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.5;
    text-transform: none;
    overflow: unset;
    white-space: unset;
    text-overflow: unset;
    transition: color 0.15s;
}

.uxarmy-toc__link:hover {
    color:rgb(5, 104, 253) !important;
    text-decoration: underline;
}

/* ── Number ───────────────────────────────────────────────────────────────── */
.uxarmy-toc__num {
    color:       rgb(150, 158, 185);
    font-weight: 400;
    font-size:   16px;
    flex-shrink: 0;
    min-width:   30px;
}


/* =============================================================================
   UXArmy — Featured Article  [uxarmy_featured_article]
   ============================================================================= */

/* ── Card (clickable, horizontal layout) ─────────────────────────────────── */
.uxarmy-featured-article {
    display:         flex;
    flex-direction:  row;
    border:          1px solid #e5e7eb;
    border-radius:   12px;
    overflow:        hidden;
    text-decoration: none;
    color:           inherit;
    transition:      box-shadow 0.2s;
}

.uxarmy-featured-article:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* ── Left: Thumbnail ─────────────────────────────────────────────────────── */
.uxarmy-featured-article__thumb-wrap {
    flex:     0 0 280px;
    width:    280px;
    overflow: hidden;
}

.uxarmy-featured-article__thumb {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

/* ── Right: Body ─────────────────────────────────────────────────────────── */
.uxarmy-featured-article__body {
    flex:           1;
    padding:        28px 32px;
    display:        flex;
    flex-direction: column;
    justify-content: center;
    gap:            14px;
}

/* ── Meta row (date + reading time badges) ───────────────────────────────── */
.uxarmy-featured-article__meta {
    display:   flex;
    flex-wrap: wrap;
    gap:       10px;
}

.uxarmy-featured-article__date,
.uxarmy-featured-article__reading-time {
    display:      inline-flex;
    align-items:  center;
    gap:          6px;
    padding:      5px 14px;
    border-radius: 20px;
    background:   #e8f0fd;
    color:        #2563eb;
    font-size:    13px;
    font-weight:  500;
    line-height:  1;
}

/* ── Title ───────────────────────────────────────────────────────────────── */
.uxarmy-featured-article__title {
    margin:      0;
    font-size:   20px;
    font-weight: 700;
    line-height: 1.3;
    color:       #111827;
}

/* ── Excerpt ─────────────────────────────────────────────────────────────── */
.uxarmy-featured-article__excerpt {
    margin:      0;
    font-size:   15px;
    line-height: 1.65;
    color:       #4b5563;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .uxarmy-featured-article {
        flex-direction: column;
    }

    .uxarmy-featured-article__thumb-wrap {
        flex:   none;
        width:  100%;
        height: 200px;
    }

    .uxarmy-featured-article__body {
        padding: 20px;
    }
}
