/* v0.9.32 – jednotný veřejný design systém */
:root {
    --sp-color-primary: #087148;
    --sp-color-primary-dark: #075c3c;
    --sp-color-primary-deep: #06472f;
    --sp-color-primary-soft: #eef7f2;
    --sp-color-surface: #ffffff;
    --sp-color-surface-soft: #f4f8f6;
    --sp-color-text: #14271f;
    --sp-color-muted: #687870;
    --sp-color-border: #dce6e1;
    --sp-color-border-strong: #c9dbd2;
    --sp-radius-control: 10px;
    --sp-radius-card: 14px;
    --sp-radius-large: 18px;
    --sp-shadow-card: 0 8px 24px rgba(18, 57, 40, .055);
    --sp-shadow-hover: 0 16px 36px rgba(18, 57, 40, .11);
    --sp-focus-ring: 0 0 0 3px rgba(8, 113, 72, .16);
}

body {
    color: var(--sp-color-text);
    background: var(--sp-color-surface);
}

a {
    text-underline-offset: 3px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--sp-color-primary);
    outline-offset: 3px;
}

/* Jedna zelená pro běžné značky a nadpisové prvky. */
.eyebrow,
.archive-kicker--green,
.home-section-kicker,
.section-heading__eyebrow,
.reservation-kicker,
.reservation-request-kicker,
.contact-kicker,
.gallery-detail__eyebrow,
.related-content__eyebrow {
    color: var(--sp-color-primary);
}

/* Veřejné hero sekce drží stejnou barevnou rodinu. */
.archive-hero,
.archive-hero--news,
.archive-hero--events,
.archive-hero--gallery,
.archive-hero--minutes {
    background:
        radial-gradient(circle at 84% 18%, rgba(255, 255, 255, .14), transparent 25%),
        linear-gradient(120deg, var(--sp-color-primary-deep) 0%, var(--sp-color-primary) 70%, #579277 100%);
}

/* Karty a panely – jednotný radius, linka a stín. */
.card,
.panel,
.home-panel,
.news-card,
.event-card,
.gallery-card,
.minute-card,
.document-card,
.gallery-archive-card,
.gallery-category-card,
.organisation-card,
.person-card,
.chairman-card,
.reservation-summary,
.reservation-request-form,
.reservation-request-info,
.minute-transcript,
.minute-original {
    border-color: var(--sp-color-border);
    border-radius: var(--sp-radius-card);
    box-shadow: var(--sp-shadow-card);
}

.home-panel:hover,
.news-card:hover,
.event-card:hover,
.gallery-card:hover,
.gallery-archive-card:hover,
.gallery-category-card:hover,
.document-card:hover,
.person-card:hover {
    border-color: var(--sp-color-border-strong);
    box-shadow: var(--sp-shadow-hover);
}

/* Ovládací prvky. */
.btn,
.pagination__button,
.reservation-request-submit,
.reservation-request-cta__button,
.contact-action,
.document-card__action,
.about-document-link__button,
.gallery-clear-filter,
.month-control,
.reservation-day__request {
    border-radius: var(--sp-radius-control);
}

.btn,
.reservation-request-submit,
.reservation-request-cta__button,
.contact-action--light,
.document-card__action,
.about-document-link__button {
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        border-color .15s ease,
        background-color .15s ease;
}

.btn:hover,
.reservation-request-submit:hover,
.reservation-request-cta__button:hover,
.document-card__action:hover,
.about-document-link__button:hover {
    transform: translateY(-1px);
}

/* Filtry, pills a stavové prvky mají stejný vizuální jazyk. */
.card-badge,
.photo-count,
.content-badge,
.current-badge,
.taxonomy-chips a,
.gallery-active-filters > *,
.reservation-legend > * {
    border-radius: 999px;
}

.archive-muted,
.soft,
.reservation-section,
.documents-section,
.gallery-results-section {
    background-color: var(--sp-color-surface-soft);
}

/* Veřejné formuláře. */
.reservation-request-form input,
.reservation-request-form textarea,
.reservation-request-form select {
    min-height: 44px;
    border-color: var(--sp-color-border-strong);
    border-radius: var(--sp-radius-control);
    font: inherit;
}

.reservation-request-form textarea {
    min-height: 120px;
}

.reservation-request-form input:focus,
.reservation-request-form textarea:focus,
.reservation-request-form select:focus {
    border-color: var(--sp-color-primary);
    box-shadow: var(--sp-focus-ring);
}

/* Navigace a utility prvky. */
.site-nav__submenu,
.utility-account__menu,
.mobile-nav-drawer,
.mobile-nav-account-card,
.mobile-nav-feature,
.mobile-nav-item {
    border-color: var(--sp-color-border);
}

.site-nav__submenu a,
.utility-account__menu a,
.utility-account__menu button,
.mobile-nav-item,
.mobile-nav-feature {
    border-radius: var(--sp-radius-control);
}

.site-nav__submenu a:hover,
.site-nav__submenu a:focus-visible,
.utility-account__menu a:hover,
.utility-account__menu button:hover,
.mobile-nav-item:hover,
.mobile-nav-feature:hover {
    background: var(--sp-color-primary-soft);
}

/* Konzistentní prázdné stavy a informační plochy. */
.empty-state,
.empty-state--soft,
.home-panel__empty,
.minute-empty,
.reservation-privacy,
.reservation-request-privacy {
    border-radius: var(--sp-radius-card);
}

@media (max-width: 800px) {
    body {
        font-size: 16px;
        line-height: 1.55;
    }

    .wrap {
        width: min(1180px, calc(100% - 28px));
    }

    .archive-hero__inner {
        min-height: 190px;
        padding-top: 30px;
        padding-bottom: 32px;
    }

    .archive-hero h1 {
        font-size: clamp(34px, 11vw, 46px);
    }

    .archive-hero p:last-child {
        font-size: 15px;
        line-height: 1.55;
    }

    .btn,
    .pagination__button,
    .reservation-request-submit,
    .reservation-request-cta__button,
    .contact-action,
    .document-card__action,
    .about-document-link__button,
    .gallery-clear-filter,
    .month-control {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .reservation-request-form input,
    .reservation-request-form textarea,
    .reservation-request-form select {
        font-size: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
