:root {
    --blue: #0b4ca5;
    --blue-dark: #17365d;
    --red: #087b88;
    --gold: #b58b34;
    --ink: #282828;
    --muted: #68717e;
    --bg: #f7f7f7;
    --line: #dddddd;
    --white: #ffffff;
    --shadow: 0 8px 28px rgba(20, 37, 61, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font: 17px/1.68 "Segoe UI", Arial, sans-serif;
}

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus {
    left: 15px;
    top: 15px;
    background: #fff;
    padding: 10px;
    z-index: 100;
}

.site-header { background: #fff; }
.banner-wrap {
    max-width: 1200px;
    margin: 0 auto;
    background: #fff;
}
.seasonal-banner {
    display: block;
    width: 100%;
    height: auto;
}

.main-nav {
    position: relative;
    z-index: 20;
    background: #fff;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .03);
}
.nav-inner {
    max-width: 1260px;
    margin: 0 auto;
}
.main-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.main-nav .menu {
    display: flex;
    justify-content: center;
    align-items: stretch;
}
.main-nav li { position: relative; }
.main-nav li > a {
    display: block;
    padding: 18px 13px;
    color: #333;
    font-size: 14px;
    font-weight: 650;
    letter-spacing: .025em;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}
.main-nav li > a:hover,
.main-nav li.current > a {
    color: var(--red);
}
.submenu-toggle {
    display: none;
}
.main-nav .has-children > a {
    padding-right: 25px;
}
.main-nav .has-children > a::after {
    content: "⌄";
    position: absolute;
    right: 9px;
    top: 17px;
    color: #777;
    font-size: 13px;
}
.main-nav .sub-menu {
    position: absolute;
    left: -9999px;
    top: 100%;
    width: 225px;
    background: #fff;
    border: 1px solid #e2e2e2;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .14);
    opacity: 0;
    transition: opacity .15s ease;
}
.main-nav .sub-menu li > a {
    padding: 12px 15px;
    border-top: 1px solid #eee;
    font-size: 13px;
    line-height: 1.4;
    text-transform: none;
    white-space: normal;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu {
    left: 0;
    opacity: 1;
}
.menu-toggle {
    display: none;
    width: 100%;
    border: 0;
    background: transparent;
    color: #333;
    padding: 14px 18px;
    font: 700 16px inherit;
    text-align: left;
}
.menu-toggle span { float: right; }

.site-main {
    max-width: 1200px;
    min-height: 430px;
    margin: 0 auto;
    padding: 44px 24px 65px;
}
.content-layout.has-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 275px;
    align-items: start;
    gap: 28px;
}
.page-column { min-width: 0; }
.updates-sidebar {
    background: #fff;
    border: 1px solid var(--line);
    border-top: 4px solid var(--red);
    border-radius: 9px;
    box-shadow: var(--shadow);
    padding: 24px 20px;
}
.updates-sidebar h2 {
    margin: 0 0 15px;
    color: var(--blue-dark);
    border-bottom: 1px solid #dfe4e9;
    padding-bottom: 13px;
    font: 700 18px Georgia, serif;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}
.updates-sidebar ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.updates-sidebar-group {
    border-top: 1px solid #e5e8ec;
    padding: 12px 0 10px;
}
.updates-sidebar-group:first-child { border-top: 0; padding-top: 2px; }
.updates-sidebar-group time {
    display: block;
    margin-bottom: 5px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
}
.updates-sidebar-group li + li { margin-top: 3px; }
.updates-sidebar-group a {
    display: block;
    color: var(--ink);
    font-weight: 400;
    line-height: 1.35;
    text-decoration: none;
}
.updates-sidebar-group a:hover,
.updates-sidebar-group a:focus-visible { color: var(--red); text-decoration: underline; }
.updates-sidebar-empty { margin: 0; color: var(--muted); }
.sidebar-extra {
    margin-top: 22px;
    border-top: 1px solid #dfe4e9;
    padding-top: 22px;
}
.sidebar-extra h3 {
    margin: 10px 0 0;
    color: var(--blue-dark);
    font: 700 18px/1.3 Georgia, serif;
}
.sidebar-extra h3 a { color: inherit; text-decoration: none; }
.sidebar-extra h3 a:hover,
.sidebar-extra h3 a:focus-visible { color: var(--red); text-decoration: underline; }
.sidebar-camera-image {
    display: block;
    overflow: hidden;
    border-radius: 3px;
    background: #eef1f4;
}
.sidebar-camera-image img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.sidebar-reading {
    color: var(--ink);
    font-size: 14px;
    line-height: 1.48;
    text-align: center;
}
.sidebar-reading p { margin: 0 0 12px; }
.sidebar-reading .nl_nadpis { color: var(--blue-dark); }
.sidebar-reading .nl_stred { font-style: normal; }
.sidebar-reading .nl_kom { color: #3f4650; }
.sidebar-reading a { color: var(--blue-dark); text-decoration: underline; }
.sidebar-reading a:hover,
.sidebar-reading a:focus-visible { color: var(--red); }
.sidebar-reading #nl-komentar-odkaz { margin-top: 15px; }
.sidebar-counter h3 { margin: 0 0 11px; text-align: center; }
.sidebar-counter dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    margin: 0;
    border: 1px solid #dfe4e9;
    border-radius: 3px;
    background: #dfe4e9;
}
.sidebar-counter dl div { padding: 9px 7px; background: #f7f8fa; text-align: center; }
.sidebar-counter dt { color: var(--muted); font-size: 11px; line-height: 1.2; }
.sidebar-counter dd { margin: 3px 0 0; color: var(--blue-dark); font-size: 15px; font-weight: 700; }
.home-page { display: grid; gap: 32px; }
.home-quote {
    position: relative;
    overflow: hidden;
    border: 1px solid #dce2e8;
    border-top: 4px solid var(--red);
    border-radius: 9px;
    background: linear-gradient(135deg, #f7f9fb 0%, #fff 58%, #f8f3e7 100%);
    padding: 12px 28px;
    text-align: center;
}
.home-quote::before {
    content: "„";
    position: absolute;
    left: 11px;
    top: -8px;
    color: rgba(8, 123, 136, .09);
    font: 700 56px Georgia, serif;
}
.home-quote #biblicky-citat-na-dnesni-den {
    margin-bottom: 4px;
    color: var(--red);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.home-quote #biblicky-citat-text {
    display: block;
    color: var(--blue-dark);
    font: 700 clamp(16px, 1.9vw, 20px)/1.38 Georgia, serif;
}
.home-quote #biblicky-citat-citace {
    display: block;
    margin-top: 3px;
    color: #5e6877;
    font-size: 12px;
}
.home-quote #biblicky-citat-odkaz { margin-top: 4px; font-size: 11px; }
.home-quote a { color: var(--red); text-decoration: none; }
.home-section {
    border: 1px solid var(--line);
    border-top: 4px solid var(--red);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--shadow);
    padding: 30px;
}
.home-section-heading { margin-bottom: 20px; text-align: center; }
.home-section-heading h1,
.home-section-heading h2 {
    margin: 0;
    color: var(--blue-dark);
    font: 700 clamp(26px, 3.4vw, 38px)/1.2 Georgia, serif;
}
.home-video-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: 5px;
    background: #111;
}
.home-video-wrap iframe,
.home-map-wrap iframe { width: 100%; height: 100%; border: 0; }

