/* ============================================================
   Tender SEO – Front-End Styles
   Designed to layer cleanly over any theme.
   Uses CSS custom properties for easy overrides.
   ============================================================ */

:root {
    --tseo-primary:        #1a56db;
    --tseo-primary-dark:   #1240a8;
    --tseo-secondary:      #f3f4f6;
    --tseo-text:           #111827;
    --tseo-text-muted:     #6b7280;
    --tseo-border:         #e5e7eb;
    --tseo-radius:         8px;
    --tseo-shadow:         0 2px 8px rgba(0,0,0,.08);
    --tseo-green:          #065f46;
    --tseo-green-bg:       #d1fae5;
    --tseo-yellow:         #92400e;
    --tseo-yellow-bg:      #fef3c7;
    --tseo-red:            #991b1b;
    --tseo-red-bg:         #fee2e2;
    --tseo-grey:           #374151;
    --tseo-grey-bg:        #f3f4f6;
}

/* ── Archive Header ──────────────────────────────────────── */
.tseo-archive-header {
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 2px solid var(--tseo-border);
}

.tseo-archive-header-inner {
    margin-bottom: 1.5rem;
}

.tseo-archive-icon {
    font-size: 2rem;
    display: block;
    margin-bottom: .25rem;
}

.tseo-archive-title {
    font-size: 2rem;
    font-weight: 800;
    color: var(--tseo-text);
    margin: 0 0 .5rem;
    line-height: 1.2;
}

.tseo-archive-description {
    font-size: 1rem;
    color: var(--tseo-text-muted);
    margin: 0;
}

/* ── Category Nav ────────────────────────────────────────── */
.tseo-category-nav {
    margin-top: 1.25rem;
}

.tseo-nav-label {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--tseo-text-muted);
    margin: 0 0 .5rem;
    font-weight: 600;
}

.tseo-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.tseo-nav-link {
    display: inline-block;
    padding: .3rem .75rem;
    border: 1.5px solid var(--tseo-border);
    border-radius: 999px;
    font-size: .85rem;
    color: var(--tseo-text);
    text-decoration: none;
    background: #fff;
    transition: background .15s, border-color .15s, color .15s;
}

.tseo-nav-link:hover {
    background: var(--tseo-primary);
    border-color: var(--tseo-primary);
    color: #fff;
}

.tseo-nav-link-active {
    background: var(--tseo-primary);
    border-color: var(--tseo-primary);
    color: #fff !important;
}

/* ── Tender Grid ─────────────────────────────────────────── */
.tseo-tender-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .tseo-tender-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .tseo-tender-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ── Tender Card ─────────────────────────────────────────── */
.tseo-tender-card {
    background: #fff;
    border: 1px solid var(--tseo-border);
    border-radius: var(--tseo-radius);
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    box-shadow: var(--tseo-shadow);
    transition: box-shadow .2s, transform .2s;
}

.tseo-tender-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
    transform: translateY(-2px);
}

.tseo-card-header {
    margin-bottom: .75rem;
}

.tseo-card-badge {
    display: inline-block;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 700;
    background: var(--tseo-secondary);
    color: var(--tseo-text-muted);
    border-radius: 4px;
    padding: .15rem .5rem;
    margin-bottom: .4rem;
}

.tseo-card-title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
}

.tseo-card-title a {
    color: var(--tseo-text);
    text-decoration: none;
}

.tseo-card-title a:hover {
    color: var(--tseo-primary);
    text-decoration: underline;
}

.tseo-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .6rem;
    font-size: .78rem;
    color: var(--tseo-text-muted);
    margin-bottom: .75rem;
}

.tseo-card-meta a {
    color: var(--tseo-primary);
    text-decoration: none;
}

.tseo-card-deadline {
    font-weight: 600;
    color: var(--tseo-green);
}

.tseo-card-deadline.tseo-critical { color: var(--tseo-red); }
.tseo-card-deadline.tseo-soon     { color: var(--tseo-yellow); }
.tseo-card-deadline.tseo-expired  { color: var(--tseo-grey); text-decoration: line-through; }

