:root {
    --vt-bg: #14141a;
    --vt-bg-alt: #1c1c24;
    --vt-card: #22222b;
    --vt-border: #33333d;
    --vt-red: #e0263e;
    --vt-red-dark: #b81e32;
    --vt-gold: #f2b134;
    --vt-text: #eceef1;
    --vt-text-muted: #9a9ba4;
    --vt-green: #35c46a;

    /* Bootstrap defaults to near-black text via these variables — override for the dark theme
       so .table cells, .text-muted, links, etc. stay readable without per-component patches. */
    --bs-body-color: var(--vt-text);
    --bs-body-bg: var(--vt-bg);
    --bs-secondary-color: var(--vt-text-muted);
    --bs-border-color: var(--vt-border);
    --bs-heading-color: var(--vt-text);
    --bs-link-color: var(--vt-red);
    --bs-link-hover-color: var(--vt-gold);
    --bs-table-color: var(--vt-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--vt-border);
    --bs-table-striped-color: var(--vt-text);
    --bs-table-hover-color: var(--vt-text);
}

body {
    background: var(--vt-bg);
    color: var(--vt-text);
    font-family: 'Inter', system-ui, sans-serif;
}

h1, h2, h3, h4, h5, h6, .brand-name, .hero-title, .section-title, .cover-title, .cover-title-large {
    font-family: 'Bebas Neue', 'Inter', sans-serif;
    letter-spacing: 0.02em;
}

a { color: var(--vt-red); }
a:hover { color: var(--vt-gold); }

/* ── Header ── */
.site-header { background: var(--vt-bg-alt); border-bottom: 1px solid var(--vt-border); }
.navbar-brand { display: flex; align-items: center; text-decoration: none; }
.brand-name { color: var(--vt-text); font-size: 1.4rem; }
.nav-link { color: var(--vt-text-muted) !important; position: relative; }
.nav-link:hover { color: var(--vt-text) !important; }
.nav-link.active { color: var(--vt-text) !important; font-weight: 600; }
.nav-link.active::after {
    content: ""; position: absolute; left: 0.5rem; right: 0.5rem; bottom: -2px;
    height: 2px; background: var(--vt-red); border-radius: 2px;
}
@media (max-width: 991.98px) { .nav-link.active::after { left: 0; right: auto; width: 24px; } }
.navbar-toggler .navbar-toggler-icon { filter: invert(1); }

