/* ==========================================
   skJazz - Webcreator NG Stylesheet
   Dark editorial, jazz identity
   ========================================== */

@font-face {
    font-family: 'Aller';
    src: url('/fonts/Aller_Rg.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Aller';
    src: url('/fonts/Aller-Light.woff') format('woff'),
         url('/fonts/Aller-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

:root {
    /* Brand colours */
    --skj-brand:          #eb6607;
    --skj-brand-dark:     #c44a00;
    --skj-brand-hover:    #ff7a1a;
    --skj-accent-sub:     #f1a157;
    --skj-dropdown-bg:    #fd5500;

    /* Canvas */
    --skj-bg:             #000000;
    --skj-bg-navbar:      #f35d00;
    --skj-bg-sidebar:     #0d0d0d;
    --skj-surface:        #111111;

    /* Borders */
    --skj-border:         #2c2c2c;
    --skj-border-strong:  #464646;

    /* Text */
    --skj-text-body:      #8a8274;
    --skj-text-heading:   #c6c6c6;
    --skj-text-meta:      #949494;
    --skj-text-strong:    #c6c6c6;
    --skj-text-white:     #ffffff;

    /* Fonts */
    --skj-font-body:      'Aller', Arial, Helvetica, sans-serif;
    --skj-font-ui:        'Aller', Arial, Helvetica, sans-serif;
    --skj-font-display:   'Pacifico', cursive;

    /* Spacing (8pt scale) */
    --skj-sp-xs:  4px;
    --skj-sp-sm:  8px;
    --skj-sp-md:  16px;
    --skj-sp-lg:  24px;
    --skj-sp-xl:  32px;
    --skj-sp-2xl: 48px;

    /* Layout */
    --skj-container:      1400px;
    --skj-nav-height:     80px;
    --skj-sidebar-w:      200px;

    /* Transitions */
    --skj-ease:           cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ==========================================
   Reset & Base
   ========================================== */

*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: var(--skj-font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    color: var(--skj-text-body);
    background-color: var(--skj-bg);
    overflow-x: hidden;
    padding-top: var(--skj-nav-height);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--skj-brand);
    text-decoration: none;
    transition: color 0.2s var(--skj-ease);
}

a:hover {
    color: var(--skj-brand-hover);
}

strong, b {
    color: var(--skj-text-strong);
    font-weight: 700;
}

ul, ol {
    list-style: none;
}

/* ==========================================
   Layout helpers
   ========================================== */

.skjazz-container {
    max-width: var(--skj-container);
    margin: 0 auto;
    padding: 0 1.5rem;
}

/*
   Three-column editorial layout:
   left sidebar | main content | right sidebar
   Used on news index and article detail.
*/
.skjazz-news-layout,
.skjazz-article-layout {
    display: grid;
    grid-template-columns: var(--skj-sidebar-w) 1fr var(--skj-sidebar-w);
    grid-template-areas: "left main right";
    gap: 0;
    max-width: var(--skj-container);
    margin: 0 auto;
}

.skjazz-news-main,
.skjazz-article-main {
    grid-area: main;
    padding: 2rem 1.5rem;
    border-left: 1px solid var(--skj-border);
    border-right: 1px solid var(--skj-border);
}

.skjazz-sidebar--left  { grid-area: left; }
.skjazz-sidebar--right { grid-area: right; }

/* ==========================================
   Typography helpers
   ========================================== */

.skjazz-label {
    font-family: var(--skj-font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--skj-brand);
    margin-bottom: 0.6rem;
}

.skjazz-prose {
    font-family: var(--skj-font-body);
    font-size: 1rem;
    color: var(--skj-text-body);
    line-height: 1.65;
}

.skjazz-prose p          { margin-bottom: 1.2rem; text-align: justify; }
.skjazz-prose strong,
.skjazz-prose b          { color: var(--skj-text-strong); }
.skjazz-prose a          { color: var(--skj-brand); text-decoration: underline; }
.skjazz-prose a:hover    { color: var(--skj-brand-hover); }
.skjazz-prose h2,
.skjazz-prose h3,
.skjazz-prose h4 {
    font-family: var(--skj-font-body);
    font-weight: 400;
    color: var(--skj-brand);
    border-bottom: 1px solid var(--skj-border);
    padding-bottom: 0.3rem;
    margin: 1.8rem 0 0.8rem;
}
.skjazz-prose h2 { font-size: 1.25rem; }
.skjazz-prose h3 { font-size: 1.1rem; }
.skjazz-prose img {
    max-width: 100%;
    height: auto;
    border: 1px solid var(--skj-border);
    margin: 1rem 0;
}

/* Old CMS float-based image blocks (pull-left photo-border) */
.skjazz-prose .pull-left,
.skjazz-prose .pull-right {
    float: none;
}
.skjazz-prose .photo-border {
    position: relative;
    display: block;
    width: 100%;
    margin: 1.2rem 0;
    overflow: hidden;
}
.skjazz-prose .photo-border img,
.skjazz-prose .img-responsive {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    border: none;
    margin: 0;
}
.skjazz-prose .photo-border small {
    display: block;
    text-align: center;
    font-size: 0.78rem;
    color: var(--skj-text-muted, #888);
    padding: 0.3rem 0 0;
}
/* Watermark overlay on article inline images */
.skjazz-prose .photo-border::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 55%;
    max-width: 280px;
    min-width: 120px;
    aspect-ratio: 3.5 / 1;
    background: url('/images/skjazz_watermark.png') no-repeat center / contain;
    opacity: 0.45;
    pointer-events: none;
}
.skjazz-prose ul,
.skjazz-prose ol {
    list-style: disc;
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}

/* ==========================================
   Buttons
   ========================================== */

.skjazz-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.65rem 1.5rem;
    font-family: var(--skj-font-ui);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    border-radius: 2px;
    cursor: pointer;
    transition: background 0.2s var(--skj-ease), color 0.2s var(--skj-ease), border-color 0.2s;
    text-decoration: none;
}

.skjazz-btn--primary {
    background: var(--skj-brand);
    color: #fff;
    border: 1px solid var(--skj-brand);
}
.skjazz-btn--primary:hover {
    background: var(--skj-brand-dark);
    border-color: var(--skj-brand-dark);
    color: #fff;
}

.skjazz-btn--outline {
    background: transparent;
    color: var(--skj-brand);
    border: 1px solid var(--skj-brand);
}
.skjazz-btn--outline:hover {
    background: var(--skj-brand);
    color: #fff;
}

/* ==========================================
   Navigation
   ========================================== */

.skjazz-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 200;
    background: var(--skj-bg-navbar);
    border-bottom: 1px solid #1a1a1a;
    height: var(--skj-nav-height);
    display: flex;
    align-items: center;
    transition: background 0.3s var(--skj-ease);
}

.skjazz-nav__inner {
    max-width: var(--skj-container);
    margin: 0 auto;
    padding: 0 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 1rem;
}

.skjazz-nav__logo {
    flex-shrink: 0;
    line-height: 1;
    display: flex;
    align-items: center;
}

.skjazz-nav__logo-img {
    max-height: 60px;
    width: auto;
    display: block;
}

.skjazz-nav__logo-text {
    font-family: var(--skj-font-display);
    font-size: 2rem;
    color: #fff;
    line-height: 1;
}

.skjazz-nav__logo-accent {
    color: var(--skj-brand);
}

/* Desktop links */
.skjazz-nav__links {
    display: flex;
    align-items: center;
    gap: 0;
}

.skjazz-nav__link {
    font-family: var(--skj-font-ui);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.88);
    padding: 10px 10px;
    display: block;
    position: relative;
    text-decoration: none;
    transition: color 0.2s;
}

