/* Společný výstup běžných CMS stránek, článků, kategorií a formulářů. */
.container {
    width: min(1120px, calc(100% - 40px)) !important;
    margin: 58px auto 76px !important;
}

.container .card,
.contact-form-card,
.form-public-card {
    box-sizing: border-box !important;
    padding: clamp(28px, 4vw, 48px) !important;
    border: 1px solid #cfe7f2 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: 0 15px 34px rgba(7, 91, 130, .10) !important;
}

/* Detail článku má stejně jako výpis dokumentů záhlaví přes celou šířku panelu. */
.container .card.article-detail-card { padding: 0 !important; }

/* Kategorie a prázdné výpisy nesmí přetékat ani začínat přímo na hraně panelu. */
.container .category-page,
.container .category-page .card { min-width: 0; }
.container .category-empty { margin: 0; padding: 20px 0; color: #3e6175; }

.container h1,
.container h2,
.container h3,
.contact-page h1,
.contact-page h2 {
    color: #124a70 !important;
    font-family: "Baloo 2", "Nunito Sans", sans-serif !important;
}

.container h1 { font-size: clamp(34px, 4vw, 49px) !important; line-height: 1.1 !important; }
.container h2 { font-size: clamp(26px, 3vw, 35px) !important; }
.container .page-content,
.container .rich-content,
.container .category-description { color: #3e6175 !important; font-size: 17px !important; line-height: 1.82 !important; }
.container .rich-content p { margin: 0 0 1.2em; }
.container .rich-content ul,.container .rich-content ol { margin: 0 0 1.2em; padding-left: 1.5em; }
.container .rich-content li { margin: .32em 0; }
.container .rich-content blockquote { margin: 1.5em 0; padding: 1em 1.2em; border-left: 4px solid #0098d5; background: #eaf7fc; color: #245b78; }
.container .rich-content figure { max-width: 100%; margin: 1.6em auto; text-align: center; }
.container .rich-content figcaption { margin-top: .45em; color: #6a8798; font-size: .88em; }
.container .rich-content img { max-width: 100%; height: auto; }
.container .rich-content table { margin: 1.5em 0; }
.container .rich-content th,.container .rich-content td { vertical-align: top; }
.container .page-content a,
.container .rich-content a,
.container .read-more,
.container .article-title { color: #008dca !important; font-weight: 800; }
.container .article-title { display: block; font: 800 25px/1.1 "Baloo 2",sans-serif; text-decoration: none; }
.container .article-meta,.container .news-date,.container .news-tag { color: #008dca !important; }

.container .articles-grid,
.container .gallery-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.container .article-card,
.container .gallery-category-card { overflow: hidden; border: 1px solid #cfe7f2 !important; border-radius: 0; background: #fff; box-shadow: 0 9px 21px rgba(6, 93, 130, .09); }
.container .article-card:hover,
.container .gallery-category-card:hover { transform: translateY(-4px); box-shadow: 0 17px 28px rgba(6, 93, 130, .16); }
.container .article-details,.container .gallery-category-copy { padding: 19px !important; }
.container .article-image-container { overflow: hidden; background: #e6f4fa !important; }
.container .article-image-container img { width: 100%; height: 100%; object-fit: cover; }

.container .document-list a,
.container .category-links a { border-color: #cfe7f2 !important; border-radius: 0; background: #f8fcfe; color: #124a70 !important; }
.container .document-list a:hover,
.container .category-links a:hover { background: #e7f6fc; }
.container table { width: 100%; border-collapse: collapse; overflow: hidden; border: 1px solid #cfe7f2; border-radius: 0; }
.container th { background: #e4f5fb; color: #124a70; }
.container th,.container td { padding: 13px; border-bottom: 1px solid #d7ebf4; text-align: left; }

.contact-page { width: min(1120px, calc(100% - 40px)); margin: 58px auto 76px; }
.contact-form-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 45px; align-items: start; }
.contact-lead { color: #58738a; font-size: 18px; }
.contact-form-card { padding: 31px; }
.public-contact-form { display: grid; gap: 16px; }
.public-contact-form label { display: grid; gap: 7px; color: #174b6d; font-weight: 800; }
.public-contact-form input,.public-contact-form textarea,.public-contact-form select { width: 100%; padding: 13px; border: 1px solid #b8dcea; border-radius: 0; color: #174b6d; font: inherit; }
.public-contact-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.public-contact-form .consent { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.public-contact-form .consent input { width: auto; }
.button,.button-primary,.public-contact-form button { justify-self: start; padding: 12px 18px; border: 0; border-radius: 0; background: #0098d5; color: #fff; font: 800 15px "Nunito Sans",sans-serif; cursor: pointer; }
.form-message { margin-bottom: 18px; padding: 13px 15px; border-radius: 0; }.form-message.success { background: #e4f7ee; color: #176845; }.form-message.error { background: #fff0f0; color: #a13a3a; }

/* Právní informace a cookies – stejný papírový obsahový panel jako ostatní stránky. */
.legal-page { width: min(980px, calc(100% - 40px)); margin: 58px auto 76px; padding: clamp(28px, 5vw, 56px); box-sizing: border-box; border: 1px solid #cfe7f2; border-radius: 0; background: #fff; box-shadow: 0 15px 34px rgba(7, 91, 130, .10); color: #3e6175; font-size: 17px; line-height: 1.75; }
.legal-page .access-kicker { margin: 0 0 8px; color: #008dca; font: 800 13px/1.2 "Nunito Sans", sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.legal-page h1,.legal-page h2 { color: #124a70; font-family: "Baloo 2", "Nunito Sans", sans-serif; }
.legal-page h1 { margin: 0 0 24px; font-size: clamp(34px, 4vw, 49px); line-height: 1.08; }
.legal-page h2 { margin: 38px 0 13px; padding-top: 28px; border-top: 1px solid #d9edf5; font-size: clamp(26px, 3vw, 35px); line-height: 1.15; }
.legal-page h1 + p,.legal-page h2 + p { margin-top: 0; }
.legal-page p { max-width: none; margin: 0 0 18px; overflow-wrap: anywhere; }
.legal-page a { color: #008dca; font-weight: 800; text-underline-offset: 3px; }
.legal-page table { width: 100%; margin: 20px 0 24px; border: 1px solid #cfe7f2; border-collapse: separate; border-spacing: 0; border-radius: 0; overflow: hidden; background: #fff; }
.legal-page th,.legal-page td { padding: 14px 16px; border-bottom: 1px solid #d7ebf4; vertical-align: top; text-align: left; }
.legal-page th { background: #e4f5fb; color: #124a70; font: 800 14px "Nunito Sans", sans-serif; }
.legal-page tbody tr:last-child td { border-bottom: 0; }
.legal-page code { padding: 3px 6px; border-radius: 0; background: #eef8fc; color: #0a5f89; font-size: .88em; white-space: nowrap; }

@media (max-width: 780px) {
    .container,.contact-page { width: calc(100% - 28px) !important; margin: 36px auto 55px !important; }
    .container .card { padding: 24px !important; }
    .container .articles-grid,.container .gallery-category-grid { grid-template-columns: 1fr; }
    .contact-form-layout { grid-template-columns: 1fr; gap: 24px; }.public-contact-form .form-row { grid-template-columns: 1fr; }
    .legal-page { width: calc(100% - 28px); margin: 36px auto 55px; padding: 25px 20px; border-radius: 0; font-size: 16px; }
    .legal-page h2 { margin-top: 30px; padding-top: 23px; }
    .legal-page table { display: block; overflow-x: auto; white-space: nowrap; }
}

/* Jednotná šířka a umístění všech vnitřních stránek MŠ Olšava. */
:root {
    --kindergarten-content-width: 1160px;
    --kindergarten-content-gutter: 36px;
    --kindergarten-content-top: 48px;
    --kindergarten-content-bottom: 72px;
}

.container,
.contact-page,
.legal-page,
.document-folder-page,
.timetable-public,
.timetable-list,
.meal-menu-page {
    width: min(var(--kindergarten-content-width), calc(100% - var(--kindergarten-content-gutter))) !important;
    margin: var(--kindergarten-content-top) auto var(--kindergarten-content-bottom) !important;
}

@media (max-width: 780px) {
    :root {
        --kindergarten-content-gutter: 24px;
        --kindergarten-content-top: 28px;
        --kindergarten-content-bottom: 48px;
    }
}