.home-video-custom iframe {
    position: absolute;
    inset: 0;
}
.home-video-poster {
    position: absolute;
    inset: 0;
    z-index: 2;
    overflow: hidden;
    background: #111;
}
.home-video-poster[hidden] { display: none; }
.home-video-poster img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home-video-poster::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,.04), rgba(0,0,0,.18));
    pointer-events: none;
}
.home-video-play {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 3;
    display: grid;
    width: 78px;
    height: 56px;
    place-items: center;
    transform: translate(-50%, -50%);
    border: 0;
    border-radius: 14px;
    background: rgba(0,0,0,.76);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0,0,0,.28);
    transition: transform .18s ease, background .18s ease;
}
.home-video-play span {
    margin-left: 4px;
    font-size: 27px;
    line-height: 1;
}
.home-video-play:hover,
.home-video-play:focus-visible {
    transform: translate(-50%, -50%) scale(1.06);
    background: var(--red);
}
.home-contact { border-top-color: var(--red); }
.home-contact { padding: 17px 21px 19px; }
.home-contact-label { margin-bottom: 9px; text-align: center; }
.home-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid #e5e9ed;
}
.home-contact-grid div { padding: 10px 12px; border-right: 1px solid #e5e9ed; border-bottom: 1px solid #e5e9ed; }
.home-contact-grid div:nth-child(3n),
.home-contact-grid div:last-child { border-right: 0; }
.home-contact-grid span {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.home-contact-grid strong { color: var(--ink); font-size: 15px; line-height: 1.4; }
.home-contact-grid a { color: var(--red); text-decoration: none; }
.home-map-wrap { height: min(52vw, 540px); min-height: 380px; overflow: hidden; border-radius: 5px; }
.content-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 3px;
    box-shadow: var(--shadow);
    padding: 36px;
}
.eyebrow {
    margin: 0 0 7px;
    color: var(--red);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .13em;
}
.welcome h1 {
    margin: 0 0 18px;
    color: var(--blue-dark);
    font: 700 clamp(32px, 5vw, 52px)/1.12 Georgia, serif;
}
.page-title h1 {
    margin: 0;
    color: var(--blue-dark);
    font: 700 clamp(29px, 3.5vw, 42px)/1.15 Georgia, serif;
}
.welcome .lead {
    max-width: 690px;
    color: #4b586c;
    font-size: 19px;
}
.quick-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}
.quick-links a,
.empty-state a {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    border: 1px solid #c9d2dd;
    border-radius: 3px;
    padding: 11px 15px;
    color: var(--blue-dark);
    font-weight: 700;
    text-decoration: none;
}
.quick-links a.primary-link {
    background: var(--blue-dark);
    border-color: var(--blue-dark);
    color: #fff;
}
.contact-card { border-top: 4px solid var(--gold); }
.contact-card h2,
.section-heading h2 {
    margin: 0 0 20px;
    color: var(--blue-dark);
    font: 700 26px Georgia, serif;
}
.contact-card dl { margin: 0; }
.contact-card dl div {
    border-top: 1px solid #e7ebef;
    padding: 12px 0;
}
.contact-card dt {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.contact-card dd { margin: 2px 0 0; font-weight: 600; }
.contact-card a { color: var(--red); text-decoration: none; }
.section-block { margin-top: 45px; }
.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-bottom: 16px;
}
.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}
.feature-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 3px;
    padding: 27px;
    color: var(--ink);
    text-decoration: none;
    transition: .2s;
}
.feature-card:hover {
    border-color: #b9c6d6;
    box-shadow: var(--shadow);
    transform: translateY(-3px);
}
.feature-card > span { color: var(--gold); font: 700 14px Georgia, serif; }
.feature-card h3 {
    margin: 10px 0 7px;
    color: var(--blue-dark);
    font: 700 23px Georgia, serif;
}
.feature-card p { margin: 0 0 18px; color: var(--muted); }
.feature-card b { color: var(--red); font-size: 14px; }
.page-title {
    margin: 0 0 28px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 20px;
}
.page-title h1 { margin-bottom: 0; }
.editable-page-content {
    margin: 0 0 32px;
    padding: 20px 22px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    line-height: 1.72;
}
.editable-page-content p { margin: 0 0 1em; }
.editable-page-content p:last-child { margin-bottom: 0; }
.parish-directory {
    display: grid;
    gap: 38px;
}
.parish-directory-section {
    min-width: 0;
}
.parish-directory-section + .parish-directory-section {
    border-top: 4px solid var(--red);
    border-radius: 9px 9px 0 0;
    padding-top: 38px;
}
.parish-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.content-layout.has-sidebar .parish-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.parish-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 9px;
    box-shadow: 0 4px 16px rgba(27, 42, 65, .07);
    color: var(--ink);
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.parish-card:hover,
.parish-card:focus-visible {
    border-color: #aebdce;
    box-shadow: 0 12px 28px rgba(27, 42, 65, .14);
    transform: translateY(-4px);
}
.parish-card-image {
    display: block;
    aspect-ratio: 5 / 3;
    overflow: hidden;
    background: #f1f3f5;
}
.parish-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}
.parish-card:hover .parish-card-image img { transform: scale(1.025); }
.parish-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 19px 18px 17px;
}
.parish-card-kicker {
    margin-bottom: 7px;
    color: var(--gold-dark, #8b671d);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .11em;
}
.parish-card-body > strong {
    color: var(--blue-dark);
    font: 700 20px/1.2 Georgia, serif;
}
.parish-card-description {
    margin-top: 7px;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}
.parish-card-open {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: auto;
    padding-top: 17px;
    color: var(--red);
    font-size: 13px;
    font-weight: 800;
}
.parish-card-open b {
    font-size: 18px;
    line-height: 1;
    transition: transform .18s ease;
}
.parish-card:hover .parish-card-open b { transform: translateX(4px); }
.ministrants-page { display: grid; width: 100%; max-width: 900px; margin: 0 auto; gap: 28px; }
.ministrants-page-title { width: 100%; max-width: 900px; margin-right: auto; margin-left: auto; }
.ministrants-page-title + .editable-page-content { max-width: 900px; margin-right: auto; margin-left: auto; }
.ministrants-hero {
    overflow: hidden;
    width: 100%;
    margin: 0;
    border: 1px solid var(--line);
    border-top: 4px solid var(--red);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--shadow);
    padding: 14px;
    text-align: center;
}
.ministrants-hero img { display: block; width: auto; max-width: min(310px, 100%); max-height: 220px; margin: 0 auto; object-fit: contain; }
.ministrants-section {
    overflow: hidden;
    border: 1px solid var(--line);
    border-top: 4px solid var(--red);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--shadow);
    padding: 27px 30px 29px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    line-height: 1.72;
}
.ministrants-section h2 { margin: 0 0 16px; color: var(--blue-dark); font: 700 25px/1.25 Georgia, serif; }
.ministrants-section p { margin: 0 0 15px; }
.ministrants-section p:last-child { margin-bottom: 0; }
.ministrants-prayer { background: linear-gradient(135deg, #f9fbfb 0%, #fff 70%); }
.ministrants-rules { display: grid; gap: 10px; margin: 0; padding-left: 24px; }
.ministrants-rules li { padding-left: 5px; }
.ministrants-rules li::marker { color: var(--red); font-weight: 700; }
.ministrants-closing { margin-top: 18px !important; color: var(--blue-dark); font-weight: 700; text-align: center; }
.ministrants-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border-radius: 5px;
    background: var(--red);
    padding: 11px 16px;
    color: #fff;
    font-family: "Segoe UI", Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}
.ministrants-button:hover,
.ministrants-button:focus-visible { background: #075d67; }
.ministrants-note { color: var(--muted); font-size: 15px; }
.ministrants-quote blockquote { margin: 20px 0 0; border-left: 4px solid var(--red); padding: 4px 0 4px 20px; color: #3e4c5d; font-style: italic; }
.ministrants-patron { display: grid; grid-template-columns: 190px minmax(0, 1fr); align-items: start; gap: 27px; }
.ministrants-patron-image { overflow: hidden; border-radius: 7px; background: #f0f2f4; }
.ministrants-patron-image img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: contain; }
.ministrants-more { color: var(--red); font-family: "Segoe UI", Arial, sans-serif; font-size: 14px; font-weight: 700; text-decoration: none; }
.ministrants-more:hover,
.ministrants-more:focus-visible { text-decoration: underline; }
.ministrants-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ministrants-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #d9e1e5; border-radius: 6px; padding: 12px 14px; color: var(--blue-dark); font-family: "Segoe UI", Arial, sans-serif; font-size: 15px; font-weight: 700; text-decoration: none; }
.ministrants-links a:hover,
.ministrants-links a:focus-visible { border-color: var(--red); color: var(--red); }
.children-page-title { width: 100%; max-width: 900px; margin-right: auto; margin-left: auto; }
.children-page { display: grid; width: 100%; max-width: 900px; margin: 0 auto; gap: 28px; }
.children-video-card,
.children-info {
    overflow: hidden;
    border: 1px solid var(--line);
    border-top: 4px solid var(--red);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--shadow);
}
.children-video-card { padding: 25px 28px 28px; }
.children-video-heading { margin-bottom: 18px; text-align: center; }
.children-video-heading p {
    margin: 0 0 5px;
    color: var(--red);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .13em;
}
.children-video-heading h2 { margin: 0; color: var(--blue-dark); font: 700 27px/1.25 Georgia, serif; }
.children-video-wrap { position: relative; overflow: hidden; width: 100%; aspect-ratio: 16 / 9; border-radius: 7px; background: #10151c; }
.children-video-wrap .cookie-external-box { width: 100%; height: 100%; min-height: 0; }
.children-video-wrap .cookie-external-placeholder { width: 100%; height: 100%; min-height: 0; }
.children-video-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.children-info { padding: 28px 31px 30px; font-family: Georgia, "Times New Roman", serif; font-size: 18px; line-height: 1.72; }
.children-info p { margin: 0 0 16px; }
.children-info p:last-child { margin-bottom: 0; }
.children-info a { color: var(--red); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.children-salutation { color: var(--blue-dark); font-size: 20px; font-weight: 700; }
.children-signature { margin-top: 23px !important; color: var(--blue-dark); font-weight: 700; }
.children-signature span { color: var(--muted); font-size: 15px; font-weight: 400; }
.services-pdf {
    max-width: 900px;
    margin: 0 auto;
}
.services-pdf-frame {
    position: relative;
    aspect-ratio: 210 / 297;
    overflow: hidden;
    background: #fff;
    border: 0;
    box-shadow: none;
}
.services-pdf-frame::before,
.services-pdf-frame::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 2;
}
.services-pdf-frame::before {
    inset: 0;
    border-right: 10px solid #fff;
    border-left: 10px solid #fff;
}
.services-pdf-frame::after {
    right: 0;
    bottom: 0;
    left: 0;
    height: 24px;
    background: #fff;
}
.services-pdf-viewer {
    position: absolute;
    inset: -6px;
    display: block;
    width: calc(100% + 12px);
    height: calc(100% + 12px);
    background: #fff;
    border: 0;
    box-shadow: none;
}
.services-pdf-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    margin-top: 18px;
}
.services-pdf-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid var(--blue-dark);
    border-radius: 3px;
    padding: 9px 18px;
    background: var(--blue-dark);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}
.services-pdf-download:hover { background: var(--blue); }
.services-import-link {
    display: inline-block;
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    border-radius: 50%;
    background: #d7ae52;
    box-shadow: 0 0 0 1px rgba(126, 91, 17, .16);
    opacity: .72;
    transition: opacity .15s ease, transform .15s ease;
}
.services-import-link:hover,
.services-import-link:focus-visible {
    opacity: 1;
    transform: scale(1.18);
}
.services-pdf-missing .services-import-link { margin-top: 18px; }
.pastoral-room { width: 100%; }
.pastoral-rules-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 24px;
    padding: 18px 21px;
    background: #fff;
    border: 1px solid var(--line);
    border-left: 4px solid var(--red);
    border-radius: 4px;
    box-shadow: var(--shadow);
    color: var(--blue-dark);
    font: 700 clamp(18px, 2.2vw, 25px)/1.3 Georgia, serif;
    text-decoration: none;
}
.pastoral-rules-link:hover { color: var(--red); }
.pastoral-pdf-icon {
    width: 34px;
    height: 41px;
    flex: 0 0 34px;
    overflow: visible;
}
.pastoral-pdf-icon path {
    fill: #fff;
    stroke: var(--red);
    stroke-width: 2;
    stroke-linejoin: round;
}
.pastoral-pdf-icon text {
    fill: var(--red);
    font: 800 9px "Segoe UI", Arial, sans-serif;
    text-anchor: middle;
}
.pastoral-calendar-wrap {
    width: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
}
.pastoral-calendar {
    display: block;
    width: 100%;
    height: 800px;
    border: 0;
}
.noticeboard-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
}
.notice-card {
    margin: 0;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    padding: 10px;
}
.notice-card > a { display: block; }
.notice-card img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 650px;
    object-fit: contain;
    background: #f6f7f8;
}
.notice-card figcaption { padding: 11px 8px 5px; text-align: center; }
.notice-card figcaption strong,
.notice-card figcaption span { display: block; }
.notice-card figcaption strong { font-family: Georgia, serif; }
.notice-card figcaption span { color: #4d5868; font-weight: 700; }
.notice-longterm { margin-top: 48px; }
.notice-section-divider {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 24px;
}
.notice-section-divider::before,
.notice-section-divider::after {
    content: "";
    height: 1px;
    background: #ccd3dc;
}
.notice-section-divider::before { width: 38px; }
.notice-section-divider::after { flex: 1; }
.notice-section-divider h2 {
    margin: 0;
    color: var(--blue-dark);
    font: 700 22px Georgia, serif;
    white-space: nowrap;
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.gallery-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 15px;
    box-shadow: var(--shadow);
    color: var(--ink);
    text-decoration: none;
    transition: transform .2s, box-shadow .2s;
}
.gallery-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(20,37,61,.14); }
.gallery-card img {
    display: block;
    width: 100%;
    height: auto;
    background: #eef1f4;
    border-radius: 10px 10px 0 0;
}
.gallery-caption {
    display: flex;
    flex: 1 1 auto;
    min-height: 50px;
    padding: 6px 10px 7px;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(to bottom, #bdbdbd 0%, #777 43%, #414141 100%);
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .65);
    border-radius: 0 0 10px 10px;
}
.gallery-caption time,
.gallery-caption strong { display: block; }
.gallery-caption time { margin-bottom: 1px; color: #fff; font-size: 13px; font-weight: 750; line-height: 1.15; }
.gallery-caption strong { color: #fff; font: 700 16px/1.2 Georgia, serif; }
.gallery-archive-section { margin-top: 48px; }
.gallery-grid.gallery-archive-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.gallery-archive-card {
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: center;
    padding: 8px 10px;
    background: #7b7979;
    border: 0;
    border-radius: 15px;
    box-shadow: none;
    color: #fff;
    text-align: center;
}
.gallery-archive-card:hover { background: #686666; }
.gallery-archive-card span {
    color: #fff;
    font: italic 700 20px/1.12 Georgia, serif;
    white-space: nowrap;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .35);
}
.gallery-archive-title { margin-bottom: 14px; }
.gallery-back {
    display: inline-block;
    margin: 0 0 24px;
    color: var(--red);
    font-weight: 700;
    text-decoration: none;
}
.gallery-back:hover { text-decoration: underline; }
.empty-state {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 3px;
    padding: 55px 30px;
    text-align: center;
}
.empty-state h1,
.empty-state h2 {
    margin: 0 0 8px;
    color: var(--blue-dark);
    font: 700 28px Georgia, serif;
}
.empty-state p { margin: 0 0 22px; color: var(--muted); }
.choir-videos { margin-bottom: 42px; }
.choir-videos > h2 {
    margin: 0 0 16px;
    color: var(--blue-dark);
    font: 700 25px/1.2 Georgia, serif;
}
.choir-video-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.choir-video {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
}
.video-frame { position: relative; overflow: hidden; width: 100%; aspect-ratio: 16 / 9; background: #111; border-radius: 11px; }
.video-frame .cookie-external-box { width: 100%; height: 100%; min-height: 0; }
.video-frame .cookie-external-placeholder { width: 100%; height: 100%; min-height: 0; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.music-groups { display: grid; gap: 34px; }
.music-group {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
    align-items: stretch;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line);
    border-top: 4px solid var(--red);
    border-radius: 9px;
    box-shadow: var(--shadow);
}
.music-player {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: 22px;
}
.music-player-heading { margin-bottom: 17px; }
.music-player-heading h2 {
    margin: 0;
    color: var(--blue-dark);
    font: 700 27px/1.2 Georgia, serif;
}
.now-playing { margin: 0 0 10px; color: var(--muted); font-size: 14px; }
.now-playing strong { color: var(--ink); }
.music-player audio {
    display: block;
    width: 100%;
    min-height: 54px;
    height: 54px;
    margin-bottom: 14px;
}
.music-seek { margin: -2px 0 14px; }
.music-seek input[type="range"] {
    display: block;
    width: 100%;
    margin: 0;
    accent-color: var(--blue-dark);
    cursor: pointer;
}
.music-time {
    display: flex;
    justify-content: space-between;
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
}
.track-list {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
    border: 1px solid var(--line);
    border-radius: 3px;
    scrollbar-gutter: stable;
}
.track-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.track-list li + li { border-top: 1px solid var(--line); }
.track-button {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    width: 100%;
    min-height: 39px;
    padding: 5px 10px;
    border: 0;
    background: #fff;
    color: var(--ink);
    text-align: left;
}
.track-button:hover { background: #f5f7fa; }
.track-button.active { background: #eaf0fb; color: var(--blue-dark); }
.track-button > span { color: var(--muted); font-size: 12px; }
.track-title { min-width: 0; overflow: hidden; white-space: nowrap; }
.track-title-text { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
.track-button:hover .track-title-text.is-overflowing,
.track-button:focus-visible .track-title-text.is-overflowing {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    animation: track-title-scroll 5s ease-in-out infinite alternate;
}
@keyframes track-title-scroll {
    0%, 15% { transform: translateX(0); }
    85%, 100% { transform: translateX(var(--track-shift)); }
}
.track-download {
    display: grid;
    place-items: center;
    align-items: center;
    width: 40px;
    min-height: 39px;
    padding: 0;
    border-left: 1px solid var(--line);
    color: var(--blue-dark);
    background: #f8fafc;
    text-decoration: none;
}
.track-download:hover { color: var(--red); text-decoration: underline; }
.track-download svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.music-photo {
    display: block;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: #fff;
}
.music-photo img { display: block; width: 100%; height: auto; min-height: 0; border-radius: 12px; }
.music-empty {
    padding: 25px;
    color: var(--muted);
    background: #f6f8fa;
    border: 1px dashed #bdc7d3;
    border-radius: 4px;
}
.music-empty p { margin: 0 0 5px; }
.music-empty small { display: block; }
.site-footer {
    background: #242424;
    color: #ccc;
    padding: 24px max(24px, calc((100vw - 1152px) / 2));
    text-align: center;
}
.site-footer p { margin: 0; }
.site-footer a { color: #fff; }
.back-to-top {
    position: fixed;
    right: max(18px, calc((100vw - 1240px) / 2));
    bottom: 22px;
    z-index: 50;
    display: grid;
    width: 49px;
    height: 49px;
    place-items: center;
    border: 4px solid #555;
    border-radius: 50%;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 3px 12px rgba(20, 35, 50, .2);
    color: #555;
    padding: 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .2s ease, visibility .2s ease, transform .2s ease, border-color .2s ease, color .2s ease;
    cursor: pointer;
}
.back-to-top svg { display: block; width: 100%; height: 100%; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover,
.back-to-top:focus-visible { border-color: var(--red); background: #fff; color: var(--red); }
.back-to-top:focus-visible { outline: 3px solid rgba(8, 123, 136, .24); outline-offset: 3px; }

.cleaning-schedule { max-width: 850px; }
.cleaning-schedule > h2 { margin: 30px 0 15px; color: var(--blue-dark); font: 700 25px/1.25 Georgia, serif; }
.cleaning-schedule > h2:first-child { margin-top: 0; }
.cleaning-schedule > h3 { margin: 22px 0 11px; color: var(--blue-dark); font: 700 18px/1.3 Georgia, serif; }
.cleaning-nearest { margin-bottom: 22px; border-left: 6px solid var(--red); border-radius: 5px; padding: 16px 18px; background: #fff4d6; }
.cleaning-nearest strong, .cleaning-nearest span { display: block; }
.cleaning-nearest strong { margin-bottom: 5px; color: var(--blue-dark); font-size: 19px; }
.cleaning-next { margin: 0 0 28px; padding-left: 24px; }
.cleaning-next li { margin-bottom: 10px; }
.cleaning-next strong, .cleaning-next span { display: block; }
.cleaning-group { overflow: hidden; margin: 0 0 14px; border: 1px solid #cfdce8; border-radius: 7px; padding: 0 16px 14px; background: #fff; }
.cleaning-group > h3 { margin: 0 -16px 12px; border-bottom: 1px solid #bfd8eb; padding: 11px 16px; background: #dceffc; color: #173f5f; font-size: 17px; }
.cleaning-history-button { margin: 0 0 11px; border: 1px solid #b7d5e8; border-radius: 5px; padding: 7px 11px; background: #eef7fc; color: #173f5f; cursor: pointer; font-weight: 700; }
.cleaning-history-button:hover { background: #d6edf9; }
.cleaning-terms { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.cleaning-terms li { border: 1px solid #bddcaf; border-radius: 4px; padding: 6px 9px; background: #e7f5df; }
.cleaning-terms li.is-past { display: none; border-color: #ddd; background: #eee; color: #777; }
.cleaning-group.show-history .cleaning-terms li.is-past { display: block; }
.cleaning-terms li.is-nearest { border-color: #075d67; background: var(--red); color: #fff; font-weight: 700; }
.cleaning-terms small { white-space: nowrap; font-size: 12px; }
.cleaning-print-button { margin: 7px 0 5px; border: 0; border-radius: 5px; padding: 11px 17px; background: #245b85; color: #fff; cursor: pointer; font-weight: 700; }
.cleaning-print-button:hover { background: #173f5f; }
.cleaning-error { display: grid; gap: 5px; border: 2px solid #b52828; border-radius: 6px; padding: 14px 16px; background: #fff0f0; color: #8f1d1d; }

.links-directory { display: grid; gap: 25px; }
.links-section { overflow: hidden; border: 1px solid var(--line); border-top: 4px solid var(--red); border-radius: 8px; background: #fff; box-shadow: 0 4px 16px rgba(27, 42, 65, .06); }
.links-section h2 { margin: 0; border-bottom: 1px solid var(--line); padding: 16px 19px 14px; color: var(--blue-dark); font: 700 23px/1.25 Georgia, serif; }
.links-section ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 8px 12px 12px; list-style: none; }
.links-section li { min-width: 0; }
.links-section a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 45px; border-bottom: 1px solid #edf0f3; padding: 9px 8px; color: var(--ink); text-decoration: none; }
.links-section li:nth-last-child(-n+2) a { border-bottom-color: transparent; }
.links-section a:hover,
.links-section a:focus-visible { border-radius: 4px; background: #f5f8fb; color: var(--red); }
.links-section a span { line-height: 1.35; }
.links-section a b { flex: 0 0 auto; color: var(--red); font-size: 16px; }
.history-page-title { width: 100%; max-width: 900px; margin-right: auto; margin-left: auto; }
.history-page { display: grid; width: 100%; max-width: 900px; margin: 0 auto; gap: 34px; }
.history-section { overflow: hidden; border: 1px solid var(--line); border-top: 4px solid var(--red); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.history-overview { padding: 28px 31px 31px; font-family: Georgia, "Times New Roman", serif; font-size: 18px; line-height: 1.72; }
.history-overview h2 { margin: 0 0 18px; color: var(--blue-dark); font: 700 26px/1.25 Georgia, serif; }
.history-overview h2:not(:first-child) { margin-top: 32px; border-top: 1px solid #dfe6eb; padding-top: 25px; }
.history-overview p { margin: 0 0 16px; }
.history-photo-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 25px; }
.history-photo-pair figure { overflow: hidden; margin: 0; border-radius: 7px; background: #eef1f4; }
.history-photo-pair img { display: block; width: 100%; height: 100%; max-height: 360px; object-fit: contain; }
.history-priests { min-width: 0; }
.history-divider-title { margin: 0 0 22px; border-top: 4px solid var(--red); border-radius: 9px 9px 0 0; padding-top: 19px; color: var(--blue-dark); font: 700 27px/1.25 Georgia, serif; }
.history-year-list { display: grid; gap: 0; margin: 4px 0 0; }
.history-year-list > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 15px; border-top: 1px solid #e4e9ed; padding: 13px 0; }
.history-year-list dt { color: var(--red); font-weight: 800; }
.history-year-list dd { margin: 0; }
.history-year-list > .history-period-break { display: block; margin-top: 24px; border-top: 4px solid var(--red); border-radius: 9px 9px 0 0; padding: 18px 0 2px; }
.history-period-break dt { color: var(--blue-dark); font: 700 26px/1.25 Georgia, serif; }
.history-period-break dd { display: none; }
.history-year-list .history-year-custom { padding-top: 17px; padding-bottom: 17px; }
.history-year-custom dt { overflow-wrap: anywhere; }
.history-year-custom dd.has-image { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 18px; align-items: start; }
.history-year-text p { margin: 0 0 12px; }
.history-year-text p:last-child { margin-bottom: 0; }
.history-year-image { overflow: hidden; margin: 0; border-radius: 6px; background: #eef1f4; }
.history-year-image img { display: block; width: 100%; height: auto; max-height: 210px; object-fit: contain; }
.history-clergy-list { overflow: hidden; border: 1px solid var(--line); border-top: 4px solid var(--red); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.history-clergy-row { padding: 14px 20px; font-family: Georgia, "Times New Roman", serif; font-size: 17px; line-height: 1.55; }
.history-clergy-row + .history-clergy-row { border-top: 1px solid #e4e9ed; }
.history-clergy-row strong { display: block; color: var(--blue-dark); }
.history-clergy-row span { display: block; margin-top: 2px; color: #505866; }
.history-photo-title { margin-top: 34px; }
.history-priest-grid,
.content-layout.has-sidebar .history-priest-grid { display: grid; grid-template-columns: 1fr; gap: 13px; }
.history-priest-card { display: grid; grid-template-columns: 154px minmax(0, 1fr); align-items: center; overflow: hidden; border: 1px solid var(--line); border-top: 4px solid var(--red); border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.history-priest-photo { display: grid; width: 130px; height: 130px; margin: 12px; place-items: center; overflow: hidden; border-radius: 6px; background: #eef1f4; }
.history-priest-photo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.history-priest-placeholder { color: #9aa5b1; font-size: 38px; }
.history-priest-body { padding: 17px 20px 19px; }
.history-priest-body > span { display: block; margin-bottom: 6px; color: var(--red); font-size: 14px; font-weight: 800; letter-spacing: .025em; }
.history-priest-body h3 { margin: 0; color: var(--blue-dark); font: 700 22px/1.3 Georgia, serif; }
.history-priest-body p { margin: 9px 0 0; color: var(--muted); font-size: 16px; line-height: 1.5; }
.choir-history-page-title,
.choir-history-page { width: 100%; max-width: 900px; margin-right: auto; margin-left: auto; }
.choir-history-content { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; padding: 0 30px 27px; background: #fff; box-shadow: var(--shadow); font-family: Georgia, "Times New Roman", serif; }
.choir-history-period { margin: 31px -30px 0; border-top: 4px solid var(--red); border-radius: 9px 9px 0 0; padding: 17px 30px 13px; color: var(--blue-dark); font: 700 26px/1.25 Georgia, serif; }
.choir-history-period:first-child { margin-top: 0; }
.choir-history-row { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; border-top: 1px solid #e4e9ed; padding: 14px 0; }
.choir-history-row h3 { margin: 0; color: var(--red); font: 800 18px/1.45 Georgia, serif; overflow-wrap: anywhere; }
.choir-history-text { min-width: 0; font-size: 17px; line-height: 1.62; }
.choir-history-text p { margin: 0 0 10px; }
.choir-history-text p:last-child { margin-bottom: 0; }
.small-choir-history-content { border-top: 4px solid var(--red); padding-top: 25px; font-size: 18px; line-height: 1.68; }
.small-choir-history-content p { margin: 0 0 18px; }
.small-choir-history-content p:last-child { margin-bottom: 0; }
.choir-history-added-content.has-image { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 18px; align-items: start; }
.choir-history-image { overflow: hidden; margin: 0; border-radius: 6px; background: #eef1f4; }
.choir-history-image img { display: block; width: 100%; height: auto; max-height: 220px; object-fit: contain; }

.news-list { max-width: 850px; }
.news-item { margin: 0 0 29px; }
.news-item > time { display: block; margin-bottom: 5px; color: var(--ink); font: 700 17px/1.45 Georgia, "Times New Roman", serif; }
.news-text { font-family: Georgia, "Times New Roman", serif; font-size: 18px; line-height: 1.68; }
.news-text p { margin: 0 0 10px; line-height: inherit; }
.news-text p:last-of-type { display: inline; margin-bottom: 0; }
.news-text a:not(.news-document) { color: var(--blue); font-weight: 700; }
.news-document { display: inline-flex; vertical-align: middle; margin-left: 8px; text-decoration: none; }
.news-document span { display: inline-flex; width: 31px; height: 31px; align-items: center; justify-content: center; border-radius: 4px; background: var(--red); color: #fff; font-size: 9px; font-weight: 900; letter-spacing: .04em; box-shadow: 0 2px 5px rgba(0, 0, 0, .16); }
.news-document:hover span,
.news-document:focus-visible span { background: #075d67; transform: translateY(-1px); }
.news-dots { display: flex; justify-content: center; gap: 54px; margin: 22px 0 29px; color: var(--red); font-weight: 800; }
.news-permanent { position: relative; margin: 0 0 28px; padding-left: 34px; font: 18px/1.68 Georgia, "Times New Roman", serif; }
.news-permanent::before { content: "•"; position: absolute; left: 15px; top: 0; }
.news-divider { margin: 30px 0 31px; border: 0; border-top: 4px solid var(--red); }
.news-error { margin: 0 0 18px; border-left: 4px solid var(--red); padding: 12px 15px; background: #fff3f3; color: #7a1118; }
.news-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 7px; margin: 36px 0 8px; }
.news-page-link,
.news-page-dots { display: inline-flex; min-width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid #d5d5d5; border-radius: 4px; padding: 0 10px; color: var(--ink); text-decoration: none; }
.news-page-link:hover,
.news-page-link:focus-visible { border-color: var(--red); color: var(--red); }
.news-page-link.is-current { border-color: var(--red); background: var(--red); color: #fff; font-weight: 700; }
.news-page-dots { min-width: 22px; border-color: transparent; padding: 0; }

@media (max-width: 1120px) {
    .main-nav li > a { padding-inline: 9px; font-size: 13px; }
    .main-nav .has-children > a { padding-right: 21px; }
    .main-nav .has-children > a::after { right: 6px; }
}

@media (max-width: 900px) {
    .content-layout.has-sidebar { grid-template-columns: 1fr; }
    .feature-grid { grid-template-columns: 1fr 1fr; }
    .parish-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .content-layout.has-sidebar .parish-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .noticeboard-grid { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid.gallery-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .choir-video-grid { grid-template-columns: 1fr; }
    .music-group { grid-template-columns: 1fr; }
    .music-player { display: block; overflow: visible; padding: 22px; }
    .track-list { max-height: 320px; }
    .music-photo { order: -1; }
    .music-photo img { min-height: 0; max-height: none; aspect-ratio: auto; }
}

@media (max-width: 782px) {
    .menu-toggle { display: block; }
    .main-nav .menu {
        display: none;
        flex-direction: column;
        border-top: 1px solid #eee;
    }
    .main-nav .menu.open { display: flex; }
    .main-nav li > a {
        border-top: 1px solid #eee;
        padding: 12px 48px 12px 18px;
        font-size: 15px;
        text-transform: none;
    }
    .main-nav .has-children > a::after { display: none; }
    .submenu-toggle {
        display: block;
        position: absolute;
        right: 5px;
        top: 4px;
        width: 42px;
        height: 39px;
        border: 0;
        background: #f3f3f3;
        color: #333;
        font-size: 20px;
    }
    .main-nav .sub-menu {
        display: none;
        position: static;
        width: auto;
        border: 0;
        box-shadow: none;
        opacity: 1;
    }
    .main-nav li:hover > .sub-menu,
    .main-nav li:focus-within > .sub-menu { display: none; }
    .main-nav li.submenu-open > .sub-menu { display: block; }
    .main-nav .sub-menu li > a {
        background: #f7f7f7;
        padding-left: 34px;
    }
}

@media (max-width: 680px) {
    .site-main { padding: 28px 15px 48px; }
    .back-to-top { right: 13px; bottom: 14px; width: 45px; height: 45px; padding: 7px; }
    .content-card { padding: 24px; }
    .home-page { gap: 22px; }
    .home-quote { padding: 11px 17px; }
    .home-section { padding: 22px 17px; }
    .home-contact-grid { grid-template-columns: 1fr; }
    .home-contact-grid div { border-right: 0; }
    .home-map-wrap { height: 470px; min-height: 0; }
    .feature-grid,
    .noticeboard-grid,
    .gallery-grid { grid-template-columns: 1fr; }
    .parish-card-grid { grid-template-columns: 1fr; }
    .content-layout.has-sidebar .parish-card-grid { grid-template-columns: 1fr; }
    .parish-directory { gap: 34px; }
    .parish-card-body { padding: 18px; }
    .ministrants-page { gap: 21px; }
    .ministrants-hero { padding: 9px; }
    .ministrants-hero img { max-width: min(240px, 100%); max-height: 180px; }
    .ministrants-section { padding: 21px 18px 23px; font-size: 17px; }
    .ministrants-section h2 { font-size: 22px; }
    .ministrants-patron { grid-template-columns: 1fr; gap: 18px; }
    .ministrants-patron-image { width: min(230px, 100%); margin: 0 auto; }
    .ministrants-links { grid-template-columns: 1fr; }
    .children-page { gap: 21px; }
    .children-video-card { padding: 19px 16px 17px; }
    .children-video-heading h2 { font-size: 23px; }
    .children-info { padding: 22px 19px 24px; font-size: 17px; }
    .history-page { gap: 27px; }
    .history-overview { padding: 22px 19px 24px; font-size: 17px; }
    .history-overview h2 { font-size: 23px; }
    .history-overview h2:not(:first-child) { margin-top: 27px; padding-top: 21px; }
    .history-photo-pair { grid-template-columns: 1fr; }
    .history-divider-title { font-size: 23px; }
    .history-year-list > div { grid-template-columns: 88px minmax(0, 1fr); gap: 10px; }
    .history-period-break dt { font-size: 23px; }
    .history-year-custom dd.has-image { grid-template-columns: 1fr; }
    .history-year-image { width: min(220px, 100%); }
    .history-clergy-row { padding: 13px 15px; font-size: 16px; }
    .history-priest-card { grid-template-columns: 108px minmax(0, 1fr); }
    .history-priest-photo { width: 88px; height: 100px; margin: 10px; }
    .history-priest-body { padding: 14px 13px 15px; }
    .history-priest-body h3 { font-size: 19px; }
    .history-priest-body p { font-size: 15px; }
    .choir-history-content { padding: 0 18px 20px; }
    .choir-history-period { margin-right: -18px; margin-left: -18px; padding: 15px 18px 11px; font-size: 23px; }
    .choir-history-row { grid-template-columns: 88px minmax(0, 1fr); gap: 10px; padding: 13px 0; }
    .choir-history-row h3 { font-size: 16px; }
    .choir-history-text { font-size: 16px; }
    .small-choir-history-content { padding-top: 20px; font-size: 17px; }
    .small-choir-history-content p { margin-bottom: 16px; }
    .choir-history-added-content.has-image { grid-template-columns: 1fr; }
    .choir-history-image { width: min(220px, 100%); }
    .gallery-grid.gallery-archive-grid { grid-template-columns: 1fr; }
    .welcome h1 { font-size: 34px; }
    .page-title h1 { font-size: 30px; }
    .notice-section-divider { gap: 10px; }
    .notice-section-divider::before { width: 20px; }
    .notice-section-divider h2 { font-size: 19px; white-space: normal; }
    .pastoral-rules-link { align-items: flex-start; padding: 16px; }
    .pastoral-calendar { height: 680px; }
    .music-player { padding: 22px 18px; }
    .track-list { max-height: 322px; }
    .track-download { width: 38px; }
    .cleaning-terms { display: block; }
    .cleaning-terms li { margin-bottom: 6px; }
    .links-section ul { grid-template-columns: 1fr; }
    .links-section li:nth-last-child(-n+2) a { border-bottom-color: #edf0f3; }
    .links-section li:last-child a { border-bottom-color: transparent; }
    .news-item { margin-bottom: 23px; }
    .news-dots { gap: 35px; }
    .news-page-wide { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .track-button:hover .track-title-text.is-overflowing,
    .track-button:focus-visible .track-title-text.is-overflowing { animation: none; }
}


/* Výuka náboženství */
.religion-page{overflow:hidden;border:1px solid #dfe5ea;border-radius:9px;background:#fff;box-shadow:0 8px 24px rgba(27,48,65,.06)}
.religion-heading{padding:24px 22px 19px;text-align:center}
.religion-heading h2{margin:0;color:#16384b;font:700 25px/1.2 Georgia,serif;letter-spacing:.025em}
.religion-heading p{margin:7px 0 0;color:#475866;font-size:17px}
.religion-heading h3{margin:13px 0 0;color:#173d50;font-size:18px;letter-spacing:.04em}
.religion-table-wrap{overflow-x:auto}
.religion-table{width:100%;border-collapse:collapse;table-layout:fixed}
.religion-table th,.religion-table td{border:1px solid #cfd9df;padding:13px 12px;text-align:center;vertical-align:middle}
.religion-table th{background:#d9f0f1;color:#153c4c;font-size:14px;letter-spacing:.045em}
.religion-table td{font-size:16px;line-height:1.4}
.religion-table th:nth-child(1){width:22%}.religion-table th:nth-child(2){width:19%}.religion-table th:nth-child(3){width:24%}.religion-table th:nth-child(4){width:35%}
.religion-empty-row td{color:#72808a;font-style:italic}
.religion-note{margin:0;padding:18px 22px 21px;text-align:center;color:#2f4653;font-weight:650}
@media(max-width:680px){.religion-heading{padding:20px 15px 16px}.religion-heading h2{font-size:22px}.religion-table{min-width:650px}.religion-table th,.religion-table td{padding:11px 9px}.religion-note{padding:16px 15px 18px}}

/* =========================================================
   MODLITBY PRO DĚTI – izolované styly
   ========================================================= */
.children-prayers-page-title{width:100%;max-width:900px;margin-right:auto;margin-left:auto}
.children-prayers-page{display:grid;width:100%;max-width:900px;margin:0 auto;gap:24px}
.children-prayer-card{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);align-items:center;overflow:hidden;border:1px solid #dfe5ea;border-radius:9px;background:#fff;box-shadow:0 8px 24px rgba(27,48,65,.06)}
.children-prayer-card--image-right{grid-template-columns:minmax(0,1fr) minmax(150px,220px)}
.children-prayer-card--text{display:block}
.children-prayer-image{display:flex;align-items:center;justify-content:center;align-self:stretch;padding:22px;background:#f7fbfb}
.children-prayer-image img{display:block;width:auto;max-width:100%;max-height:210px;height:auto;object-fit:contain}
.children-prayer-body{padding:25px 28px;font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.72}
.children-prayer-body h2{margin:0 0 14px;color:#16384b;font:700 25px/1.25 Georgia,"Times New Roman",serif}
.children-prayer-body p{margin:0}
.children-prayer-kicker{margin:0 0 7px!important;color:#087e87;font:700 12px/1.3 Arial,sans-serif!important;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:680px){
  .children-prayers-page{gap:18px}
  .children-prayer-card,.children-prayer-card--image-right{grid-template-columns:1fr}
  .children-prayer-card--image-right .children-prayer-body{order:2}
  .children-prayer-card--image-right .children-prayer-image{order:1}
  .children-prayer-image{padding:18px}
  .children-prayer-image img{max-height:165px}
  .children-prayer-body{padding:21px 19px 23px;font-size:17px}
  .children-prayer-body h2{font-size:22px}
}

/* =========================================================
   KONCERTY – malé izolované čtvercové dlaždice
   ========================================================= */
.concerts-page-title{width:100%;max-width:820px;margin-right:auto;margin-left:auto}
.concerts-intro,.concert-grid{width:100%;max-width:820px;margin-right:auto;margin-left:auto}
.concert-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:16px}
.concert-card{aspect-ratio:1/1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px;border:1px solid #dfe5ea;border-top:3px solid #39aeb1;border-radius:10px;background:#fff;color:#243742;text-align:center;text-decoration:none;box-shadow:0 3px 10px rgba(27,48,65,.045);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.concert-card:hover,.concert-card:focus-visible{border-color:#88c8cd;box-shadow:0 5px 14px rgba(27,48,65,.08);transform:translateY(-1px)}
.concert-disc{display:flex;width:28px;height:28px;align-items:center;justify-content:center;color:#087e87}
.concert-disc svg{display:block;width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.2}
.concert-card strong{font-size:13px;line-height:1.2}
.concert-download-label{color:#657681;font-size:10px;line-height:1.15}
@media(max-width:900px){.concert-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.concert-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.concert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* =========================================================
   PRO RODIČE – izolované styly pouze pro tuto stránku
   ========================================================= */
.parents-page{display:grid;width:100%;max-width:900px;margin:0 auto;gap:24px}
.parents-section{overflow:hidden;border:1px solid #dfe5ea;border-top:4px solid #39aeb1;border-radius:9px;background:#fff;padding:24px 28px 27px;box-shadow:0 8px 24px rgba(27,48,65,.06);font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.68}
.parents-section h2{margin:0 0 16px;color:#16384b;font:700 25px/1.25 Georgia,"Times New Roman",serif}
.parents-section h3{margin:22px 0 10px;color:#23495a;font:700 20px/1.3 Georgia,"Times New Roman",serif}
.parents-section h4{margin:18px 0 7px;color:#315564;font:700 17px/1.35 Georgia,"Times New Roman",serif}
.parents-section p{margin:0 0 12px}
.parents-section p:last-child{margin-bottom:0}
.parents-intro{border-top-color:#39aeb1}
.parents-signature{margin-top:18px!important;text-align:right;color:#566873;font-style:italic}
.parents-note{color:#647580;font-style:italic}
.parents-download-wrap{margin:22px 0 0!important;padding-top:18px;border-top:1px solid #e2e9ed}
.parents-docx-download{display:inline-flex;align-items:center;gap:10px;border:1px solid #b9d8da;border-radius:8px;padding:10px 14px;background:#f4fbfb;color:#17505b;font-family:Arial,sans-serif;font-size:15px;font-weight:700;line-height:1.25;text-decoration:none;box-shadow:0 2px 7px rgba(27,48,65,.05)}
.parents-docx-download:hover,.parents-docx-download:focus-visible{border-color:#79bec2;background:#ebf8f8;color:#0a6971}
.parents-docx-icon{display:block;flex:0 0 30px;width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important;fill:none!important;stroke:#087e87!important;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.parents-docx-icon path{fill:none!important;stroke:inherit!important}
@media(max-width:680px){
  .parents-page{gap:18px}
  .parents-section{padding:21px 19px 23px;font-size:17px}
  .parents-section h2{font-size:22px}
  .parents-section h3{font-size:19px}
  .parents-docx-download{width:100%;justify-content:center;text-align:center}
}

/* =========================================================
   Dětem / Bible — izolované styly pouze pro tuto stránku
   ========================================================= */
.bible-page{
    display:grid;
    width:100%;
    max-width:900px;
    margin:0 auto;
    gap:24px;
}
.bible-hero-card,
.bible-links-card{
    overflow:hidden;
    border:1px solid #dfe5ea;
    border-top:4px solid #39aeb1;
    border-radius:9px;
    background:#fff;
    box-shadow:0 8px 24px rgba(27,48,65,.06);
}
.bible-hero-copy{
    padding:24px 28px 18px;
    text-align:center;
}
.bible-hero-copy h2,
.bible-links-card > h2{
    margin:0;
    color:#16384b;
    font:700 25px/1.25 Georgia,"Times New Roman",serif;
}
.bible-hero-copy p,
.bible-links-intro{
    margin:10px auto 0;
    max-width:700px;
    color:#475866;
    font-size:17px;
    line-height:1.6;
}
.bible-poster-wrap{
    padding:0 28px 28px;
    text-align:center;
}
.bible-poster{
    display:block;
    width:auto;
    max-width:100%;
    max-height:680px;
    height:auto;
    margin:0 auto;
    object-fit:contain;
    border-radius:7px;
}
.bible-links-card{
    padding:24px 28px 28px;
    text-align:center;
}
.bible-link-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-top:22px;
}
.bible-link-item{
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:0;
    border:1px solid #dfe5ea;
    border-radius:9px;
    padding:18px 14px;
    background:#f9fcfc;
}
.bible-qr-link{
    display:block;
    width:128px;
    max-width:100%;
    margin:0 auto 13px;
}
.bible-qr-link img{
    display:block;
    width:100%;
    height:auto;
}
.bible-link-item h3{
    margin:0 0 7px;
    color:#173d50;
    font:700 19px/1.3 Georgia,"Times New Roman",serif;
}
.bible-link-item p{
    margin:0 0 13px;
    color:#566873;
    font-size:14px;
    line-height:1.45;
}
.bible-action-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:auto;
    border:1px solid #b9d8da;
    border-radius:7px;
    padding:9px 13px;
    background:#f4fbfb;
    color:#17505b;
    font-size:14px;
    font-weight:700;
    line-height:1.25;
    text-decoration:none;
}
.bible-action-link:hover,
.bible-action-link:focus-visible{
    border-color:#79bec2;
    background:#ebf8f8;
    color:#0a6971;
}
@media(max-width:720px){
    .bible-page{gap:18px}
    .bible-hero-copy,.bible-links-card{padding:21px 19px 23px}
    .bible-poster-wrap{padding:0 19px 23px}
    .bible-hero-copy h2,.bible-links-card > h2{font-size:22px}
    .bible-link-grid{grid-template-columns:1fr}
    .bible-link-item{padding:17px 15px}
    .bible-qr-link{width:116px}
}

/* =========================================================
   Výuka náboženství — pouze horní tyrkysový zaoblený proužek
   ========================================================= */
.religion-page{
    border-top:4px solid #39aeb1;
    border-radius:9px;
}


/* =========================================================
   MODLITBY PRO DĚTI – tyrkysový horní proužek
   Izolováno pouze na karty této stránky.
   ========================================================= */
.children-prayers-page .children-prayer-card{
    border-top:5px solid #39aeb1;
}


/* =========================================================
   Farnost / Svátosti — izolované styly pouze pro tuto stránku
   ========================================================= */
.sacraments-page-title{width:100%;max-width:1040px;margin-right:auto;margin-left:auto}
.sacraments-page{
    display:grid;
    width:100%;
    max-width:1040px;
    margin:0 auto;
    gap:22px;
}
.sacraments-intro-card{
    border:1px solid #dfe5ea;
    border-top:4px solid #39aeb1;
    border-radius:9px;
    background:#fff;
    box-shadow:0 8px 24px rgba(27,48,65,.06);
    padding:20px 24px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:17px;
    line-height:1.68;
    color:#324452;
}
.sacraments-intro-card p{margin:0}
.sacraments-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}
.sacrament-card{
    min-width:0;
}
.sacrament-card-link{
    display:flex;
    min-width:0;
    height:100%;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--line);
    border-radius:10px;
    box-shadow:0 4px 16px rgba(27,42,65,.07);
    color:var(--ink);
    text-decoration:none;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.sacrament-card-link:hover,
.sacrament-card-link:focus-visible{
    border-color:#aebdce;
    box-shadow:0 12px 28px rgba(27,42,65,.14);
    transform:translateY(-4px);
}
.sacrament-card-image{
    display:block;
    aspect-ratio:5/3;
    overflow:hidden;
    background:#eef2f4;
}
.sacrament-card-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
.sacrament-card-body{
    display:flex;
    flex:1;
    flex-direction:column;
    align-items:flex-start;
    padding:16px 15px 15px;
}
.sacrament-card-kicker{
    margin-bottom:6px;
    color:var(--gold-dark,#8b671d);
    font-size:9px;
    font-weight:800;
    letter-spacing:.11em;
}
.sacrament-card-body > strong{
    color:var(--blue-dark);
    font:700 18px/1.22 Georgia,serif;
}
.sacrament-card-quote{
    margin-top:9px;
    color:#415463;
    font-family:Georgia,"Times New Roman",serif;
    font-size:14px;
    line-height:1.5;
}
.sacrament-card-description{
    margin-top:9px;
    color:var(--muted);
    font-size:13px;
    line-height:1.45;
}
.sacrament-card-open{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:auto;
    padding-top:15px;
    color:var(--red);
    font-size:12px;
    font-weight:800;
}
.sacrament-card-open b{
    font-size:17px;
    line-height:1;
    transition:transform .18s ease;
}
.sacrament-card-link:hover .sacrament-card-open b{transform:translateX(4px)}
@media(max-width:980px){
    .sacraments-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
    .sacraments-page{gap:18px}
    .sacraments-intro-card{padding:18px 17px;font-size:16px}
    .sacraments-grid{grid-template-columns:1fr}
}


/* =========================================================
   Svátosti / detail svátosti — izolované styly
   ========================================================= */
.sacrament-detail-page-title{width:100%;max-width:980px;margin-right:auto;margin-left:auto}
.sacrament-detail-page{
    display:grid;
    width:100%;
    max-width:980px;
    margin:0 auto;
    gap:22px;
}
.sacrament-detail-back a{
    color:var(--red);
    font-size:14px;
    font-weight:700;
    text-decoration:none;
}
.sacrament-detail-back a:hover,
.sacrament-detail-back a:focus-visible{text-decoration:underline}
.sacrament-detail-hero,
.sacrament-detail-section{
    overflow:hidden;
    border:1px solid #dfe5ea;
    border-top:4px solid #39aeb1;
    border-radius:9px;
    background:#fff;
    box-shadow:0 8px 24px rgba(27,48,65,.06);
}
.sacrament-detail-hero{
    display:grid;
    grid-template-columns:minmax(260px, 360px) minmax(0,1fr);
    align-items:stretch;
}
.sacrament-detail-image-wrap{
    min-width:0;
    background:#eef2f4;
}
.sacrament-detail-image-wrap img{
    display:block;
    width:100%;
    height:100%;
    min-height:100%;
    object-fit:cover;
}
.sacrament-detail-hero-copy{
    padding:24px 26px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:18px;
    line-height:1.72;
    color:#334652;
}
.sacrament-detail-hero-copy h2,
.sacrament-detail-section h2{
    margin:0 0 16px;
    color:var(--blue-dark);
    font:700 26px/1.24 Georgia,serif;
}
.sacrament-detail-hero-copy p,
.sacrament-detail-section p{margin:0 0 16px}
.sacrament-detail-hero-copy p:last-child,
.sacrament-detail-section p:last-child{margin-bottom:0}
.sacrament-detail-quote{
    margin:0 0 18px;
    border-left:4px solid #d8e4ea;
    padding:4px 0 4px 16px;
    color:#415463;
    font-size:17px;
    line-height:1.6;
}
.sacrament-detail-quote p{margin:0 0 8px}
.sacrament-detail-quote footer{color:#667786;font-size:14px;font-style:normal}
.sacrament-detail-section{
    padding:24px 26px 25px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:18px;
    line-height:1.72;
    color:#334652;
}
.sacrament-detail-list{
    display:grid;
    gap:10px;
    margin:0 0 18px;
    padding-left:24px;
}
.sacrament-detail-list li{padding-left:4px}
.sacrament-detail-list li::marker{color:var(--red);font-weight:700}
@media(max-width:860px){
    .sacrament-detail-hero{grid-template-columns:1fr}
    .sacrament-detail-image-wrap img{height:auto}
}
@media(max-width:760px){
    .sacrament-detail-page{gap:18px}
    .sacrament-detail-hero-copy,
    .sacrament-detail-section{padding:19px 18px 20px;font-size:17px}
    .sacrament-detail-hero-copy h2,
    .sacrament-detail-section h2{font-size:23px}
    .sacrament-detail-quote{font-size:16px}
}

.sacrament-detail-section h3{
    margin:22px 0 8px;
    color:var(--blue-dark);
    font:700 20px/1.3 Georgia,serif;
}


/* =========================================================
   PASTORAČNÍ A EKONOMICKÁ RADA
   ========================================================= */
.councils-page-title{width:100%;max-width:980px;margin-right:auto;margin-left:auto}
.councils-page{display:grid;width:100%;max-width:980px;margin:0 auto;gap:30px}
.councils-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.council-card{overflow:hidden;border:1px solid #dfe5ea;border-top:4px solid #39aeb1;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(27,48,65,.07)}
.council-card>img{display:block;width:100%;height:auto;aspect-ratio:1.6/1;object-fit:cover;background:#eef2f4}
.council-card-body{padding:22px 23px 23px}
.council-card h2{margin:0 0 16px;color:var(--blue-dark);font:700 25px/1.25 Georgia,serif}
.council-members{display:grid;gap:7px;margin:0 0 21px;padding:0;list-style:none;color:#344957;font-size:16px;line-height:1.45}
.council-members li{border-bottom:1px solid #edf0f2;padding:0 0 7px}
.council-statutes-link{display:inline-flex;color:var(--red);font-size:14px;font-weight:800;text-decoration:none}
.council-statutes-link:hover,.council-statutes-link:focus-visible{text-decoration:underline}
.council-minutes{overflow:hidden;border:1px solid #dfe5ea;border-top:4px solid #39aeb1;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(27,48,65,.06);padding:23px 24px 25px}
.council-section-heading h2{margin:0 0 18px;color:var(--blue-dark);font:700 25px/1.25 Georgia,serif}
.council-documents{display:grid;gap:9px}
.council-document{display:flex;align-items:center;gap:12px;border:1px solid #e0e5e9;border-radius:7px;padding:11px 13px;background:#fafcfc;color:#244151;text-decoration:none;line-height:1.4;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.council-document:hover,.council-document:focus-visible{border-color:#a8ced0;background:#f2fbfb;transform:translateX(2px)}
.council-pdf-badge{flex:0 0 auto;border-radius:4px;padding:4px 6px;background:#9d2f2f;color:#fff;font-size:10px;font-weight:900;letter-spacing:.05em}
.council-empty{margin:0;color:var(--muted)}
@media(max-width:760px){.councils-grid{grid-template-columns:1fr}.council-card-body,.council-minutes{padding:19px 18px 20px}.council-card h2,.council-section-heading h2{font-size:22px}}


/* =========================================================
   TYRKYSOVÝ HORNÍ PROUŽEK – Farnost + oboje stanovy
   ========================================================= */
/* Farnost: proužek nad každou skupinou karet, včetně první. */
.parish-directory-section{
    border-top:4px solid #39aeb1;
    border-radius:9px 9px 0 0;
    padding-top:22px;
}
.parish-directory-section + .parish-directory-section{
    border-top-color:#39aeb1;
    padding-top:38px;
}

/* Stanovy pastorační a ekonomické rady: horní tyrkysový proužek. */
.statutes-content{
    border-top:4px solid #39aeb1;
    border-radius:9px;
}

/* =========================================================
   ÚVOD 2026 – kompaktnější a vzdušnější vzhled
   ========================================================= */
body{
    background:#f4f6f7;
}
.site-main{
    max-width:1220px;
    padding-top:32px;
}
.content-layout.has-sidebar{
    grid-template-columns:minmax(0,1fr) 292px;
    gap:26px;
}
.home-page{
    gap:20px;
}
.home-quote{
    border-color:#dce5e8;
    border-top:4px solid #1aa6ad;
    border-radius:10px;
    padding:14px 34px 13px;
    background:linear-gradient(120deg,#fbfdfd 0%,#fff 68%,#fbf7ee 100%);
    box-shadow:0 5px 18px rgba(28,52,69,.055);
}
.home-quote::before{
    left:16px;
    top:-10px;
    color:rgba(25,166,173,.10);
    font-size:64px;
}
.home-quote #biblicky-citat-na-dnesni-den{
    margin-bottom:3px;
    color:#0f8190;
    font-size:9px;
    letter-spacing:.13em;
}
.home-quote #biblicky-citat-text{
    color:#15365e;
    font:700 clamp(18px,2vw,23px)/1.32 Georgia,serif;
}
.home-quote #biblicky-citat-citace{
    margin-top:3px;
    font-size:11px;
}
.home-quote #biblicky-citat-odkaz{
    margin-top:2px;
    font-size:10px;
}

.home-section{
    border-color:#dce4e8;
    border-top:4px solid #1aa6ad;
    border-radius:10px;
    padding:18px 20px 20px;
    box-shadow:0 6px 20px rgba(28,52,69,.065);
}
.home-card-heading{
    display:flex;
    align-items:center;
    gap:12px;
    margin:0 0 15px;
    padding:0 1px 12px;
    border-bottom:1px solid #dfe6ea;
}
.home-card-heading h2{
    margin:0;
    color:#17365d;
    font:700 22px/1.2 Georgia,serif;
}
.home-card-heading p{
    margin:2px 0 0;
    color:#687b8a;
    font-size:13px;
    line-height:1.25;
}
.home-card-icon{
    display:grid;
    width:38px;
    height:38px;
    flex:0 0 38px;
    place-items:center;
    border-radius:50%;
    background:#eaf7f8;
    color:#087b88;
}
.home-card-icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.home-video-wrap{
    border-radius:7px;
    box-shadow:inset 0 0 0 1px rgba(20,48,65,.05);
}
.home-contact{
    padding:18px 20px 20px;
}
.home-contact-heading{
    margin-bottom:2px;
}
.home-contact-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    border-top:0;
    gap:0;
}
.home-contact-grid .home-contact-item{
    display:grid;
    grid-template-columns:52px minmax(0,1fr);
    align-items:center;
    gap:12px;
    min-height:84px;
    padding:13px 14px;
    border-right:1px solid #e3e9ec;
    border-bottom:1px solid #e3e9ec;
}
.home-contact-grid .home-contact-item:nth-child(2n){
    border-right:0;
}
.home-contact-grid .home-contact-item:nth-last-child(-n+2){
    border-bottom:0;
}
.home-contact-grid .home-contact-item:last-child{
    border-bottom:0;
}
.home-contact-icon{
    display:grid!important;
    width:42px;
    height:42px;
    margin:0!important;
    place-items:center;
    border-radius:50%;
    background:#edf7f8;
    color:#087b88!important;
    font-size:20px!important;
    font-weight:800!important;
    letter-spacing:0!important;
    text-transform:none!important;
}
.home-contact-item > div > span{
    display:block;
    margin-bottom:4px;
    color:#0b7280;
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.home-contact-grid strong{
    display:block;
    color:#17365d;
    font-size:14px;
    line-height:1.35;
}
.home-contact-grid a{
    color:#087b88;
}
.home-map-section{
    padding-bottom:20px;
}
.home-map-wrap{
    height:min(45vw,470px);
    min-height:340px;
    border-radius:7px;
}

/* =========================================================
   BOČNÍ PANEL – samostatné čistší karty
   ========================================================= */
.updates-sidebar{
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
}
.updates-sidebar > section{
    overflow:hidden;
    margin:0 0 18px;
    border:1px solid #dce4e8;
    border-top:4px solid #1aa6ad;
    border-radius:10px;
    padding:17px 15px 16px;
    background:#fff;
    box-shadow:0 6px 20px rgba(28,52,69,.065);
}
.updates-sidebar > section:last-child{
    margin-bottom:0;
}
.updates-sidebar h2,
.sidebar-extra h3{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    margin:0 0 12px;
    border-bottom:1px solid #dfe6ea;
    padding:0 0 10px;
    color:#17365d;
    font:700 18px/1.2 Georgia,serif;
    text-align:left;
    white-space:normal;
}
.sidebar-extra{
    margin-top:0;
    border-top:0;
    padding-top:0;
}
.sidebar-extra h3 a{
    color:inherit;
}
.sidebar-heading-icon{
    display:inline-grid;
    width:24px;
    height:24px;
    flex:0 0 24px;
    place-items:center;
    color:#087b88;
    font:800 16px/1 "Segoe UI",Arial,sans-serif;
}
.updates-sidebar-group{
    padding:10px 0 9px;
}
.updates-sidebar-group time{
    margin-bottom:4px;
    color:#17365d;
    font-size:12px;
}
.updates-sidebar-group a{
    color:#164c78;
    font-size:14px;
    line-height:1.4;
}
.sidebar-camera-image{
    border-radius:6px;
}
.sidebar-camera-image img{
    aspect-ratio:16/9;
}
.sidebar-camera h3{
    margin-bottom:12px;
}
.sidebar-camera .sidebar-camera-image{
    margin-top:0;
}
.sidebar-reading{
    text-align:left;
    font-size:13px;
    line-height:1.48;
}
.sidebar-reading h3{
    text-align:left;
}
.sidebar-reading #nl-komentar{
    text-align:left;
}
.sidebar-counter h3{
    text-align:left;
}
.sidebar-counter dl{
    border-color:#dce5ea;
    border-radius:6px;
    background:#dce5ea;
}
.sidebar-counter dl div{
    padding:10px 7px;
    background:#f8fafb;
}
.sidebar-counter dt{
    font-size:10px;
}
.sidebar-counter dd{
    color:#17365d;
    font-size:17px;
}

/* responsivita nové úvodní stránky */
@media(max-width:900px){
    .content-layout.has-sidebar{
        grid-template-columns:1fr;
    }
    .updates-sidebar{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:18px;
    }
    .updates-sidebar > section{
        margin:0;
    }
}
@media(max-width:680px){
    .home-card-heading h2{font-size:20px}
    .home-section{padding:16px}
    .home-contact-grid{grid-template-columns:1fr}
    .home-contact-grid .home-contact-item{
        border-right:0;
        border-bottom:1px solid #e3e9ec!important;
    }
    .home-contact-grid .home-contact-item:last-child{
        border-bottom:0!important;
    }
    .home-map-wrap{
        height:440px;
        min-height:0;
    }
    .updates-sidebar{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   ÚVOD – Kontakt podle finálního náhledu
   ========================================================= */
.home-contact{
    padding:20px 24px 22px;
}
.home-contact-header{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin:0 0 16px;
}
.home-contact-header-icon{
    display:grid;
    width:42px;
    height:42px;
    flex:0 0 42px;
    place-items:center;
    border-radius:50%;
    background:#e9f7f8;
    color:#087b88;
}
.home-contact-header-icon svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.home-contact-header h2{
    margin:0;
    color:#17365d;
    font:700 clamp(22px,2.1vw,28px)/1.08 Georgia,"Times New Roman",serif;
}
.home-contact-header p{
    margin:4px 0 0;
    color:#718190;
    font-size:13px;
    line-height:1.35;
}
.home-contact-cards{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 14px;
}
.home-contact-card{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    align-items:center;
    gap:12px;
    min-height:84px;
    border:1px solid #dce5e9;
    border-radius:10px;
    padding:12px 16px;
    background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%);
    box-shadow:0 2px 8px rgba(28,52,69,.025);
}
.home-contact-card-icon{
    display:grid;
    width:38px;
    height:38px;
    place-items:center;
    border-radius:50%;
    background:#eaf7f8;
    color:#087b88;
}
.home-contact-card-icon svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.85;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.home-contact-label{
    display:block;
    margin:0 0 4px;
    color:#087b88;
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.home-contact-card strong{
    display:block;
    color:#17365d;
    font:700 clamp(14px,1.45vw,17px)/1.26 Georgia,"Times New Roman",serif;
}
.home-contact-card a{
    color:#17365d;
    text-decoration:none;
}
.home-contact-card a:hover,
.home-contact-card a:focus-visible{
    color:#087b88;
    text-decoration:underline;
    text-underline-offset:3px;
}
.home-contact-card-account{
    grid-column:1 / 2;
}
@media(max-width:760px){
    .home-contact{
        padding:18px 16px 19px;
    }
    .home-contact-header{
        gap:11px;
        margin-bottom:14px;
    }
    .home-contact-header-icon{
        width:38px;
        height:38px;
        flex-basis:38px;
    }
    .home-contact-header-icon svg{
        width:20px;
        height:20px;
    }
    .home-contact-header h2{
        font-size:24px;
    }
    .home-contact-header p{
        font-size:12px;
    }
    .home-contact-cards{
        grid-template-columns:1fr;
        gap:9px;
    }
    .home-contact-card,
    .home-contact-card-account{
        grid-column:auto;
        grid-template-columns:42px minmax(0,1fr);
        min-height:74px;
        gap:11px;
        padding:11px 13px;
    }
    .home-contact-card-icon{
        width:34px;
        height:34px;
    }
    .home-contact-card-icon svg{
        width:18px;
        height:18px;
    }
    .home-contact-card strong{
        font-size:15px;
    }
}

/* SVATÁ HODINKA */
.holy-hour-page-title,.holy-hour-page{width:100%;max-width:900px;margin-right:auto;margin-left:auto}
.holy-hour-page,.holy-hour-screen{display:grid;gap:22px}
.holy-hour-intro,.holy-hour-schedule{overflow:hidden;border:1px solid #dfe5ea;border-top:4px solid #39aeb1;border-radius:9px;background:#fff;box-shadow:0 8px 24px rgba(27,48,65,.06)}
.holy-hour-intro{padding:23px 26px 24px;font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.7;color:#334652}
.holy-hour-intro p{margin:0 0 15px}.holy-hour-intro p:last-child{margin-bottom:0}
.holy-hour-pdf-row{margin-top:18px!important;border-top:1px solid #e2e8eb;padding-top:16px}
.holy-hour-pdf-link{display:inline-flex;align-items:center;gap:9px;color:#087b88;font-family:"Segoe UI",Arial,sans-serif;font-size:14px;font-weight:700;text-decoration:none}
.holy-hour-pdf-link span{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:4px 6px;background:#9d2f2f;color:#fff;font-size:10px;font-weight:900}
.holy-hour-schedule{padding:22px 24px 24px}
.holy-hour-schedule h2{margin:0 0 15px;color:#17365d;font:700 25px/1.25 Georgia,serif;text-align:center}
.holy-hour-history{margin:0 0 12px;border:1px solid #b9d8da;border-radius:6px;padding:8px 13px;background:#f2fafb;color:#17505b;font-weight:700;cursor:pointer}
.holy-hour-table{width:100%;border-collapse:collapse}
.holy-hour-table th,.holy-hour-table td{border-bottom:1px solid #e0e5e8;padding:9px 11px;text-align:left;vertical-align:middle}
.holy-hour-table th{background:#f4f8f9;color:#17365d;font-size:13px}
.holy-hour-date{width:125px;white-space:nowrap;font-weight:700}
.holy-hour-past{display:none;color:#777}.holy-hour-show-past .holy-hour-past{display:table-row}
.holy-hour-next{background:#fff2b8;font-weight:700;box-shadow:inset 4px 0 0 #d5a400}
.holy-hour-special{background:#edf5e8;font-weight:700}
.holy-hour-print-box{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:22px;border-top:1px solid #e1e7ea;padding-top:17px}
.holy-hour-print-box>strong{color:#17365d;font:700 18px/1.3 Georgia,serif}
.holy-hour-print-box form{display:flex;align-items:flex-end;gap:10px}
.holy-hour-print-box label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:700}
.holy-hour-print-box select{min-width:100px;border:1px solid #cbd7dc;border-radius:5px;padding:7px 9px;background:#fff;font-size:15px}
.holy-hour-print-box button{border:0;border-radius:6px;padding:9px 14px;background:#087b88;color:#fff;font-weight:700;cursor:pointer}
.holy-hour-paper{display:none}
@media(max-width:680px){.holy-hour-intro,.holy-hour-schedule{padding:19px 17px 20px}.holy-hour-intro{font-size:16px}.holy-hour-schedule h2{font-size:22px}.holy-hour-table th,.holy-hour-table td{padding:8px 7px}.holy-hour-print-box{display:block}.holy-hour-print-box form{margin-top:10px}}
@media print{@page{size:A4 portrait;margin:7mm}body *{visibility:hidden!important}.holy-hour-page.holy-hour-print-mode,.holy-hour-page.holy-hour-print-mode *{visibility:visible!important}.holy-hour-page.holy-hour-print-mode{position:absolute;left:0;top:0;width:100%;max-width:none}.holy-hour-print-mode .holy-hour-screen{display:none!important}.holy-hour-print-mode .holy-hour-paper{display:block!important}.holy-hour-paper h1{text-align:center;font-size:18pt}.holy-hour-print-grid{display:grid;grid-template-columns:1fr 1fr;gap:6mm}.holy-hour-print-grid table{width:100%;border-collapse:collapse;font-size:11.5pt}.holy-hour-print-grid td{padding:2mm 1mm;border-bottom:.25pt solid #bbb}.holy-hour-print-grid .date{width:21mm;white-space:nowrap;font-size:10.5pt;font-weight:700}.holy-hour-print-grid tr.special td{background:#ededed;font-weight:700}}


/* =========================================================
   SVATÁ HODINKA – tisk 1× A4, větší a přes téměř celou stránku
   ========================================================= */
@media print{
    @page{
        size:A4 portrait;
        margin:5mm;
    }

    .holy-hour-page.holy-hour-print-mode{
        width:100%!important;
        max-width:none!important;
    }

    .holy-hour-paper{
        width:100%!important;
    }

    .holy-hour-paper h1{
        margin:0 0 4mm!important;
        font-size:17pt!important;
        line-height:1.05!important;
    }

    .holy-hour-print-grid{
        width:100%!important;
        grid-template-columns:1fr 1fr!important;
        gap:5mm!important;
    }

    .holy-hour-print-grid table{
        width:100%!important;
        table-layout:auto!important;
        font-size:10.7pt!important;
        line-height:1.12!important;
    }

    .holy-hour-print-grid td{
        padding:1.75mm 1mm!important;
        border-bottom:.25pt solid #aaa!important;
        vertical-align:middle!important;
        line-height:1.12!important;
    }

    .holy-hour-print-grid .date{
        width:20mm!important;
        white-space:nowrap!important;
        font-size:10pt!important;
        font-weight:700!important;
    }

    .holy-hour-print-grid td:last-child{
        white-space:nowrap!important;
        font-size:10.7pt!important;
    }

    .holy-hour-print-grid tr.special td{
        font-size:9.7pt!important;
        font-weight:700!important;
        background:#ededed!important;
    }
}


/* =========================================================
   SVATÁ HODINKA – tisk přes téměř celou výšku A4
   větší písmo, vyšší řádky, dlouhé popisy mohou být na 2 řádky
   ========================================================= */
@media print{
    @page{
        size:A4 portrait;
        margin:5mm;
    }

    .holy-hour-page.holy-hour-print-mode{
        width:100%!important;
        max-width:none!important;
        min-height:287mm!important;
    }

    .holy-hour-paper{
        display:flex!important;
        flex-direction:column!important;
        width:100%!important;
        min-height:287mm!important;
    }

    .holy-hour-paper h1{
        margin:0 0 4mm!important;
        font-size:18pt!important;
        line-height:1.05!important;
        flex:0 0 auto!important;
    }

    .holy-hour-print-grid{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:5mm!important;
        width:100%!important;
        flex:1 1 auto!important;
        align-items:stretch!important;
    }

    .holy-hour-print-grid > table{
        height:100%!important;
    }

    .holy-hour-print-grid table{
        width:100%!important;
        height:100%!important;
        table-layout:fixed!important;
        border-collapse:collapse!important;
        font-size:11.3pt!important;
        line-height:1.15!important;
    }

    .holy-hour-print-grid tbody{
        height:100%!important;
    }

    .holy-hour-print-grid tr{
        height:calc(100% / 27)!important;
    }

    .holy-hour-print-grid td{
        padding:1.9mm 1mm!important;
        border-bottom:.25pt solid #aaa!important;
        vertical-align:middle!important;
        line-height:1.15!important;
    }

    .holy-hour-print-grid .date{
        width:20mm!important;
        white-space:nowrap!important;
        font-size:10.4pt!important;
        font-weight:700!important;
    }

    .holy-hour-print-grid td:last-child{
        white-space:normal!important;
        overflow-wrap:anywhere!important;
        font-size:11.3pt!important;
    }

    .holy-hour-print-grid tr.special td{
        font-size:10.2pt!important;
        font-weight:700!important;
        background:#ededed!important;
        line-height:1.12!important;
    }
}

/* =========================================================
   SVATÁ HODINKA – maximální využití celé A4
   ========================================================= */
@media print{
    @page{
        size:A4 portrait;
        margin:3mm;
    }

    .holy-hour-page.holy-hour-print-mode{
        width:100%!important;
        max-width:none!important;
        min-height:291mm!important;
        height:291mm!important;
    }

    .holy-hour-paper{
        display:flex!important;
        flex-direction:column!important;
        width:100%!important;
        min-height:291mm!important;
        height:291mm!important;
    }

    .holy-hour-paper h1{
        margin:0 0 3mm!important;
        font-size:19.5pt!important;
        line-height:1!important;
        flex:0 0 auto!important;
    }

    .holy-hour-print-grid{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:4mm!important;
        width:100%!important;
        flex:1 1 auto!important;
        min-height:0!important;
        align-items:stretch!important;
    }

    .holy-hour-print-grid > table,
    .holy-hour-print-grid > div,
    .holy-hour-print-grid > div > table{
        height:100%!important;
    }

    .holy-hour-print-grid table{
        width:100%!important;
        height:100%!important;
        table-layout:fixed!important;
        border-collapse:collapse!important;
        font-size:12.1pt!important;
        line-height:1.14!important;
    }

    .holy-hour-print-grid tbody{
        height:100%!important;
    }

    .holy-hour-print-grid tr{
        height:calc(100% / 27)!important;
    }

    .holy-hour-print-grid td{
        padding:2.05mm 1mm!important;
        border-bottom:.25pt solid #999!important;
        vertical-align:middle!important;
        line-height:1.14!important;
    }

    .holy-hour-print-grid .date{
        width:20mm!important;
        white-space:nowrap!important;
        font-size:11pt!important;
        font-weight:700!important;
    }

    .holy-hour-print-grid td:last-child{
        white-space:normal!important;
        overflow-wrap:break-word!important;
        font-size:12.1pt!important;
    }

    .holy-hour-print-grid tr.special td{
        font-size:10.8pt!important;
        font-weight:700!important;
        line-height:1.1!important;
        background:#ededed!important;
    }
}


/* =========================================================
   SVATÁ HODINKA – tisk s bezpečnými okraji a rámečkem
   ========================================================= */
@media print{
    @page{
        size:A4 portrait;
        margin:6mm 8mm;
    }

    .holy-hour-page.holy-hour-print-mode{
        width:100%!important;
        max-width:none!important;
        min-height:285mm!important;
        padding:0!important;
    }

    .holy-hour-paper{
        width:100%!important;
        min-height:285mm!important;
        padding:0!important;
    }

    .holy-hour-paper h1{
        margin:0 0 4mm!important;
        font-size:18.5pt!important;
    }

    .holy-hour-print-grid{
        width:100%!important;
        gap:5mm!important;
    }

    .holy-hour-print-grid table{
        width:100%!important;
        height:100%!important;
        border:1pt solid #444!important;
        border-collapse:collapse!important;
        font-size:11.8pt!important;
        line-height:1.15!important;
    }

    .holy-hour-print-grid td{
        padding:1.9mm 1.2mm!important;
        border-bottom:.35pt solid #aaa!important;
        vertical-align:middle!important;
    }

    .holy-hour-print-grid tr:last-child td{
        border-bottom:0!important;
    }

    .holy-hour-print-grid .date{
        width:21mm!important;
        padding-left:1.5mm!important;
        white-space:nowrap!important;
        font-size:10.8pt!important;
        font-weight:700!important;
    }

    .holy-hour-print-grid td:last-child{
        padding-right:1.5mm!important;
        white-space:normal!important;
        overflow-wrap:normal!important;
        word-break:normal!important;
        font-size:11.8pt!important;
    }

    .holy-hour-print-grid tr.special td{
        font-size:10.6pt!important;
        font-weight:700!important;
        background:#ededed!important;
    }
}


/* =========================================================
   ROZPIS 2. ČTENÍ
   ========================================================= */
.reading-plan-page-title,.reading-plan{width:100%;max-width:980px;margin-right:auto;margin-left:auto}
.reading-plan{display:grid;gap:22px;color:#263843}
.reading-plan-top,.reading-plan-full{overflow:hidden;border:1px solid #dfe5ea;border-top:4px solid #39aeb1;border-radius:9px;background:#fff;box-shadow:0 8px 24px rgba(27,48,65,.06);padding:22px 24px 24px}
.reading-plan h2{margin:0 0 15px;color:#17365d;font:700 25px/1.25 Georgia,"Times New Roman",serif}
.reading-plan h3{margin:22px 0 11px;color:#17365d;font:700 18px/1.3 Georgia,"Times New Roman",serif}
.reading-plan-nearest{padding:17px 19px;border-left:6px solid #39aeb1;border-radius:7px;background:#edf8f8}
.reading-plan-nearest-date{margin-bottom:5px;font-size:1.18em;font-weight:800;color:#17365d}
.reading-plan-nearest-name{font-size:1.12em;font-weight:800;color:#087b88}
.reading-plan-nearest-detail{margin-top:6px;line-height:1.45}
.reading-plan a{color:#087b88;text-underline-offset:2px}
.reading-plan-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.reading-plan-next article{padding:13px 14px;border:1px solid #c9e0e1;border-radius:8px;background:#f5fbfb}
.reading-plan-next .date{display:block;margin-bottom:5px;font-weight:800;color:#17365d}
.reading-plan-next strong{display:block;margin-bottom:5px;color:#087b88}
.reading-plan-controls{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 17px}
.reading-plan-history,.reading-plan-print-button{border-radius:6px;padding:9px 14px;font-weight:750;cursor:pointer}
.reading-plan-history{border:1px solid #b9d8da;background:#f2fafb;color:#17505b}
.reading-plan-history:hover{background:#e8f6f7}
.reading-plan-print-controls{justify-content:flex-end;margin:18px 0 0}
.reading-plan-print-button{border:0;background:#087b88;color:#fff}
.reading-plan-print-button:hover{background:#075d67}
.reading-plan-warning{padding:10px 12px;border-left:4px solid #d5a72d;background:#fff7d7;color:#634d14}
.reading-plan-table-wrap{overflow-x:auto}
.reading-plan-table{width:100%;border-collapse:collapse}
.reading-plan-table th,.reading-plan-table td{padding:10px 11px;border:1px solid #cad7dc;text-align:left;vertical-align:middle}
.reading-plan-table th{background:#dff1f2;color:#17365d}
.reading-plan-table th:nth-child(1){width:19%}
.reading-plan-table th:nth-child(2){width:18%}
.reading-plan-table th:nth-child(3){width:24%}
.reading-plan-table th:nth-child(4){width:39%}
.reading-plan-table tbody tr:nth-child(even){background:#f7fafb}
.reading-plan-table tbody td:nth-child(2),.reading-plan-table tbody td:nth-child(3){white-space:nowrap}
.reading-plan-past{display:none;color:#777;background:#eee!important}
.reading-plan.show-past .reading-plan-past{display:table-row}
.reading-plan-current{background:#fff2b8!important;font-weight:700;box-shadow:inset 4px 0 0 #d5a400}
.reading-plan-year td{padding:9px 11px!important;background:#39aeb1!important;color:#fff!important;text-align:center!important;font-weight:800;letter-spacing:.04em}
.reading-plan-badge{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:4px;background:#087b88;color:#fff;font-size:.76em;white-space:nowrap}

@media(max-width:760px){
    .reading-plan-top,.reading-plan-full{padding:19px 16px 20px}
    .reading-plan-next{grid-template-columns:1fr}
    .reading-plan-table,.reading-plan-table tbody,.reading-plan-table tr,.reading-plan-table td{display:block;width:100%}
    .reading-plan-table thead{display:none}
    .reading-plan-table tr{margin-bottom:11px;border:1px solid #cad7dc;border-radius:7px;overflow:hidden}
    .reading-plan-table td{border:0;border-bottom:1px solid #e2e9ec;padding:8px 10px}
    .reading-plan-table td:last-child{border-bottom:0}
    .reading-plan-table tbody td:nth-child(2),.reading-plan-table tbody td:nth-child(3){white-space:normal}
    .reading-plan-table td::before{content:attr(data-label);display:block;margin-bottom:2px;color:#526778;font-size:.76em;font-weight:800;text-transform:uppercase}
    .reading-plan-year td::before{display:none}
    .reading-plan-table tr.reading-plan-past{display:none}
    .reading-plan.show-past .reading-plan-past{display:block}
}
.updates-sidebar-group a{
    font-size:16px;
}

.sidebar-reading{
    font-size:16px;
}

.updates-sidebar-group time{
    font-size:13px;
}

/* =========================================================
   AKTUALITY – sjednocení vzhledu s ostatními stránkami
   ========================================================= */
.news-list{
    max-width:850px;
    overflow:hidden;
    border:1px solid #dfe5ea;
    border-top:4px solid #39aeb1;
    border-radius:9px;
    padding:24px 26px 28px;
    background:#fff;
    box-shadow:0 8px 24px rgba(27,48,65,.06);
}

.news-divider{
    margin:34px -26px 26px;
    border:0;
    border-top:4px solid #39aeb1;
    border-radius:9px 9px 0 0;
}

.news-dots{
    margin-top:26px;
}

.news-permanent{
    margin-bottom:26px;
}

@media(max-width:680px){
    .news-list{
        padding:20px 18px 22px;
    }

    .news-divider{
        margin-right:-18px;
        margin-left:-18px;
    }
}

/* =========================================================
   BOHOSLUŽBY – vzhled panelu kolem aktuálního pořadu
   Zachovává: desktop = PDF iframe, mobil = generovaný JPG náhled
   ========================================================= */
.services-pdf{
    max-width:900px;
    margin:0 auto;
    overflow:hidden;
    border:1px solid #dfe5ea;
    border-top:4px solid #39aeb1;
    border-radius:9px;
    padding:14px 14px 18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(27,48,65,.06);
}

.services-pdf-frame{
    border-radius:6px;
}

.services-pdf-actions{
    margin-top:14px;
    border-top:1px solid #e2e8eb;
    padding-top:14px;
}

.services-pdf-download{
    border-color:#087b88;
    border-radius:6px;
    background:#087b88;
}

.services-pdf-download:hover,
.services-pdf-download:focus-visible{
    border-color:#075d67;
    background:#075d67;
}

@media(max-width:760px){
    .services-pdf{
        padding:9px 9px 14px;
    }

    .services-pdf-actions{
        margin-top:10px;
        padding-top:12px;
    }
}

/* =========================================================
   FOTOGALERIE – horní proužek + oddělení starších galerií
   ========================================================= */
.gallery-top-strip{
    height:8px;
    margin:0 0 24px;
    border-top:4px solid #39aeb1;
    border-radius:10px 10px 0 0;
    background:transparent;
}

.gallery-archive-section .notice-section-divider{
    display:block;
    margin:0 0 24px;
    border-top:4px solid #39aeb1;
    border-radius:9px 9px 0 0;
    padding-top:16px;
}

.gallery-archive-section .notice-section-divider::before,
.gallery-archive-section .notice-section-divider::after{
    display:none;
}

.gallery-archive-section .notice-section-divider h2{
    margin:0;
    color:var(--blue-dark);
    font:700 22px/1.25 Georgia,serif;
}

@media(max-width:680px){
    .gallery-top-strip{
        margin-bottom:18px;
    }

    .gallery-archive-section .notice-section-divider{
        padding-top:14px;
    }

    .gallery-archive-section .notice-section-divider h2{
        font-size:20px;
    }
}

/* =========================================================
   PASTORAČNÍ MÍSTNOST – horní tyrkysový proužek + menší odkaz
   ========================================================= */
.pastoral-room{
    border-top:4px solid #39aeb1;
    border-radius:9px 9px 0 0;
    padding-top:22px;
}

.pastoral-rules-link{
    font-size:clamp(15px,1.55vw,18px);
    line-height:1.35;
}

@media(max-width:680px){
    .pastoral-room{
        padding-top:18px;
    }

    .pastoral-rules-link{
        font-size:15px;
    }
}

/* =========================================================
   VÝVĚSKA – sjednocení vzhledu s ostatními stránkami
   ========================================================= */
.notice-current-section{
    border-top:4px solid #39aeb1;
    border-radius:9px 9px 0 0;
    padding-top:22px;
}

.notice-card{
    overflow:hidden;
    border-radius:9px;
}

.notice-longterm{
    margin-top:38px;
}

.notice-longterm .notice-section-divider{
    display:block;
    margin:0 0 24px;
    border-top:4px solid #39aeb1;
    border-radius:9px 9px 0 0;
    padding-top:16px;
}

.notice-longterm .notice-section-divider::before,
.notice-longterm .notice-section-divider::after{
    display:none;
}

.notice-longterm .notice-section-divider h2{
    margin:0;
    color:var(--blue-dark);
    font:700 22px/1.25 Georgia,serif;
}

@media(max-width:680px){
    .notice-current-section{
        padding-top:18px;
    }

    .notice-longterm{
        margin-top:30px;
    }

    .notice-longterm .notice-section-divider{
        padding-top:14px;
    }

    .notice-longterm .notice-section-divider h2{
        font-size:20px;
    }
}