.skjazz-nav__link::after {
    content: '';
    position: absolute;
    bottom: 4px;
    left: 10px;
    right: 10px;
    height: 2px;
    background: #911520;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.2s var(--skj-ease);
}

.skjazz-nav__link:hover,
.skjazz-nav__link--active {
    color: #fff;
}

.skjazz-nav__link:hover::after,
.skjazz-nav__link--active::after {
    transform: scaleX(1);
}

/* Dropdown */
.skjazz-nav__dropdown {
    position: relative;
}

.skjazz-nav__dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--skj-dropdown-bg);
    min-width: 180px;
    padding: 10px 0 8px;
    z-index: 300;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.skjazz-nav__dropdown:hover .skjazz-nav__dropdown-menu,
.skjazz-nav__dropdown:focus-within .skjazz-nav__dropdown-menu {
    display: block;
}

.skjazz-nav__dropdown-item {
    display: block;
    padding: 8px 16px;
    font-family: var(--skj-font-ui);
    font-size: 0.82rem;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    transition: background 0.15s;
}

.skjazz-nav__dropdown-item:hover,
.skjazz-nav__dropdown-item--active {
    background: rgba(0,0,0,0.25);
    color: #fff;
}

/* Mobile-only search (next to hamburger) */
.skjazz-nav__search-mobile {
    display: none;
}

/* Header search form - visible on desktop, hidden on mobile */
.skjazz-nav__search {
    flex: 1 1 auto;
    max-width: 300px;
    margin: 0 0.75rem;
    position: relative;
    display: flex;
    align-items: center;
}
.skjazz-nav__search-input {
    width: 100%;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 3px;
    color: #fff;
    font-family: var(--skj-font-ui);
    font-size: 0.8rem;
    padding: 5px 32px 5px 10px;
    outline: none;
    transition: background 0.2s, border-color 0.2s;
}
.skjazz-nav__search-input::placeholder { color: rgba(255,255,255,0.38); }
.skjazz-nav__search-input:focus {
    background: rgba(255,255,255,0.13);
    border-color: rgba(255,255,255,0.38);
}
.skjazz-nav__search-btn {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 30px;
    background: none;
    border: none;
    color: rgba(255,255,255,0.5);
    cursor: pointer;
    font-size: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}
.skjazz-nav__search-btn:hover { color: #fff; }

/* Icon links (FB, phone) */
.skjazz-nav__icon-link {
    padding: 10px 8px;
    color: rgba(255,255,255,0.7);
    font-size: 1rem;
    display: inline-flex;
    align-items: center;
    transition: color 0.2s;
}
.skjazz-nav__icon-link:hover {
    color: var(--skj-brand);
}

/* Hamburger toggle */
.skjazz-nav__toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: 201;
}

.skjazz-nav__toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: #fff;
    transition: transform 0.3s, opacity 0.3s;
    border-radius: 2px;
}

.skjazz-nav__toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.skjazz-nav__toggle.active span:nth-child(2) { opacity: 0; }
.skjazz-nav__toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ==========================================
   Sidebars & Widgets
   ========================================== */

.skjazz-sidebar {
    background: var(--skj-bg-sidebar);
    border-top: 1px solid var(--skj-brand);
    border-right: 1px solid var(--skj-border);
    border-bottom: 1px solid var(--skj-border);
    border-left: 1px solid var(--skj-border);
    padding: 18px 12px 20px;
}

.skjazz-widget {
    margin-bottom: 24px;
}

.skjazz-widget__label {
    font-family: var(--skj-font-ui);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--skj-brand);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 12px;
    font-style: normal;
}

.skjazz-widget img {
    max-width: 100%;
    display: block;
    margin: 0 auto 4px;
}

.skjazz-widget__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.skjazz-widget__list li {
    border-bottom: 1px solid var(--skj-border);
}

.skjazz-widget__list-link {
    display: block;
    padding: 6px 4px;
    font-family: var(--skj-font-ui);
    font-size: 0.8rem;
    color: var(--skj-text-meta);
    text-decoration: none;
    transition: color 0.2s;
}

.skjazz-widget__list-link:hover {
    color: var(--skj-brand);
}

/* Sidebar related articles */
.skjazz-widget-related {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 8px 0;
    border-bottom: 1px solid var(--skj-border);
}

.skjazz-widget-related__thumb {
    flex-shrink: 0;
    width: 64px;
    display: block;
    overflow: hidden;
}

.skjazz-widget-related__thumb img {
    width: 100%;
    height: 48px;
    object-fit: cover;
}

.skjazz-widget-related__body {
    flex: 1;
    min-width: 0;
}

.skjazz-widget-related__title {
    display: block;
    font-family: var(--skj-font-body);
    font-size: 0.82rem;
    color: var(--skj-text-heading);
    line-height: 1.3;
    text-decoration: none;
    margin-bottom: 3px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.skjazz-widget-related__title:hover {
    color: var(--skj-brand);
}

.skjazz-widget-related__date {
    font-family: var(--skj-font-ui);
    font-size: 0.72rem;
    color: var(--skj-text-meta);
}

/* ==========================================
   News header banner
   ========================================== */

.skjazz-news-header {
    background: var(--skj-surface);
    padding: 3rem 0 2rem;
    border-bottom: 1px solid var(--skj-border);
}

.skjazz-news-header__title {
    font-family: var(--skj-font-body);
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 400;
    color: var(--skj-text-heading);
    margin: 0 0 1rem;
}

/* Category nav */
.skjazz-cat-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.skjazz-cat-nav__link {
    font-family: var(--skj-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    padding: 4px 12px;
    border: 1px solid var(--skj-border-strong);
    color: var(--skj-text-meta);
    border-radius: 2px;
    text-decoration: none;
    transition: border-color 0.2s, color 0.2s;
}

.skjazz-cat-nav__link:hover,
.skjazz-cat-nav__link--active {
    border-color: var(--skj-brand);
    color: var(--skj-brand);
}

/* ==========================================
   News body background
   ========================================== */

.skjazz-news-body {
    background: var(--skj-bg);
    padding: 0;
}

/* ==========================================
   News list item
   ========================================== */

.skjazz-news-item {
    display: flex;
    gap: 1rem;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--skj-border);
}

.skjazz-news-item:last-of-type {
    border-bottom: none;
}

.skjazz-news-item__thumb {
    flex: 0 0 25%;
    max-width: 220px;
    display: block;
    overflow: hidden;
    align-self: flex-start;
}

.skjazz-news-item__thumb img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    border: 1px solid var(--skj-border);
    display: block;
    transition: opacity 0.2s;
}

