/* Verejné kampane a stránky služieb používajú spoločnú tému Rezervos. */
html.dark-mode {
    --v8-paper: var(--bg-color);
    --v8-ink: var(--text-primary);
}
html.dark-mode .v8-hub-card,
html.dark-mode .v8-city .v8-hero,
html.dark-mode .v8-master,
html.dark-mode .v8-cards article,
html.dark-mode .v8-programs > a,
html.dark-mode .pf-hero-card,
html.dark-mode .pf-segment-panel,
html.dark-mode .pf-final-box,
html.dark-mode .cz-hero-card,
html.dark-mode .cz-service-panel,
html.dark-mode .cz-final-box {
    background: var(--card-bg);
    color: var(--text-primary);
    border-color: var(--border-color);
    box-shadow: var(--shadow-lg);
}
html.dark-mode .st-hero,
html.dark-mode .st-privacy {
    color: var(--text-primary);
    background: var(--card-bg);
    border-color: var(--border-color);
}
/* Zachovať farebnú identitu kampaní aj na tmavých plochách. */
html.dark-mode .v8-hub-card {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--card-bg) 86%, #0d9488),
        color-mix(in srgb, var(--card-bg) 92%, var(--primary-color)));
    border-color: color-mix(in srgb, var(--border-color) 65%, #0d9488);
}
html.dark-mode .v8-master-main { --v8-card-accent: #38bdf8; }
html.dark-mode .v8-master-ambassador { --v8-card-accent: var(--primary-color); }
html.dark-mode .v8-master-customer { --v8-card-accent: #0d9488; }
html.dark-mode .v8-master-affiliate { --v8-card-accent: #10b981; }
html.dark-mode .v8-hub .v8-master {
    --v8-card-highlight: color-mix(in srgb, var(--v8-card-accent) 50%, var(--text-primary));
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--card-bg) 72%, var(--v8-card-accent)),
        color-mix(in srgb, var(--bg-color) 94%, var(--v8-card-accent)));
    border-color: color-mix(in srgb, var(--border-color) 55%, var(--v8-card-accent));
}
html.dark-mode .v8-hub .v8-master > span {
    color: var(--v8-card-highlight);
    background: color-mix(in srgb, var(--bg-color) 74%, var(--v8-card-accent));
    border-radius: var(--radius-control);
}
html.dark-mode .v8-hub .v8-master small {
    color: var(--v8-card-highlight);
}
html.dark-mode .v8-hub .v8-master p {
    color: color-mix(in srgb, var(--text-secondary) 60%, var(--text-primary));
}
html.dark-mode .v8-hub .v8-master b {
    color: color-mix(in srgb, var(--primary-color) 45%, var(--text-primary));
}
html.dark-mode .v8-hub .v8-master:hover,
html.dark-mode .v8-hub .v8-master:focus-visible {
    border-color: var(--v8-card-highlight);
    box-shadow: var(--shadow-lg);
}
html.dark-mode .st-copy h1 {
    color: var(--text-primary);
}
html.dark-mode .st-copy p,
html.dark-mode .st-privacy p {
    color: var(--text-secondary);
}
html.dark-mode .st-btn.alt,
html.dark-mode .st-card > span {
    color: var(--text-primary);
    background: var(--input-bg);
    border-color: var(--border-color);
}
html.dark-mode .st-logo {
    filter: invert(1) hue-rotate(180deg);
}
.st-privacy, .st-card {
    border-radius: var(--radius-card);
}
.st-btn {
    border-radius: var(--radius-control);
    justify-content: center;
    gap: 8px;
    line-height: 1;
}
.st-btn .material-symbols-outlined {
    font-size: 20px;
    line-height: 1;
    flex-shrink: 0;
}
html.dark-mode .v8-hub-head h1,
html.dark-mode .v8-city .v8-copy,
html.dark-mode .v8-city .v8-copy h2,
html.dark-mode .pf-hero h1,
html.dark-mode .cz-hero h1 {
    color: var(--text-primary);
}
html.dark-mode .v8-hub-head p,
html.dark-mode .v8-hub-points,
html.dark-mode .v8-master small,
html.dark-mode .v8-master p,
html.dark-mode .v8-city-intro p,
html.dark-mode .v8-city .v8-copy > p,
html.dark-mode .v8-city .v8-benefits span,
html.dark-mode .v8-cards p,
html.dark-mode .v8-programs a span,
html.dark-mode .pf-hero-copy > p,
html.dark-mode .pf-points,
html.dark-mode .pf-final p,
html.dark-mode .cz-hero-copy > p,
html.dark-mode .cz-note,
html.dark-mode .cz-final p {
    color: var(--text-secondary);
}
html.dark-mode .v8-city .v8-kicker,
html.dark-mode .v8-city .v8-benefits b,
html.dark-mode .pf-kicker,
html.dark-mode .pf-segment .material-symbols-outlined,
html.dark-mode .cz-kicker {
    color: var(--primary-color);
}
html.dark-mode .v8-city .v8-benefits div,
html.dark-mode .v8-city .v8-share,
html.dark-mode .v8-hub-label,
html.dark-mode .pf-segment,
html.dark-mode .pf-btn-light,
html.dark-mode .pf-live,
html.dark-mode .cz-btn-white,
html.dark-mode .cz-video-label {
    color: var(--text-primary);
    background: var(--input-bg);
    border-color: var(--border-color);
}
html.dark-mode .v8-master > span,
html.dark-mode .pf-proof-icon,
html.dark-mode .cz-proof-icon {
    color: var(--primary-color);
    background: var(--input-bg);
}
html.dark-mode .v8-hub-logo,
html.dark-mode .v8-copy-logo,
html.dark-mode .pf-logo,
html.dark-mode .pf-final-logo,
html.dark-mode .cz-logo,
html.dark-mode .cz-final-logo {
    filter: invert(1) hue-rotate(180deg);
}
.v8-master, .v8-cards article, .v8-programs > a,
.pf-segment-panel, .cz-service-panel, .v8-share-modal {
    border-radius: var(--radius-card);
}
.v8-primary, .v8-share, .v8-city .v8-primary, .v8-city .v8-share,
.v8-back, .v8-city .v8-back, .v8-share-copy, .v8-share-close,
.pf-btn, .pf-segment, .cz-btn {
    border-radius: var(--radius-control);
}
.v8-primary, .v8-share, .v8-share-copy, .pf-btn, .cz-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    line-height: 1;
}
.v8-share-close {
    width: 44px;
    height: 44px;
    background: var(--input-bg);
}
html.dark-mode .v8-share-modal {
    color: var(--text-primary);
    background: var(--card-bg);
    border-color: var(--border-color);
}
html.dark-mode .v8-share-modal .v8-social-link {
    color: var(--primary-color);
    border-color: var(--primary-color);
    background: var(--input-bg);
}
html.dark-mode .v8-share-modal .v8-social-link:hover {
    color: var(--text-primary);
    background: var(--primary-hover);
}
:is(.v8-primary, .v8-share, .v8-share-copy, .pf-btn, .cz-btn) .material-symbols-outlined {
    font-size: 20px;
    line-height: 1;
    flex-shrink: 0;
}
:is(.v8-hub, .v8-city, .pf-page, .cz-page) :is(a, button, input):focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
    :is(.v8-hub, .v8-city, .pf-page, .cz-page) *, .v8-share-overlay, .v8-share-modal {
        animation: none !important;
        transition: none !important;
    }
}
