:root {
    --ttjca-bg: transparent;
    --ttjca-panel: #ffffff;
    --ttjca-panel-2: #f6f7f9;
    --ttjca-card-bg: #ffffff;
    --ttjca-soft-bg: rgba(0,0,0,0.025);
    --ttjca-text: #1f2933;
    --ttjca-heading: #111827;
    --ttjca-text-soft: #5f6b7a;
    --ttjca-line: rgba(17,24,39,0.12);
    --ttjca-line-strong: rgba(17,24,39,0.22);
    --ttjca-accent: #a41d1d;
    --ttjca-accent-rgb: 164, 29, 29;
    --ttjca-badge: var(--ttjca-accent);
    --ttjca-max: 1320px;
    --ttjca-hero-main: 50fr;
    --ttjca-hero-side: 50fr;
    --ttjca-hero-height: 470px;
    --ttjca-hover-strength: 0.88;
}

/* Follow common JNews/theme dark-mode body/html classes without forcing a separate TT-only skin. */
html.dark .ttjca-category-archive,
html.dark-mode .ttjca-category-archive,
html[data-theme="dark"] .ttjca-category-archive,
body.dark .ttjca-category-archive,
body.dark-mode .ttjca-category-archive,
body.jnews-dark .ttjca-category-archive,
body.jnews-dark-mode .ttjca-category-archive,
body.jeg_dark_mode .ttjca-category-archive,
body.jeg_darkmode .ttjca-category-archive,
body.wp-dark-mode-active .ttjca-category-archive,
body[data-theme="dark"] .ttjca-category-archive,
.jnews-dark-mode .ttjca-category-archive,
.jeg_dark_mode .ttjca-category-archive {
    --ttjca-bg: transparent;
    --ttjca-panel: #101722;
    --ttjca-panel-2: #111924;
    --ttjca-card-bg: linear-gradient(180deg, rgba(16,23,34,0.86), rgba(13,19,28,0.98));
    --ttjca-soft-bg: rgba(255,255,255,0.02);
    --ttjca-text: #f4f7fb;
    --ttjca-heading: #ffffff;
    --ttjca-text-soft: #b9c3d0;
    --ttjca-line: rgba(255,255,255,0.08);
    --ttjca-line-strong: rgba(255,255,255,0.16);
}

.ttjca-category-archive {
    background: var(--ttjca-bg);
    color: var(--ttjca-text);
    padding-bottom: 48px;
    font-family: inherit;
}

.ttjca-category-archive * {
    box-sizing: border-box;
}

.ttjca-container {
    max-width: var(--ttjca-max);
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
}

.ttjca-title {
    margin: 0 0 12px;
    font-size: clamp(34px, 4.4vw, 58px);
    line-height: 0.98;
    letter-spacing: -0.03em;
    color: var(--ttjca-heading);
    font-family: inherit;
}

.ttjca-title-accent {
    display: block;
    width: 64px;
    height: 4px;
    background: var(--ttjca-accent);
    margin-bottom: 22px;
}

.ttjca-description {
    max-width: 820px;
    color: var(--ttjca-text-soft);
    font-size: 17px;
    line-height: 1.65;
    font-family: inherit;
}

.ttjca-description p { margin: 0; }

.ttjca-hero-mosaic { padding-top: 22px; }

.ttjca-hero-mosaic__grid {
    display: grid;
    grid-template-columns: minmax(0, var(--ttjca-hero-main)) minmax(0, var(--ttjca-hero-side));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 2px;
    border: 1px solid rgba(255,255,255,0.16);
    background: rgba(0,0,0,0.12);
    height: var(--ttjca-hero-height);
}

.ttjca-hero-mosaic__grid--count-1,
.ttjca-hero-mosaic__grid--count-2 {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-template-rows: minmax(320px, 1fr);
    height: auto;
    min-height: 320px;
}

.ttjca-hero-card {
    position: relative;
    overflow: hidden;
    background: #0a1017;
    min-height: 0;
}

.ttjca-hero-card--large { grid-row: 1 / span 2; }

.ttjca-hero-card__link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.ttjca-hero-card__media,
.ttjca-hero-card__placeholder,
.ttjca-hero-card__overlay,
.ttjca-hero-card__hover-overlay {
    position: absolute;
    inset: 0;
}

.ttjca-hero-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.ttjca-hero-card__placeholder {
    background: radial-gradient(circle at top left, rgba(var(--ttjca-accent-rgb),0.55), rgba(14,20,29,0.92));
    display: flex;
    align-items: center;
    justify-content: center;
}

.ttjca-hero-card__placeholder span {
    font-size: clamp(48px, 8vw, 120px);
    line-height: 1;
    font-weight: 900;
    letter-spacing: -0.05em;
    color: rgba(255,255,255,0.22);
}

.ttjca-hero-card__overlay {
    background: linear-gradient(180deg, rgba(5,8,12,0.04) 0%, rgba(5,8,12,0.10) 35%, rgba(5,8,12,0.52) 68%, rgba(5,8,12,0.96) 100%);
    z-index: 1;
}

.ttjca-hero-card__hover-overlay {
    background: linear-gradient(180deg, rgba(0,0,0,0.04) 0%, rgba(0,0,0,0.22) 36%, rgba(0,0,0,0.58) 70%, rgba(0,0,0,var(--ttjca-hover-strength)) 100%);
    opacity: 0;
    transition: opacity 0.35s ease;
    z-index: 2;
    pointer-events: none;
}

.ttjca-hero-card:hover .ttjca-hero-card__hover-overlay,
.ttjca-hero-card:focus-within .ttjca-hero-card__hover-overlay { opacity: 1; }

.ttjca-hero-card:hover .ttjca-hero-card__image,
.ttjca-hero-card:focus-within .ttjca-hero-card__image { transform: scale(1.03); }

