/* Podstrona: Wszystkich Świętych i Dzień Zaduszny */

.memorial-page .subpage-hero--memorial {
    position: relative;
    min-height: 620px;
    overflow: hidden;
    background: #07121b;
}

.memorial-page .subpage-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 52%;
    filter: brightness(0.90) saturate(0.96) contrast(1.02);
}

.memorial-page .subpage-hero--memorial::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(3, 10, 18, 0.70) 0%, rgba(4, 13, 22, 0.34) 38%, rgba(5, 14, 23, 0.04) 64%, transparent 100%),
        linear-gradient(180deg, rgba(3, 9, 16, 0.02), rgba(3, 9, 16, 0.16));
    pointer-events: none;
}

.memorial-page .subpage-hero--memorial .hero__topbar,
.memorial-page .subpage-hero--memorial .subpage-heading {
    position: relative;
    z-index: 3;
}

.memorial-page .subpage-title {
    max-width: 12ch;
}

@media (min-width: 901px) {
    .memorial-page .subpage-hero--memorial .subpage-heading {
        position: absolute;
        left: 50%;
        right: auto;
        bottom: 72px;
        width: min(calc(100% - 48px), var(--container));
        padding: 0;
        transform: translateX(-50%);
    }
}

.memorial-page .subpage-hero-card {
    border-color: rgba(236, 183, 94, 0.34);
    background: rgba(5, 14, 24, 0.58);
}

.memorial-photo-credit {
    position: absolute;
    left: clamp(18px, 4vw, 42px);
    right: auto;
    bottom: 22px;
    z-index: 4;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.20);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.88);
    background: rgba(4, 12, 21, 0.58);
    font-size: 0.76rem;
    font-weight: 800;
    text-decoration: none;
    backdrop-filter: blur(10px);
}

.memorial-page .content-panel {
    overflow: hidden;
}

.reading-tools {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    margin: -8px 0 28px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(13, 36, 68, 0.10);
}

.reading-tools__hint {
    color: #66717d;
    font-size: 0.82rem;
    font-weight: 700;
}

.reading-toggle {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 8px 14px;
    border: 1px solid rgba(13, 36, 68, 0.18);
    border-radius: 999px;
    color: #18324a;
    background: rgba(255, 255, 255, 0.50);
    font: inherit;
    font-size: 0.88rem;
    font-weight: 800;
    cursor: pointer;
}

.reading-toggle:hover,
.reading-toggle:focus-visible,
.reading-toggle[aria-pressed="true"] {
    border-color: #9b6a2d;
    background: #fff;
    outline: none;
}

.reading-toggle:focus-visible {
    box-shadow: 0 0 0 4px rgba(155, 106, 45, 0.20);
}

.reading-toggle__symbol {
    color: #8a5a1f;
    font-family: var(--serif);
    font-size: 1.25rem;
    line-height: 1;
}

.memorial-page .memorial-lead {
    max-width: 760px;
    font-size: clamp(1.12rem, 1.8vw, 1.26rem);
    line-height: 1.72;
}

.memorial-page .prose > p:not(.prose-eyebrow):not(.source-note),
.memorial-page .indulgence-conditions li {
    font-size: 1.02rem;
    line-height: 1.68;
}

.memorial-page .prose h3 {
    margin-top: 42px;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    line-height: 1.12;
}

.memorial-page .subpage-lead {
    max-width: 58ch;
    font-size: clamp(1.06rem, 1.6vw, 1.2rem);
    line-height: 1.65;
}

.memorial-page .subpage-hero-card__text {
    font-size: 1rem;
    line-height: 1.65;
}

.memorial-schedule {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 34px 0 40px;
}

.memorial-service {
    position: relative;
    overflow: hidden;
    min-height: 230px;
    padding: 28px;
    border: 1px solid rgba(159, 117, 66, 0.20);
    border-radius: 24px;
    background:
        radial-gradient(circle at 88% 12%, rgba(217, 180, 123, 0.18), transparent 27%),
        linear-gradient(145deg, #fffaf3, #f3eadf);
}

.memorial-service::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 4px;
    background: linear-gradient(90deg, #c89142, #e5bd7a 48%, transparent);
}

.memorial-service__date {
    margin: 0 0 16px;
    color: #8a6334;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.memorial-service__time {
    display: block;
    margin-bottom: 10px;
    color: #0d2444;
    font-family: var(--serif);
    font-size: clamp(3.2rem, 5vw, 4.8rem);
    font-weight: 700;
    line-height: 0.88;
}

.memorial-service h3 {
    margin: 0 0 10px;
    color: #0d2444;
    font-family: var(--serif);
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    line-height: 1;
}

.memorial-service p:last-child {
    margin: 0;
    color: #657084;
    font-size: 1.03rem;
    line-height: 1.62;
}

.indulgence-conditions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0 30px;
    padding: 0;
    list-style: none;
}