.btn-rent-now, .btn-admin-primary {
    background: var(--vt-red); color: #fff !important; border: none; border-radius: 6px;
    padding: 0.55rem 1.4rem; font-weight: 600; text-decoration: none; display: inline-block;
    transition: background .2s;
}
.btn-rent-now:hover, .btn-admin-primary:hover { background: var(--vt-red-dark); color: #fff !important; }

.btn-outline-light-custom {
    border: 1px solid var(--vt-border); color: var(--vt-text) !important; border-radius: 6px;
    padding: 0.55rem 1.4rem; text-decoration: none; display: inline-block; transition: border-color .2s;
}
.btn-outline-light-custom:hover { border-color: var(--vt-red); }

/* ── Hero ── */
.hero-section { background: linear-gradient(135deg, var(--vt-bg-alt), var(--vt-bg)); padding: 5rem 0; border-bottom: 1px solid var(--vt-border); }
.hero-badge { background: rgba(224,38,62,.15); color: var(--vt-red); border-radius: 50px; padding: 0.35rem 1rem; font-size: 0.8rem; font-weight: 600; display: inline-block; margin-bottom: 1rem; }
.hero-title { font-size: 3.2rem; color: var(--vt-text); }
.hero-subtitle { color: var(--vt-text-muted); font-size: 1.1rem; max-width: 560px; }
.hero-facts { margin-top: 1.5rem; }
.hero-fact { color: var(--vt-text-muted); font-size: 0.95rem; margin-bottom: 0.4rem; }
.hero-fact i { color: var(--vt-red); margin-right: 0.5rem; }
.hero-icon { font-size: 12rem; color: var(--vt-border); }

/* ── Sections ── */
.section-title { color: var(--vt-text); font-size: 2rem; }
.divider-red { width: 60px; height: 4px; background: var(--vt-red); border-radius: 2px; margin-top: 0.5rem; }
.bg-dark-alt { background: var(--vt-bg-alt); }

/* ── Service pillars ── */
.pillar-card {
    background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 12px;
    padding: 2rem; display: block; text-decoration: none; color: var(--vt-text);
    height: 100%; transition: border-color .2s, transform .2s;
}
.pillar-card:hover { border-color: var(--vt-red); transform: translateY(-3px); color: var(--vt-text); }
.pillar-icon { font-size: 2.2rem; color: var(--vt-red); margin-bottom: 1rem; display: block; }

/* ── Mini carousel ── */
.mini-carousel { display: flex; align-items: center; gap: 0.75rem; }
.mini-carousel-viewport { overflow: hidden; flex: 1; }
.mini-carousel-track { display: flex; gap: 1rem; }
.mini-carousel-item { flex: 0 0 auto; width: calc(25% - 0.75rem); }
@media (max-width: 767.98px) { .mini-carousel-item { width: calc(50% - 0.5rem); } }
.mini-carousel-btn {
    background: var(--vt-card); border: 1px solid var(--vt-border); color: var(--vt-text);
    width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; cursor: pointer;
}
.mini-carousel-btn:hover { border-color: var(--vt-red); color: var(--vt-red); }

/* ── Product card ── */
.product-card { display: block; text-decoration: none; color: var(--vt-text); background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 10px; overflow: hidden; transition: border-color .2s, transform .2s; height: 100%; }
.product-card:hover { border-color: var(--vt-red); transform: translateY(-2px); color: var(--vt-text); }
.product-cover, .product-cover-large {
    position: relative; aspect-ratio: 2 / 3; display: flex; flex-direction: column; align-items: center;
    justify-content: center; text-align: center; padding: 1rem; overflow: hidden;
    background: linear-gradient(160deg, #2b2b35, #1a1a20);
}
.product-cover.type-PS5, .product-cover-large.type-PS5,
.product-cover.type-Xbox, .product-cover-large.type-Xbox { background: linear-gradient(160deg, #2f2320, #1a1a20); }
.cover-icon { font-size: 2.4rem; color: var(--vt-red); margin-bottom: 0.5rem; }
.cover-icon-large { font-size: 3.5rem; color: var(--vt-red); margin-bottom: 0.75rem; }
.cover-title { font-size: 0.95rem; color: var(--vt-text-muted); padding: 0 0.5rem; }
.cover-title-large { font-size: 1.3rem; color: var(--vt-text-muted); padding: 0 0.75rem; }
.badge-discount { position: absolute; top: 8px; left: 8px; background: var(--vt-red); color: #fff; font-size: 0.75rem; font-weight: 700; padding: 0.15rem 0.5rem; border-radius: 4px; }
.badge-fsk { position: absolute; top: 8px; right: 8px; background: rgba(0,0,0,.6); color: var(--vt-gold); font-size: 0.7rem; font-weight: 700; padding: 0.15rem 0.4rem; border-radius: 4px; }
.product-card-body { padding: 0.85rem; }
.product-title { font-size: 0.95rem; margin-bottom: 0.4rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-meta { display: flex; justify-content: space-between; align-items: center; font-size: 0.75rem; margin-bottom: 0.5rem; }
.badge-type { background: var(--vt-bg-alt); color: var(--vt-text-muted); border-radius: 4px; padding: 0.1rem 0.4rem; }
.stock-indicator { display: flex; align-items: center; gap: 0.3rem; color: var(--vt-text-muted); }
.dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dot-available { background: var(--vt-green); }
.dot-rented { background: var(--vt-red); }
.product-price { font-size: 0.85rem; }
.price-old { color: var(--vt-text-muted); text-decoration: line-through; margin-right: 0.35rem; font-size: 0.8rem; }

/* ── Filter bar ── */
.filter-bar { background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 10px; padding: 1.25rem; }
.filter-label { font-size: 0.78rem; color: var(--vt-text-muted); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.3rem; display: block; }
.filter-select, .form-control.filter-select { background: var(--vt-bg-alt); border: 1px solid var(--vt-border); color: var(--vt-text); }
.filter-select:focus { background: var(--vt-bg-alt); color: var(--vt-text); border-color: var(--vt-red); box-shadow: 0 0 0 0.2rem rgba(224,38,62,.2); }
.availability-toggle .btn-outline-toggle { border: 1px solid var(--vt-border); color: var(--vt-text-muted); background: var(--vt-bg-alt); }
.btn-check:checked + .btn-outline-toggle { background: var(--vt-red); border-color: var(--vt-red); color: #fff; }
.discount-switch .form-check-input:checked { background-color: var(--vt-red); border-color: var(--vt-red); }
.discount-switch .form-check-label { color: var(--vt-text-muted); }

/* ── Detail page ── */
.detail-table { background: transparent; color: var(--vt-text); }
.detail-table th { color: var(--vt-text-muted); font-weight: 500; width: 160px; border-color: var(--vt-border); }
.detail-table td { border-color: var(--vt-border); }
.pricing-box { background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 10px; padding: 1rem 1.25rem; }
.price-row { display: flex; justify-content: space-between; padding: 0.4rem 0; }
.price-row + .price-row { border-top: 1px solid var(--vt-border); }
.reservation-module { background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 10px; padding: 1.5rem; }

/* ── Paketshop ── */
.carrier-badge {
    background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 10px; padding: 1.5rem 1rem;
    display: flex; flex-direction: column; align-items: center; gap: 0.5rem; font-weight: 700; font-size: 1rem;
}
.carrier-badge i { font-size: 1.8rem; color: var(--vt-red); }
.pickup-guide-card { background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 10px; padding: 1.5rem; height: 100%; }
.guide-icon { font-size: 1.8rem; color: var(--vt-red); margin-bottom: 0.75rem; display: block; }
.alert-info-custom { background: rgba(242,177,52,.12); border: 1px solid rgba(242,177,52,.3); color: var(--vt-gold); border-radius: 8px; padding: 1rem; }
.col-lg-2-4 { flex: 0 0 20%; max-width: 20%; }
@media (max-width: 991.98px) { .col-lg-2-4 { flex: 0 0 33.33%; max-width: 33.33%; } }

/* ── Tariff tables (dashboard) ── */
.tariff-table { color: var(--vt-text); }
.tariff-table th { color: var(--vt-text-muted); border-color: var(--vt-border); font-weight: 600; }
.tariff-table td { border-color: var(--vt-border); }
.tariff-group-row td { color: var(--vt-red); font-weight: 700; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.04em; padding-top: 1rem; }

/* ── Tariff cards (Internet & Büroservice page) ── */
.tariff-card {
    background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 12px;
    overflow: hidden; height: 100%;
}
.tariff-card-header {
    background: linear-gradient(135deg, rgba(224,38,62,.18), rgba(224,38,62,.04));
    border-bottom: 1px solid var(--vt-border); padding: 1rem 1.25rem;
    display: flex; align-items: center; gap: 0.6rem;
    font-family: 'Bebas Neue', 'Inter', sans-serif; font-size: 1.15rem; letter-spacing: 0.02em;
}
.tariff-card-header i { color: var(--vt-red); font-size: 1.3rem; }
.tariff-list { list-style: none; margin: 0; padding: 0.5rem 0; }
.tariff-list li {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.7rem 1.25rem; border-bottom: 1px solid var(--vt-border);
}
.tariff-list li:last-child { border-bottom: none; }
.tariff-list li:hover { background: rgba(255,255,255,.02); }
.tariff-duration { color: var(--vt-text-muted); font-size: 0.92rem; }
.tariff-duration i { color: var(--vt-red); }
.tariff-price { font-weight: 700; color: var(--vt-gold); font-size: 1.02rem; }

/* ── Office service matrix table ── */
.office-matrix-table { color: var(--vt-text); background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 12px; overflow: hidden; }
.office-matrix-table thead th {
    color: var(--vt-text-muted); border-color: var(--vt-border); font-weight: 600;
    text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.05em; background: var(--vt-bg-alt);
}
.office-matrix-table td { border-color: var(--vt-border); vertical-align: middle; padding: 0.9rem 1rem; }
.office-matrix-table tbody tr:last-child td { border-bottom: none; }
.office-matrix-table tbody tr:hover { background: rgba(255,255,255,.02); }
.service-icon { color: var(--vt-red); font-size: 1.05rem; }
.price-pill {
    display: inline-block; border-radius: 50px; padding: 0.3rem 0.9rem; font-weight: 700; font-size: 0.88rem;
}
.price-pill-bw { background: rgba(154,155,164,.15); color: var(--vt-text); }
.price-pill-color { background: rgba(242,177,52,.15); color: var(--vt-gold); }

/* ── Auth ── */
.auth-card { background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 12px; padding: 2rem; }

/* ── Member card ── */
.member-card { background: linear-gradient(160deg, var(--vt-card), var(--vt-bg-alt)); border: 1px solid var(--vt-border); border-radius: 14px; padding: 1.75rem; text-align: center; }
.member-card-header { color: var(--vt-red); font-weight: 700; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.04em; }
.member-qr { width: 160px; height: 160px; background: #fff; padding: 8px; border-radius: 8px; }
.member-code { font-family: monospace; letter-spacing: 0.1em; color: var(--vt-gold); font-size: 1rem; }

/* ── Rental status badges ── */
.badge-status { border-radius: 50px; padding: 0.25rem 0.7rem; font-size: 0.75rem; font-weight: 600; }
.badge-active { background: rgba(53,196,106,.15); color: var(--vt-green); }
.badge-overdue { background: rgba(224,38,62,.15); color: var(--vt-red); }

/* ── Kontakt page ── */
.kontakt-card { background: var(--vt-card); border: 1px solid var(--vt-border); border-radius: 12px; padding: 1.5rem; }
.kontakt-card h5 { color: var(--vt-red); margin-bottom: 0.75rem; }
.map-container { border-radius: 12px; overflow: hidden; border: 1px solid var(--vt-border); }
.map-container iframe { display: block; width: 100%; height: 340px; border: none; filter: invert(90%) hue-rotate(180deg); }

.transit-row { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; }
.transit-mode-label { color: var(--vt-text-muted); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; margin-right: 0.5rem; min-width: 40px; }
.transit-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 2.1rem; height: 2.1rem; padding: 0 0.5rem; border-radius: 6px; font-weight: 700; font-size: 0.9rem; }
.transit-badge-tram { background: var(--vt-red); color: #fff; }
.transit-badge-bus { background: var(--vt-bg-alt); border: 1px solid var(--vt-border); color: var(--vt-text); }

/* ── Legal pages ── */
.legal-page h5 { color: var(--vt-red); margin-top: 1.75rem; }
.legal-page { color: var(--vt-text-muted); }

/* ── Footer ── */
.site-footer { background: var(--vt-bg-alt); border-top: 1px solid var(--vt-border); color: var(--vt-text-muted); }
.footer-link { color: var(--vt-text-muted); text-decoration: none; }
.footer-link:hover { color: var(--vt-red); }

/* ── Alerts (public site) ── */
.alert-success { background: rgba(53,196,106,.12); border-color: rgba(53,196,106,.3); color: var(--vt-green); }
.alert-danger { background: rgba(224,38,62,.12); border-color: rgba(224,38,62,.3); color: var(--vt-red); }