.ttjca-hero-card__content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 22px 26px 24px;
}

.ttjca-hero-card__badge {
    display: inline-block;
    margin-bottom: 12px;
    padding: 4px 7px;
    background: var(--ttjca-badge);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    font-family: inherit;
}

.ttjca-hero-card__title {
    margin: 0;
    color: #fff;
    font-size: clamp(22px, 2vw, 28px);
    line-height: 1.1;
    letter-spacing: -0.03em;
    text-shadow: 0 1px 1px rgba(0,0,0,0.32);
    font-family: inherit;
}

.ttjca-hero-card--large .ttjca-hero-card__title { font-size: clamp(30px, 2.8vw, 44px); }

.ttjca-archive-intro { padding: 26px 0 22px; }
.ttjca-archive-intro__copy--full { width: 100%; }
.ttjca-content { padding-top: 4px; }

.ttjca-section-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}

.ttjca-section-rule {
    width: 54px;
    height: 4px;
    background: var(--ttjca-accent);
    flex: 0 0 auto;
}

.ttjca-section-title {
    margin: 0;
    color: var(--ttjca-heading);
    font-size: 18px;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-family: inherit;
}

.ttjca-posts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    width: 100%;
}

.ttjca-card {
    background: var(--ttjca-card-bg);
    border: 1px solid var(--ttjca-line);
    overflow: hidden;
    color: var(--ttjca-text);
}

.ttjca-card-media {
    display: block;
    aspect-ratio: 16 / 9;
    background: #0a1017;
}

.ttjca-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ttjca-card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at top left, rgba(var(--ttjca-accent-rgb),0.36), rgba(14,20,29,0.92));
}

.ttjca-card-placeholder span {
    font-size: 74px;
    font-weight: 900;
    color: rgba(255,255,255,0.18);
}

.ttjca-card-body { padding: 18px 20px 22px; }

.ttjca-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--ttjca-text-soft);
    font-size: 12px;
    line-height: 1.4;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    margin-bottom: 12px;
    font-family: inherit;
}

.ttjca-card-title {
    margin: 0 0 12px;
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.03em;
    font-family: inherit;
}

.ttjca-card-title a,
.ttjca-card-title a:hover,
.ttjca-card-title a:focus {
    color: var(--ttjca-heading);
    text-decoration: none;
}

.ttjca-card-excerpt {
    color: var(--ttjca-text-soft);
    font-size: 15px;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 16px;
    font-family: inherit;
}

.ttjca-read-more {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ttjca-heading);
    text-decoration: none;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: inherit;
}

.ttjca-read-more::before {
    content: "";
    width: 4px;
    height: 22px;
    background: var(--ttjca-accent);
    display: inline-block;
}

.ttjca-ad-strip {
    grid-column: 1 / -1;
    border: 1px solid var(--ttjca-line);
    background: var(--ttjca-card-bg);
    padding: 16px 18px 18px;
}

.ttjca-ad-strip__label {
    color: var(--ttjca-text-soft);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
    margin-bottom: 12px;
    font-family: inherit;
}

.ttjca-ad-strip__inner {
    min-height: 90px;
    border: 1px dashed var(--ttjca-line-strong);
    background: var(--ttjca-soft-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--ttjca-text-soft);
    padding: 16px;
}

.ttjca-pagination { margin-top: 28px; }
.ttjca-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.ttjca-pagination a,
.ttjca-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 14px; border: 1px solid var(--ttjca-line); background: var(--ttjca-soft-bg); color: var(--ttjca-heading); text-decoration: none; }
.ttjca-pagination .current { background: var(--ttjca-accent); border-color: var(--ttjca-accent); color:#fff; }

.ttjca-empty-state { padding: 28px; border: 1px solid var(--ttjca-line); background: var(--ttjca-card-bg); }
.ttjca-empty-state h2 { margin: 0 0 12px; font-size: 28px; line-height: 1.15; color: var(--ttjca-heading); }
.ttjca-empty-state p { margin: 0; color: var(--ttjca-text-soft); }

.ttjca-load-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.ttjca-load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 26px;
    border: 1px solid var(--ttjca-accent);
    background: var(--ttjca-accent);
    color: #fff;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: filter 0.2s ease, opacity 0.2s ease;
    font-family: inherit;
}

.ttjca-load-more:hover,
.ttjca-load-more:focus { filter: brightness(1.08); }

.ttjca-load-more:disabled { cursor: default; opacity: 0.78; }

.ttjca-load-more.is-done {
    background: var(--ttjca-soft-bg);
    border-color: var(--ttjca-line-strong);
    color: var(--ttjca-text-soft);
}

@media (max-width: 767px) {
    .ttjca-container { padding-left: 14px; padding-right: 14px; }
    .ttjca-hero-mosaic { padding-top: 16px; }
    .ttjca-hero-mosaic__grid { grid-template-columns: 1fr; grid-template-rows: none; height: auto; min-height: auto; }
    .ttjca-hero-card,
    .ttjca-hero-card--large { grid-row: auto; min-height: 240px; }
    .ttjca-hero-card__content { padding: 18px 18px 20px; }
    .ttjca-hero-card__title,
    .ttjca-hero-card--large .ttjca-hero-card__title { font-size: 26px; }
    .ttjca-title { font-size: 40px; }
    .ttjca-description { font-size: 16px; }
    .ttjca-posts { grid-template-columns: 1fr; gap: 18px; }
    .ttjca-card-title { font-size: 24px; }
    .ttjca-section-header { gap: 10px; margin-bottom: 18px; }
    .ttjca-section-rule { width: 34px; }
    .ttjca-section-title { font-size: 16px; }
    .ttjca-ad-strip__inner { min-height: 72px; }
}