.indulgence-conditions li {
    position: relative;
    min-height: 70px;
    padding: 16px 18px 16px 48px;
    border: 1px solid rgba(159, 117, 66, 0.18);
    border-radius: 18px;
    color: #2f394c;
    background: rgba(217, 180, 123, 0.10);
}

.indulgence-conditions li::before {
    content: '✓';
    position: absolute;
    left: 18px;
    top: 16px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    color: #fff;
    background: #9f7542;
    font-size: 0.72rem;
    font-weight: 900;
}

.indulgence-link {
    display: block;
    width: fit-content;
    margin-top: 7px;
    color: #754917;
    font-size: 0.88rem;
    font-weight: 850;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.indulgence-link:hover {
    color: #3f270d;
}

.reading-mode .content-panel {
    background: #fffdf9 !important;
}

.reading-mode .prose > p:not(.prose-eyebrow):not(.source-note),
.reading-mode .indulgence-conditions li,
.reading-mode .memorial-service p:last-child {
    font-size: 1.16rem;
    line-height: 1.82;
}

.reading-mode .prose-lead {
    font-size: 1.28rem;
    line-height: 1.78;
}

.reading-mode .aside-list a,
.reading-mode .memorial-mini-time span {
    font-size: 1.08rem;
}

.memorial-prayer {
    margin-top: 30px;
    padding: 28px;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 85% 20%, rgba(217, 180, 123, 0.18), transparent 28%),
        #0d2444;
    text-align: center;
}

.memorial-prayer p {
    margin: 0;
    color: #f0c36b;
    font-family: var(--serif);
    font-size: clamp(1.8rem, 3.4vw, 2.8rem);
    font-weight: 600;
    font-style: italic;
    line-height: 1.15;
    text-shadow: 0 2px 24px rgba(231, 170, 65, 0.24);
}

.memorial-prayer span {
    display: block;
    margin-top: 10px;
    color: rgba(255, 247, 232, 0.82);
    font-size: 0.82rem;
    font-style: normal;
}

.memorial-page .aside-panel--schedule {
    border-color: rgba(217, 180, 123, 0.25);
    background:
        radial-gradient(circle at 82% 12%, rgba(217, 180, 123, 0.18), transparent 28%),
        #0d2444;
    color: #fff;
}

.memorial-page .aside-panel--schedule .aside-panel__label {
    color: #d9b47b;
}

.memorial-page .aside-panel--schedule .aside-panel__title {
    color: #fff;
}

.memorial-mini-time {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 14px;
    align-items: baseline;
    padding: 16px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.memorial-mini-time strong {
    color: #e4b868;
    font-family: var(--serif);
    font-size: 1.7rem;
}

.memorial-mini-time span {
    color: rgba(255, 255, 255, 0.80);
    font-size: 0.98rem;
    line-height: 1.5;
}

.source-note {
    margin-top: 26px;
    color: #657084;
    font-size: 0.92rem;
    line-height: 1.6;
}

.source-note a {
    color: #8a6334;
    font-weight: 800;
}

.memorial-archive {
    display: grid;
    grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr);
    min-height: 560px;
    margin-top: 34px;
    overflow: hidden;
    border: 1px solid rgba(217, 180, 123, 0.22);
    border-radius: 32px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(232, 173, 76, 0.17), transparent 28%),
        linear-gradient(145deg, #102531, #091923);
    box-shadow: 0 24px 65px rgba(7, 17, 24, 0.22);
}

.memorial-archive__photo {
    position: relative;
    min-width: 0;
    margin: 0;
    background: #07131b;
}

.memorial-archive__photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 560px;
    object-fit: cover;
    object-position: center 54%;
}

.memorial-archive__photo figcaption {
    position: absolute;
    inset: auto 18px 18px;
    padding: 9px 12px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.88);
    background: rgba(4, 12, 18, 0.68);
    font-size: 0.76rem;
    font-weight: 750;
    line-height: 1.35;
    backdrop-filter: blur(8px);
}

.memorial-archive__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(36px, 6vw, 72px);
}