.skjazz-news-item__thumb:hover img {
    opacity: 0.85;
}

.skjazz-news-item__body {
    flex: 1;
    min-width: 0;
}

.skjazz-news-item__title {
    font-family: var(--skj-font-body);
    font-size: 1.15rem;
    font-weight: 400;
    color: var(--skj-text-heading);
    margin: 0 0 6px;
    line-height: 1.3;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
}

.skjazz-news-item__title-link {
    color: var(--skj-brand);
    text-decoration: none;
    flex: 1;
    min-width: 0;
}

.skjazz-news-item__title-link:hover {
    color: var(--skj-text-white);
}

.skjazz-news-item__date {
    font-family: var(--skj-font-ui);
    font-size: 0.8rem;
    color: var(--skj-text-meta);
    flex-shrink: 0;
    padding-top: 2px;
}

.skjazz-news-item__excerpt {
    font-family: var(--skj-font-body);
    font-size: 0.9rem;
    color: var(--skj-text-body);
    line-height: 1.6;
    margin: 0 0 4px;
}

/* Short real prologue line (date/venue): bold orange, matching old site #f1a157 */
.skjazz-news-item__excerpt--prologue {
    font-weight: 600;
    color: #f1a157;
}

/* Concert detail: yellow event line (date/time/venue), old site .sub-title b #f1a157 */
.skjazz-article-eventinfo {
    font-family: var(--skj-font-ui);
    font-size: 1rem;
    color: #f1a157;
    margin: 0 0 14px;
}

.skjazz-news-item__preview {
    font-family: var(--skj-font-body);
    font-size: 0.88rem;
    color: var(--skj-text-body);
    line-height: 1.65;
    margin: 0;
}

/* ==========================================
   News pagination
   ========================================== */

.skjazz-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.5rem 0;
    border-top: 1px solid var(--skj-border);
    margin-top: 1rem;
}

.skjazz-pagination__btn {
    font-family: var(--skj-font-ui);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--skj-brand);
    text-decoration: none;
    padding: 6px 14px;
    border: 1px solid var(--skj-brand);
    border-radius: 2px;
    transition: background 0.2s, color 0.2s;
}

.skjazz-pagination__btn:hover {
    background: var(--skj-brand);
    color: #fff;
}

.skjazz-pagination__info {
    font-family: var(--skj-font-ui);
    font-size: 0.78rem;
    color: var(--skj-text-meta);
}

/* Numbered pager (first/last + ellipses) */
.skjazz-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 1.5rem 0 0.5rem;
    border-top: 1px solid var(--skj-border);
    margin-top: 1rem;
}
.skjazz-pager__edge {
    font-family: var(--skj-font-ui);
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    color: var(--skj-brand);
    border: 1px solid var(--skj-brand);
    border-radius: 3px;
    padding: 7px 14px;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s;
}
.skjazz-pager__edge:hover {
    background: var(--skj-brand);
    color: #fff;
}
.skjazz-pager__edge--off {
    color: var(--skj-text-meta);
    border-color: var(--skj-border);
    opacity: 0.45;
    cursor: default;
}
.skjazz-pager__pages {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    justify-content: center;
}
.skjazz-pager__num {
    font-family: var(--skj-font-ui);
    font-size: 0.85rem;
    text-decoration: none;
    color: var(--skj-text-body);
    min-width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border: 1px solid var(--skj-border);
    border-radius: 3px;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.skjazz-pager__num:hover {
    border-color: var(--skj-brand);
    color: var(--skj-brand);
}
.skjazz-pager__num--active {
    background: var(--skj-brand);
    border-color: var(--skj-brand);
    color: #fff;
    font-weight: 700;
}
.skjazz-pager__gap {
    color: var(--skj-text-meta);
    padding: 0 2px;
    user-select: none;
}
@media (max-width: 540px) {
    .skjazz-pager__edge { font-size: 0.75rem; padding: 6px 10px; }
    .skjazz-pager__num { min-width: 28px; height: 28px; font-size: 0.8rem; }
}

.skjazz-news-empty {
    font-family: var(--skj-font-ui);
    color: var(--skj-text-meta);
    font-size: 0.9rem;
    padding: 2rem 0;
    text-align: center;
}

/* ==========================================
   Article hero
   ========================================== */

.skjazz-article-hero {
    position: relative;
    height: 55vh;
    min-height: 320px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
}

.skjazz-article-hero__img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.skjazz-article-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.15) 60%);
}

.skjazz-article-hero__content {
    position: relative;
    padding: 0 0 2rem;
    width: 100%;
}

.skjazz-article-hero__title {
    font-family: var(--skj-font-body);
    font-size: clamp(1.6rem, 4vw, 2.6rem);
    font-weight: 400;
    color: #fff;
    line-height: 1.2;
    margin: 0.5rem 0 0;
}

/* No-hero fallback */
.skjazz-article-no-hero {
    background: var(--skj-surface);
    padding: 2.5rem 0 2rem;
    border-bottom: 1px solid var(--skj-border);
}

.skjazz-article-no-hero__title {
    font-family: var(--skj-font-body);
    font-size: clamp(1.4rem, 3.5vw, 2.2rem);
    font-weight: 400;
    color: var(--skj-brand);
    line-height: 1.25;
    margin: 0.5rem 0 0;
}

/* Back link */
.skjazz-article-back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--skj-font-ui);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.55);
    text-decoration: none;
    margin-bottom: 0.75rem;
    transition: color 0.2s;
}
.skjazz-article-back:hover { color: var(--skj-brand); }
.skjazz-article-back::before { content: '\2190'; margin-right: 0.25rem; }

/* ==========================================
   Article body
   ========================================== */

.skjazz-article-body {
    background: var(--skj-bg);
    padding: 0;
}

.skjazz-article-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--skj-border);
}

.skjazz-article-date-meta {
    font-family: var(--skj-font-ui);
    font-size: 0.78rem;
    color: var(--skj-text-meta);
    letter-spacing: 0.05em;
}

.skjazz-article-back-inline {
    font-family: var(--skj-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--skj-brand);
    text-decoration: none;
}
.skjazz-article-back-inline:hover { color: var(--skj-brand-hover); }

