/* NKK Kalendarz Liturgiczny 1.0.0 */
html body.nkk-calendar-system{
    --cal-ink:#171411;
    --cal-muted:#6a625b;
    --cal-accent:#8a1f2d;
    --cal-line:#d7cec1;
    --cal-line-strong:#bcb1a4;
    --cal-paper:#f7f3ec;
    --cal-paper-light:#fffdf8;
    --cal-soft:rgba(138,31,45,.045);
    --cal-serif:Georgia,"Times New Roman",serif;
    --cal-sans:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    background:var(--cal-paper);
    color:var(--cal-ink);
}

html body.nkk-calendar-system *{box-sizing:border-box}

html body.nkk-calendar-system .nkk-calendar-shell{
    width:min(calc(100% - 56px),1380px);
    max-width:1380px;
    margin-inline:auto;
}

.nkk-calendar-main{background:var(--cal-paper)}

.nkk-calendar-eyebrow{
    display:block;
    margin:0 0 8px;
    color:var(--cal-accent);
    font-family:var(--cal-sans);
    font-size:9px;
    font-weight:850;
    line-height:1.2;
    letter-spacing:.13em;
    text-transform:uppercase;
}

/* HERO */
.nkk-calendar-hero{
    display:grid;
    grid-template-columns:minmax(0,.96fr) minmax(500px,1.04fr);
    gap:clamp(42px,5vw,82px);
    align-items:center;
    min-height:615px;
    padding-block:34px 46px;
    border-bottom:1px solid var(--cal-line-strong);
}

.nkk-calendar-hero h1{
    margin:0;
    font-family:var(--cal-serif);
    font-size:clamp(36px,4.1vw,56px);
    font-weight:400;
    line-height:1.02;
    letter-spacing:-.025em;
}

.nkk-calendar-hero__lead{
    max-width:735px;
    margin:15px 0 0;
    color:#49433d;
    font-family:var(--cal-serif);
    font-size:16.5px;
    line-height:1.68;
    text-align:justify;
}

.nkk-calendar-now{
    max-width:620px;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:3px 17px;
    align-items:baseline;
    margin-top:24px;
    padding:16px 0 0;
    border-top:1px solid var(--cal-line);
}

