.zsp2-documents__list { display: grid; gap: 16px; }
.zsp2-document-card,
.zsp2-menu-card,
.zsp2-menu-empty {
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid #d9e8dc;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(8,49,30,.07);
}
.zsp2-document-card__meta { display:flex; gap:8px; margin-bottom:10px; color:#217a58; font-size:.78rem; font-weight:800; text-transform:uppercase; }
.zsp2-document-card h3 { margin:0 0 8px; font-size:1.25rem; }
.zsp2-document-card__description p { margin:.5em 0; color:#5d7065; }
.zsp2-file-button { display:inline-flex; align-items:center; min-height:44px; margin-top:14px; padding:10px 15px; border-radius:12px; background:linear-gradient(90deg,#21855f,#2a859a); color:#fff !important; text-decoration:none !important; font-weight:800; }
.zsp2-menu-card__header { margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid #e0ece3; }
.zsp2-menu-card__eyebrow { margin:0 0 8px; color:#21855f; font-size:.78rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.zsp2-menu-card__header h2 { margin:0; }
.zsp2-menu-card__period { margin:8px 0 0; color:#65786d; }
.zsp2-menu-card__image img { width:100%; height:auto; border-radius:18px; }
.zsp2-menu-card__content { font-size:1.04rem; line-height:1.7; }
.zsp2-menu-card__content table { width:100%; border-collapse:collapse; }
.zsp2-menu-card__content th,.zsp2-menu-card__content td { padding:10px; border:1px solid #d9e8dc; text-align:left; }
@media (max-width:700px) { .zsp2-menu-card__content { font-size:.98rem; overflow-x:auto; } }


/* Stołówka */
.zsp2-canteen__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 22px;
    align-items: stretch;
}
.zsp2-canteen__main,
.zsp2-canteen__menu,
.zsp2-canteen__empty {
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid #d9e3df;
    border-radius: 28px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 18px 42px rgba(7,41,30,.08);
}
.zsp2-canteen__main::before,
.zsp2-canteen__menu::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 6px;
    background: linear-gradient(90deg,#1f825e,#0d3150,#b49028);
}
.zsp2-canteen__eyebrow {
    margin: 0 0 10px;
    color: #1f825e;
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.zsp2-canteen h3 { margin: 0 0 18px; font-size: clamp(1.55rem,3vw,2rem); color:#0d3150; }
.zsp2-canteen__price {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 22px;
    padding: 12px 15px;
    border-radius: 16px;
    background: #f6eed8;
    border: 1px solid rgba(180,144,40,.22);
}
.zsp2-canteen__price span { color:#695d39; font-size:.86rem; font-weight:700; }
.zsp2-canteen__price strong { color:#0d3150; font-size:1.25rem; }
.zsp2-canteen__content { color:#4f6259; line-height:1.72; }
.zsp2-canteen__content h4,.zsp2-canteen__content h5 { color:#0d3150; }
.zsp2-canteen__content ul,.zsp2-canteen__content ol { padding-left:1.25rem; }
.zsp2-canteen__payment {
    margin-top: 20px;
    padding: 16px 18px;
    border-left: 4px solid #b49028;
    border-radius: 0 14px 14px 0;
    background: #fbf8ef;
}
.zsp2-canteen__payment strong { color:#0d3150; }
.zsp2-canteen__payment p { margin:.4em 0 0; color:#5c635d; }
.zsp2-file-button--form { margin-top:22px; background:linear-gradient(90deg,#1f825e,#0d3150); }
.zsp2-canteen__menu {
    background:
        radial-gradient(circle at 90% 10%, rgba(180,144,40,.16), transparent 28%),
        linear-gradient(180deg,#ffffff,#f6faf7);
}
.zsp2-canteen__menu-title { display:block; color:#173f33; font-size:1.12rem; line-height:1.35; }
.zsp2-canteen__period { margin:7px 0 14px; color:#708078; font-size:.9rem; }
.zsp2-canteen__menu-preview { color:#596b62; line-height:1.65; }
.zsp2-canteen__menu-link {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:14px;
    color:#0d3150 !important;
    font-weight:850;
    text-decoration:none !important;
}
.zsp2-canteen__menu-link:hover { text-decoration:underline !important; }
@media (max-width: 900px) { .zsp2-canteen__grid { grid-template-columns:1fr; } }

.zsp2-canteen__menu-days {
    display:grid;
    gap:12px;
    margin-top:4px;
}
.zsp2-canteen__day {
    padding:12px 14px;
    border:1px solid #dce7df;
    border-radius:16px;
    background:rgba(255,255,255,.82);
    box-shadow:0 8px 22px rgba(13,49,80,.05);
}
.zsp2-canteen__day-name {
    display:inline-flex;
    align-items:center;
    margin:0 0 8px;
    padding:5px 10px;
    border-radius:999px;
    background:linear-gradient(90deg,#eaf6ef,#eef8ff);
    color:#1f825e;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.zsp2-canteen__day-text {
    color:#445951;
    line-height:1.7;
    font-size:.98rem;
}
.zsp2-canteen__day-text br {
    content:"";
}
.zsp2-canteen__meal {
    color:#0d3150;
    font-weight:800;
}

.zsp2-canteen__meal-row {
    display:grid;
    grid-template-columns: minmax(105px, auto) 1fr;
    gap:7px 10px;
    padding:4px 0;
    border-bottom:1px dashed rgba(13,49,80,.10);
}
.zsp2-canteen__meal-row:last-child { border-bottom:0; }
.zsp2-canteen__menu-days--compact { gap:10px; }
.zsp2-canteen__menu-days--compact .zsp2-canteen__day { padding:11px 12px; }
.zsp2-canteen__menu-days--compact .zsp2-canteen__day-text { font-size:.94rem; }
.zsp2-canteen__menu-days--compact .zsp2-canteen__meal-row { grid-template-columns:1fr; gap:1px; }
@media (max-width: 560px) {
    .zsp2-canteen__meal-row { grid-template-columns:1fr; gap:1px; }
}

/* v2.6: osobne jadlospisy szkoly i przedszkola */
.zsp2-menu__audiences {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    align-items:start;
}
.zsp2-menu-card--school { border-top:6px solid #1f825e; }
.zsp2-menu-card--preschool { border-top:6px solid #b49028; }
.zsp2-menu-card--preschool .zsp2-menu-card__eyebrow { color:#8b6c12; }
.zsp2-canteen__menus {
    display:grid;
    gap:18px;
}
.zsp2-canteen__menu-card {
    padding:18px;
    border-radius:20px;
    border:1px solid #dbe7df;
    background:rgba(255,255,255,.84);
    box-shadow:0 10px 26px rgba(7,41,30,.055);
}
.zsp2-canteen__menu-card--school { border-left:5px solid #1f825e; }
.zsp2-canteen__menu-card--preschool { border-left:5px solid #b49028; }
.zsp2-canteen__audience {
    display:inline-flex;
    margin:0 0 10px;
    padding:6px 10px;
    border-radius:999px;
    background:#eaf6ef;
    color:#176d4f;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.zsp2-canteen__menu-card--preschool .zsp2-canteen__audience {
    background:#fbf4df;
    color:#806515;
}
.zsp2-canteen__menu-card .zsp2-canteen__menu-days--compact {
    margin-top:12px;
}
@media (max-width:900px) {
    .zsp2-menu__audiences { grid-template-columns:1fr; }
}

/* v2.7: okres jadlospisu oraz dwie ceny */
.zsp2-menu-card__period-badge,
.zsp2-canteen__period-badge {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin: 10px 0 16px;
    padding: 9px 13px;
    border: 1px solid rgba(31,130,94,.16);
    border-radius: 999px;
    background: linear-gradient(90deg,#eef8f2,#f2f8fb);
    color: #5b7065;
    font-size: .82rem;
    line-height: 1.25;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.zsp2-menu-card__period-badge strong,
.zsp2-canteen__period-badge strong {
    color: #0d3150;
    font-size: .88rem;
}
.zsp2-canteen__period-badge .dashicons {
    width: 17px;
    height: 17px;
    font-size: 17px;
    color: #1f825e;
}
.zsp2-canteen__prices {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
    margin: 0 0 22px;
}
.zsp2-canteen__price {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 14px 15px;
    border-radius: 16px;
}
.zsp2-canteen__price--school {
    background: linear-gradient(180deg,#f2f9f4,#eaf6ee);
    border-color: rgba(31,130,94,.18);
}
.zsp2-canteen__price--preschool {
    background: linear-gradient(180deg,#fbf8ef,#f6eed8);
    border-color: rgba(180,144,40,.22);
}
.zsp2-canteen__price span {
    max-width: 72%;
    color: #5b665f;
    line-height: 1.35;
}
.zsp2-canteen__price strong {
    white-space: nowrap;
    color: #0d3150;
}
@media (max-width:700px) {
    .zsp2-canteen__prices { grid-template-columns:1fr; }
    .zsp2-menu-card__period-badge,
    .zsp2-canteen__period-badge { border-radius:16px; }
}


/* v2.8: Galerie OneDrive */
.zsp2-onedrive-galleries { display:grid; gap:42px; }
.zsp2-onedrive-gallery {
    padding:clamp(20px,3vw,30px);
    border:1px solid #d9e8dc;
    border-radius:28px;
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,252,249,.98));
    box-shadow:0 18px 42px rgba(7,41,30,.08);
}
.zsp2-onedrive-gallery__header { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.zsp2-onedrive-gallery__eyebrow { margin:0 0 7px; color:#1f825e; font-size:.76rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.zsp2-onedrive-gallery__header h2 { margin:0; color:#0d3150; font-size:clamp(1.55rem,3vw,2.25rem); }
.zsp2-onedrive-gallery__description p { margin:.55em 0 0; color:#5a6c63; }
.zsp2-onedrive-gallery__source { flex:0 0 auto; color:#0d3150!important; font-weight:800; text-decoration:none!important; }
.zsp2-onedrive-gallery__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.zsp2-onedrive-gallery__item { position:relative; display:block; overflow:hidden; aspect-ratio:4/3; border-radius:18px; background:#e9f4ed; box-shadow:0 8px 20px rgba(7,41,30,.06); }
.zsp2-onedrive-gallery__item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease,filter .35s ease; }
.zsp2-onedrive-gallery__zoom { position:absolute; right:10px; bottom:10px; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:rgba(8,49,30,.72); color:#fff!important; font-size:1.35rem; line-height:1; opacity:0; transform:translateY(4px); transition:.25s ease; }
.zsp2-onedrive-gallery__item:hover img { transform:scale(1.045); filter:saturate(1.05); }
.zsp2-onedrive-gallery__item:hover .zsp2-onedrive-gallery__zoom { opacity:1; transform:none; }
.zsp2-onedrive-gallery__notice { padding:18px; border-radius:18px; background:#f1f8f3; border:1px solid #d6e8dc; color:#50635a; }
.zsp2-onedrive-gallery__notice strong { color:#0d3150; }
.zsp2-onedrive-gallery__notice p { margin:.35em 0 .5em; }
.zsp2-gallery-lightbox {
    position:fixed;
    inset:0;
    z-index:999999;
    display:grid;
    place-items:center;
    width:100vw;
    height:100dvh;
    padding:18px 76px;
    box-sizing:border-box;
    background:rgba(4,24,17,.94);
    backdrop-filter:blur(10px);
}
.zsp2-gallery-lightbox[hidden] { display:none!important; }
.zsp2-gallery-lightbox figure {
    margin:0;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    justify-items:center;
}
.zsp2-gallery-lightbox img {
    display:block;
    width:auto;
    height:auto;
    max-width:100%;
    max-height:calc(100dvh - 82px);
    object-fit:contain;
    object-position:center;
    border-radius:14px;
    box-shadow:0 20px 70px rgba(0,0,0,.35);
}
.zsp2-gallery-lightbox figcaption {
    max-width:min(900px,90vw);
    min-height:20px;
    color:#eef7f1;
    font-size:.9rem;
    text-align:center;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.zsp2-gallery-lightbox button {
    position:absolute;
    z-index:2;
    border:0;
    color:#fff;
    background:rgba(255,255,255,.12);
    cursor:pointer;
    border-radius:999px;
    width:48px;
    height:48px;
    font-size:2rem;
    display:grid;
    place-items:center;
    touch-action:manipulation;
}
.zsp2-gallery-lightbox__close { top:max(14px,env(safe-area-inset-top)); right:max(14px,env(safe-area-inset-right)); }
.zsp2-gallery-lightbox__prev { left:max(14px,env(safe-area-inset-left)); top:50%; transform:translateY(-50%); }
.zsp2-gallery-lightbox__next { right:max(14px,env(safe-area-inset-right)); top:50%; transform:translateY(-50%); }
body.zsp2-gallery-open { overflow:hidden; touch-action:none; }
@media (max-width:900px) { .zsp2-onedrive-gallery__grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px) {
    .zsp2-onedrive-gallery__header { align-items:start; flex-direction:column; }
    .zsp2-onedrive-gallery__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .zsp2-onedrive-gallery { padding:16px; border-radius:22px; }
    .zsp2-gallery-lightbox { padding:54px 8px 72px; }
    .zsp2-gallery-lightbox img { max-width:100%; max-height:calc(100dvh - 140px); border-radius:10px; }
    .zsp2-gallery-lightbox__prev,.zsp2-gallery-lightbox__next { top:auto; bottom:max(14px,env(safe-area-inset-bottom)); transform:none; }
    .zsp2-gallery-lightbox__prev { left:calc(50% - 62px); }
    .zsp2-gallery-lightbox__next { right:calc(50% - 62px); }
    .zsp2-gallery-lightbox figcaption { max-width:84vw; font-size:.82rem; }
}