.skjazz-article-title {
    font-family: var(--skj-font-body);
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--skj-brand);
    border-bottom: 1px solid var(--skj-border);
    padding-bottom: 0.4rem;
    margin: 0 0 1rem;
    line-height: 1.3;
}

.skjazz-article-excerpt {
    font-family: var(--skj-font-body);
    font-size: 1rem;
    color: var(--skj-accent-sub);
    font-style: italic;
    margin-bottom: 1.2rem;
    line-height: 1.6;
}

/* Article gallery grid */
.skjazz-article-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin: 1.5rem 0;
    clear: both;
}

.skjazz-article-gallery__item {
    display: block;
    overflow: hidden;
    aspect-ratio: 4/3;
}

.skjazz-article-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.2s;
    border: none;
    float: none;
    margin: 0;
}

.skjazz-article-gallery__item:hover img { opacity: 0.8; }

/* Article lead image float (old skjazz style) */
.skjazz-article-content img {
    max-width: 265px;
    float: left;
    margin: 0 1.2rem 0.75rem 0;
    border: 1px solid var(--skj-border);
}

/* PDF download */
.skjazz-article-pdf {
    clear: both;
    margin: 1.5rem 0;
}

/* ==========================================
   Related articles strip (bottom of article)
   ========================================== */

.skjazz-related-strip {
    background: var(--skj-surface);
    padding: 3rem 0;
    border-top: 1px solid var(--skj-border);
}

.skjazz-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 1rem;
}

/* ==========================================
   News card (homepage sections + related strip)
   ========================================== */

.skjazz-news-card {
    background: var(--skj-surface);
    border: 1px solid var(--skj-border);
    display: flex;
    flex-direction: column;
    text-decoration: none;
    transition: border-color 0.2s;
}

.skjazz-news-card:hover {
    border-color: var(--skj-brand);
}

.skjazz-news-card__img {
    aspect-ratio: 16/9;
    overflow: hidden;
}

.skjazz-news-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity 0.3s;
}

.skjazz-news-card:hover .skjazz-news-card__img img {
    opacity: 0.85;
}

.skjazz-news-card__body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.skjazz-news-card__date {
    font-family: var(--skj-font-ui);
    font-size: 0.72rem;
    color: var(--skj-text-meta);
    margin-bottom: 0.4rem;
}

.skjazz-news-card__title {
    font-family: var(--skj-font-body);
    font-size: 1rem;
    font-weight: 400;
    color: var(--skj-text-heading);
    line-height: 1.35;
    margin: 0 0 0.5rem;
    flex: 1;
}

.skjazz-news-card:hover .skjazz-news-card__title {
    color: var(--skj-brand);
}

.skjazz-news-card__excerpt {
    font-family: var(--skj-font-body);
    font-size: 0.85rem;
    color: var(--skj-text-body);
    line-height: 1.6;
    margin-bottom: 0.75rem;
}

.skjazz-news-card__link {
    font-family: var(--skj-font-ui);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--skj-brand);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: auto;
}

/* ==========================================
   Generic page (skjazz-show fallback)
   ========================================== */

.skjazz-page-header {
    background: var(--skj-surface);
    padding: 3rem 0 2rem;
    border-bottom: 1px solid var(--skj-border);
}

.skjazz-page-title {
    font-family: var(--skj-font-body);
    font-size: clamp(1.5rem, 3.5vw, 2.4rem);
    font-weight: 400;
    color: var(--skj-brand);
    margin: 0 0 0.5rem;
}

.skjazz-page-excerpt {
    font-family: var(--skj-font-body);
    font-size: 1rem;
    color: var(--skj-text-body);
    line-height: 1.7;
    margin: 0;
}

.skjazz-page-content {
    padding: 2.5rem 0;
}

/* ==========================================
   404 page
   ========================================== */

.skjazz-404 {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 0;
}

.skjazz-404__inner {
    text-align: center;
    max-width: 480px;
    margin: 0 auto;
}

.skjazz-404__num {
    font-family: var(--skj-font-display);
    font-size: clamp(6rem, 18vw, 10rem);
    color: var(--skj-brand);
    opacity: 0.25;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.skjazz-404__title {
    font-family: var(--skj-font-body);
    font-size: 1.8rem;
    font-weight: 400;
    color: var(--skj-text-heading);
    margin-bottom: 0.75rem;
}

.skjazz-404__text {
    font-family: var(--skj-font-body);
    font-size: 1rem;
    color: var(--skj-text-body);
    line-height: 1.6;
    margin-bottom: 2rem;
}

.skjazz-404__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ==========================================
   Footer
   ========================================== */

.skjazz-footer {
    background: var(--skj-bg);
    border-top: 1px solid #444;
    font-size: 0.8rem;
    color: var(--skj-text-meta);
}

.skjazz-footer__upper {
    max-width: var(--skj-container);
    margin: 0 auto;
    padding: 2.5rem 1.5rem;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}

.skjazz-footer__col {
    min-width: 0;
}

.skjazz-footer__heading {
    font-family: var(--skj-font-body);
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--skj-text-heading);
    margin: 0 0 1rem;
    padding: 0;
}

.skjazz-footer__address {
    font-style: normal;
    line-height: 1.7;
    color: var(--skj-text-meta);
}

.skjazz-footer__nav {
    list-style: none;
    padding: 0;
    margin: 0 0 0.75rem;
}

.skjazz-footer__nav li {
    margin-bottom: 2px;
}

.skjazz-footer__nav-link {
    font-size: 0.8rem;
    color: var(--skj-text-meta);
    text-decoration: none;
    transition: color 0.2s;
}

.skjazz-footer__nav-link:hover { color: #fff; }

.skjazz-footer__email,
.skjazz-footer__link {
    color: var(--skj-text-meta);
    text-decoration: none;
    font-size: 0.8rem;
    transition: color 0.2s;
    display: inline-block;
    margin-bottom: 4px;
}

.skjazz-footer__email:hover,
.skjazz-footer__link:hover { color: #fff; }

.skjazz-footer__partners {
    list-style: none;
    padding: 0;
    margin: 0;
}

.skjazz-footer__partners li {
    margin-bottom: 4px;
}

.skjazz-footer__lower {
    border-top: 1px solid #222;
    padding: 0.9rem 1.5rem;
    max-width: var(--skj-container);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.skjazz-footer__copy {
    font-size: 0.75rem;
    color: var(--skj-text-meta);
}

.skjazz-footer__credit {
    font-size: 0.75rem;
    color: var(--skj-text-meta);
}

.skjazz-footer__credit-link {
    color: var(--skj-text-meta);
    text-decoration: underline;
    transition: color 0.2s;
}

.skjazz-footer__credit-link:hover { color: #fff; }

/* ==========================================
   Cookie settings button
   ========================================== */

#skjazz-cookie-btn {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 9999;
    background: var(--skj-brand);
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    cursor: pointer;
    font-size: 1rem;
    opacity: 0.75;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s, background 0.2s;
}

#skjazz-cookie-btn:hover {
    opacity: 1;
    background: var(--skj-brand-dark);
}

/* CookieConsent brand override */
#cc-main {
    --cc-btn-primary-bg: var(--skj-brand);
    --cc-btn-primary-border-color: var(--skj-brand);
    --cc-btn-primary-hover-bg: var(--skj-brand-dark);
    --cc-font-family: var(--skj-font-ui);
}

/* ==========================================
   Scroll reveal animation
   ========================================== */

.skjazz-will-reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.45s var(--skj-ease), transform 0.45s var(--skj-ease);
}