.tseo-card-excerpt {
    font-size: .88rem;
    color: var(--tseo-text-muted);
    flex: 1;
    margin-bottom: 1rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tseo-card-footer {
    margin-top: auto;
}

/* ── Buttons ─────────────────────────────────────────────── */
.tseo-btn {
    display: inline-block;
    padding: .5rem 1rem;
    border-radius: 6px;
    font-size: .88rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background .15s, transform .1s;
}

.tseo-btn-primary {
    background: var(--tseo-primary);
    color: #fff;
}

.tseo-btn-primary:hover {
    background: var(--tseo-primary-dark);
    color: #fff;
    transform: translateY(-1px);
}

.tseo-btn-secondary {
    background: var(--tseo-secondary);
    color: var(--tseo-text);
    border: 1px solid var(--tseo-border);
}

/* ── Deadline Banner ─────────────────────────────────────── */
.tseo-deadline-banner {
    display: flex;
    align-items: center;
    gap: .875rem;
    padding: .875rem 1.125rem;
    border-radius: var(--tseo-radius);
    margin: 0 0 1.25rem 0;
    border-width: 1.5px;
    border-style: solid;
    box-sizing: border-box;
    width: 100%;
    flex-wrap: nowrap;
}

.tseo-deadline-open     { background: var(--tseo-green-bg); border-color: #6ee7b7; color: var(--tseo-green); }
.tseo-deadline-soon     { background: var(--tseo-yellow-bg); border-color: #fcd34d; color: var(--tseo-yellow); }
.tseo-deadline-critical { background: var(--tseo-red-bg); border-color: #fca5a5; color: var(--tseo-red); }
.tseo-deadline-expired  { background: var(--tseo-grey-bg); border-color: #d1d5db; color: var(--tseo-grey); }

.tseo-deadline-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 50%;
    background: rgba(0,0,0,.08);
    flex-shrink: 0;
}

.tseo-deadline-icon svg { display: block; }

.tseo-deadline-content {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
}

.tseo-deadline-label {
    display: block;
    font-size: .78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .75;
    margin: 0;
}

.tseo-deadline-date {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}

.tseo-deadline-urgency {
    display: block;
    font-size: .82rem;
    font-weight: 500;
    opacity: .85;
    margin: 0;
}

@media (max-width: 480px) {
    .tseo-deadline-banner { flex-wrap: wrap; }
}

/* ── Internal Links ──────────────────────────────────────── */
.tseo-internal-links {
    background: var(--tseo-secondary);
    border: 1px solid var(--tseo-border);
    border-radius: var(--tseo-radius);
    padding: 1rem 1.25rem;
    margin-top: 2rem;
}

.tseo-internal-links-heading {
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--tseo-text-muted);
    margin: 0 0 .6rem;
}

.tseo-links-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.tseo-internal-link {
    display: inline-block;
    background: #fff;
    border: 1.5px solid var(--tseo-border);
    border-radius: 6px;
    padding: .35rem .75rem;
    font-size: .85rem;
    color: var(--tseo-primary);
    text-decoration: none;
    transition: background .15s, color .15s;
}

.tseo-internal-link:hover {
    background: var(--tseo-primary);
    color: #fff;
    border-color: var(--tseo-primary);
}

/* ── Keyword Highlight ───────────────────────────────────── */
mark.tseo-highlight {
    background: #fef9c3;
    color: inherit;
    border-radius: 2px;
    padding: 0 2px;
}

/* ── Pagination ──────────────────────────────────────────── */
.tseo-pagination {
    margin-top: 2.5rem;
    display: flex;
    justify-content: center;
}

.tseo-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 .5rem;
    border: 1.5px solid var(--tseo-border);
    border-radius: 6px;
    margin: 0 2px;
    text-decoration: none;
    color: var(--tseo-text);
    font-size: .88rem;
    transition: background .15s;
}

.tseo-pagination .page-numbers.current {
    background: var(--tseo-primary);
    border-color: var(--tseo-primary);
    color: #fff;
}

.tseo-pagination .page-numbers:hover:not(.current) {
    background: var(--tseo-secondary);
}

/* ── Breadcrumb ──────────────────────────────────────────── */
.tseo-breadcrumb {
    margin-top: 1rem;
}

.tseo-breadcrumb-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    font-size: .85rem;
    color: var(--tseo-text-muted);
}

.tseo-breadcrumb-list a {
    color: var(--tseo-primary);
    text-decoration: none;
}

.tseo-breadcrumb-sep {
    color: var(--tseo-border);
}

/* ── No Results ──────────────────────────────────────────── */
.tseo-no-results {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--tseo-text-muted);
    font-size: 1rem;
}

.tseo-no-results-actions {
    display: flex;
    gap: .75rem;
    justify-content: center;
    margin-top: 1rem;
    flex-wrap: wrap;
}
