:root {
    --tff-watermark-url: url('../assets/tff-watermark.png');
}

body {
    font-family: 'DM Sans', system-ui, sans-serif;
    background-color: #0c1220;
    color: #d1dae8;
}

.font-display {
    font-family: 'Barlow Condensed', system-ui, sans-serif;
}

.font-mono {
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
}

.platform-stripe {
    height: 6px;
    background: repeating-linear-gradient(-45deg,
            #f5c518 0, #f5c518 12px,
            #0c1220 12px, #0c1220 24px);
}

.track-bg {
    background-image:
        linear-gradient(90deg, rgba(61, 79, 102, 0.12) 1px, transparent 1px),
        linear-gradient(rgba(61, 79, 102, 0.06) 1px, transparent 1px);
    background-size: 48px 48px;
}

.sticky-header {
    position: sticky;
    top: 0;
    z-index: 1000;
}

/* Breadcrumbs */
.fleet-breadcrumbs {
    border-bottom: 1px solid #2a3a52;
    background: rgba(12, 18, 32, 0.65);
    max-width: 72rem;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
    width: 100%;
}

.fleet-breadcrumbs-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0.55rem 0;
    font-family: 'IBM Plex Mono', ui-monospace, monospace;
    font-size: 0.65rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fleet-breadcrumbs-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #6b7f99;
}

.fleet-breadcrumbs-item:not(:last-child)::after {
    content: '›';
    color: #3d4f66;
    font-size: 0.75rem;
    margin-left: 0.15rem;
}

.fleet-breadcrumbs-item a {
    color: #8fa3bf;
    text-decoration: none;
    transition: color 0.15s ease;
}

.fleet-breadcrumbs-item a:hover {
    color: #f5c518;
}

.fleet-breadcrumbs-item.is-current span {
    color: #f5c518;
}


.livery-bar {
    height: 4px;
    border-radius: 999px 999px 0 0;
}

.livery-tfw {
    background: linear-gradient(90deg, #c8102e, #c8102e 50%, #fff 50%, #fff);
}

.livery-fb {
    background: linear-gradient(90deg, #e4002b, #662d91);
}

.livery-rur {
    background: linear-gradient(90deg, #2d6a4f, #95d5b2);
}

.livery-metro {
    background: linear-gradient(90deg, #e4002b, #b91c1c);
}

.livery-tfi {
    background: linear-gradient(90deg, #169b62 0%, #169b62 30%, #f5f5f5 45%, #ff883e 70%, #ff883e 100%);
}

.livery-nr {
    background: linear-gradient(90deg, #f58220, #e35205 55%, #1d1d1b 55%, #1d1d1b);
}

.rail-card {
    background: linear-gradient(145deg, rgba(26, 36, 56, 0.95) 0%, rgba(20, 28, 46, 0.98) 100%);
    border: 1px solid #2a3a52;
}

.btn-primary {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: #f5c518;
    color: #0c1220;
    transition: background 0.2s ease, transform 0.15s ease;
}

.btn-primary:hover {
    background: #ffe066;
    transform: translateY(-1px);
}

.btn-secondary {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border: 1px solid #3d4f66;
    background: transparent;
    color: #d1dae8;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.btn-secondary:hover {
    border-color: #f5c518;
    color: #f5c518;
}

.fleet-nav-link {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.45rem 0.85rem;
    border: 1px solid #2a3a52;
    border-radius: 4px;
    color: #9ca8bc;
    text-align: center;
    line-height: 1.2;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
}

@media (max-width: 639px) {
    .fleet-nav-link {
        font-size: 0.7rem;
        padding: 0.4rem 0.6rem;
    }
}

.fleet-nav-link:hover {
    border-color: rgba(245, 197, 24, 0.5);
    color: #f5c518;
}

.fleet-nav-link.is-active {
    border-color: #f5c518;
    background: rgba(245, 197, 24, 0.1);
    color: #f5c518;
}

.fleet-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
}

.fleet-item {
    border: 1px solid #2a3a52;
    border-radius: 4px;
    overflow: hidden;
    background: #141c2e;
    transition: border-color 0.2s ease;
}

.fleet-item:hover {
    border-color: rgba(245, 197, 24, 0.45);
}

.fleet-item .tff-watermark-wrap {
    aspect-ratio: 16 / 9;
    background: #0f1a2a;
}

.fleet-item .tff-watermark-wrap > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fleet-item-caption {
    padding: 0.75rem 1rem;
    font-size: 0.8rem;
    color: #9ca8bc;
    line-height: 1.45;
}

.fleet-item-tag {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #f5c518;
    margin-bottom: 0.25rem;
}

.fleet-empty {
    text-align: center;
    padding: 3rem 1.5rem;
    border: 1px dashed #2a3a52;
    border-radius: 4px;
    color: #6b7d96;
}

.fleet-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(12, 18, 32, 0.92);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.fleet-lightbox.is-open {
    display: flex;
}

.fleet-lightbox-inner {
    max-width: min(1100px, 100%);
    max-height: 90vh;
    width: 100%;
}

.fleet-lightbox-inner .tff-watermark-wrap {
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid #2a3a52;
}

.fleet-lightbox-inner .tff-watermark-wrap > img {
    max-height: 75vh;
    width: 100%;
    object-fit: contain;
    background: #0f1a2a;
}

.fleet-lightbox-caption {
    text-align: center;
    margin-top: 1rem;
    font-size: 0.9rem;
    color: #b8c5d9;
}

.fleet-lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid #2a3a52;
    border-radius: 4px;
    background: #141c2e;
    color: #f5c518;
    font-size: 1.25rem;
    cursor: pointer;
}

.fleet-lightbox-close:hover {
    border-color: #f5c518;
}