.skjazz-revealed {
    opacity: 1;
    transform: none;
}

/* ==========================================
   Homepage section (skjazz-homepage.twig)
   ========================================== */

.skjazz-homepage-body {
    background: var(--skj-bg);
    padding: 0;
}

/* Center column heading above the news list */
/* Hidden like the old site (the section already has an aria-label); kept in the
   DOM as a visually-hidden heading for SEO / screen-reader structure. */
.skjazz-homepage__section-title {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* "Vsetky novinky" link row */
.skjazz-homepage__more {
    padding: 1.25rem 0 0.5rem;
    border-top: 1px solid var(--skj-border);
    margin-top: 1rem;
    text-align: right;
}

/* Widget thumbnail image (full width inside sidebar) */
.skjazz-widget__img {
    width: 100%;
    height: auto;
    display: block;
    border: 1px solid var(--skj-border);
    transition: opacity 0.2s;
}

.skjazz-widget__thumb-link:hover .skjazz-widget__img {
    opacity: 0.82;
}

.skjazz-widget__thumb-link {
    display: block;
    text-decoration: none;
}

/* Widget item title (caption under thumbnail, or sole content when no image) */
.skjazz-widget__title {
    display: block;
    font-family: var(--skj-font-ui);
    font-size: 0.84rem;
    line-height: 1.35;
    color: var(--skj-text-strong, #2b2b2b);
    margin-top: 6px;
}

.skjazz-widget__thumb-link:hover .skjazz-widget__title {
    color: var(--skj-brand);
}

/* Widget empty state (category has no item yet) */
.skjazz-widget__empty {
    font-family: var(--skj-font-ui);
    font-size: 0.8rem;
    font-style: italic;
    color: var(--skj-text-meta, #9a9a9a);
    margin: 4px 0 0;
}

/* Empty-state placeholder box for widgets not yet wired */
.skjazz-widget--placeholder .skjazz-widget__img-placeholder {
    width: 100%;
    aspect-ratio: 4 / 3;
    background: var(--skj-surface);
    border: 1px dashed var(--skj-border-strong);
    border-radius: 2px;
}

/* Partner logo rows */
.skjazz-partner {
    margin-bottom: 12px;
    text-align: center;
}

.skjazz-partner a {
    display: block;
}

.skjazz-partner__logo {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
    opacity: 0.75;
    transition: opacity 0.2s;
}

.skjazz-partner a:hover .skjazz-partner__logo {
    opacity: 1;
}

.skjazz-partner__name {
    font-family: var(--skj-font-ui);
    font-size: 0.78rem;
    color: var(--skj-text-meta);
}

/* Partner image carousel (homepage sidebar) */
.skjazz-widget--partners-car {
    padding: 12px 8px;
}

.skjazz-partner-car {
    text-align: center;
    min-height: 60px;
}

.skjazz-partner-car__slide {
    display: none;
}

.skjazz-partner-car__slide--active {
    display: block;
}

.skjazz-partner-car__slide img {
    max-width: 100%;
    max-height: 150px;
    height: auto;
    opacity: 0.8;
    transition: opacity 0.2s;
}

.skjazz-partner-car__slide a:hover img {
    opacity: 1;
}

/* Calendar event list */
.skjazz-calendar-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.skjazz-calendar-list__item {
    display: block;
    font-size: 0.78rem;
    line-height: 1.4;
}

.skjazz-calendar-list__date {
    display: block;
    font-family: var(--skj-font-ui);
    font-size: 0.68rem;
    color: var(--skj-brand);
    letter-spacing: 0.04em;
    margin-bottom: 1px;
}

.skjazz-calendar-list__loading {
    font-style: italic;
}

/* ==========================================
   Responsive
   ========================================== */

@media (max-width: 1024px) {
    :root {
        --skj-sidebar-w: 160px;
    }
}

@media (max-width: 767px) {
    body {
        padding-top: 56px;
    }

    :root {
        --skj-nav-height: 56px;
    }

    .skjazz-nav {
        padding-bottom: 0;
        align-items: center;
        background: var(--skj-bg-navbar);
        background-image: none;
    }

    .skjazz-nav__inner {
        padding: 0 1rem;
    }

    .skjazz-nav__logo {
        margin-top: 0;
    }

    .skjazz-nav__logo-img {
        max-height: 40px;
    }

    .skjazz-nav__search {
        display: none;
    }

    .skjazz-nav__links {
        display: none;
        position: fixed;
        top: 56px;
        left: 0;
        right: 0;
        background: #111;
        flex-direction: column;
        align-items: flex-start;
        padding: 1rem 0;
        z-index: 199;
        border-top: 2px solid var(--skj-brand);
        gap: 0;
    }

    .skjazz-nav__links.open {
        display: flex;
    }

    .skjazz-nav__link {
        width: 100%;
        padding: 12px 20px;
        border-bottom: 1px solid var(--skj-border);
        font-size: 0.95rem;
    }

    .skjazz-nav__link::after { display: none; }

    .skjazz-nav__dropdown-menu {
        position: static;
        background: rgba(255,255,255,0.05);
        box-shadow: none;
        padding: 0 0 0 1rem;
    }

    .skjazz-nav__toggle {
        display: flex;
        flex-shrink: 0;
    }

    .skjazz-nav__icon-link {
        padding: 12px 20px;
        width: 100%;
    }

    .skjazz-nav__search-mobile {
        display: flex;
        align-items: center;
        flex: 1;
        margin: 0 8px;
        background: rgba(255,255,255,0.13);
        border-radius: 3px;
        padding: 2px 6px;
        min-width: 0;
    }

    .skjazz-nav__search-mobile input[type="search"] {
        background: none;
        border: none;
        color: #fff;
        font-size: 0.85rem;
        padding: 4px 4px;
        width: 100%;
        outline: none;
        font-family: var(--skj-font-ui);
    }

    .skjazz-nav__search-mobile input[type="search"]::placeholder {
        color: rgba(255,255,255,0.5);
    }

    .skjazz-nav__search-mobile button {
        background: none;
        border: none;
        color: rgba(255,255,255,0.8);
        cursor: pointer;
        padding: 4px;
        font-size: 0.82rem;
        flex-shrink: 0;
    }

    /* 3-col collapses to single col: main first, sidebars below */
    .skjazz-news-layout,
    .skjazz-article-layout {
        grid-template-columns: 1fr;
        grid-template-areas:
            "main"
            "right"
            "left";
        padding: 0;
    }

    .skjazz-news-main,
    .skjazz-article-main {
        border-left: none;
        border-right: none;
        padding: 1.5rem 1rem;
    }

    .skjazz-sidebar {
        padding: 1rem;
    }

    /* News items stack vertically */
    .skjazz-news-item {
        flex-direction: column;
    }

    .skjazz-news-item__thumb {
        max-width: 100%;
        flex: none;
    }

    .skjazz-news-item__thumb img {
        height: 200px;
        width: 100%;
    }

    .skjazz-article-hero {
        height: 40vh;
        min-height: 220px;
    }

    .skjazz-article-gallery {
        grid-template-columns: 1fr 1fr;
    }

    .skjazz-article-content img {
        float: none;
        max-width: 100%;
        margin: 0 0 1rem;
    }

    .skjazz-related-grid {
        grid-template-columns: 1fr;
    }

    .skjazz-footer__upper {
        grid-template-columns: 1fr 1fr;
        gap: 1.5rem;
        padding: 2rem 1rem;
    }

    .skjazz-footer__lower {
        flex-direction: column;
        text-align: center;
        padding: 1rem;
    }
}

@media (max-width: 480px) {
    .skjazz-footer__upper {
        grid-template-columns: 1fr;
    }

    .skjazz-news-item__title {
        flex-direction: column;
        gap: 0.2rem;
    }

    .skjazz-news-item__date {
        align-self: flex-end;
    }

    .skjazz-article-gallery {
        grid-template-columns: 1fr;
    }

    .skjazz-404__actions {
        flex-direction: column;
        align-items: center;
    }

    body {
        font-size: 14px;
    }
}

/* ==========================================
   Contact page
   ========================================== */

.skjazz-contact-main {
    padding-top: 1.5rem;
}

/* Contact info address in left sidebar */
.skjazz-contact-address {
    font-style: normal;
    font-size: 0.82rem;
    color: var(--skj-text-meta);
    line-height: 1.6;
    padding: 0 4px;
}

/* Alert banners (success / error) */
.skjazz-contact-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
    border-radius: 2px;
    font-family: var(--skj-font-ui);
    font-size: 0.9rem;
    margin-bottom: 1.25rem;
    line-height: 1.5;
}

.skjazz-contact-alert--success {
    background: rgba(235, 102, 7, 0.12);
    border: 1px solid rgba(235, 102, 7, 0.4);
    color: var(--skj-accent-sub);
}

.skjazz-contact-alert--error {
    background: rgba(201, 0, 0, 0.1);
    border: 1px solid rgba(201, 0, 0, 0.35);
    color: #e05555;
}

/* Honeypot: visually hidden, out of tab order */
.skjazz-contact-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    tab-index: -1;
}

/* Two-column field grid */
.skjazz-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}