.memorial-archive__eyebrow {
    margin: 0 0 12px;
    color: #e4b767;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.memorial-archive__content h2 {
    max-width: 12ch;
    margin: 0 0 22px;
    color: #fffaf1;
    font-family: var(--serif);
    font-size: clamp(2.5rem, 5vw, 4.4rem);
    line-height: 0.98;
}

.memorial-archive__content > p:not(.memorial-archive__eyebrow) {
    max-width: 54ch;
    margin: 0;
    color: rgba(246, 241, 232, 0.78);
    font-size: 1.05rem;
    line-height: 1.72;
}

.memorial-archive__closing {
    margin-top: 26px !important;
    padding-top: 22px;
    border-top: 1px solid rgba(228, 183, 103, 0.20);
    color: #f0cf94 !important;
    font-family: var(--serif);
    font-size: 1.45rem !important;
    font-style: italic;
    line-height: 1.25 !important;
}

/* Stopka tej podstrony ma cztery pełne pola. */
.memorial-page .template-footer .pf-footer__grid {
    grid-template-columns: minmax(220px, 0.95fr) minmax(300px, 1.2fr) minmax(160px, 0.7fr) minmax(230px, 0.9fr);
    grid-template-areas: 'contact bank address copy';
    gap: 24px;
}

.memorial-page .template-footer .pf-footer__item--contact { grid-area: contact; }
.memorial-page .template-footer .pf-footer__item--bank { grid-area: bank; justify-self: start; }
.memorial-page .template-footer .pf-footer__item--address { grid-area: address; justify-self: start; }
.memorial-page .template-footer .pf-footer__copy { grid-area: copy; justify-self: end; }

@media (max-width: 1180px) {
    .memorial-page .template-footer .pf-footer__grid {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            'contact address'
            'bank bank'
            'copy copy';
    }

    .memorial-page .template-footer .pf-footer__copy {
        justify-self: start;
        max-width: none;
    }
}

@media (max-width: 900px) {
    .memorial-page .subpage-hero--memorial {
        min-height: 620px !important;
    }

    .memorial-page .subpage-hero--memorial .subpage-heading {
        position: absolute;
        left: 24px;
        right: 24px;
        bottom: 72px;
        width: auto !important;
        max-width: none;
        padding: 0 !important;
        transform: none;
    }

    .memorial-schedule,
    .indulgence-conditions {
        grid-template-columns: 1fr;
    }

    .memorial-archive {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .memorial-archive__photo img {
        min-height: 0;
        aspect-ratio: 4 / 3;
        object-position: center 58%;
    }

    .memorial-archive__content h2 {
        max-width: 15ch;
    }
}

@media (max-width: 700px) {
    .memorial-page .subpage-hero--memorial {
        min-height: 560px !important;
    }

    .memorial-page .subpage-hero--memorial .subpage-heading {
        left: 16px;
        right: 16px;
    }

    .memorial-page .subpage-hero__bg {
        object-position: 58% center;
    }

    .memorial-page .subpage-title {
        max-width: 11ch;
        font-size: clamp(2.7rem, 13vw, 4rem);
    }

    .memorial-photo-credit {
        left: 14px;
        right: auto;
        bottom: 14px;
    }

    .memorial-service {
        min-height: 0;
        padding: 24px 20px;
    }

    .memorial-page .prose > p:not(.prose-eyebrow):not(.source-note),
    .memorial-page .indulgence-conditions li {
        font-size: 1rem;
    }

    .reading-tools {
        justify-content: space-between;
        gap: 8px;
    }

    .reading-tools__hint {
        font-size: 0.75rem;
    }

    .reading-mode .prose > p:not(.prose-eyebrow):not(.source-note),
    .reading-mode .indulgence-conditions li,
    .reading-mode .memorial-service p:last-child {
        font-size: 1.12rem;
    }

    .memorial-page .template-footer .pf-footer__grid {
        grid-template-columns: 1fr;
        grid-template-areas:
            'contact'
            'address'
            'bank'
            'copy';
        gap: 22px;
    }

    .memorial-page .template-footer .pf-footer__item,
    .memorial-page .template-footer .pf-footer__copy {
        width: 100%;
        justify-self: stretch;
    }

    .memorial-archive {
        border-radius: 24px;
    }

    .memorial-archive__photo figcaption {
        inset: auto 12px 12px;
        border-radius: 14px;
    }

    .memorial-archive__content {
        padding: 32px 24px 38px;
    }

    .memorial-archive__content h2 {
        font-size: clamp(2.35rem, 12vw, 3.35rem);
    }
}
