/* Shared visual defaults. Elementor remains responsible for page composition. */
/* Error recovery: a normal server-rendered 404 with usable navigation. */
.kubhd-block-not_found { width: 100%; max-width: 820px; margin-inline: auto; }
.kubhd-error-panel {
    position: relative;
    padding: clamp(28px, 6vw, 64px);
    overflow: hidden;
    border: 1px solid var(--kubhd-border);
    border-radius: 24px;
    background: radial-gradient(ellipse at top right, #24466b 0, transparent 65%), var(--kubhd-surface);
}
.kubhd-error-code { font-size: clamp(84px, 17vw, 144px); line-height: 1; font-weight: 800; letter-spacing: -.07em; color: #74b7ff; margin-bottom: 24px; }
.kubhd-error-eyebrow { color: #a9c9ee; font-size: 13px; letter-spacing: .08em; margin: 0 0 12px; }
.kubhd-layout .kubhd-error-panel h1 { font-size: clamp(27px, 4vw, 42px); line-height: 1.5; margin: 0 0 16px; color: #f1f6fc; }
.kubhd-error-description { color: #c1cddd; font-size: 16px; line-height: 1.85; margin: 0 0 28px; }
.kubhd-error-search form { display: flex; align-items: stretch; gap: 8px; }
.kubhd-error-search label { min-width: 0; flex: 1; }
.kubhd-error-search input[type="search"] { width: 100%; min-width: 0; height: 52px; padding: 12px 16px; border: 1px solid #5c7591; border-radius: 12px; background: #111c2b; color: #f1f6fc; font-size: 16px; }
.kubhd-error-search input::placeholder { color: #aebed1; }
.kubhd-error-search button { min-height: 52px; padding: 12px 20px; border: 0; border-radius: 12px; background: #2563eb; color: #fff; font-weight: 600; }
.kubhd-error-search button:hover { background: #1d4ed8; }
.kubhd-error-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 20px; }
.kubhd-error-actions a { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; color: #b8d7ff; text-decoration: none; }
.kubhd-error-actions .kubhd-error-home { padding: 10px 16px; border: 1px solid #5c7591; border-radius: 10px; color: #f1f6fc; }
.kubhd-error-actions a:hover { color: #fff; text-decoration: underline; }
.kubhd-error-panel :is(a,button,input):focus-visible, .kubhd-url-suggestions a:focus-visible { outline: 3px solid #93c5fd; outline-offset: 3px; }
.kubhd-url-suggestions { padding: 24px; margin-top: 24px; border: 1px solid var(--kubhd-border); border-radius: 16px; background: var(--kubhd-surface); }
.kubhd-layout .kubhd-url-suggestions h2 { margin: 0 0 16px; font-size: 20px; line-height: 1.6; }
.kubhd-url-suggestions ul { list-style: none; margin: 0; padding: 0; }
.kubhd-url-suggestions li + li { border-top: 1px solid var(--kubhd-border); }
.kubhd-url-suggestions a { display: block; padding: 12px 0; min-height: 44px; color: #b8d7ff; overflow-wrap: anywhere; }
.kubhd-url-suggestions a:hover { text-decoration: underline; color: #fff; }
@media (max-width: 400px) {
    .kubhd-error-panel { padding: 24px 18px; border-radius: 16px; }
    .kubhd-error-search form { flex-direction: column; }
    .kubhd-error-actions { gap: 8px; flex-direction: column; align-items: stretch; }
    .kubhd-error-actions a { padding: 10px 16px; }
    .kubhd-error-description br { display: none; }
}

.kubhd-pagination-desktop { display: flex; flex-wrap: wrap; gap: 8px; }
.kubhd-pagination-mobile { display: none; }
@media (max-width: 767px) {
    .kubhd-pagination-desktop { display: none; }
    .kubhd-pagination-mobile { display: flex; justify-content: center; flex-wrap: nowrap; gap: 6px; width: 100%; }
    .kubhd-layout .kubhd-pagination-mobile .page-numbers {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        flex: 0 0 44px;
        min-width: 44px;
        height: 44px;
        margin: 0;
        padding: 0 4px;
        font-size: 14px;
        line-height: 1;
    }
}

.kubhd-archive-description {
    margin-top: 16px;
    border: 1px solid var(--kubhd-border);
    border-radius: 12px;
    background: var(--kubhd-surface);
}
.kubhd-archive-description > summary {
    padding: 12px 16px;
    min-height: 44px;
    box-sizing: border-box;
    cursor: pointer;
    color: var(--kubhd-accent);
    font-weight: 600;
}
.kubhd-archive-description > summary:focus-visible {
    outline: 2px solid var(--kubhd-accent);
    outline-offset: 3px;
}
.kubhd-archive-description .kubhd-description-less,
.kubhd-archive-description[open] .kubhd-description-more { display: none; }
.kubhd-archive-description[open] .kubhd-description-less { display: inline; }
.kubhd-archive-description > .kubhd-archive-copy { padding: 0 16px 16px; }
.kubhd-archive-copy { overflow-wrap: anywhere; line-height: 1.85; }
.kubhd-archive-copy p { margin: 0 0 1em; }
.kubhd-archive-copy h2, .kubhd-archive-copy h3 { margin: 1em 0 .6em; }
.kubhd-archive-copy img { max-width: 100%; height: auto; }
.kubhd-archive-copy ul, .kubhd-archive-copy ol { padding-inline-start: 1.5em; }

:root {
    --kubhd-page: #111923;
    --kubhd-surface: #1c2735;
    --kubhd-inset: #121d2b;
    --kubhd-border: #344357;
    --kubhd-text: #e5edf7;
    --kubhd-muted: #aebed1;
    --kubhd-accent: #60a5fa;
    --kubhd-radius: 16px;
    --kubhd-space: 24px;
}

body[class] {
    background: var(--kubhd-page);
    color: var(--kubhd-text);
    font-family: system-ui, sans-serif;
    line-height: 1.7;
}

/* A single spacing rhythm for Elementor's main and sidebar columns. */
.kubhd-layout {
    padding: 28px 24px 40px;
}

.kubhd-layout > .elementor > .e-con {
    gap: var(--kubhd-space);
    padding: 0;
}

.kubhd-layout > .elementor > .e-con > .e-con {
    gap: var(--kubhd-space);
    padding: 0;
}

.kubhd-layout .kubhd-block > :last-child {
    margin-bottom: 0;
}

.kubhd-layout h1,
.kubhd-layout .elementor-heading-title {
    color: var(--kubhd-text);
    line-height: 1.55;
    text-wrap: pretty;
}

.kubhd-layout h1 {
    margin: 0;
    font-size: clamp(24px, 2.2vw, 32px);
}

.kubhd-layout h2,
.kubhd-layout .kubhd-e-catalog h2 {
    font-size: clamp(20px, 1.7vw, 24px);
    line-height: 1.6;
}

/* Catalog panels use the same shape and spacing across page types. */
.kubhd-layout .kubhd-e-catalog,
.kubhd-block-latest,
.kubhd-block-archive,
.kubhd-block-top,
.kubhd-block-related > section,
.kubhd-block-home_categories > section {
    box-sizing: border-box;
    padding: var(--kubhd-space);
    border: 1px solid var(--kubhd-border);
    border-radius: var(--kubhd-radius);
    background: var(--kubhd-surface);
    color: var(--kubhd-text);
}

.kubhd-layout .kubhd-card-grid,
.kubhd-layout .kubhd-e-grid {
    column-gap: 16px;
    row-gap: 24px;
}

.kubhd-layout .kubhd-card .title span {
    color: var(--kubhd-text);
    font-size: 14px;
    line-height: 1.65;
    min-height: 3.3em;
}

.kubhd-layout .kubhd-card .title a:hover span {
    color: var(--kubhd-accent);
}

.kubhd-layout .kubhd-poster {
    background: var(--kubhd-inset);
    box-shadow: 0 2px 10px rgb(0 0 0 / 14%);
}

.kubhd-block-top > .kubhd-card-grid > div > span {
    display: inline-grid;
    place-items: center;
    min-width: 32px;
    height: 32px;
    margin-bottom: 10px;
    border: 1px solid #416895;
    border-radius: 10px;
    background: #203b59;
    color: #dbeafe;
    font-size: 14px;
    font-weight: 700;
}

/* Readable details and summaries; player aspect ratios are kept intact. */
.kubhd-layout .kubhd-trailer,
.kubhd-layout .post-content,
.kubhd-block-detail > div > div {
    border-color: var(--kubhd-border);
    border-radius: var(--kubhd-radius);
    background: var(--kubhd-inset);
}

.kubhd-layout .movie-summary {
    color: var(--kubhd-text);
    font-size: 16px;
    line-height: 1.9;
}

.kubhd-layout .movie-summary p {
    margin-bottom: 1em;
}

.kubhd-layout .movie-summary.collapsed::after {
    background: linear-gradient(transparent, var(--kubhd-inset));
}

.kubhd-layout #toggle-summary,
.kubhd-layout .season-btn,
.kubhd-layout .ep {
    min-height: 44px;
    line-height: 1.6;
    font-size: 14px;
}

.kubhd-layout #toggle-summary {
    padding: 10px 18px;
    border-color: var(--kubhd-border);
    color: var(--kubhd-text);
}

.kubhd-layout #uni-video {
    border-radius: var(--kubhd-radius);
    background: #080d14;
}

.kubhd-layout .kubhd-trailer {
    overflow: hidden;
}

.kubhd-layout #season {
    height: auto;
    min-height: 48px;
    margin-top: 16px;
    padding-bottom: 6px;
}

/* Sidebar navigation has a clear hierarchy and generous tap targets. */
.kubhd-layout .sidebar .widget {
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid var(--kubhd-border);
    background: var(--kubhd-surface);
}

.kubhd-layout .sidebar h2,
.kubhd-layout .sidebar .widget-title {
    margin: 0 0 12px;
    padding: 0 0 10px;
    font-size: 17px;
    color: var(--kubhd-text);
    line-height: 1.6;
    border-color: var(--kubhd-border);
}

.kubhd-layout .sidebar li {
    margin-bottom: 6px;
    border-radius: 8px;
    background: var(--kubhd-inset);
}

.kubhd-layout .sidebar li a {
    min-height: 42px;
    padding: 9px 12px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--kubhd-muted);
}

.kubhd-layout .sidebar a:hover {
    color: #fff;
    background: #253950;
    border-radius: 8px;
}

/* Header/footer share the page palette; mobile disclosure lives in style.css. */
.elementor .kubhd-header.e-con {
    background: var(--kubhd-surface);
    border-bottom: 1px solid var(--kubhd-border);
}

.kubhd-header nav a:hover,
.kubhd-header nav a[aria-current="page"] {
    color: #93c5fd;
}

.elementor .kubhd-footer.e-con {
    gap: 24px;
    padding: 28px;
    border-top: 1px solid var(--kubhd-border);
    background: var(--kubhd-surface);
}

.kubhd-footer .kubhd-block-footer_seo {
    color: var(--kubhd-muted);
    font-size: 15px;
    line-height: 1.9;
}

.kubhd-footer h2,
.kubhd-footer h3 {
    color: var(--kubhd-text);
    line-height: 1.6;
}

.kubhd-layout .page-numbers {
    min-width: 44px;
    min-height: 44px;
    text-align: center;
    border: 1px solid var(--kubhd-border);
    color: var(--kubhd-text);
}

@media (max-width: 767px) {
    :root { --kubhd-space: 16px; --kubhd-radius: 12px; }
    .kubhd-layout { padding: 20px 12px 28px; }
    .kubhd-layout .kubhd-card-grid,
    .kubhd-layout .kubhd-e-grid { gap: 20px 12px; }
    .kubhd-layout .kubhd-card .title span { font-size: 13px; }
    /* The click-to-load facade already shows the poster; avoid repeating it. */
    .kubhd-trailer:not(.kubhd-trailer--poster-only) .kubhd-trailer-poster {
        display: none;
    }
    .elementor .kubhd-footer.e-con { padding: 20px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .kubhd-layout .kubhd-poster img { transition: none; }
}