/* Full-width field variant */
.skjazz-contact-field--full {
    grid-column: 1 / -1;
}

/* Label */
.skjazz-contact-label {
    display: block;
    font-family: var(--skj-font-ui);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--skj-text-meta);
    margin-bottom: 0.4rem;
}

.skjazz-contact-req {
    color: var(--skj-brand);
    font-style: normal;
}

.skjazz-contact-optional {
    color: var(--skj-text-meta);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    font-size: 0.75rem;
}

/* Input / textarea */
.skjazz-contact-input {
    display: block;
    width: 100%;
    padding: 0.6rem 0.75rem;
    font-family: var(--skj-font-body);
    font-size: 0.95rem;
    color: var(--skj-text-heading);
    background: #0d0d0d;
    border: 1px solid var(--skj-border-strong);
    border-radius: 2px;
    transition: border-color 0.2s var(--skj-ease), box-shadow 0.2s;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.skjazz-contact-input::placeholder {
    color: var(--skj-text-body);
    opacity: 0.6;
}

.skjazz-contact-input:focus {
    border-color: var(--skj-brand);
    box-shadow: 0 0 0 2px rgba(235, 102, 7, 0.18);
}

.skjazz-contact-input--invalid {
    border-color: #c90000;
    box-shadow: 0 0 0 2px rgba(201, 0, 0, 0.15);
}

.skjazz-contact-textarea {
    resize: vertical;
    min-height: 140px;
    line-height: 1.6;
}

/* Inline error messages */
.skjazz-contact-err {
    display: block;
    font-family: var(--skj-font-ui);
    font-size: 0.75rem;
    color: #e05555;
    margin-top: 0.25rem;
    min-height: 1em;
}

/* Submit row */
.skjazz-contact-footer {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    flex-wrap: wrap;
    padding-top: 0.25rem;
    border-top: 1px solid var(--skj-border);
}

/* GDPR note */
.skjazz-contact-gdpr {
    flex: 1;
    font-family: var(--skj-font-ui);
    font-size: 0.75rem;
    color: var(--skj-text-meta);
    line-height: 1.5;
    margin: 0;
    padding-top: 0.5rem;
}

.skjazz-contact-gdpr a {
    color: var(--skj-brand);
    text-decoration: underline;
}
.skjazz-contact-gdpr a:hover {
    color: var(--skj-brand-hover);
}

/* Optional map embed */
.skjazz-contact-map {
    margin-top: 2rem;
    border: 1px solid var(--skj-border);
    line-height: 0;
}

.skjazz-contact-map iframe {
    width: 100%;
    display: block;
    border: 0;
}

/* ==========================================
   Concerts (articles) - venue / prologue line
   ========================================== */

/*
   .skjazz-concert-venue - compact venue + date line on the list page
   Uses accent-sub colour to visually distinguish from the title,
   matching the old skjazz.sk ".sub-title b" pattern (#f1a157).
*/
.skjazz-concert-venue {
    font-family: var(--skj-font-ui);
    font-size: 0.82rem;
    color: var(--skj-accent-sub);
    margin: 4px 0 0;
    line-height: 1.4;
}

/*
   .skjazz-concert-venue-detail - same on the detail page (inside article excerpt)
   Slightly larger, italic to match .skjazz-article-excerpt treatment.
*/
.skjazz-concert-venue-detail {
    font-size: 0.9rem;
    font-style: italic;
}

/* Active sidebar widget link */
.skjazz-widget__list-link--active {
    color: var(--skj-brand);
}

/* Responsive: stack grid to single column on narrow main column */
@media (max-width: 900px) {
    .skjazz-contact-grid {
        grid-template-columns: 1fr;
    }
    .skjazz-contact-field--full {
        grid-column: 1;
    }
}

@media (max-width: 767px) {
    .skjazz-contact-footer {
        flex-direction: column;
        gap: 0.75rem;
    }
    .skjazz-contact-gdpr {
        padding-top: 0;
    }
}

/* ==========================================
   Monthly Calendar Widget (#eb6607 theme)
   ========================================== */

.skjcal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--skj-brand);
    padding: 5px 6px;
    border-radius: 3px 3px 0 0;
    margin-bottom: 0;
}
.skjcal-title {
    color: #fff;
    font-family: var(--skj-font-ui);
    font-weight: 700;
    font-size: 0.82rem;
    text-align: center;
    flex: 1;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.skjcal-nav {
    background: none;
    border: none;
    color: #fff;
    font-size: 1.4rem;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
    opacity: 0.85;
    font-weight: bold;
}
.skjcal-nav:hover { opacity: 1; }
.skjcal-daynames {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: var(--skj-brand-dark);
}
.skjcal-daynames span {
    text-align: center;
    font-family: var(--skj-font-ui);
    font-size: 0.68rem;
    font-weight: 700;
    color: rgba(255,255,255,0.85);
    padding: 3px 0;
}
.skjcal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border: 1px solid var(--skj-border);
    border-top: none;
    margin-bottom: 8px;
}
.skjcal-day {
    text-align: center;
    font-family: var(--skj-font-ui);
    font-size: 0.71rem;
    padding: 4px 1px;
    color: var(--skj-text-meta);
    border-right: 1px solid var(--skj-border);
    border-bottom: 1px solid var(--skj-border);
    min-height: 22px;
    line-height: 14px;
}
.skjcal-day:nth-child(7n) { border-right: none; }
.skjcal-day--empty { color: transparent; }
.skjcal-day--event {
    background: var(--skj-brand);
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}
.skjcal-day--event:hover { background: var(--skj-brand-hover); }
.skjcal-day--today {
    background: var(--skj-brand-dark);
    color: #fff;
    font-weight: 700;
}
.skjcal-events {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 150px;
    overflow-y: auto;
}
.skjcal-events li { margin-bottom: 1px; }
.skjcal-event-link {
    display: block;
    font-family: var(--skj-font-ui);
    font-size: 0.76rem;
    color: var(--skj-text-meta);
    text-decoration: none;
    padding: 3px 4px;
    border-left: 2px solid transparent;
    line-height: 1.3;
    transition: color 0.15s, border-color 0.15s;
}
.skjcal-event-link:hover,
.skjcal-event-link--active {
    color: var(--skj-brand);
    border-left-color: var(--skj-brand);
    background: rgba(235,102,7,0.08);
}
.skjcal-event-date {
    color: var(--skj-brand);
    font-weight: 600;
    margin-right: 3px;
    white-space: nowrap;
}
.skjcal-no-events {
    font-family: var(--skj-font-ui);
    font-size: 0.76rem;
    color: var(--skj-text-meta);
    padding: 4px 0;
    font-style: italic;
}