.nkk-calendar-now__label{
    grid-column:1/-1;
    margin-bottom:2px;
    color:#8c8178;
    font-family:var(--cal-sans);
    font-size:8px;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.nkk-calendar-now strong{
    font-family:var(--cal-serif);
    font-size:23px;
    font-weight:400;
}

.nkk-calendar-now > span:last-child{
    color:var(--cal-muted);
    font-family:var(--cal-sans);
    font-size:10px;
    font-weight:650;
}

.nkk-calendar-now b{
    color:var(--cal-accent);
    font-weight:850;
}

/* WHEEL */
.nkk-calendar-wheel{
    position:relative;
    min-height:520px;
    display:grid;
    place-items:center;
    isolation:isolate;
}

.nkk-calendar-wheel__ring{
    position:absolute;
    left:50%;
    top:50%;
    border-radius:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
}

.nkk-calendar-wheel__ring--1{
    width:430px;
    height:430px;
    border:1px solid rgba(138,31,45,.11);
}

.nkk-calendar-wheel__ring--2{
    width:326px;
    height:326px;
    border:1px dashed rgba(138,31,45,.12);
    animation:nkkCalendarTurn 56s linear infinite;
}

.nkk-calendar-wheel__ring--3{
    width:218px;
    height:218px;
    border:1px solid rgba(188,177,164,.42);
    animation:nkkCalendarBreathe 6.5s ease-in-out infinite;
}

.nkk-calendar-wheel__center{
    position:relative;
    z-index:5;
    width:188px;
    aspect-ratio:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:25px;
    border-radius:50%;
    background:#fffdf8;
    border:1px solid var(--cal-line-strong);
    box-shadow:0 18px 48px rgba(35,26,22,.06);
    text-align:center;
}

.nkk-calendar-wheel__center::before,
.nkk-calendar-wheel__center::after{
    content:"";
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(138,31,45,.08);
}

.nkk-calendar-wheel__center::before{inset:13px}
.nkk-calendar-wheel__center::after{
    inset:29px;
    border-color:rgba(188,177,164,.29);
}

.nkk-calendar-wheel__icon{
    position:relative;
    z-index:2;
    width:60px;
    height:60px;
    display:block;
    margin-bottom:7px;
    color:var(--cal-accent);
}

.nkk-calendar-wheel__icon svg,
.nkk-calendar-detail__icon svg{
    width:100%;
    height:100%;
    display:block;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.nkk-calendar-wheel__center strong{
    position:relative;
    z-index:2;
    font-family:var(--cal-serif);
    font-size:19px;
    font-weight:400;
}

.nkk-calendar-wheel__center small{
    position:relative;
    z-index:2;
    margin-top:4px;
    color:var(--cal-muted);
    font-family:var(--cal-sans);
    font-size:8px;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.nkk-calendar-wheel__center b{
    color:var(--cal-accent);
    font-weight:850;
}

.nkk-calendar-wheel__month{
    position:absolute;
    left:50%;
    top:50%;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    margin:-21px;
    border:1px solid var(--cal-line);
    border-radius:50%;
    background:rgba(255,253,248,.95);
    color:#776d65;
    font-family:var(--cal-sans);
    font-size:8px;
    font-weight:800;
    cursor:pointer;
    transform:
        rotate(var(--month-angle))
        translateY(-214px)
        rotate(calc(var(--month-angle) * -1));
    transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}

.nkk-calendar-wheel__month:hover,
.nkk-calendar-wheel__month:focus-visible{
    border-color:rgba(138,31,45,.42);
    color:var(--cal-accent);
    outline:none;
}

.nkk-calendar-wheel__month.is-current{
    border-color:var(--cal-accent);
    background:var(--cal-accent);
    color:#fffdf8;
    box-shadow:0 0 0 7px rgba(138,31,45,.07);
}

.nkk-calendar-wheel__month.is-selected:not(.is-current){
    border-color:var(--cal-accent);
    color:var(--cal-accent);
    box-shadow:0 0 0 5px rgba(138,31,45,.05);
}

/* CYCLE BAR */
.nkk-calendar-cyclebar{
    border-bottom:1px solid var(--cal-line);
    background:rgba(255,253,248,.4);
}

.nkk-calendar-cyclebar .nkk-calendar-shell{
    min-height:72px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.nkk-calendar-cyclebar__intro span{
    display:block;
    margin-bottom:2px;
    color:#8d8279;
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.nkk-calendar-cyclebar__intro strong{
    font-family:var(--cal-serif);
    font-size:16px;
    font-weight:400;
}

.nkk-calendar-cycles{
    display:flex;
    align-items:stretch;
    border-left:1px solid var(--cal-line);
}

.nkk-calendar-cycles button{
    min-width:110px;
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:8px 15px;
    border:0;
    border-right:1px solid var(--cal-line);
    background:transparent;
    color:#6c635c;
    cursor:pointer;
}

.nkk-calendar-cycles button span{
    font-family:var(--cal-serif);
    font-size:22px;
    font-weight:400;
}

.nkk-calendar-cycles button small{
    font-family:var(--cal-sans);
    font-size:7px;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.nkk-calendar-cycles button.is-active{
    background:var(--cal-soft);
    color:var(--cal-accent);
}

.nkk-calendar-cycles button:focus-visible{
    outline:2px solid var(--cal-accent);
    outline-offset:-3px;
}

/* SECTIONS */
.nkk-calendar-section{
    display:grid;
    grid-template-columns:190px minmax(0,1fr);
    gap:clamp(34px,5vw,72px);
    padding-block:50px;
    border-bottom:1px solid var(--cal-line);
}

.nkk-calendar-section__side span{
    display:block;
    margin:2px 0 7px;
    color:var(--cal-accent);
    font-family:var(--cal-sans);
    font-size:8.5px;
    font-weight:850;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.nkk-calendar-section__side p{
    margin:0;
    color:#847a72;
    font-family:var(--cal-sans);
    font-size:10px;
    font-weight:700;
    line-height:1.45;
}

.nkk-calendar-section__content{
    max-width:1010px;
}

.nkk-calendar-section__content > h2{
    margin:0 0 16px;
    font-family:var(--cal-serif);
    font-size:clamp(25px,2.35vw,34px);
    font-weight:400;
    line-height:1.1;
    letter-spacing:-.015em;
}

.nkk-calendar-intro{
    max-width:820px;
    margin:0 0 25px;
    color:#504942;
    font-family:var(--cal-serif);
    font-size:14.5px;
    line-height:1.65;
}

/* MONTH GRID */
.nkk-calendar-months{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    border-top:1px solid var(--cal-line-strong);
    border-left:1px solid var(--cal-line);
}

.nkk-calendar-month{
    position:relative;
    min-height:142px;
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:12px;
    align-content:start;
    padding:20px;
    border:0;
    border-right:1px solid var(--cal-line);
    border-bottom:1px solid var(--cal-line);
    background:transparent;
    color:inherit;
    text-align:left;
    cursor:pointer;
    transition:background .2s ease;
}

.nkk-calendar-month:hover,
.nkk-calendar-month:focus-visible{
    background:rgba(255,253,248,.55);
    outline:none;
}

.nkk-calendar-month.is-selected{
    background:var(--cal-soft);
    box-shadow:inset 0 2px 0 var(--cal-accent);
}

.nkk-calendar-month.is-current::after{
    content:"TERAZ";
    position:absolute;
    right:13px;
    top:12px;
    color:var(--cal-accent);
    font-family:var(--cal-sans);
    font-size:6.5px;
    font-weight:850;
    letter-spacing:.11em;
}

.nkk-calendar-month__number{
    padding-top:2px;
    color:var(--cal-accent);
    font-family:var(--cal-sans);
    font-size:8px;
    font-weight:850;
    letter-spacing:.08em;
}

.nkk-calendar-month__copy strong{
    display:block;
    margin-bottom:5px;
    font-family:var(--cal-serif);
    font-size:19px;
    font-weight:400;
}

.nkk-calendar-month__copy small{
    display:block;
    color:var(--cal-muted);
    font-family:var(--cal-serif);
    font-size:12.5px;
    line-height:1.45;
}

.nkk-calendar-month__status{
    grid-column:2;
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:9px;
    color:#8a8078;
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.nkk-calendar-month__dot{
    width:6px;
    height:6px;
    border-radius:50%;
    background:#b9afa6;
}

.nkk-calendar-month.has-pdf .nkk-calendar-month__dot{
    background:var(--cal-accent);
}

/* DETAIL */
.nkk-calendar-detail{
    margin-top:30px;
    padding:27px 29px;
    border-top:2px solid var(--cal-accent);
    border-bottom:1px solid var(--cal-line);
    background:var(--cal-paper-light);
}

.nkk-calendar-detail__head{
    display:flex;
    justify-content:space-between;
    gap:22px;
    align-items:flex-start;
    margin-bottom:12px;
}

.nkk-calendar-detail__head h3{
    margin:0;
    font-family:var(--cal-serif);
    font-size:27px;
    font-weight:400;
}

.nkk-calendar-detail__cycle{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#82786f;
    font-family:var(--cal-sans);
    font-size:8px;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.nkk-calendar-detail__cycle strong{
    color:var(--cal-accent);
    font-family:var(--cal-serif);
    font-size:19px;
    font-weight:400;
}

.nkk-calendar-detail > p{
    max-width:790px;
    margin:0 0 19px;
    color:var(--cal-muted);
    font-family:var(--cal-serif);
    font-size:13.5px;
    line-height:1.55;
}

.nkk-calendar-detail__availability{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:14px;
    align-items:center;
    max-width:640px;
    padding-top:16px;
    border-top:1px solid var(--cal-line);
}

.nkk-calendar-detail__icon{
    width:42px;
    height:42px;
    display:block;
    color:var(--cal-accent);
}

.nkk-calendar-detail__availability span{
    display:block;
    margin-bottom:3px;
    color:#8d8279;
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.nkk-calendar-detail__availability strong{
    font-family:var(--cal-serif);
    font-size:16px;
    font-weight:400;
}

.nkk-calendar-detail__link{
    display:inline-block;
    margin-top:17px;
    padding-bottom:3px;
    border-bottom:1px solid rgba(138,31,45,.27);
    color:#5c403e;
    font-family:var(--cal-sans);
    font-size:10px;
    font-weight:750;
    text-decoration:none;
}

.nkk-calendar-detail__empty{
    margin-top:17px !important;
    padding:12px 14px;
    border-left:2px solid var(--cal-line-strong);
    background:rgba(120,110,100,.035);
}

/* SEASONS */
.nkk-calendar-seasons{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    border-top:1px solid var(--cal-line-strong);
    border-left:1px solid var(--cal-line);
}

.nkk-calendar-seasons article{
    min-height:170px;
    padding:21px;
    border-right:1px solid var(--cal-line);
    border-bottom:1px solid var(--cal-line);
}

.nkk-calendar-seasons article > span{
    display:block;
    margin-bottom:8px;
    color:var(--cal-accent);
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.nkk-calendar-seasons strong{
    display:block;
    margin-bottom:8px;
    font-family:var(--cal-serif);
    font-size:19px;
    font-weight:400;
}

.nkk-calendar-seasons p{
    margin:0;
    color:var(--cal-muted);
    font-family:var(--cal-serif);
    font-size:12.7px;
    line-height:1.52;
}

/* MOTION */
@keyframes nkkCalendarTurn{
    from{transform:translate(-50%,-50%) rotate(0)}
    to{transform:translate(-50%,-50%) rotate(360deg)}
}

@keyframes nkkCalendarBreathe{
    0%,100%{transform:translate(-50%,-50%) scale(.98);opacity:.68}
    50%{transform:translate(-50%,-50%) scale(1.025);opacity:1}
}

@media(max-width:1100px){
    .nkk-calendar-hero{
        grid-template-columns:1fr;
        min-height:0;
    }

    .nkk-calendar-wheel{
        width:min(100%,760px);
        margin-inline:auto;
    }

    .nkk-calendar-seasons{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:900px){
    html body.nkk-calendar-system .nkk-calendar-shell{
        width:min(calc(100% - 32px),1380px);
    }

    .nkk-calendar-section{
        grid-template-columns:1fr;
        gap:20px;
    }

    .nkk-calendar-months{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .nkk-calendar-cyclebar .nkk-calendar-shell{
        align-items:stretch;
        flex-direction:column;
        padding-block:14px;
    }

    .nkk-calendar-cycles{
        align-self:stretch;
    }

    .nkk-calendar-cycles button{
        flex:1;
        min-width:0;
    }
}

@media(max-width:700px){
    html body.nkk-calendar-system .nkk-calendar-shell{
        width:min(calc(100% - 24px),1380px);
    }

    .nkk-calendar-hero__lead{
        text-align:left;
    }

    .nkk-calendar-wheel{
        min-height:360px;
    }

    .nkk-calendar-wheel__ring--1{width:310px;height:310px}
    .nkk-calendar-wheel__ring--2{width:236px;height:236px}
    .nkk-calendar-wheel__ring--3{width:168px;height:168px}

    .nkk-calendar-wheel__center{width:150px}

    .nkk-calendar-wheel__month{
        width:35px;
        height:35px;
        margin:-17.5px;
        transform:
            rotate(var(--month-angle))
            translateY(-154px)
            rotate(calc(var(--month-angle) * -1));
    }

    .nkk-calendar-months{
        grid-template-columns:1fr;
    }

    .nkk-calendar-seasons{
        grid-template-columns:1fr;
    }

    .nkk-calendar-detail__head{
        flex-direction:column;
        gap:8px;
    }
}

@media(prefers-reduced-motion:reduce){
    .nkk-calendar-wheel__ring{
        animation:none!important;
    }
}


/* ==========================================================
   NKK Kalendarz Liturgiczny 1.1.0
   Dane miesięcy i lat renderowane po stronie PHP
   ========================================================== */

.nkk-calendar-anchorbar{
    border-bottom:1px solid var(--cal-line);
    background:rgba(255,253,248,.38);
}

.nkk-calendar-anchorbar .nkk-calendar-shell{
    display:flex;
    justify-content:center;
    gap:0 28px;
    overflow-x:auto;
    scrollbar-width:none;
}

.nkk-calendar-anchorbar .nkk-calendar-shell::-webkit-scrollbar{display:none}

.nkk-calendar-anchorbar a{
    min-height:50px;
    display:inline-flex;
    align-items:center;
    color:#655d55;
    font-family:var(--cal-sans);
    font-size:9px;
    font-weight:800;
    letter-spacing:.055em;
    text-decoration:none;
    text-transform:uppercase;
    white-space:nowrap;
}

.nkk-calendar-advent-note{
    max-width:620px;
    margin-top:18px;
    padding:14px 16px;
    border-left:2px solid var(--cal-accent);
    background:var(--cal-soft);
}

.nkk-calendar-advent-note > span{
    display:block;
    margin-bottom:4px;
    color:#8a7f76;
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.nkk-calendar-advent-note > strong{
    display:block;
    margin-bottom:4px;
    font-family:var(--cal-serif);
    font-size:17px;
    font-weight:400;
}

.nkk-calendar-advent-note p{
    margin:0;
    color:#5c544d;
    font-family:var(--cal-serif);
    font-size:12.5px;
    line-height:1.55;
}

html body.nkk-calendar-system .nkk-calendar-wheel__month{
    text-decoration:none;
}

/* Od 1.1.0 miesiące są pełnymi artykułami, nie przyciskami JS. */
.nkk-calendar-months{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

html body.nkk-calendar-system article.nkk-calendar-month{
    position:relative;
    min-height:190px;
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:12px;
    align-content:start;
    padding:20px;
    border-right:1px solid var(--cal-line);
    border-bottom:1px solid var(--cal-line);
    background:transparent;
    color:inherit;
    scroll-margin-top:110px;
}

html body.nkk-calendar-system article.nkk-calendar-month.is-current{
    background:var(--cal-soft);
    box-shadow:inset 0 2px 0 var(--cal-accent);
}

.nkk-calendar-month__cycle{
    display:block;
    margin:0 0 7px;
    color:var(--cal-accent);
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:850;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.nkk-calendar-month__copy h3{
    margin:0 0 6px;
    font-family:var(--cal-serif);
    font-size:20px;
    font-weight:400;
}

.nkk-calendar-month__copy p{
    margin:0;
    color:var(--cal-muted);
    font-family:var(--cal-serif);
    font-size:12.7px;
    line-height:1.48;
}

.nkk-calendar-month__links{
    display:flex;
    flex-wrap:wrap;
    gap:7px 14px;
    margin-top:14px;
}

.nkk-calendar-month__links a{
    display:inline-block;
    padding-bottom:2px;
    border-bottom:1px solid rgba(138,31,45,.25);
    color:#5c403e;
    font-family:var(--cal-sans);
    font-size:8.5px;
    font-weight:750;
    text-decoration:none;
}

.nkk-calendar-month__missing{
    display:block;
    margin-top:14px;
    color:#9a8f86;
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:750;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.nkk-calendar-year-current{
    display:grid;
    grid-template-columns:120px repeat(2,minmax(0,1fr));
    gap:0;
    margin:24px 0 27px;
    border-top:1px solid var(--cal-line-strong);
    border-left:1px solid var(--cal-line);
}

.nkk-calendar-year-current > span,
.nkk-calendar-year-current > div{
    min-height:82px;
    padding:16px 18px;
    border-right:1px solid var(--cal-line);
    border-bottom:1px solid var(--cal-line);
}

.nkk-calendar-year-current > span{
    display:flex;
    align-items:center;
    color:var(--cal-accent);
    font-family:var(--cal-serif);
    font-size:18px;
}

.nkk-calendar-year-current > div strong{
    display:block;
    margin-bottom:7px;
    color:#514a44;
    font-family:var(--cal-serif);
    font-size:14px;
    font-weight:400;
}

.nkk-calendar-year-current > div b{
    color:var(--cal-accent);
    font-family:var(--cal-sans);
    font-size:8px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.nkk-calendar-tablewrap{
    width:100%;
    overflow-x:auto;
    border-top:1px solid var(--cal-line-strong);
}

.nkk-calendar-years{
    width:100%;
    min-width:900px;
    border-collapse:collapse;
}

.nkk-calendar-years th{
    padding:13px 14px;
    border-bottom:1px solid var(--cal-line);
    color:#81766e;
    font-family:var(--cal-sans);
    font-size:7.5px;
    font-weight:850;
    letter-spacing:.07em;
    text-align:left;
    text-transform:uppercase;
}

.nkk-calendar-years td{
    padding:13px 14px;
    border-bottom:1px solid var(--cal-line);
    color:#544d46;
    font-family:var(--cal-serif);
    font-size:13px;
    line-height:1.45;
}

.nkk-calendar-years tr.is-current td{
    background:var(--cal-soft);
}

.nkk-calendar-years td:first-child strong{
    color:var(--cal-ink);
    font-family:var(--cal-serif);
    font-size:15px;
    font-weight:400;
}

.nkk-calendar-cycle-tag{
    width:31px;
    height:31px;
    display:inline-grid;
    place-items:center;
    border:1px solid rgba(138,31,45,.24);
    border-radius:50%;
    color:var(--cal-accent);
    font-family:var(--cal-serif);
    font-size:15px;
}

.nkk-calendar-theology{
    max-width:890px;
}

.nkk-calendar-theology > p{
    margin:0 0 16px;
    color:#3f3934;
    font-family:var(--cal-serif);
    font-size:15px;
    line-height:1.72;
    text-align:justify;
}

.nkk-calendar-theology aside{
    margin-top:25px;
    padding:15px 17px;
    border-left:2px solid var(--cal-accent);
    background:var(--cal-soft);
    color:#5c544d;
    font-family:var(--cal-serif);
    font-size:13px;
    line-height:1.6;
}

@media(max-width:900px){
    .nkk-calendar-year-current{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .nkk-calendar-anchorbar .nkk-calendar-shell{
        justify-content:flex-start;
    }

    .nkk-calendar-months{
        grid-template-columns:1fr;
    }

    .nkk-calendar-theology > p{
        text-align:left;
    }
}


/* NKK Kalendarz Liturgiczny 1.2.0 — lata A/B/C */
.nkk-calendar-section--cycles{padding-top:56px;padding-bottom:62px}
.nkk-calendar-intro--wide{max-width:900px}
.nkk-calendar-liturgical-year{margin:29px 0 34px;border-top:2px solid var(--cal-accent);border-bottom:1px solid var(--cal-line-strong);background:var(--cal-paper-light)}
.nkk-calendar-liturgical-year__header{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px 25px;border-bottom:1px solid var(--cal-line)}
.nkk-calendar-liturgical-year__label,.nkk-calendar-liturgical-year__current>span{display:block;margin-bottom:4px;color:#8b8078;font-family:var(--cal-sans);font-size:7.5px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.nkk-calendar-liturgical-year__header h3{margin:0;font-family:var(--cal-serif);font-size:32px;font-weight:400;line-height:1}
.nkk-calendar-liturgical-year__current{min-width:150px;padding-left:22px;border-left:1px solid var(--cal-line);text-align:right}
.nkk-calendar-liturgical-year__current strong{color:var(--cal-accent);font-family:var(--cal-serif);font-size:21px;font-weight:400}
.nkk-calendar-liturgical-year__timeline{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr)}
.nkk-calendar-liturgical-year__timeline>section{min-height:176px;display:grid;grid-template-columns:58px minmax(0,1fr);gap:16px;align-items:center;padding:24px 25px}
.nkk-calendar-liturgical-year__timeline>section:first-child{border-right:1px solid var(--cal-line)}
.nkk-calendar-liturgical-year__timeline>section:last-child{border-left:1px solid var(--cal-line)}
.nkk-calendar-liturgical-year__cycle{width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(138,31,45,.24);border-radius:50%;color:var(--cal-accent);font-family:var(--cal-serif);font-size:24px}
.nkk-calendar-liturgical-year__timeline section div>span{display:block;margin-bottom:5px;color:#8c8178;font-family:var(--cal-sans);font-size:7.5px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.nkk-calendar-liturgical-year__timeline section div>strong{display:block;margin-bottom:7px;font-family:var(--cal-serif);font-size:16px;font-weight:400}
.nkk-calendar-liturgical-year__timeline section div>p{margin:0;color:var(--cal-muted);font-family:var(--cal-serif);font-size:12.5px;line-height:1.5}
.nkk-calendar-liturgical-year__advent{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 14px;background:var(--cal-soft);text-align:center}
.nkk-calendar-liturgical-year__advent:before{content:"";width:1px;height:33px;margin-bottom:9px;background:var(--cal-accent)}
.nkk-calendar-liturgical-year__advent>span{display:block;margin-bottom:5px;color:var(--cal-accent);font-family:var(--cal-sans);font-size:7px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.nkk-calendar-liturgical-year__advent>strong{font-family:var(--cal-serif);font-size:16px;font-weight:400}
.nkk-calendar-cycle-theology{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:40px;border-top:1px solid var(--cal-line-strong);border-left:1px solid var(--cal-line)}
.nkk-calendar-cycle-theology article{min-height:138px;display:grid;grid-template-columns:50px minmax(0,1fr);gap:14px;padding:20px;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line)}
.nkk-calendar-cycle-theology article>span{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(138,31,45,.20);border-radius:50%;color:var(--cal-accent);font-family:var(--cal-serif);font-size:19px}
.nkk-calendar-cycle-theology strong{display:block;margin:2px 0 6px;font-family:var(--cal-serif);font-size:18px;font-weight:400}
.nkk-calendar-cycle-theology p{margin:0;color:var(--cal-muted);font-family:var(--cal-serif);font-size:12.5px;line-height:1.5}
.nkk-calendar-years-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:16px}
.nkk-calendar-years-heading h3{margin:0;font-family:var(--cal-serif);font-size:25px;font-weight:400}
.nkk-calendar-years-heading>p{max-width:540px;margin:0;color:#766d65;font-family:var(--cal-serif);font-size:12.5px;line-height:1.5;text-align:right}
.nkk-calendar-years{border-left:1px solid var(--cal-line);border-right:1px solid var(--cal-line)}
.nkk-calendar-years th{padding:14px 16px;border-right:1px solid var(--cal-line)}
.nkk-calendar-years td{padding:15px 16px;border-right:1px solid var(--cal-line)}
.nkk-calendar-years th:last-child,.nkk-calendar-years td:last-child{border-right:0}
.nkk-calendar-years tbody tr:hover td{background:rgba(255,253,248,.55)}
.nkk-calendar-years tr.is-current td{background:rgba(138,31,45,.045)}
.nkk-calendar-years tr.is-current td:first-child{box-shadow:inset 2px 0 0 var(--cal-accent)}
.nkk-calendar-years td:first-child strong{display:block;margin-bottom:3px;font-size:17px}
.nkk-calendar-years td:first-child small{display:block;color:var(--cal-accent);font-family:var(--cal-sans);font-size:6.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.nkk-calendar-years__range{white-space:nowrap}.nkk-calendar-years__range i{padding:0 5px;color:#a0968e;font-family:var(--cal-serif);font-size:11px;font-style:italic}
.nkk-calendar-cycle-mark{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid rgba(138,31,45,.24);border-radius:50%;background:var(--cal-paper-light);color:var(--cal-accent);font-family:var(--cal-serif);font-size:16px}
.nkk-calendar-weekday-note{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:center;margin-top:27px;padding:19px 21px;border-top:1px solid var(--cal-line-strong);border-bottom:1px solid var(--cal-line);background:rgba(255,253,248,.36)}
.nkk-calendar-weekday-note__mark{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(138,31,45,.20);color:var(--cal-accent);font-family:var(--cal-serif);font-size:17px}
.nkk-calendar-weekday-note strong{display:block;margin-bottom:5px;font-family:var(--cal-serif);font-size:17px;font-weight:400}
.nkk-calendar-weekday-note p{max-width:760px;margin:0;color:var(--cal-muted);font-family:var(--cal-serif);font-size:12.7px;line-height:1.55}
@media(max-width:900px){.nkk-calendar-liturgical-year__timeline{grid-template-columns:1fr}.nkk-calendar-liturgical-year__timeline>section:first-child,.nkk-calendar-liturgical-year__timeline>section:last-child{border:0}.nkk-calendar-liturgical-year__advent{min-height:110px;border-top:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line)}.nkk-calendar-cycle-theology{grid-template-columns:1fr}.nkk-calendar-years-heading{align-items:flex-start;flex-direction:column}.nkk-calendar-years-heading>p{text-align:left}}
@media(max-width:700px){.nkk-calendar-liturgical-year__header{align-items:flex-start;flex-direction:column}.nkk-calendar-liturgical-year__current{min-width:0;padding:12px 0 0;border-left:0;border-top:1px solid var(--cal-line);text-align:left}.nkk-calendar-liturgical-year__timeline>section{grid-template-columns:48px minmax(0,1fr);padding:20px 18px}.nkk-calendar-liturgical-year__cycle{width:44px;height:44px;font-size:21px}.nkk-calendar-weekday-note{grid-template-columns:1fr}}


/* NKK Kalendarz Liturgiczny 1.2.1 — aktywne miesiące w orbicie */
.nkk-calendar-wheel{overflow:visible}
.nkk-calendar-wheel__center{transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease}
.nkk-calendar-wheel__center.is-active{transform:translateY(-2px);box-shadow:0 24px 56px rgba(35,26,22,.08);border-color:rgba(138,31,45,.28)}
.nkk-calendar-wheel__center strong{font-size:20px}
.nkk-calendar-wheel__center small{display:flex;align-items:center;justify-content:center;gap:5px;min-height:18px}
.nkk-calendar-wheel__center small span{display:inline-block;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.nkk-calendar-system .nkk-calendar-wheel__month{width:46px;height:46px;margin:-23px;border-color:rgba(188,177,164,.9);background:linear-gradient(180deg,#fffefa 0%, #faf6f0 100%);box-shadow:0 8px 18px rgba(35,26,22,.04);font-size:12px;font-weight:900;letter-spacing:.02em;transition:transform .22s ease,border-color .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease}
.nkk-calendar-wheel__month::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(138,31,45,.05);transition:border-color .22s ease,opacity .22s ease}
.nkk-calendar-wheel__month-number{position:relative;z-index:2;font-size:12px;font-weight:900;line-height:1}
html body.nkk-calendar-system .nkk-calendar-wheel__month:hover,html body.nkk-calendar-system .nkk-calendar-wheel__month:focus-visible{transform:rotate(var(--month-angle)) translateY(-214px) rotate(calc(var(--month-angle) * -1)) translateY(-3px) scale(1.06);box-shadow:0 12px 26px rgba(35,26,22,.09);background:#fffdf8;border-color:rgba(138,31,45,.40);color:var(--cal-accent)}
html body.nkk-calendar-system .nkk-calendar-wheel__month:hover::before,html body.nkk-calendar-system .nkk-calendar-wheel__month:focus-visible::before{border-color:rgba(138,31,45,.14)}
.nkk-calendar-wheel__month.is-current{box-shadow:0 0 0 7px rgba(138,31,45,.07), 0 12px 26px rgba(35,26,22,.08)}
.nkk-calendar-wheel__month.is-selected:not(.is-current){border-color:var(--cal-accent);background:#fffcf9;color:var(--cal-accent);box-shadow:0 0 0 6px rgba(138,31,45,.06), 0 12px 22px rgba(35,26,22,.07)}
.nkk-calendar-wheel__month.is-selected:not(.is-current)::before{border-color:rgba(138,31,45,.15)}
.nkk-calendar-wheel__ring--1{box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.nkk-calendar-wheel__ring--2{animation-duration:74s}
.nkk-calendar-wheel__ring--3{animation-duration:8.5s}
.nkk-calendar-month{scroll-margin-top:110px;transition:background .22s ease, box-shadow .22s ease, transform .22s ease}
.nkk-calendar-month:hover{transform:translateY(-1px)}
.nkk-calendar-month.is-selected{background:linear-gradient(180deg, rgba(138,31,45,.052) 0%, rgba(138,31,45,.03) 100%);box-shadow:inset 0 2px 0 var(--cal-accent), inset 0 0 0 1px rgba(138,31,45,.05)}
.nkk-calendar-month__number{font-size:10px;font-weight:900}
@media(max-width:700px){html body.nkk-calendar-system .nkk-calendar-wheel__month{width:38px;height:38px;margin:-19px}html body.nkk-calendar-system .nkk-calendar-wheel__month:hover,html body.nkk-calendar-system .nkk-calendar-wheel__month:focus-visible{transform:rotate(var(--month-angle)) translateY(-154px) rotate(calc(var(--month-angle) * -1)) translateY(-2px) scale(1.04)}.nkk-calendar-wheel__month-number{font-size:10px}}


/* ==========================================================
   NKK Kalendarz Liturgiczny 1.2.2
   Rzeczywista, czytelna orbita miesięcy
   ========================================================== */
.nkk-calendar-now{
    grid-template-columns:auto auto 1fr;
    column-gap:12px;
}
.nkk-calendar-now__label{
    display:flex;
    align-items:center;
    gap:7px;
}
.nkk-calendar-now__label i{
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--cal-accent);
    box-shadow:0 0 0 0 rgba(138,31,45,.18);
    animation:nkkCalendarTodayPulse 2.6s ease-out infinite;
}
.nkk-calendar-now strong{grid-column:1/2}
.nkk-calendar-now__weekday{
    color:#746a62 !important;
    font-family:var(--cal-serif) !important;
    font-size:15px !important;
    font-weight:400 !important;
    text-transform:capitalize;
}
.nkk-calendar-now__cycle{justify-self:start}

.nkk-calendar-wheel__orbit{
    position:absolute;
    inset:0;
    z-index:4;
    transform-origin:50% 50%;
    animation:nkkCalendarMonthOrbit 54s linear infinite;
}

.nkk-calendar-wheel:hover .nkk-calendar-wheel__orbit,
.nkk-calendar-wheel:focus-within .nkk-calendar-wheel__orbit{
    animation-play-state:paused;
}

html body.nkk-calendar-system .nkk-calendar-wheel__month{
    z-index:5;
    transform:rotate(var(--month-angle)) translateY(-214px);
}

.nkk-calendar-wheel__month-upright{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    transform:rotate(calc(var(--month-angle) * -1));
}

.nkk-calendar-wheel__month-number{
    display:block;
    animation:nkkCalendarMonthCounter 54s linear infinite;
}

.nkk-calendar-wheel:hover .nkk-calendar-wheel__month-number,
.nkk-calendar-wheel:focus-within .nkk-calendar-wheel__month-number{
    animation-play-state:paused;
}

html body.nkk-calendar-system .nkk-calendar-wheel__month:hover,
html body.nkk-calendar-system .nkk-calendar-wheel__month:focus-visible{
    transform:rotate(var(--month-angle)) translateY(-214px) scale(1.08);
}

.nkk-calendar-wheel__month.is-current{
    animation:nkkCalendarCurrentMonth 3.2s ease-in-out infinite;
}

.nkk-calendar-wheel__center{
    animation:nkkCalendarCenterLife 6s ease-in-out infinite;
}

.nkk-calendar-wheel__ring--1{
    animation:nkkCalendarRingGlow 7.5s ease-in-out infinite;
}

@keyframes nkkCalendarMonthOrbit{
    from{transform:rotate(0deg)}
    to{transform:rotate(360deg)}
}

@keyframes nkkCalendarMonthCounter{
    from{transform:rotate(0deg)}
    to{transform:rotate(-360deg)}
}

@keyframes nkkCalendarCurrentMonth{
    0%,100%{box-shadow:0 0 0 7px rgba(138,31,45,.07),0 12px 26px rgba(35,26,22,.08)}
    50%{box-shadow:0 0 0 11px rgba(138,31,45,.10),0 15px 32px rgba(35,26,22,.10)}
}

@keyframes nkkCalendarCenterLife{
    0%,100%{transform:translateY(0);box-shadow:0 18px 48px rgba(35,26,22,.06)}
    50%{transform:translateY(-3px);box-shadow:0 24px 56px rgba(35,26,22,.085)}
}

@keyframes nkkCalendarRingGlow{
    0%,100%{border-color:rgba(138,31,45,.10);opacity:.72}
    50%{border-color:rgba(138,31,45,.18);opacity:1}
}

@keyframes nkkCalendarTodayPulse{
    0%{box-shadow:0 0 0 0 rgba(138,31,45,.22)}
    70%{box-shadow:0 0 0 8px rgba(138,31,45,0)}
    100%{box-shadow:0 0 0 0 rgba(138,31,45,0)}
}

@media(max-width:700px){
    html body.nkk-calendar-system .nkk-calendar-wheel__month{
        transform:rotate(var(--month-angle)) translateY(-154px);
    }
    html body.nkk-calendar-system .nkk-calendar-wheel__month:hover,
    html body.nkk-calendar-system .nkk-calendar-wheel__month:focus-visible{
        transform:rotate(var(--month-angle)) translateY(-154px) scale(1.05);
    }
    .nkk-calendar-now{
        grid-template-columns:1fr;
        gap:3px;
    }
    .nkk-calendar-now strong,
    .nkk-calendar-now__weekday,
    .nkk-calendar-now__cycle{grid-column:1}
}

@media(prefers-reduced-motion:reduce){
    .nkk-calendar-wheel__orbit,
    .nkk-calendar-wheel__month-number,
    .nkk-calendar-wheel__month.is-current,
    .nkk-calendar-wheel__center,
    .nkk-calendar-wheel__ring--1,
    .nkk-calendar-now__label i{
        animation:none !important;
    }
}


/* ==========================================================
   NKK Kalendarz Liturgiczny 1.2.3
   Mocny i czytelny stan bieżącego miesiąca
   ========================================================== */

html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current{
    z-index:12;
    width:60px;
    height:60px;
    margin:-30px;
    border:2px solid #761825;
    background:linear-gradient(145deg,#9a2637 0%,#7f1828 100%);
    color:#fffdf8;
    box-shadow:
        0 0 0 7px rgba(138,31,45,.10),
        0 0 0 13px rgba(138,31,45,.045),
        0 14px 30px rgba(64,28,31,.16);
}

html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current::before{
    inset:6px;
    border:1px solid rgba(255,255,255,.34);
}

html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current::after{
    content:"";
    position:absolute;
    inset:-11px;
    z-index:-1;
    border:1px solid rgba(138,31,45,.24);
    border-radius:50%;
    opacity:.62;
    animation:nkkCalendarActiveHalo 2.8s ease-in-out infinite;
    pointer-events:none;
}

html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current .nkk-calendar-wheel__month-number{
    color:#fffdf8;
    font-size:17px;
    font-weight:900;
    letter-spacing:.025em;
    text-shadow:0 1px 2px rgba(54,12,19,.34);
}

html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current:hover,
html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current:focus-visible{
    border-color:#681421;
    background:linear-gradient(145deg,#a82b3e 0%,#7a1525 100%);
    color:#fffdf8;
    box-shadow:
        0 0 0 8px rgba(138,31,45,.12),
        0 0 0 14px rgba(138,31,45,.05),
        0 17px 34px rgba(64,28,31,.19);
}

@keyframes nkkCalendarCurrentMonth{
    0%,100%{
        box-shadow:
            0 0 0 7px rgba(138,31,45,.10),
            0 0 0 13px rgba(138,31,45,.045),
            0 14px 30px rgba(64,28,31,.16);
    }
    50%{
        box-shadow:
            0 0 0 10px rgba(138,31,45,.14),
            0 0 0 17px rgba(138,31,45,.055),
            0 18px 36px rgba(64,28,31,.20);
    }
}

@keyframes nkkCalendarActiveHalo{
    0%,100%{transform:scale(.94);opacity:.42}
    50%{transform:scale(1.08);opacity:.82}
}

@media(max-width:700px){
    html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current{
        width:50px;
        height:50px;
        margin:-25px;
    }

    html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current .nkk-calendar-wheel__month-number{
        font-size:14px;
    }
}

@media(prefers-reduced-motion:reduce){
    html body.nkk-calendar-system .nkk-calendar-wheel__month.is-current::after{
        animation:none !important;
        transform:none;
        opacity:.62;
    }
}