/* ==========================================
   YouTube embed (responsive 16:9 iframe)
   ========================================== */

/* ==========================================
   Banner slideshow
   ========================================== */

.skjazz-banner-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #111;
    line-height: 0;
    height: 450px;
    max-width: var(--skj-container);
    margin: 0 auto;
}

.skjazz-banner-track {
    position: relative;
    width: 100%;
}

.skjazz-banner-slide {
    display: none;
    width: 100%;
}

.skjazz-banner-slide--active {
    display: block;
}

.skjazz-banner-slide img {
    width: 100%;
    height: 450px;
    display: block;
    object-fit: cover;
    object-position: center center;
}

.skjazz-banner-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,.5);
    color: #fff;
    border: none;
    font-size: 2.2rem;
    line-height: 1;
    padding: .1em .4em;
    cursor: pointer;
    z-index: 10;
    transition: background .2s;
}
.skjazz-banner-btn:hover { background: rgba(235,102,7,.85); }
.skjazz-banner-btn--prev { left: 8px; }
.skjazz-banner-btn--next { right: 8px; }

.skjazz-banner-dots {
    position: absolute;
    bottom: 8px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
}

.skjazz-banner-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,.45);
    cursor: pointer;
    transition: background .2s;
}

.skjazz-banner-dot--active { background: var(--skj-brand); }

@media (max-width: 600px) {
    .skjazz-banner-btn { font-size: 1.5rem; }
}

/* Collapse empty paragraphs and lone-br paragraphs in migrated content */
.skjazz-article-content p:empty { display: none; }
.skjazz-article-content p > br:only-child { display: none; }

/* Any non-float block that follows a floated image div must clear below it */
.skjazz-article-content .pull-left + p,
.skjazz-article-content .pull-left + h1,
.skjazz-article-content .pull-left + h2,
.skjazz-article-content .pull-left + h3,
.skjazz-article-content .pull-left + ul,
.skjazz-article-content .pull-left + ol,
.skjazz-article-content .pull-left + blockquote,
.skjazz-article-content .pull-right + p,
.skjazz-article-content .pull-right + h1,
.skjazz-article-content .pull-right + h2,
.skjazz-article-content .pull-right + h3 {
    clear: both;
}

/* ==========================================
   Article content: legacy Bootstrap classes from old CMS WYSIWYG
   (pull-left photo-border img-responsive used in migrated content)
   ========================================== */

.skjazz-article-content .pull-left {
    float: left;
    margin: 0 14px 14px 0;
    max-width: calc(50% - 14px);
}
.skjazz-article-content .pull-right {
    float: right;
    margin: 0 0 14px 14px;
    max-width: calc(50% - 14px);
}
.skjazz-article-content .pull-left img,
.skjazz-article-content .pull-right img {
    float: none !important;
    width: 100%;
    height: auto;
    display: block;
}
.skjazz-article-content .pull-left small,
.skjazz-article-content .pull-right small {
    display: block;
    text-align: center;
    font-size: 0.78em;
    color: var(--skj-text-meta);
    margin-top: 5px;
    line-height: 1.4;
}
.skjazz-article-content .photo-border img {
    border: 1px solid var(--skj-border);
}
.skjazz-article-content .img-responsive,
.skjazz-article-content img.img-responsive {
    max-width: 100%;
    height: auto;
    display: block;
}
.skjazz-article-content::after {
    content: '';
    display: table;
    clear: both;
}
.skjazz-article-content p::after {
    content: '';
    display: table;
    clear: both;
}

/* ==========================================
   YouTube embeds
   ========================================== */

.skjazz-yt-embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    margin: 1.5rem 0;
    background: #000;
    clear: both;
    border-radius: 2px;
    overflow: hidden;
}
.skjazz-yt-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

/* ==========================================
   Gallery - index (album grid)
   ========================================== */

.skjazz-gallery-index-wrap {
    padding-top: 2rem;
    padding-bottom: 3rem;
}

.skjazz-gallery-albums {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.skjazz-gallery-album-card {
    background: var(--skj-surface, #111);
    border: 1px solid var(--skj-border, #2c2c2c);
    transition: border-color 0.2s;
}

.skjazz-gallery-album-card:hover {
    border-color: var(--skj-brand, #eb6607);
}

.skjazz-gallery-album-card__link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    height: 100%;
}

.skjazz-gallery-album-card__thumb {
    aspect-ratio: 3/2;
    overflow: hidden;
    background: #0d0d0d;
}

.skjazz-gallery-album-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity 0.25s;
}

.skjazz-gallery-album-card:hover .skjazz-gallery-album-card__thumb img {
    opacity: 0.82;
}

.skjazz-gallery-album-card__no-img {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--skj-border-strong, #464646);
    font-size: 3rem;
}

.skjazz-gallery-album-card__body {
    padding: 0.9rem 1rem 1rem;
    flex: 1;
}

.skjazz-gallery-album-card__title {
    font-family: var(--skj-font-body, 'Lora', Georgia, serif);
    font-size: 1rem;
    font-weight: 400;
    color: var(--skj-brand, #eb6607);
    margin: 0 0 0.4rem;
    line-height: 1.3;
    transition: color 0.2s;
}

.skjazz-gallery-album-card:hover .skjazz-gallery-album-card__title {
    color: var(--skj-text-white, #fff);
}

.skjazz-gallery-album-card__desc {
    font-family: var(--skj-font-body, 'Lora', Georgia, serif);
    font-size: 0.82rem;
    color: var(--skj-text-body, #8a8274);
    line-height: 1.5;
    margin: 0;
}

/* ==========================================
   Gallery - album (photo grid + lightbox)
   ========================================== */

.skjazz-gallery-album-wrap {
    padding-top: 1.5rem;
    padding-bottom: 3rem;
}

.skjazz-gallery-meta {
    margin-bottom: 1rem;
}

.skjazz-gallery-count {
    font-family: var(--skj-font-ui, 'Open Sans', sans-serif);
    font-size: 0.82rem;
    color: var(--skj-text-meta, #949494);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.skjazz-gallery-album-desc {
    font-family: var(--skj-font-body, 'Lora', Georgia, serif);
    font-size: 1rem;
    color: var(--skj-text-body, #8a8274);
    line-height: 1.7;
    margin: 0 0 1.5rem;
}

.skjazz-gallery-back-wrap {
    margin-top: 1.5rem;
}

/* Photo grid */

.skjazz-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
}

.skjazz-gallery-grid__btn {
    display: block;
    width: 100%;
    padding: 0;
    border: 1px solid var(--skj-border, #2c2c2c);
    background: var(--skj-surface, #111);
    cursor: pointer;
    position: relative;
    overflow: hidden;
    aspect-ratio: 3/2;
    transition: border-color 0.2s;
}

.skjazz-gallery-grid__btn:hover,
.skjazz-gallery-grid__btn:focus-visible {
    border-color: var(--skj-brand, #eb6607);
    outline: none;
}

.skjazz-gallery-grid__btn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity 0.25s, transform 0.3s;
}

.skjazz-gallery-grid__btn:hover img,
.skjazz-gallery-grid__btn:focus-visible img {
    opacity: 0.75;
    transform: scale(1.04);
}

.skjazz-gallery-grid__zoom {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.4rem;
    opacity: 0;
    transition: opacity 0.2s;
    pointer-events: none;
}

.skjazz-gallery-grid__btn:hover .skjazz-gallery-grid__zoom,
.skjazz-gallery-grid__btn:focus-visible .skjazz-gallery-grid__zoom {
    opacity: 1;
}

.skjazz-gallery-grid__caption {
    font-family: var(--skj-font-ui, 'Open Sans', sans-serif);
    font-size: 0.72rem;
    color: var(--skj-text-meta, #949494);
    margin: 0.25rem 0 0;
    line-height: 1.3;
}

/* Lightbox */

.skjazz-lightbox {
    position: fixed;
    inset: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    margin: 0;
    padding: 0;
    background: rgba(0, 0, 0, 0.94);
    border: none;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.skjazz-lightbox:not([open]) {
    display: none;
}

.skjazz-lightbox::backdrop {
    background: rgba(0, 0, 0, 0.92);
}

.skjazz-lightbox__inner {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 5rem;
}

.skjazz-lightbox__figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
}

.skjazz-lightbox__img {
    max-width: 100%;
    max-height: calc(100vh - 8rem);
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    border: 1px solid var(--skj-border, #2c2c2c);
    background: #000;
    opacity: 1;
    transition: opacity 0.15s;
}

.skjazz-lightbox__img.loading {
    opacity: 0.2;
}

.skjazz-lightbox__caption {
    font-family: var(--skj-font-ui, 'Open Sans', sans-serif);
    font-size: 0.8rem;
    color: var(--skj-text-meta, #949494);
    margin-top: 0.6rem;
    text-align: center;
    min-height: 1.2em;
}

.skjazz-lightbox__counter {
    position: absolute;
    bottom: 1.2rem;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--skj-font-ui, 'Open Sans', sans-serif);
    font-size: 0.75rem;
    color: var(--skj-text-meta, #949494);
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.skjazz-lightbox__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    border: 1px solid var(--skj-border-strong, #464646);
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-size: 1.2rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    transition: background 0.2s, border-color 0.2s;
    z-index: 1;
}

.skjazz-lightbox__close:hover,
.skjazz-lightbox__close:focus-visible {
    background: var(--skj-brand, #eb6607);
    border-color: var(--skj-brand, #eb6607);
    outline: none;
}

.skjazz-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 64px;
    border: 1px solid var(--skj-border-strong, #464646);
    background: rgba(0, 0, 0, 0.6);
    color: rgba(255, 255, 255, 0.75);
    font-size: 1.1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    z-index: 1;
}

.skjazz-lightbox__nav:hover,
.skjazz-lightbox__nav:focus-visible {
    background: var(--skj-brand, #eb6607);
    border-color: var(--skj-brand, #eb6607);
    color: #fff;
    outline: none;
}

.skjazz-lightbox__nav--prev { left: 1rem; }
.skjazz-lightbox__nav--next { right: 1rem; }

/* Gallery responsive */

@media (max-width: 1024px) {
    .skjazz-gallery-albums {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .skjazz-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .skjazz-lightbox__inner {
        padding: 3.5rem 0.75rem 3rem;
    }

    .skjazz-lightbox__nav--prev { left: 0.25rem; }
    .skjazz-lightbox__nav--next { right: 0.25rem; }
}

@media (max-width: 599px) {
    .skjazz-gallery-index-wrap {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .skjazz-gallery-albums {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

@media (max-width: 480px) {
    .skjazz-gallery-grid {
        grid-template-columns: 1fr 1fr;
        gap: 0.35rem;
    }
}
